@litigiovirtual/ius-design-components 2.2.0 → 2.2.2

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.
@@ -1933,7 +1933,7 @@ class CountdownRingComponent {
1933
1933
  inject(DestroyRef).onDestroy(() => this.clock.destroy());
1934
1934
  }
1935
1935
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CountdownRingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1936
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CountdownRingComponent, isStandalone: true, selector: "ius-countdown-ring", inputs: { progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: false, transformFunction: null }, running: { classPropertyName: "running", publicName: "running", isSignal: true, isRequired: false, transformFunction: null }, paused: { classPropertyName: "paused", publicName: "paused", isSignal: true, isRequired: false, transformFunction: null }, inverse: { classPropertyName: "inverse", publicName: "inverse", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", 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: { completed: "completed" }, host: { attributes: { "role": "img" }, properties: { "attr.data-size": "size()", "attr.data-eased": "isControlled() ? 'true' : null", "attr.aria-label": "ariaLabel() || null", "style.--_cdr-arc": "toneVars().arc", "style.--_cdr-trk": "toneVars().trk", "style.width.px": "dim().d", "style.height.px": "dim().d" }, classAttribute: "ius-cdring" }, ngImport: i0, template: "<svg\n class=\"ius-cdring__svg\"\n [attr.width]=\"dim().d\"\n [attr.height]=\"dim().d\"\n [attr.viewBox]=\"'0 0 ' + dim().d + ' ' + dim().d\"\n>\n <circle\n class=\"ius-cdring__trk\"\n [attr.cx]=\"dim().d / 2\"\n [attr.cy]=\"dim().d / 2\"\n [attr.r]=\"ringR()\"\n [attr.stroke-width]=\"dim().s\"\n pathLength=\"100\"\n />\n @if (arcLen() > 0) {\n <circle\n class=\"ius-cdring__arc\"\n [attr.cx]=\"dim().d / 2\"\n [attr.cy]=\"dim().d / 2\"\n [attr.r]=\"ringR()\"\n [attr.stroke-width]=\"dim().s\"\n pathLength=\"100\"\n [style.stroke-dasharray]=\"dashArray()\"\n />\n }\n</svg>\n\n<span class=\"ius-cdring__center\"><ng-content /></span>\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:middle}.ius-cdring__svg{display:block;transform:rotate(-90deg)}.ius-cdring__svg circle{fill:none}.ius-cdring__trk{stroke:var(--_cdr-trk)}.ius-cdring__arc{stroke:var(--_cdr-arc);stroke-linecap:round}:host([data-eased=true]) .ius-cdring__arc{transition:stroke-dasharray var(--ius-duration-base, .22s) var(--ius-ease-standard)}@media(prefers-reduced-motion:reduce){:host([data-eased=true]) .ius-cdring__arc{transition:none}}.ius-cdring__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);line-height:1;font-variant-numeric:tabular-nums}:host([data-size=small]) .ius-cdring__center{display:none}:host([data-size=medium]) .ius-cdring__center{font-size:var(--ius-fs-sm)}:host([data-size=large]) .ius-cdring__center{font-size:var(--ius-fs-sm)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1936
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CountdownRingComponent, isStandalone: true, selector: "ius-countdown-ring", inputs: { progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: false, transformFunction: null }, running: { classPropertyName: "running", publicName: "running", isSignal: true, isRequired: false, transformFunction: null }, paused: { classPropertyName: "paused", publicName: "paused", isSignal: true, isRequired: false, transformFunction: null }, inverse: { classPropertyName: "inverse", publicName: "inverse", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", 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: { completed: "completed" }, host: { attributes: { "role": "img" }, properties: { "attr.data-size": "size()", "attr.data-eased": "isControlled() ? 'true' : null", "attr.aria-label": "ariaLabel() || null", "style.--_cdr-arc": "toneVars().arc", "style.--_cdr-trk": "toneVars().trk", "style.width.px": "dim().d", "style.height.px": "dim().d" }, classAttribute: "ius-cdring" }, ngImport: i0, template: "<svg\r\n class=\"ius-cdring__svg\"\r\n [attr.width]=\"dim().d\"\r\n [attr.height]=\"dim().d\"\r\n [attr.viewBox]=\"'0 0 ' + dim().d + ' ' + dim().d\"\r\n>\r\n <circle\r\n class=\"ius-cdring__trk\"\r\n [attr.cx]=\"dim().d / 2\"\r\n [attr.cy]=\"dim().d / 2\"\r\n [attr.r]=\"ringR()\"\r\n [attr.stroke-width]=\"dim().s\"\r\n pathLength=\"100\"\r\n />\r\n @if (arcLen() > 0) {\r\n <circle\r\n class=\"ius-cdring__arc\"\r\n [attr.cx]=\"dim().d / 2\"\r\n [attr.cy]=\"dim().d / 2\"\r\n [attr.r]=\"ringR()\"\r\n [attr.stroke-width]=\"dim().s\"\r\n pathLength=\"100\"\r\n [style.stroke-dasharray]=\"dashArray()\"\r\n />\r\n }\r\n</svg>\r\n\r\n<span class=\"ius-cdring__center\"><ng-content /></span>\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:middle}.ius-cdring__svg{display:block;transform:rotate(-90deg)}.ius-cdring__svg circle{fill:none}.ius-cdring__trk{stroke:var(--_cdr-trk)}.ius-cdring__arc{stroke:var(--_cdr-arc);stroke-linecap:round}:host([data-eased=true]) .ius-cdring__arc{transition:stroke-dasharray var(--ius-duration-base, .22s) var(--ius-ease-standard)}@media(prefers-reduced-motion:reduce){:host([data-eased=true]) .ius-cdring__arc{transition:none}}.ius-cdring__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);line-height:1;font-variant-numeric:tabular-nums}:host([data-size=small]) .ius-cdring__center{display:none}:host([data-size=medium]) .ius-cdring__center{font-size:var(--ius-fs-sm)}:host([data-size=large]) .ius-cdring__center{font-size:var(--ius-fs-sm)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1937
1937
  }
1938
1938
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CountdownRingComponent, decorators: [{
1939
1939
  type: Component,
@@ -1947,7 +1947,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1947
1947
  '[style.--_cdr-trk]': 'toneVars().trk',
1948
1948
  '[style.width.px]': 'dim().d',
1949
1949
  '[style.height.px]': 'dim().d',
1950
- }, template: "<svg\n class=\"ius-cdring__svg\"\n [attr.width]=\"dim().d\"\n [attr.height]=\"dim().d\"\n [attr.viewBox]=\"'0 0 ' + dim().d + ' ' + dim().d\"\n>\n <circle\n class=\"ius-cdring__trk\"\n [attr.cx]=\"dim().d / 2\"\n [attr.cy]=\"dim().d / 2\"\n [attr.r]=\"ringR()\"\n [attr.stroke-width]=\"dim().s\"\n pathLength=\"100\"\n />\n @if (arcLen() > 0) {\n <circle\n class=\"ius-cdring__arc\"\n [attr.cx]=\"dim().d / 2\"\n [attr.cy]=\"dim().d / 2\"\n [attr.r]=\"ringR()\"\n [attr.stroke-width]=\"dim().s\"\n pathLength=\"100\"\n [style.stroke-dasharray]=\"dashArray()\"\n />\n }\n</svg>\n\n<span class=\"ius-cdring__center\"><ng-content /></span>\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:middle}.ius-cdring__svg{display:block;transform:rotate(-90deg)}.ius-cdring__svg circle{fill:none}.ius-cdring__trk{stroke:var(--_cdr-trk)}.ius-cdring__arc{stroke:var(--_cdr-arc);stroke-linecap:round}:host([data-eased=true]) .ius-cdring__arc{transition:stroke-dasharray var(--ius-duration-base, .22s) var(--ius-ease-standard)}@media(prefers-reduced-motion:reduce){:host([data-eased=true]) .ius-cdring__arc{transition:none}}.ius-cdring__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);line-height:1;font-variant-numeric:tabular-nums}:host([data-size=small]) .ius-cdring__center{display:none}:host([data-size=medium]) .ius-cdring__center{font-size:var(--ius-fs-sm)}:host([data-size=large]) .ius-cdring__center{font-size:var(--ius-fs-sm)}\n"] }]
1950
+ }, template: "<svg\r\n class=\"ius-cdring__svg\"\r\n [attr.width]=\"dim().d\"\r\n [attr.height]=\"dim().d\"\r\n [attr.viewBox]=\"'0 0 ' + dim().d + ' ' + dim().d\"\r\n>\r\n <circle\r\n class=\"ius-cdring__trk\"\r\n [attr.cx]=\"dim().d / 2\"\r\n [attr.cy]=\"dim().d / 2\"\r\n [attr.r]=\"ringR()\"\r\n [attr.stroke-width]=\"dim().s\"\r\n pathLength=\"100\"\r\n />\r\n @if (arcLen() > 0) {\r\n <circle\r\n class=\"ius-cdring__arc\"\r\n [attr.cx]=\"dim().d / 2\"\r\n [attr.cy]=\"dim().d / 2\"\r\n [attr.r]=\"ringR()\"\r\n [attr.stroke-width]=\"dim().s\"\r\n pathLength=\"100\"\r\n [style.stroke-dasharray]=\"dashArray()\"\r\n />\r\n }\r\n</svg>\r\n\r\n<span class=\"ius-cdring__center\"><ng-content /></span>\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:middle}.ius-cdring__svg{display:block;transform:rotate(-90deg)}.ius-cdring__svg circle{fill:none}.ius-cdring__trk{stroke:var(--_cdr-trk)}.ius-cdring__arc{stroke:var(--_cdr-arc);stroke-linecap:round}:host([data-eased=true]) .ius-cdring__arc{transition:stroke-dasharray var(--ius-duration-base, .22s) var(--ius-ease-standard)}@media(prefers-reduced-motion:reduce){:host([data-eased=true]) .ius-cdring__arc{transition:none}}.ius-cdring__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);line-height:1;font-variant-numeric:tabular-nums}:host([data-size=small]) .ius-cdring__center{display:none}:host([data-size=medium]) .ius-cdring__center{font-size:var(--ius-fs-sm)}:host([data-size=large]) .ius-cdring__center{font-size:var(--ius-fs-sm)}\n"] }]
1951
1951
  }], ctorParameters: () => [], propDecorators: { progress: [{ type: i0.Input, args: [{ isSignal: true, alias: "progress", required: false }] }], seconds: [{ type: i0.Input, args: [{ isSignal: true, alias: "seconds", required: false }] }], running: [{ type: i0.Input, args: [{ isSignal: true, alias: "running", required: false }] }], paused: [{ type: i0.Input, args: [{ isSignal: true, alias: "paused", required: false }] }], inverse: [{ type: i0.Input, args: [{ isSignal: true, alias: "inverse", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], completed: [{ type: i0.Output, args: ["completed"] }] } });
1952
1952
 
1953
1953
  /** Color del número por tono (espeja el arco del CountdownRing). */
@@ -2064,7 +2064,7 @@ class CountdownComponent {
2064
2064
  inject(DestroyRef).onDestroy(() => this.clock.destroy());
2065
2065
  }
2066
2066
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CountdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2067
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CountdownComponent, isStandalone: true, selector: "ius-countdown", inputs: { seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: true, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, running: { classPropertyName: "running", publicName: "running", isSignal: true, isRequired: false, transformFunction: null }, paused: { classPropertyName: "paused", publicName: "paused", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showRing: { classPropertyName: "showRing", publicName: "showRing", isSignal: true, isRequired: false, transformFunction: null }, ringPlacement: { classPropertyName: "ringPlacement", publicName: "ringPlacement", isSignal: true, isRequired: false, transformFunction: null }, ringInverse: { classPropertyName: "ringInverse", publicName: "ringInverse", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", 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: { completed: "completed" }, host: { attributes: { "role": "timer", "aria-live": "off" }, properties: { "attr.data-size": "size()", "attr.data-done": "done() ? 'true' : null", "attr.aria-label": "ariaLabel() || null", "style.--_cd-num": "numColor()" }, classAttribute: "ius-countdown" }, ngImport: i0, template: "@if (showRing() && ringPlacement() === 'start') {\n <ius-countdown-ring\n [progress]=\"fraction()\"\n [inverse]=\"ringInv()\"\n [tone]=\"tone()\"\n [size]=\"size()\"\n />\n}\n\n@if (label() != null) {\n <span class=\"ius-countdown__label\">{{ label() }}</span>\n}\n\n<span class=\"ius-countdown__time\">{{ text() }}</span>\n\n@if (showRing() && ringPlacement() === 'end') {\n <ius-countdown-ring\n [progress]=\"fraction()\"\n [inverse]=\"ringInv()\"\n [tone]=\"tone()\"\n [size]=\"size()\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-display);line-height:1;-webkit-user-select:none;user-select:none}.ius-countdown__label{color:var(--ius-text-secondary);font-weight:var(--ius-fw-regular, 400)}.ius-countdown__time{color:var(--_cd-num, var(--ius-primary-900));font-weight:var(--ius-fw-bold, 700);font-variant-numeric:tabular-nums;letter-spacing:-.01em}:host([data-done=true]) .ius-countdown__time{opacity:.55}:host([data-size=small]) .ius-countdown__label{font-size:var(--ius-fs-sm)}:host([data-size=small]) .ius-countdown__time{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__label{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__time{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__label{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__time{font-size:var(--ius-fs-h3)}\n"], dependencies: [{ kind: "component", type: CountdownRingComponent, selector: "ius-countdown-ring", inputs: ["progress", "seconds", "running", "paused", "inverse", "tone", "size", "ariaLabel"], outputs: ["completed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2067
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CountdownComponent, isStandalone: true, selector: "ius-countdown", inputs: { seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: true, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, running: { classPropertyName: "running", publicName: "running", isSignal: true, isRequired: false, transformFunction: null }, paused: { classPropertyName: "paused", publicName: "paused", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showRing: { classPropertyName: "showRing", publicName: "showRing", isSignal: true, isRequired: false, transformFunction: null }, ringPlacement: { classPropertyName: "ringPlacement", publicName: "ringPlacement", isSignal: true, isRequired: false, transformFunction: null }, ringInverse: { classPropertyName: "ringInverse", publicName: "ringInverse", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", 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: { completed: "completed" }, host: { attributes: { "role": "timer", "aria-live": "off" }, properties: { "attr.data-size": "size()", "attr.data-done": "done() ? 'true' : null", "attr.aria-label": "ariaLabel() || null", "style.--_cd-num": "numColor()" }, classAttribute: "ius-countdown" }, ngImport: i0, template: "@if (showRing() && ringPlacement() === 'start') {\r\n <ius-countdown-ring\r\n [progress]=\"fraction()\"\r\n [inverse]=\"ringInv()\"\r\n [tone]=\"tone()\"\r\n [size]=\"size()\"\r\n />\r\n}\r\n\r\n@if (label() != null) {\r\n <span class=\"ius-countdown__label\">{{ label() }}</span>\r\n}\r\n\r\n<span class=\"ius-countdown__time\">{{ text() }}</span>\r\n\r\n@if (showRing() && ringPlacement() === 'end') {\r\n <ius-countdown-ring\r\n [progress]=\"fraction()\"\r\n [inverse]=\"ringInv()\"\r\n [tone]=\"tone()\"\r\n [size]=\"size()\"\r\n />\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-display);line-height:1;-webkit-user-select:none;user-select:none}.ius-countdown__label{color:var(--ius-text-secondary);font-weight:var(--ius-fw-regular, 400)}.ius-countdown__time{color:var(--_cd-num, var(--ius-primary-900));font-weight:var(--ius-fw-bold, 700);font-variant-numeric:tabular-nums;letter-spacing:-.01em}:host([data-done=true]) .ius-countdown__time{opacity:.55}:host([data-size=small]) .ius-countdown__label{font-size:var(--ius-fs-sm)}:host([data-size=small]) .ius-countdown__time{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__label{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__time{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__label{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__time{font-size:var(--ius-fs-h3)}\n"], dependencies: [{ kind: "component", type: CountdownRingComponent, selector: "ius-countdown-ring", inputs: ["progress", "seconds", "running", "paused", "inverse", "tone", "size", "ariaLabel"], outputs: ["completed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2068
2068
  }
2069
2069
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CountdownComponent, decorators: [{
2070
2070
  type: Component,
@@ -2076,7 +2076,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2076
2076
  '[attr.data-done]': "done() ? 'true' : null",
2077
2077
  '[attr.aria-label]': 'ariaLabel() || null',
2078
2078
  '[style.--_cd-num]': 'numColor()',
2079
- }, template: "@if (showRing() && ringPlacement() === 'start') {\n <ius-countdown-ring\n [progress]=\"fraction()\"\n [inverse]=\"ringInv()\"\n [tone]=\"tone()\"\n [size]=\"size()\"\n />\n}\n\n@if (label() != null) {\n <span class=\"ius-countdown__label\">{{ label() }}</span>\n}\n\n<span class=\"ius-countdown__time\">{{ text() }}</span>\n\n@if (showRing() && ringPlacement() === 'end') {\n <ius-countdown-ring\n [progress]=\"fraction()\"\n [inverse]=\"ringInv()\"\n [tone]=\"tone()\"\n [size]=\"size()\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-display);line-height:1;-webkit-user-select:none;user-select:none}.ius-countdown__label{color:var(--ius-text-secondary);font-weight:var(--ius-fw-regular, 400)}.ius-countdown__time{color:var(--_cd-num, var(--ius-primary-900));font-weight:var(--ius-fw-bold, 700);font-variant-numeric:tabular-nums;letter-spacing:-.01em}:host([data-done=true]) .ius-countdown__time{opacity:.55}:host([data-size=small]) .ius-countdown__label{font-size:var(--ius-fs-sm)}:host([data-size=small]) .ius-countdown__time{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__label{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__time{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__label{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__time{font-size:var(--ius-fs-h3)}\n"] }]
2079
+ }, template: "@if (showRing() && ringPlacement() === 'start') {\r\n <ius-countdown-ring\r\n [progress]=\"fraction()\"\r\n [inverse]=\"ringInv()\"\r\n [tone]=\"tone()\"\r\n [size]=\"size()\"\r\n />\r\n}\r\n\r\n@if (label() != null) {\r\n <span class=\"ius-countdown__label\">{{ label() }}</span>\r\n}\r\n\r\n<span class=\"ius-countdown__time\">{{ text() }}</span>\r\n\r\n@if (showRing() && ringPlacement() === 'end') {\r\n <ius-countdown-ring\r\n [progress]=\"fraction()\"\r\n [inverse]=\"ringInv()\"\r\n [tone]=\"tone()\"\r\n [size]=\"size()\"\r\n />\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-display);line-height:1;-webkit-user-select:none;user-select:none}.ius-countdown__label{color:var(--ius-text-secondary);font-weight:var(--ius-fw-regular, 400)}.ius-countdown__time{color:var(--_cd-num, var(--ius-primary-900));font-weight:var(--ius-fw-bold, 700);font-variant-numeric:tabular-nums;letter-spacing:-.01em}:host([data-done=true]) .ius-countdown__time{opacity:.55}:host([data-size=small]) .ius-countdown__label{font-size:var(--ius-fs-sm)}:host([data-size=small]) .ius-countdown__time{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__label{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__time{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__label{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__time{font-size:var(--ius-fs-h3)}\n"] }]
2080
2080
  }], ctorParameters: () => [], propDecorators: { seconds: [{ type: i0.Input, args: [{ isSignal: true, alias: "seconds", required: true }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], running: [{ type: i0.Input, args: [{ isSignal: true, alias: "running", required: false }] }], paused: [{ type: i0.Input, args: [{ isSignal: true, alias: "paused", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], suffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffix", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], showRing: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRing", required: false }] }], ringPlacement: [{ type: i0.Input, args: [{ isSignal: true, alias: "ringPlacement", required: false }] }], ringInverse: [{ type: i0.Input, args: [{ isSignal: true, alias: "ringInverse", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], completed: [{ type: i0.Output, args: ["completed"] }] } });
2081
2081
 
2082
2082
  /** Ícono por defecto según el tono. */
@@ -2492,11 +2492,11 @@ class IllustrationComponent {
2492
2492
  this.safeInner = this.sanitizer.bypassSecurityTrustHtml(inner);
2493
2493
  }
2494
2494
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IllustrationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2495
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: IllustrationComponent, isStandalone: true, selector: "ius-illustration", inputs: { name: "name", size: "size", title: "title" }, host: { classAttribute: "ius-illustration" }, ngImport: i0, template: "@if (hasEntry) {\n <svg\n [attr.viewBox]=\"viewBox\"\n [attr.width]=\"px\"\n [attr.height]=\"px\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel\"\n [innerHTML]=\"safeInner\"\n ></svg>\n} @else {\n <!-- Placeholder: nombre v\u00E1lido sin arte disponible (data parcial) o nombre\n desconocido. Espejo del fallback de Illustration.jsx. -->\n <svg\n viewBox=\"0 0 110 110\"\n [attr.width]=\"px\"\n [attr.height]=\"px\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <rect\n x=\"6\"\n y=\"6\"\n width=\"98\"\n height=\"98\"\n rx=\"14\"\n fill=\"var(--ius-neutral-2)\"\n stroke=\"var(--ius-stroke)\"\n stroke-dasharray=\"4 4\"\n />\n </svg>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0}svg{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2495
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: IllustrationComponent, isStandalone: true, selector: "ius-illustration", inputs: { name: "name", size: "size", title: "title" }, host: { classAttribute: "ius-illustration" }, ngImport: i0, template: "@if (hasEntry) {\r\n <svg\r\n [attr.viewBox]=\"viewBox\"\r\n [attr.width]=\"px\"\r\n [attr.height]=\"px\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [innerHTML]=\"safeInner\"\r\n ></svg>\r\n} @else {\r\n <!-- Placeholder: nombre v\u00E1lido sin arte disponible (data parcial) o nombre\r\n desconocido. Espejo del fallback de Illustration.jsx. -->\r\n <svg\r\n viewBox=\"0 0 110 110\"\r\n [attr.width]=\"px\"\r\n [attr.height]=\"px\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n >\r\n <rect\r\n x=\"6\"\r\n y=\"6\"\r\n width=\"98\"\r\n height=\"98\"\r\n rx=\"14\"\r\n fill=\"var(--ius-neutral-2)\"\r\n stroke=\"var(--ius-stroke)\"\r\n stroke-dasharray=\"4 4\"\r\n />\r\n </svg>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0}svg{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2496
2496
  }
2497
2497
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IllustrationComponent, decorators: [{
2498
2498
  type: Component,
2499
- args: [{ selector: 'ius-illustration', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-illustration' }, template: "@if (hasEntry) {\n <svg\n [attr.viewBox]=\"viewBox\"\n [attr.width]=\"px\"\n [attr.height]=\"px\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel\"\n [innerHTML]=\"safeInner\"\n ></svg>\n} @else {\n <!-- Placeholder: nombre v\u00E1lido sin arte disponible (data parcial) o nombre\n desconocido. Espejo del fallback de Illustration.jsx. -->\n <svg\n viewBox=\"0 0 110 110\"\n [attr.width]=\"px\"\n [attr.height]=\"px\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <rect\n x=\"6\"\n y=\"6\"\n width=\"98\"\n height=\"98\"\n rx=\"14\"\n fill=\"var(--ius-neutral-2)\"\n stroke=\"var(--ius-stroke)\"\n stroke-dasharray=\"4 4\"\n />\n </svg>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0}svg{display:block}\n"] }]
2499
+ args: [{ selector: 'ius-illustration', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-illustration' }, template: "@if (hasEntry) {\r\n <svg\r\n [attr.viewBox]=\"viewBox\"\r\n [attr.width]=\"px\"\r\n [attr.height]=\"px\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [innerHTML]=\"safeInner\"\r\n ></svg>\r\n} @else {\r\n <!-- Placeholder: nombre v\u00E1lido sin arte disponible (data parcial) o nombre\r\n desconocido. Espejo del fallback de Illustration.jsx. -->\r\n <svg\r\n viewBox=\"0 0 110 110\"\r\n [attr.width]=\"px\"\r\n [attr.height]=\"px\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n >\r\n <rect\r\n x=\"6\"\r\n y=\"6\"\r\n width=\"98\"\r\n height=\"98\"\r\n rx=\"14\"\r\n fill=\"var(--ius-neutral-2)\"\r\n stroke=\"var(--ius-stroke)\"\r\n stroke-dasharray=\"4 4\"\r\n />\r\n </svg>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0}svg{display:block}\n"] }]
2500
2500
  }], propDecorators: { name: [{
2501
2501
  type: Input,
2502
2502
  args: [{ required: true }]
@@ -3640,7 +3640,7 @@ class AccountItemComponent {
3640
3640
  this.clicked.emit(event);
3641
3641
  }
3642
3642
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AccountItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3643
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AccountItemComponent, isStandalone: true, selector: "ius-account-item", inputs: { name: "name", subtitle: "subtitle", avatar: "avatar", icon: "icon", monogram: "monogram", color: "color", shape: "shape", selected: ["selected", "selected", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], actions: "actions", actionsLabel: "actionsLabel", state: "state", ariaLabel: "ariaLabel" }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-state": "state || null", "attr.data-disabled": "disabled ? 'true' : null", "attr.data-actionable": "actionable ? 'true' : null" }, classAttribute: "ius-acctitem" }, queries: [{ propertyName: "nameRef", first: true, predicate: IusAccountItemNameDirective, descendants: true, isSignal: true }, { propertyName: "subtitleRef", first: true, predicate: IusAccountItemSubtitleDirective, descendants: true, isSignal: true }, { propertyName: "trailingRef", first: true, predicate: IusAccountItemTrailingDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- La superficie la pone ius-card (outlined \u00B7 radius lg \u00B7 padding none), como\r\n manda la ng-spec: no se reescribe a mano. Con `padding=\"none\"` el padding de\r\n la fila lo pone .ius-acctitem__row, que es \u00ABel propio cuerpo\u00BB del que habla\r\n Card (el golden lo escribe sobre .ius-card__body, encapsulado aqu\u00ED).\r\n\r\n La ra\u00EDz NO es navegable: el \u00E1rea primaria es el <button> interno\r\n .ius-acctitem__main, como en la rama `split` del golden \u2014 as\u00ED el \u22EE nunca\r\n queda anidado dentro de otro control. Ver la nota de port del .ts. -->\r\n<ius-card\r\n class=\"ius-acctitem__card\"\r\n variant=\"outlined\"\r\n radius=\"lg\"\r\n padding=\"none\"\r\n [selected]=\"selected\"\r\n>\r\n <div class=\"ius-acctitem__row\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-acctitem__main\"\r\n [attr.aria-label]=\"label\"\r\n [attr.aria-pressed]=\"ariaPressed\"\r\n [disabled]=\"disabled\"\r\n (click)=\"onMainClick($event)\"\r\n >\r\n <ius-avatar\r\n size=\"small\"\r\n [shape]=\"shape\"\r\n [src]=\"avatar\"\r\n [name]=\"avatarName\"\r\n [monogram]=\"monogram\"\r\n [icon]=\"effIcon\"\r\n [color]=\"color\"\r\n [ariaLabel]=\"name\"\r\n />\r\n\r\n <span class=\"ius-acctitem__body\">\r\n <span class=\"ius-acctitem__name\">{{ name }}<ng-content select=\"[iusAccountItemName]\" /></span>\r\n @if (hasSubtitle) {\r\n <span class=\"ius-acctitem__sub\">{{ subtitle }}<ng-content select=\"[iusAccountItemSubtitle]\" /></span>\r\n }\r\n </span>\r\n\r\n @if (selected) {\r\n <span class=\"ius-acctitem__check\"><span translate=\"no\" class=\"ius-icon\">check_circle</span></span>\r\n }\r\n </button>\r\n\r\n @if (hasTrailing) {\r\n <span class=\"ius-acctitem__trailing\"><ng-content select=\"[iusAccountItemTrailing]\" /></span>\r\n }\r\n\r\n @if (showMenu) {\r\n <!-- Slot de ancho fijo (--_ai-actions-w): alinea todas las listas de\r\n cuentas del ecosistema. Compone ius-dropdown; su clic no dispara la\r\n fila (el \u00E1rea primaria es un bot\u00F3n hermano, no un ancestro). -->\r\n <span class=\"ius-acctitem__actions\">\r\n <ius-dropdown [items]=\"actions\" placement=\"bottom-end\" [ariaLabel]=\"actionsLabel\">\r\n <ius-icon-button\r\n iusDropdownTrigger\r\n icon=\"more_vert\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"menuLabel\"\r\n [disabled]=\"disabled\"\r\n />\r\n </ius-dropdown>\r\n </span>\r\n }\r\n </div>\r\n</ius-card>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-width:0;box-sizing:border-box;-webkit-user-select:none;user-select:none;text-align:left;--_ai-actions-w: 36px}.ius-acctitem__row{display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm)}.ius-acctitem__main{appearance:none;background:none;border:0;margin:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-acctitem__main:focus-visible{outline:none}:host(:has(.ius-acctitem__main:focus-visible)) .ius-acctitem__card{box-shadow:var(--ius-focus-ring)}:host([data-actionable=true]:hover) .ius-acctitem__card,:host([data-state=hover]) .ius-acctitem__card{box-shadow:none;transform:none;border-color:var(--ius-info-300)}:host([data-actionable=true]:has(.ius-acctitem__main:active)) .ius-acctitem__card,:host([data-state=pressed]) .ius-acctitem__card{box-shadow:none;transform:none;background:var(--ius-info-100);border-color:var(--ius-info-300)}.ius-acctitem__card[data-selected=true]{background:var(--ius-info-100);border-color:var(--ius-info-300);box-shadow:none}:host([data-disabled=true]){cursor:default;opacity:.5;pointer-events:none}.ius-acctitem__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.ius-acctitem__name{font-size:var(--ius-fs-base);line-height:1.3;font-weight:var(--ius-fw-medium, 500);color:var(--ius-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-acctitem__sub{font-size:var(--ius-fs-sm);line-height:1.3;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-acctitem__check{flex:0 0 auto;display:inline-flex;color:var(--ius-primary-900)}.ius-acctitem__check .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-acctitem__trailing{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-acctitem__actions{flex:0 0 auto;width:var(--_ai-actions-w);display:inline-flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: AvatarComponent, selector: "ius-avatar", inputs: ["alt", "name", "monogram", "icon", "shape", "size", "color", "editable", "editIcon", "ariaLabel", "src"], outputs: ["edit"] }, { kind: "component", type: CardComponent, selector: "ius-card, a[ius-card], button[ius-card], section[ius-card], article[ius-card]", inputs: ["variant", "padding", "radius", "interactive", "selected", "ariaLabel"], outputs: ["clicked"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "directive", type: IusDropdownTriggerDirective, selector: "[iusDropdownTrigger]" }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3643
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AccountItemComponent, isStandalone: true, selector: "ius-account-item", inputs: { name: "name", subtitle: "subtitle", avatar: "avatar", icon: "icon", monogram: "monogram", color: "color", shape: "shape", selected: ["selected", "selected", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], actions: "actions", actionsLabel: "actionsLabel", state: "state", ariaLabel: "ariaLabel" }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-state": "state || null", "attr.data-disabled": "disabled ? 'true' : null", "attr.data-actionable": "actionable ? 'true' : null" }, classAttribute: "ius-acctitem" }, queries: [{ propertyName: "nameRef", first: true, predicate: IusAccountItemNameDirective, descendants: true, isSignal: true }, { propertyName: "subtitleRef", first: true, predicate: IusAccountItemSubtitleDirective, descendants: true, isSignal: true }, { propertyName: "trailingRef", first: true, predicate: IusAccountItemTrailingDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- La superficie la pone ius-card (outlined \u00B7 radius lg \u00B7 padding none), como\n manda la ng-spec: no se reescribe a mano. Con `padding=\"none\"` el padding de\n la fila lo pone .ius-acctitem__row, que es \u00ABel propio cuerpo\u00BB del que habla\n Card (el golden lo escribe sobre .ius-card__body, encapsulado aqu\u00ED).\n\n La ra\u00EDz NO es navegable: el \u00E1rea primaria es el <button> interno\n .ius-acctitem__main, como en la rama `split` del golden \u2014 as\u00ED el \u22EE nunca\n queda anidado dentro de otro control. Ver la nota de port del .ts. -->\n<ius-card\n class=\"ius-acctitem__card\"\n variant=\"outlined\"\n radius=\"lg\"\n padding=\"none\"\n [selected]=\"selected\"\n>\n <div class=\"ius-acctitem__row\">\n <button\n type=\"button\"\n class=\"ius-acctitem__main\"\n [attr.aria-label]=\"label\"\n [attr.aria-pressed]=\"ariaPressed\"\n [disabled]=\"disabled\"\n (click)=\"onMainClick($event)\"\n >\n <ius-avatar\n size=\"small\"\n [shape]=\"shape\"\n [src]=\"avatar\"\n [name]=\"avatarName\"\n [monogram]=\"monogram\"\n [icon]=\"effIcon\"\n [color]=\"color\"\n [ariaLabel]=\"name\"\n />\n\n <span class=\"ius-acctitem__body\">\n <span class=\"ius-acctitem__name\">{{ name }}<ng-content select=\"[iusAccountItemName]\" /></span>\n @if (hasSubtitle) {\n <span class=\"ius-acctitem__sub\">{{ subtitle }}<ng-content select=\"[iusAccountItemSubtitle]\" /></span>\n }\n </span>\n\n @if (selected) {\n <span class=\"ius-acctitem__check\"><span translate=\"no\" class=\"ius-icon\">check_circle</span></span>\n }\n </button>\n\n @if (hasTrailing) {\n <span class=\"ius-acctitem__trailing\"><ng-content select=\"[iusAccountItemTrailing]\" /></span>\n }\n\n @if (showMenu) {\n <!-- Slot de ancho fijo (--_ai-actions-w): alinea todas las listas de\n cuentas del ecosistema. Compone ius-dropdown; su clic no dispara la\n fila (el \u00E1rea primaria es un bot\u00F3n hermano, no un ancestro). -->\n <span class=\"ius-acctitem__actions\">\n <ius-dropdown [items]=\"actions\" placement=\"bottom-end\" [ariaLabel]=\"actionsLabel\">\n <ius-icon-button\n iusDropdownTrigger\n icon=\"more_vert\"\n variant=\"tertiary\"\n size=\"small\"\n [ariaLabel]=\"menuLabel\"\n [disabled]=\"disabled\"\n />\n </ius-dropdown>\n </span>\n }\n </div>\n</ius-card>\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-width:0;box-sizing:border-box;-webkit-user-select:none;user-select:none;text-align:left;--_ai-actions-w: 36px}.ius-acctitem__row{display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm)}.ius-acctitem__main{appearance:none;background:none;border:0;margin:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-acctitem__main:focus-visible{outline:none}:host(:has(.ius-acctitem__main:focus-visible)) .ius-acctitem__card{box-shadow:var(--ius-focus-ring)}:host([data-actionable=true]:hover) .ius-acctitem__card,:host([data-state=hover]) .ius-acctitem__card{box-shadow:none;transform:none;border-color:var(--ius-info-300)}:host([data-actionable=true]:has(.ius-acctitem__main:active)) .ius-acctitem__card,:host([data-state=pressed]) .ius-acctitem__card{box-shadow:none;transform:none;background:var(--ius-info-100);border-color:var(--ius-info-300)}.ius-acctitem__card[data-selected=true]{background:var(--ius-info-100);border-color:var(--ius-info-300);box-shadow:none}:host([data-disabled=true]){cursor:default;opacity:.5;pointer-events:none}.ius-acctitem__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.ius-acctitem__name{font-size:var(--ius-fs-base);line-height:1.3;font-weight:var(--ius-fw-medium, 500);color:var(--ius-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-acctitem__sub{font-size:var(--ius-fs-sm);line-height:1.3;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-acctitem__check{flex:0 0 auto;display:inline-flex;color:var(--ius-primary-900)}.ius-acctitem__check .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-acctitem__trailing{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-acctitem__actions{flex:0 0 auto;width:var(--_ai-actions-w);display:inline-flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: AvatarComponent, selector: "ius-avatar", inputs: ["alt", "name", "monogram", "icon", "shape", "size", "color", "editable", "editIcon", "ariaLabel", "src"], outputs: ["edit"] }, { kind: "component", type: CardComponent, selector: "ius-card, a[ius-card], button[ius-card], section[ius-card], article[ius-card]", inputs: ["variant", "padding", "radius", "interactive", "selected", "ariaLabel"], outputs: ["clicked"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "directive", type: IusDropdownTriggerDirective, selector: "[iusDropdownTrigger]" }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3644
3644
  }
3645
3645
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AccountItemComponent, decorators: [{
3646
3646
  type: Component,
@@ -3655,7 +3655,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
3655
3655
  '[attr.data-state]': 'state || null',
3656
3656
  '[attr.data-disabled]': "disabled ? 'true' : null",
3657
3657
  '[attr.data-actionable]': "actionable ? 'true' : null",
3658
- }, template: "<!-- La superficie la pone ius-card (outlined \u00B7 radius lg \u00B7 padding none), como\r\n manda la ng-spec: no se reescribe a mano. Con `padding=\"none\"` el padding de\r\n la fila lo pone .ius-acctitem__row, que es \u00ABel propio cuerpo\u00BB del que habla\r\n Card (el golden lo escribe sobre .ius-card__body, encapsulado aqu\u00ED).\r\n\r\n La ra\u00EDz NO es navegable: el \u00E1rea primaria es el <button> interno\r\n .ius-acctitem__main, como en la rama `split` del golden \u2014 as\u00ED el \u22EE nunca\r\n queda anidado dentro de otro control. Ver la nota de port del .ts. -->\r\n<ius-card\r\n class=\"ius-acctitem__card\"\r\n variant=\"outlined\"\r\n radius=\"lg\"\r\n padding=\"none\"\r\n [selected]=\"selected\"\r\n>\r\n <div class=\"ius-acctitem__row\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-acctitem__main\"\r\n [attr.aria-label]=\"label\"\r\n [attr.aria-pressed]=\"ariaPressed\"\r\n [disabled]=\"disabled\"\r\n (click)=\"onMainClick($event)\"\r\n >\r\n <ius-avatar\r\n size=\"small\"\r\n [shape]=\"shape\"\r\n [src]=\"avatar\"\r\n [name]=\"avatarName\"\r\n [monogram]=\"monogram\"\r\n [icon]=\"effIcon\"\r\n [color]=\"color\"\r\n [ariaLabel]=\"name\"\r\n />\r\n\r\n <span class=\"ius-acctitem__body\">\r\n <span class=\"ius-acctitem__name\">{{ name }}<ng-content select=\"[iusAccountItemName]\" /></span>\r\n @if (hasSubtitle) {\r\n <span class=\"ius-acctitem__sub\">{{ subtitle }}<ng-content select=\"[iusAccountItemSubtitle]\" /></span>\r\n }\r\n </span>\r\n\r\n @if (selected) {\r\n <span class=\"ius-acctitem__check\"><span translate=\"no\" class=\"ius-icon\">check_circle</span></span>\r\n }\r\n </button>\r\n\r\n @if (hasTrailing) {\r\n <span class=\"ius-acctitem__trailing\"><ng-content select=\"[iusAccountItemTrailing]\" /></span>\r\n }\r\n\r\n @if (showMenu) {\r\n <!-- Slot de ancho fijo (--_ai-actions-w): alinea todas las listas de\r\n cuentas del ecosistema. Compone ius-dropdown; su clic no dispara la\r\n fila (el \u00E1rea primaria es un bot\u00F3n hermano, no un ancestro). -->\r\n <span class=\"ius-acctitem__actions\">\r\n <ius-dropdown [items]=\"actions\" placement=\"bottom-end\" [ariaLabel]=\"actionsLabel\">\r\n <ius-icon-button\r\n iusDropdownTrigger\r\n icon=\"more_vert\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"menuLabel\"\r\n [disabled]=\"disabled\"\r\n />\r\n </ius-dropdown>\r\n </span>\r\n }\r\n </div>\r\n</ius-card>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-width:0;box-sizing:border-box;-webkit-user-select:none;user-select:none;text-align:left;--_ai-actions-w: 36px}.ius-acctitem__row{display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm)}.ius-acctitem__main{appearance:none;background:none;border:0;margin:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-acctitem__main:focus-visible{outline:none}:host(:has(.ius-acctitem__main:focus-visible)) .ius-acctitem__card{box-shadow:var(--ius-focus-ring)}:host([data-actionable=true]:hover) .ius-acctitem__card,:host([data-state=hover]) .ius-acctitem__card{box-shadow:none;transform:none;border-color:var(--ius-info-300)}:host([data-actionable=true]:has(.ius-acctitem__main:active)) .ius-acctitem__card,:host([data-state=pressed]) .ius-acctitem__card{box-shadow:none;transform:none;background:var(--ius-info-100);border-color:var(--ius-info-300)}.ius-acctitem__card[data-selected=true]{background:var(--ius-info-100);border-color:var(--ius-info-300);box-shadow:none}:host([data-disabled=true]){cursor:default;opacity:.5;pointer-events:none}.ius-acctitem__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.ius-acctitem__name{font-size:var(--ius-fs-base);line-height:1.3;font-weight:var(--ius-fw-medium, 500);color:var(--ius-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-acctitem__sub{font-size:var(--ius-fs-sm);line-height:1.3;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-acctitem__check{flex:0 0 auto;display:inline-flex;color:var(--ius-primary-900)}.ius-acctitem__check .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-acctitem__trailing{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-acctitem__actions{flex:0 0 auto;width:var(--_ai-actions-w);display:inline-flex;align-items:center;justify-content:center}\n"] }]
3658
+ }, template: "<!-- La superficie la pone ius-card (outlined \u00B7 radius lg \u00B7 padding none), como\n manda la ng-spec: no se reescribe a mano. Con `padding=\"none\"` el padding de\n la fila lo pone .ius-acctitem__row, que es \u00ABel propio cuerpo\u00BB del que habla\n Card (el golden lo escribe sobre .ius-card__body, encapsulado aqu\u00ED).\n\n La ra\u00EDz NO es navegable: el \u00E1rea primaria es el <button> interno\n .ius-acctitem__main, como en la rama `split` del golden \u2014 as\u00ED el \u22EE nunca\n queda anidado dentro de otro control. Ver la nota de port del .ts. -->\n<ius-card\n class=\"ius-acctitem__card\"\n variant=\"outlined\"\n radius=\"lg\"\n padding=\"none\"\n [selected]=\"selected\"\n>\n <div class=\"ius-acctitem__row\">\n <button\n type=\"button\"\n class=\"ius-acctitem__main\"\n [attr.aria-label]=\"label\"\n [attr.aria-pressed]=\"ariaPressed\"\n [disabled]=\"disabled\"\n (click)=\"onMainClick($event)\"\n >\n <ius-avatar\n size=\"small\"\n [shape]=\"shape\"\n [src]=\"avatar\"\n [name]=\"avatarName\"\n [monogram]=\"monogram\"\n [icon]=\"effIcon\"\n [color]=\"color\"\n [ariaLabel]=\"name\"\n />\n\n <span class=\"ius-acctitem__body\">\n <span class=\"ius-acctitem__name\">{{ name }}<ng-content select=\"[iusAccountItemName]\" /></span>\n @if (hasSubtitle) {\n <span class=\"ius-acctitem__sub\">{{ subtitle }}<ng-content select=\"[iusAccountItemSubtitle]\" /></span>\n }\n </span>\n\n @if (selected) {\n <span class=\"ius-acctitem__check\"><span translate=\"no\" class=\"ius-icon\">check_circle</span></span>\n }\n </button>\n\n @if (hasTrailing) {\n <span class=\"ius-acctitem__trailing\"><ng-content select=\"[iusAccountItemTrailing]\" /></span>\n }\n\n @if (showMenu) {\n <!-- Slot de ancho fijo (--_ai-actions-w): alinea todas las listas de\n cuentas del ecosistema. Compone ius-dropdown; su clic no dispara la\n fila (el \u00E1rea primaria es un bot\u00F3n hermano, no un ancestro). -->\n <span class=\"ius-acctitem__actions\">\n <ius-dropdown [items]=\"actions\" placement=\"bottom-end\" [ariaLabel]=\"actionsLabel\">\n <ius-icon-button\n iusDropdownTrigger\n icon=\"more_vert\"\n variant=\"tertiary\"\n size=\"small\"\n [ariaLabel]=\"menuLabel\"\n [disabled]=\"disabled\"\n />\n </ius-dropdown>\n </span>\n }\n </div>\n</ius-card>\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-width:0;box-sizing:border-box;-webkit-user-select:none;user-select:none;text-align:left;--_ai-actions-w: 36px}.ius-acctitem__row{display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm)}.ius-acctitem__main{appearance:none;background:none;border:0;margin:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-acctitem__main:focus-visible{outline:none}:host(:has(.ius-acctitem__main:focus-visible)) .ius-acctitem__card{box-shadow:var(--ius-focus-ring)}:host([data-actionable=true]:hover) .ius-acctitem__card,:host([data-state=hover]) .ius-acctitem__card{box-shadow:none;transform:none;border-color:var(--ius-info-300)}:host([data-actionable=true]:has(.ius-acctitem__main:active)) .ius-acctitem__card,:host([data-state=pressed]) .ius-acctitem__card{box-shadow:none;transform:none;background:var(--ius-info-100);border-color:var(--ius-info-300)}.ius-acctitem__card[data-selected=true]{background:var(--ius-info-100);border-color:var(--ius-info-300);box-shadow:none}:host([data-disabled=true]){cursor:default;opacity:.5;pointer-events:none}.ius-acctitem__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.ius-acctitem__name{font-size:var(--ius-fs-base);line-height:1.3;font-weight:var(--ius-fw-medium, 500);color:var(--ius-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-acctitem__sub{font-size:var(--ius-fs-sm);line-height:1.3;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-acctitem__check{flex:0 0 auto;display:inline-flex;color:var(--ius-primary-900)}.ius-acctitem__check .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-acctitem__trailing{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-acctitem__actions{flex:0 0 auto;width:var(--_ai-actions-w);display:inline-flex;align-items:center;justify-content:center}\n"] }]
3659
3659
  }], propDecorators: { name: [{
3660
3660
  type: Input
3661
3661
  }], subtitle: [{
@@ -4770,7 +4770,7 @@ class LoadingMarkComponent {
4770
4770
  return this.surface === 'dark' ? 'var(--ius-primary-600)' : 'var(--ius-primary-900)';
4771
4771
  }
4772
4772
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LoadingMarkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4773
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.8", type: LoadingMarkComponent, isStandalone: true, selector: "ius-loading-mark", inputs: { size: ["size", "size", numberAttribute], surface: "surface", paused: ["paused", "paused", booleanAttribute], ariaLabel: "ariaLabel" }, host: { attributes: { "role": "status", "aria-live": "polite" }, properties: { "attr.data-surface": "surface", "attr.data-paused": "paused ? 'true' : null", "attr.aria-label": "ariaLabel" } }, ngImport: i0, template: "<svg\r\n class=\"ius-loadmark__svg\"\r\n [attr.width]=\"size\"\r\n [attr.height]=\"size\"\r\n viewBox=\"-16 -16 132 132\"\r\n aria-hidden=\"true\"\r\n>\r\n <defs>\r\n <!-- Degradado base (navy \u00B7 navy\u2192cian en dark) -->\r\n <linearGradient\r\n [attr.id]=\"baseId\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n x1=\"6\"\r\n y1=\"94\"\r\n x2=\"94\"\r\n y2=\"6\"\r\n >\r\n <stop offset=\"0\" [attr.stop-color]=\"baseFrom\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"baseTo\" />\r\n </linearGradient>\r\n\r\n <!-- Glow del cometa -->\r\n <radialGradient [attr.id]=\"glowId\">\r\n <stop offset=\"0%\" stop-color=\"var(--ius-primary-100)\" />\r\n <stop offset=\"35%\" stop-color=\"var(--ius-primary-400)\" />\r\n <stop offset=\"100%\" stop-color=\"var(--ius-primary-400)\" stop-opacity=\"0\" />\r\n </radialGradient>\r\n\r\n <!-- Desenfoque de la cola -->\r\n <filter [attr.id]=\"softId\" x=\"-60%\" y=\"-60%\" width=\"220%\" height=\"220%\">\r\n <feGaussianBlur stdDeviation=\"5\" />\r\n </filter>\r\n\r\n <!-- M\u00E1scara: tres fichas deslizantes -->\r\n <mask [attr.id]=\"maskId\" maskUnits=\"userSpaceOnUse\">\r\n <g class=\"ius-loadmark__tile ius-loadmark__tile--a\">\r\n <rect\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"38\"\r\n height=\"38\"\r\n rx=\"10\"\r\n fill=\"none\"\r\n stroke=\"var(--ius-neutral-white)\"\r\n stroke-width=\"6\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <g class=\"ius-loadmark__tile ius-loadmark__tile--b\">\r\n <rect\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"38\"\r\n height=\"38\"\r\n rx=\"10\"\r\n fill=\"none\"\r\n stroke=\"var(--ius-neutral-white)\"\r\n stroke-width=\"6\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <g class=\"ius-loadmark__tile ius-loadmark__tile--c\">\r\n <rect\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"38\"\r\n height=\"38\"\r\n rx=\"10\"\r\n fill=\"none\"\r\n stroke=\"var(--ius-neutral-white)\"\r\n stroke-width=\"6\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </mask>\r\n </defs>\r\n\r\n <!-- Giro del conjunto -->\r\n <g class=\"ius-loadmark__spin\">\r\n <g [attr.mask]=\"'url(#' + maskId + ')'\">\r\n <rect x=\"0\" y=\"0\" width=\"100\" height=\"100\" [attr.fill]=\"'url(#' + baseId + ')'\" />\r\n <!-- Cometa orbitando el contorno -->\r\n <g class=\"ius-loadmark__orbit\">\r\n <circle\r\n cx=\"50\"\r\n cy=\"4\"\r\n r=\"40\"\r\n [attr.fill]=\"'url(#' + glowId + ')'\"\r\n [attr.filter]=\"'url(#' + softId + ')'\"\r\n />\r\n </g>\r\n </g>\r\n </g>\r\n</svg>\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0;color:var(--ius-primary-900)}.ius-loadmark__svg{display:block}.ius-loadmark__spin{transform-box:view-box;transform-origin:50px 50px;animation:ius-lm-spin var(--ius-duration-ambient) linear infinite;animation-play-state:var(--ius-motion-loop)}@keyframes ius-lm-spin{to{transform:rotate(360deg)}}.ius-loadmark__orbit{transform-box:view-box;transform-origin:50px 50px;animation:ius-lm-orbit 2s linear infinite;animation-play-state:var(--ius-motion-loop)}@keyframes ius-lm-orbit{to{transform:rotate(360deg)}}.ius-loadmark__tile{animation-duration:5s;animation-iteration-count:infinite;animation-timing-function:var(--ius-ease-ambient);animation-play-state:var(--ius-motion-loop)}.ius-loadmark__tile--a{animation-name:ius-lm-a}.ius-loadmark__tile--b{animation-name:ius-lm-b}.ius-loadmark__tile--c{animation-name:ius-lm-c}@keyframes ius-lm-a{0%{transform:translate(5px,5px)}8.333%{transform:translate(57px,5px)}25%{transform:translate(57px,5px)}33.333%{transform:translate(57px,57px)}50%{transform:translate(57px,57px)}58.333%{transform:translate(5px,57px)}75%{transform:translate(5px,57px)}83.333%{transform:translate(5px,5px)}to{transform:translate(5px,5px)}}@keyframes ius-lm-b{0%{transform:translate(57px,57px)}16.667%{transform:translate(57px,57px)}25%{transform:translate(5px,57px)}41.667%{transform:translate(5px,57px)}50%{transform:translate(5px,5px)}66.667%{transform:translate(5px,5px)}75%{transform:translate(57px,5px)}91.667%{transform:translate(57px,5px)}to{transform:translate(57px,57px)}}@keyframes ius-lm-c{0%{transform:translate(5px,57px)}8.333%{transform:translate(5px,57px)}16.667%{transform:translate(5px,5px)}33.333%{transform:translate(5px,5px)}41.667%{transform:translate(57px,5px)}58.333%{transform:translate(57px,5px)}66.667%{transform:translate(57px,57px)}83.333%{transform:translate(57px,57px)}91.667%{transform:translate(5px,57px)}to{transform:translate(5px,57px)}}:host([data-paused=true]) .ius-loadmark__spin,:host([data-paused=true]) .ius-loadmark__orbit,:host([data-paused=true]) .ius-loadmark__tile{animation-play-state:paused}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4773
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.8", type: LoadingMarkComponent, isStandalone: true, selector: "ius-loading-mark", inputs: { size: ["size", "size", numberAttribute], surface: "surface", paused: ["paused", "paused", booleanAttribute], ariaLabel: "ariaLabel" }, host: { attributes: { "role": "status", "aria-live": "polite" }, properties: { "attr.data-surface": "surface", "attr.data-paused": "paused ? 'true' : null", "attr.aria-label": "ariaLabel" } }, ngImport: i0, template: "<svg\n class=\"ius-loadmark__svg\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n viewBox=\"-16 -16 132 132\"\n aria-hidden=\"true\"\n>\n <defs>\n <!-- Degradado base (navy \u00B7 navy\u2192cian en dark) -->\n <linearGradient\n [attr.id]=\"baseId\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"6\"\n y1=\"94\"\n x2=\"94\"\n y2=\"6\"\n >\n <stop offset=\"0\" [attr.stop-color]=\"baseFrom\" />\n <stop offset=\"1\" [attr.stop-color]=\"baseTo\" />\n </linearGradient>\n\n <!-- Glow del cometa -->\n <radialGradient [attr.id]=\"glowId\">\n <stop offset=\"0%\" stop-color=\"var(--ius-primary-100)\" />\n <stop offset=\"35%\" stop-color=\"var(--ius-primary-400)\" />\n <stop offset=\"100%\" stop-color=\"var(--ius-primary-400)\" stop-opacity=\"0\" />\n </radialGradient>\n\n <!-- Desenfoque de la cola -->\n <filter [attr.id]=\"softId\" x=\"-60%\" y=\"-60%\" width=\"220%\" height=\"220%\">\n <feGaussianBlur stdDeviation=\"5\" />\n </filter>\n\n <!-- M\u00E1scara: tres fichas deslizantes -->\n <mask [attr.id]=\"maskId\" maskUnits=\"userSpaceOnUse\">\n <g class=\"ius-loadmark__tile ius-loadmark__tile--a\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"38\"\n height=\"38\"\n rx=\"10\"\n fill=\"none\"\n stroke=\"var(--ius-neutral-white)\"\n stroke-width=\"6\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"ius-loadmark__tile ius-loadmark__tile--b\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"38\"\n height=\"38\"\n rx=\"10\"\n fill=\"none\"\n stroke=\"var(--ius-neutral-white)\"\n stroke-width=\"6\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"ius-loadmark__tile ius-loadmark__tile--c\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"38\"\n height=\"38\"\n rx=\"10\"\n fill=\"none\"\n stroke=\"var(--ius-neutral-white)\"\n stroke-width=\"6\"\n stroke-linejoin=\"round\"\n />\n </g>\n </mask>\n </defs>\n\n <!-- Giro del conjunto -->\n <g class=\"ius-loadmark__spin\">\n <g [attr.mask]=\"'url(#' + maskId + ')'\">\n <rect x=\"0\" y=\"0\" width=\"100\" height=\"100\" [attr.fill]=\"'url(#' + baseId + ')'\" />\n <!-- Cometa orbitando el contorno -->\n <g class=\"ius-loadmark__orbit\">\n <circle\n cx=\"50\"\n cy=\"4\"\n r=\"40\"\n [attr.fill]=\"'url(#' + glowId + ')'\"\n [attr.filter]=\"'url(#' + softId + ')'\"\n />\n </g>\n </g>\n </g>\n</svg>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0;color:var(--ius-primary-900)}.ius-loadmark__svg{display:block}.ius-loadmark__spin{transform-box:view-box;transform-origin:50px 50px;animation:ius-lm-spin var(--ius-duration-ambient) linear infinite;animation-play-state:var(--ius-motion-loop)}@keyframes ius-lm-spin{to{transform:rotate(360deg)}}.ius-loadmark__orbit{transform-box:view-box;transform-origin:50px 50px;animation:ius-lm-orbit 2s linear infinite;animation-play-state:var(--ius-motion-loop)}@keyframes ius-lm-orbit{to{transform:rotate(360deg)}}.ius-loadmark__tile{animation-duration:5s;animation-iteration-count:infinite;animation-timing-function:var(--ius-ease-ambient);animation-play-state:var(--ius-motion-loop)}.ius-loadmark__tile--a{animation-name:ius-lm-a}.ius-loadmark__tile--b{animation-name:ius-lm-b}.ius-loadmark__tile--c{animation-name:ius-lm-c}@keyframes ius-lm-a{0%{transform:translate(5px,5px)}8.333%{transform:translate(57px,5px)}25%{transform:translate(57px,5px)}33.333%{transform:translate(57px,57px)}50%{transform:translate(57px,57px)}58.333%{transform:translate(5px,57px)}75%{transform:translate(5px,57px)}83.333%{transform:translate(5px,5px)}to{transform:translate(5px,5px)}}@keyframes ius-lm-b{0%{transform:translate(57px,57px)}16.667%{transform:translate(57px,57px)}25%{transform:translate(5px,57px)}41.667%{transform:translate(5px,57px)}50%{transform:translate(5px,5px)}66.667%{transform:translate(5px,5px)}75%{transform:translate(57px,5px)}91.667%{transform:translate(57px,5px)}to{transform:translate(57px,57px)}}@keyframes ius-lm-c{0%{transform:translate(5px,57px)}8.333%{transform:translate(5px,57px)}16.667%{transform:translate(5px,5px)}33.333%{transform:translate(5px,5px)}41.667%{transform:translate(57px,5px)}58.333%{transform:translate(57px,5px)}66.667%{transform:translate(57px,57px)}83.333%{transform:translate(57px,57px)}91.667%{transform:translate(5px,57px)}to{transform:translate(5px,57px)}}:host([data-paused=true]) .ius-loadmark__spin,:host([data-paused=true]) .ius-loadmark__orbit,:host([data-paused=true]) .ius-loadmark__tile{animation-play-state:paused}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4774
4774
  }
4775
4775
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LoadingMarkComponent, decorators: [{
4776
4776
  type: Component,
@@ -4780,7 +4780,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
4780
4780
  '[attr.data-surface]': 'surface',
4781
4781
  '[attr.data-paused]': "paused ? 'true' : null",
4782
4782
  '[attr.aria-label]': 'ariaLabel',
4783
- }, template: "<svg\r\n class=\"ius-loadmark__svg\"\r\n [attr.width]=\"size\"\r\n [attr.height]=\"size\"\r\n viewBox=\"-16 -16 132 132\"\r\n aria-hidden=\"true\"\r\n>\r\n <defs>\r\n <!-- Degradado base (navy \u00B7 navy\u2192cian en dark) -->\r\n <linearGradient\r\n [attr.id]=\"baseId\"\r\n gradientUnits=\"userSpaceOnUse\"\r\n x1=\"6\"\r\n y1=\"94\"\r\n x2=\"94\"\r\n y2=\"6\"\r\n >\r\n <stop offset=\"0\" [attr.stop-color]=\"baseFrom\" />\r\n <stop offset=\"1\" [attr.stop-color]=\"baseTo\" />\r\n </linearGradient>\r\n\r\n <!-- Glow del cometa -->\r\n <radialGradient [attr.id]=\"glowId\">\r\n <stop offset=\"0%\" stop-color=\"var(--ius-primary-100)\" />\r\n <stop offset=\"35%\" stop-color=\"var(--ius-primary-400)\" />\r\n <stop offset=\"100%\" stop-color=\"var(--ius-primary-400)\" stop-opacity=\"0\" />\r\n </radialGradient>\r\n\r\n <!-- Desenfoque de la cola -->\r\n <filter [attr.id]=\"softId\" x=\"-60%\" y=\"-60%\" width=\"220%\" height=\"220%\">\r\n <feGaussianBlur stdDeviation=\"5\" />\r\n </filter>\r\n\r\n <!-- M\u00E1scara: tres fichas deslizantes -->\r\n <mask [attr.id]=\"maskId\" maskUnits=\"userSpaceOnUse\">\r\n <g class=\"ius-loadmark__tile ius-loadmark__tile--a\">\r\n <rect\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"38\"\r\n height=\"38\"\r\n rx=\"10\"\r\n fill=\"none\"\r\n stroke=\"var(--ius-neutral-white)\"\r\n stroke-width=\"6\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <g class=\"ius-loadmark__tile ius-loadmark__tile--b\">\r\n <rect\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"38\"\r\n height=\"38\"\r\n rx=\"10\"\r\n fill=\"none\"\r\n stroke=\"var(--ius-neutral-white)\"\r\n stroke-width=\"6\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n <g class=\"ius-loadmark__tile ius-loadmark__tile--c\">\r\n <rect\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"38\"\r\n height=\"38\"\r\n rx=\"10\"\r\n fill=\"none\"\r\n stroke=\"var(--ius-neutral-white)\"\r\n stroke-width=\"6\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </mask>\r\n </defs>\r\n\r\n <!-- Giro del conjunto -->\r\n <g class=\"ius-loadmark__spin\">\r\n <g [attr.mask]=\"'url(#' + maskId + ')'\">\r\n <rect x=\"0\" y=\"0\" width=\"100\" height=\"100\" [attr.fill]=\"'url(#' + baseId + ')'\" />\r\n <!-- Cometa orbitando el contorno -->\r\n <g class=\"ius-loadmark__orbit\">\r\n <circle\r\n cx=\"50\"\r\n cy=\"4\"\r\n r=\"40\"\r\n [attr.fill]=\"'url(#' + glowId + ')'\"\r\n [attr.filter]=\"'url(#' + softId + ')'\"\r\n />\r\n </g>\r\n </g>\r\n </g>\r\n</svg>\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0;color:var(--ius-primary-900)}.ius-loadmark__svg{display:block}.ius-loadmark__spin{transform-box:view-box;transform-origin:50px 50px;animation:ius-lm-spin var(--ius-duration-ambient) linear infinite;animation-play-state:var(--ius-motion-loop)}@keyframes ius-lm-spin{to{transform:rotate(360deg)}}.ius-loadmark__orbit{transform-box:view-box;transform-origin:50px 50px;animation:ius-lm-orbit 2s linear infinite;animation-play-state:var(--ius-motion-loop)}@keyframes ius-lm-orbit{to{transform:rotate(360deg)}}.ius-loadmark__tile{animation-duration:5s;animation-iteration-count:infinite;animation-timing-function:var(--ius-ease-ambient);animation-play-state:var(--ius-motion-loop)}.ius-loadmark__tile--a{animation-name:ius-lm-a}.ius-loadmark__tile--b{animation-name:ius-lm-b}.ius-loadmark__tile--c{animation-name:ius-lm-c}@keyframes ius-lm-a{0%{transform:translate(5px,5px)}8.333%{transform:translate(57px,5px)}25%{transform:translate(57px,5px)}33.333%{transform:translate(57px,57px)}50%{transform:translate(57px,57px)}58.333%{transform:translate(5px,57px)}75%{transform:translate(5px,57px)}83.333%{transform:translate(5px,5px)}to{transform:translate(5px,5px)}}@keyframes ius-lm-b{0%{transform:translate(57px,57px)}16.667%{transform:translate(57px,57px)}25%{transform:translate(5px,57px)}41.667%{transform:translate(5px,57px)}50%{transform:translate(5px,5px)}66.667%{transform:translate(5px,5px)}75%{transform:translate(57px,5px)}91.667%{transform:translate(57px,5px)}to{transform:translate(57px,57px)}}@keyframes ius-lm-c{0%{transform:translate(5px,57px)}8.333%{transform:translate(5px,57px)}16.667%{transform:translate(5px,5px)}33.333%{transform:translate(5px,5px)}41.667%{transform:translate(57px,5px)}58.333%{transform:translate(57px,5px)}66.667%{transform:translate(57px,57px)}83.333%{transform:translate(57px,57px)}91.667%{transform:translate(5px,57px)}to{transform:translate(5px,57px)}}:host([data-paused=true]) .ius-loadmark__spin,:host([data-paused=true]) .ius-loadmark__orbit,:host([data-paused=true]) .ius-loadmark__tile{animation-play-state:paused}\n"] }]
4783
+ }, template: "<svg\n class=\"ius-loadmark__svg\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n viewBox=\"-16 -16 132 132\"\n aria-hidden=\"true\"\n>\n <defs>\n <!-- Degradado base (navy \u00B7 navy\u2192cian en dark) -->\n <linearGradient\n [attr.id]=\"baseId\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"6\"\n y1=\"94\"\n x2=\"94\"\n y2=\"6\"\n >\n <stop offset=\"0\" [attr.stop-color]=\"baseFrom\" />\n <stop offset=\"1\" [attr.stop-color]=\"baseTo\" />\n </linearGradient>\n\n <!-- Glow del cometa -->\n <radialGradient [attr.id]=\"glowId\">\n <stop offset=\"0%\" stop-color=\"var(--ius-primary-100)\" />\n <stop offset=\"35%\" stop-color=\"var(--ius-primary-400)\" />\n <stop offset=\"100%\" stop-color=\"var(--ius-primary-400)\" stop-opacity=\"0\" />\n </radialGradient>\n\n <!-- Desenfoque de la cola -->\n <filter [attr.id]=\"softId\" x=\"-60%\" y=\"-60%\" width=\"220%\" height=\"220%\">\n <feGaussianBlur stdDeviation=\"5\" />\n </filter>\n\n <!-- M\u00E1scara: tres fichas deslizantes -->\n <mask [attr.id]=\"maskId\" maskUnits=\"userSpaceOnUse\">\n <g class=\"ius-loadmark__tile ius-loadmark__tile--a\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"38\"\n height=\"38\"\n rx=\"10\"\n fill=\"none\"\n stroke=\"var(--ius-neutral-white)\"\n stroke-width=\"6\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"ius-loadmark__tile ius-loadmark__tile--b\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"38\"\n height=\"38\"\n rx=\"10\"\n fill=\"none\"\n stroke=\"var(--ius-neutral-white)\"\n stroke-width=\"6\"\n stroke-linejoin=\"round\"\n />\n </g>\n <g class=\"ius-loadmark__tile ius-loadmark__tile--c\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"38\"\n height=\"38\"\n rx=\"10\"\n fill=\"none\"\n stroke=\"var(--ius-neutral-white)\"\n stroke-width=\"6\"\n stroke-linejoin=\"round\"\n />\n </g>\n </mask>\n </defs>\n\n <!-- Giro del conjunto -->\n <g class=\"ius-loadmark__spin\">\n <g [attr.mask]=\"'url(#' + maskId + ')'\">\n <rect x=\"0\" y=\"0\" width=\"100\" height=\"100\" [attr.fill]=\"'url(#' + baseId + ')'\" />\n <!-- Cometa orbitando el contorno -->\n <g class=\"ius-loadmark__orbit\">\n <circle\n cx=\"50\"\n cy=\"4\"\n r=\"40\"\n [attr.fill]=\"'url(#' + glowId + ')'\"\n [attr.filter]=\"'url(#' + softId + ')'\"\n />\n </g>\n </g>\n </g>\n</svg>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0;color:var(--ius-primary-900)}.ius-loadmark__svg{display:block}.ius-loadmark__spin{transform-box:view-box;transform-origin:50px 50px;animation:ius-lm-spin var(--ius-duration-ambient) linear infinite;animation-play-state:var(--ius-motion-loop)}@keyframes ius-lm-spin{to{transform:rotate(360deg)}}.ius-loadmark__orbit{transform-box:view-box;transform-origin:50px 50px;animation:ius-lm-orbit 2s linear infinite;animation-play-state:var(--ius-motion-loop)}@keyframes ius-lm-orbit{to{transform:rotate(360deg)}}.ius-loadmark__tile{animation-duration:5s;animation-iteration-count:infinite;animation-timing-function:var(--ius-ease-ambient);animation-play-state:var(--ius-motion-loop)}.ius-loadmark__tile--a{animation-name:ius-lm-a}.ius-loadmark__tile--b{animation-name:ius-lm-b}.ius-loadmark__tile--c{animation-name:ius-lm-c}@keyframes ius-lm-a{0%{transform:translate(5px,5px)}8.333%{transform:translate(57px,5px)}25%{transform:translate(57px,5px)}33.333%{transform:translate(57px,57px)}50%{transform:translate(57px,57px)}58.333%{transform:translate(5px,57px)}75%{transform:translate(5px,57px)}83.333%{transform:translate(5px,5px)}to{transform:translate(5px,5px)}}@keyframes ius-lm-b{0%{transform:translate(57px,57px)}16.667%{transform:translate(57px,57px)}25%{transform:translate(5px,57px)}41.667%{transform:translate(5px,57px)}50%{transform:translate(5px,5px)}66.667%{transform:translate(5px,5px)}75%{transform:translate(57px,5px)}91.667%{transform:translate(57px,5px)}to{transform:translate(57px,57px)}}@keyframes ius-lm-c{0%{transform:translate(5px,57px)}8.333%{transform:translate(5px,57px)}16.667%{transform:translate(5px,5px)}33.333%{transform:translate(5px,5px)}41.667%{transform:translate(57px,5px)}58.333%{transform:translate(57px,5px)}66.667%{transform:translate(57px,57px)}83.333%{transform:translate(57px,57px)}91.667%{transform:translate(5px,57px)}to{transform:translate(5px,57px)}}:host([data-paused=true]) .ius-loadmark__spin,:host([data-paused=true]) .ius-loadmark__orbit,:host([data-paused=true]) .ius-loadmark__tile{animation-play-state:paused}\n"] }]
4784
4784
  }], propDecorators: { size: [{
4785
4785
  type: Input,
4786
4786
  args: [{ transform: numberAttribute }]
@@ -7993,7 +7993,7 @@ class ListViewPaginationComponent {
7993
7993
  this.pageSizeChange.emit(n);
7994
7994
  }
7995
7995
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ListViewPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7996
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: ListViewPaginationComponent, isStandalone: true, selector: "ius-list-view-pagination", inputs: { variant: "variant", page: "page", defaultPage: ["defaultPage", "defaultPage", numberAttribute], totalPages: "totalPages", total: "total", pageSize: ["pageSize", "pageSize", numberAttribute], pageSizeOptions: "pageSizeOptions", showCount: ["showCount", "showCount", booleanAttribute], countNoun: "countNoun", siblingCount: ["siblingCount", "siblingCount", numberAttribute], boundaryCount: ["boundaryCount", "boundaryCount", numberAttribute], size: "size", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { attributes: { "role": "navigation", "aria-label": "Paginaci\u00F3n" }, properties: { "attr.data-variant": "variant", "attr.data-block": "showCountBlock ? 'true' : null", "style.--_pg-h": "preset.h + 'px'", "style.--_pg-icon": "preset.icon", "style.--_pg-fs": "preset.fs", "style.--_pg-gap": "preset.gap + 'px'" }, classAttribute: "ius-pagination" }, ngImport: i0, template: "<!-- Conteo X\u2013Y de Z (opcional, empuja el resto a la derecha v\u00EDa data-block) -->\n@if (showCountBlock) {\n <div class=\"ius-pagination__count\">\n @if (countRanged) {\n <b>{{ countFrom }}</b>\u2013<b>{{ countTo }}</b> de <b>{{ fmt(total!) }}</b> {{ countNoun }}\n } @else {\n <b>{{ fmt(total!) }}</b> {{ countNoun }}\n }\n </div>\n}\n\n<div class=\"ius-pagination__main\">\n <!-- Selector \"Filas por p\u00E1gina\" -->\n @if (pageSizeSelectOptions.length) {\n <div class=\"ius-pagination__sizer\">\n <span>Filas</span>\n <span class=\"ius-pagination__numsel\">\n <ius-select\n [options]=\"pageSizeSelectOptions\"\n [value]=\"pageSize\"\n (valueChange)=\"onSelectPageSize($event)\"\n compact\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [size]=\"size\"\n [disabled]=\"disabled\"\n placeholder=\"\"\n />\n </span>\n </div>\n }\n\n @if (variant === 'compact') {\n <div class=\"ius-pagination__nav\">\n <ius-icon-button\n icon=\"first_page\"\n variant=\"tertiary\"\n ariaLabel=\"Primera p\u00E1gina\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(1)\"\n />\n <ius-icon-button\n icon=\"chevron_left\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina anterior\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(currentPage - 1)\"\n />\n <span class=\"ius-pagination__compact\">\n P\u00E1gina&nbsp;\n <span class=\"ius-pagination__numsel\">\n <ius-select\n [options]=\"pageOptions\"\n [value]=\"currentPage\"\n (valueChange)=\"onSelectPage($event)\"\n compact\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [size]=\"size\"\n [disabled]=\"disabled || effTotalPages <= 1\"\n placeholder=\"\"\n />\n </span>\n <span>&nbsp;de&nbsp;</span>\n <b>{{ fmt(effTotalPages) }}</b>\n </span>\n <ius-icon-button\n icon=\"chevron_right\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina siguiente\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(currentPage + 1)\"\n />\n <ius-icon-button\n icon=\"last_page\"\n variant=\"tertiary\"\n ariaLabel=\"\u00DAltima p\u00E1gina\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(effTotalPages)\"\n />\n </div>\n } @else {\n <div class=\"ius-pagination__nav\">\n <ius-icon-button\n icon=\"chevron_left\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina anterior\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(currentPage - 1)\"\n />\n <div class=\"ius-pagination__pages\">\n @for (row of pageRows; track $index) {\n @if (row.ellipsis) {\n <span class=\"ius-pagination__ellipsis\" aria-hidden=\"true\">\u2026</span>\n } @else {\n <ius-button\n class=\"ius-pagination__num\"\n [variant]=\"row.value === currentPage ? 'primary' : 'tertiary'\"\n [size]=\"size\"\n [label]=\"fmt(row.value!)\"\n [disabled]=\"disabled\"\n [attr.aria-current]=\"row.value === currentPage ? 'page' : null\"\n (clicked)=\"goTo(row.value!)\"\n />\n }\n }\n </div>\n <ius-icon-button\n icon=\"chevron_right\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina siguiente\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(currentPage + 1)\"\n />\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-secondary)}:host([data-block=true]){width:100%;justify-content:space-between}.ius-pagination__count{font-size:var(--_pg-fs, 14px);line-height:1.4;color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__count b{font-weight:var(--ius-fw-medium);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-pagination__main{display:flex;align-items:center;gap:var(--ius-space-lg)}.ius-pagination__nav,.ius-pagination__pages{display:flex;align-items:center;gap:var(--_pg-gap, var(--ius-space-xs))}.ius-pagination__nav ::ng-deep .ius-iconbtn{--_ib-size: var(--_pg-h, 40px);--_ib-icon: var(--_pg-icon, var(--ius-icon-md))}.ius-pagination__num ::ng-deep .ius-btn{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);padding-left:var(--ius-space-xs);padding-right:var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-pagination__ellipsis{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);display:inline-flex;align-items:flex-end;justify-content:center;padding-bottom:var(--ius-space-xs);color:var(--ius-text-tertiary);font-size:var(--_pg-fs, 14px);line-height:1}.ius-pagination__compact{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary)}.ius-pagination__compact b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-pagination__sizer{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__numsel ::ng-deep .ius-tf__field{padding-right:var(--ius-space-xs);padding-left:var(--ius-space-sm);gap:var(--ius-space-xxs)}.ius-pagination__numsel ::ng-deep .ius-select__value{font-variant-numeric:tabular-nums;min-width:16px}.ius-pagination__numsel ::ng-deep .ius-select__chevron .ius-icon{font-size:var(--ius-icon-md)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ius-button", inputs: ["variant", "label", "prefixIcon", "sufixIcon", "dynamic", "loading", "status", "disabled", "pressed", "fullWidth", "type", "ariaLabel", "action", "size"], outputs: ["clicked"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: SelectComponent, selector: "ius-select", inputs: ["options", "multiple", "size", "disabled", "error", "state", "open", "value", "label", "required", "placeholder", "prefixIcon", "searchable", "searchPlaceholder", "emptyText", "creatable", "createPlaceholder", "createLabel", "createFactory", "maxVisible", "helpText", "errorText", "showHelpText", "showIconHelp", "iconHelpTitle", "iconHelpContent", "showClear", "defaultOpen", "compact", "defaultValue", "id", "name"], outputs: ["valueChange", "cleared", "openChange", "created"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7996
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: ListViewPaginationComponent, isStandalone: true, selector: "ius-list-view-pagination", inputs: { variant: "variant", page: "page", defaultPage: ["defaultPage", "defaultPage", numberAttribute], totalPages: "totalPages", total: "total", pageSize: ["pageSize", "pageSize", numberAttribute], pageSizeOptions: "pageSizeOptions", showCount: ["showCount", "showCount", booleanAttribute], countNoun: "countNoun", siblingCount: ["siblingCount", "siblingCount", numberAttribute], boundaryCount: ["boundaryCount", "boundaryCount", numberAttribute], size: "size", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { attributes: { "role": "navigation", "aria-label": "Paginaci\u00F3n" }, properties: { "attr.data-variant": "variant", "attr.data-block": "showCountBlock ? 'true' : null", "style.--_pg-h": "preset.h + 'px'", "style.--_pg-icon": "preset.icon", "style.--_pg-fs": "preset.fs", "style.--_pg-gap": "preset.gap + 'px'" }, classAttribute: "ius-pagination" }, ngImport: i0, template: "<!-- Conteo X\u2013Y de Z (opcional, empuja el resto a la derecha v\u00EDa data-block) -->\r\n@if (showCountBlock) {\r\n <div class=\"ius-pagination__count\">\r\n @if (countRanged) {\r\n <b>{{ countFrom }}</b>\u2013<b>{{ countTo }}</b> de <b>{{ fmt(total!) }}</b> {{ countNoun }}\r\n } @else {\r\n <b>{{ fmt(total!) }}</b> {{ countNoun }}\r\n }\r\n </div>\r\n}\r\n\r\n<div class=\"ius-pagination__main\">\r\n <!-- Selector \"Filas por p\u00E1gina\" -->\r\n @if (pageSizeSelectOptions.length) {\r\n <div class=\"ius-pagination__sizer\">\r\n <span>Filas</span>\r\n <span class=\"ius-pagination__numsel\">\r\n <ius-select\r\n [options]=\"pageSizeSelectOptions\"\r\n [value]=\"pageSize\"\r\n (valueChange)=\"onSelectPageSize($event)\"\r\n compact\r\n [searchable]=\"false\"\r\n [showClear]=\"false\"\r\n [showHelpText]=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n placeholder=\"\"\r\n />\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (variant === 'compact') {\r\n <div class=\"ius-pagination__nav\">\r\n <ius-icon-button\r\n icon=\"first_page\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"Primera p\u00E1gina\"\r\n [disabled]=\"disabled || atStart\"\r\n (clicked)=\"goTo(1)\"\r\n />\r\n <ius-icon-button\r\n icon=\"chevron_left\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"P\u00E1gina anterior\"\r\n [disabled]=\"disabled || atStart\"\r\n (clicked)=\"goTo(currentPage - 1)\"\r\n />\r\n <span class=\"ius-pagination__compact\">\r\n P\u00E1gina&nbsp;\r\n <span class=\"ius-pagination__numsel\">\r\n <ius-select\r\n [options]=\"pageOptions\"\r\n [value]=\"currentPage\"\r\n (valueChange)=\"onSelectPage($event)\"\r\n compact\r\n [searchable]=\"false\"\r\n [showClear]=\"false\"\r\n [showHelpText]=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled || effTotalPages <= 1\"\r\n placeholder=\"\"\r\n />\r\n </span>\r\n <span>&nbsp;de&nbsp;</span>\r\n <b>{{ fmt(effTotalPages) }}</b>\r\n </span>\r\n <ius-icon-button\r\n icon=\"chevron_right\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"P\u00E1gina siguiente\"\r\n [disabled]=\"disabled || atEnd\"\r\n (clicked)=\"goTo(currentPage + 1)\"\r\n />\r\n <ius-icon-button\r\n icon=\"last_page\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"\u00DAltima p\u00E1gina\"\r\n [disabled]=\"disabled || atEnd\"\r\n (clicked)=\"goTo(effTotalPages)\"\r\n />\r\n </div>\r\n } @else {\r\n <div class=\"ius-pagination__nav\">\r\n <ius-icon-button\r\n icon=\"chevron_left\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"P\u00E1gina anterior\"\r\n [disabled]=\"disabled || atStart\"\r\n (clicked)=\"goTo(currentPage - 1)\"\r\n />\r\n <div class=\"ius-pagination__pages\">\r\n @for (row of pageRows; track $index) {\r\n @if (row.ellipsis) {\r\n <span class=\"ius-pagination__ellipsis\" aria-hidden=\"true\">\u2026</span>\r\n } @else {\r\n <ius-button\r\n class=\"ius-pagination__num\"\r\n [variant]=\"row.value === currentPage ? 'primary' : 'tertiary'\"\r\n [size]=\"size\"\r\n [label]=\"fmt(row.value!)\"\r\n [disabled]=\"disabled\"\r\n [attr.aria-current]=\"row.value === currentPage ? 'page' : null\"\r\n (clicked)=\"goTo(row.value!)\"\r\n />\r\n }\r\n }\r\n </div>\r\n <ius-icon-button\r\n icon=\"chevron_right\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"P\u00E1gina siguiente\"\r\n [disabled]=\"disabled || atEnd\"\r\n (clicked)=\"goTo(currentPage + 1)\"\r\n />\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-secondary)}:host([data-block=true]){width:100%;justify-content:space-between}.ius-pagination__count{font-size:var(--_pg-fs, 14px);line-height:1.4;color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__count b{font-weight:var(--ius-fw-medium);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-pagination__main{display:flex;align-items:center;gap:var(--ius-space-lg)}.ius-pagination__nav,.ius-pagination__pages{display:flex;align-items:center;gap:var(--_pg-gap, var(--ius-space-xs))}.ius-pagination__nav ::ng-deep .ius-iconbtn{--_ib-size: var(--_pg-h, 40px);--_ib-icon: var(--_pg-icon, var(--ius-icon-md))}.ius-pagination__num ::ng-deep .ius-btn{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);padding-left:var(--ius-space-xs);padding-right:var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-pagination__ellipsis{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);display:inline-flex;align-items:flex-end;justify-content:center;padding-bottom:var(--ius-space-xs);color:var(--ius-text-tertiary);font-size:var(--_pg-fs, 14px);line-height:1}.ius-pagination__compact{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary)}.ius-pagination__compact b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-pagination__sizer{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__numsel ::ng-deep .ius-tf__field{padding-right:var(--ius-space-xs);padding-left:var(--ius-space-sm);gap:var(--ius-space-xxs)}.ius-pagination__numsel ::ng-deep .ius-select__value{font-variant-numeric:tabular-nums;min-width:16px}.ius-pagination__numsel ::ng-deep .ius-select__chevron .ius-icon{font-size:var(--ius-icon-md)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ius-button", inputs: ["variant", "label", "prefixIcon", "sufixIcon", "dynamic", "loading", "status", "disabled", "pressed", "fullWidth", "type", "ariaLabel", "action", "size"], outputs: ["clicked"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: SelectComponent, selector: "ius-select", inputs: ["options", "multiple", "size", "disabled", "error", "state", "open", "value", "label", "required", "placeholder", "prefixIcon", "searchable", "searchPlaceholder", "emptyText", "creatable", "createPlaceholder", "createLabel", "createFactory", "maxVisible", "helpText", "errorText", "showHelpText", "showIconHelp", "iconHelpTitle", "iconHelpContent", "showClear", "defaultOpen", "compact", "defaultValue", "id", "name"], outputs: ["valueChange", "cleared", "openChange", "created"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7997
7997
  }
7998
7998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ListViewPaginationComponent, decorators: [{
7999
7999
  type: Component,
@@ -8007,7 +8007,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
8007
8007
  '[style.--_pg-icon]': 'preset.icon',
8008
8008
  '[style.--_pg-fs]': 'preset.fs',
8009
8009
  '[style.--_pg-gap]': "preset.gap + 'px'",
8010
- }, template: "<!-- Conteo X\u2013Y de Z (opcional, empuja el resto a la derecha v\u00EDa data-block) -->\n@if (showCountBlock) {\n <div class=\"ius-pagination__count\">\n @if (countRanged) {\n <b>{{ countFrom }}</b>\u2013<b>{{ countTo }}</b> de <b>{{ fmt(total!) }}</b> {{ countNoun }}\n } @else {\n <b>{{ fmt(total!) }}</b> {{ countNoun }}\n }\n </div>\n}\n\n<div class=\"ius-pagination__main\">\n <!-- Selector \"Filas por p\u00E1gina\" -->\n @if (pageSizeSelectOptions.length) {\n <div class=\"ius-pagination__sizer\">\n <span>Filas</span>\n <span class=\"ius-pagination__numsel\">\n <ius-select\n [options]=\"pageSizeSelectOptions\"\n [value]=\"pageSize\"\n (valueChange)=\"onSelectPageSize($event)\"\n compact\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [size]=\"size\"\n [disabled]=\"disabled\"\n placeholder=\"\"\n />\n </span>\n </div>\n }\n\n @if (variant === 'compact') {\n <div class=\"ius-pagination__nav\">\n <ius-icon-button\n icon=\"first_page\"\n variant=\"tertiary\"\n ariaLabel=\"Primera p\u00E1gina\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(1)\"\n />\n <ius-icon-button\n icon=\"chevron_left\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina anterior\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(currentPage - 1)\"\n />\n <span class=\"ius-pagination__compact\">\n P\u00E1gina&nbsp;\n <span class=\"ius-pagination__numsel\">\n <ius-select\n [options]=\"pageOptions\"\n [value]=\"currentPage\"\n (valueChange)=\"onSelectPage($event)\"\n compact\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [size]=\"size\"\n [disabled]=\"disabled || effTotalPages <= 1\"\n placeholder=\"\"\n />\n </span>\n <span>&nbsp;de&nbsp;</span>\n <b>{{ fmt(effTotalPages) }}</b>\n </span>\n <ius-icon-button\n icon=\"chevron_right\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina siguiente\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(currentPage + 1)\"\n />\n <ius-icon-button\n icon=\"last_page\"\n variant=\"tertiary\"\n ariaLabel=\"\u00DAltima p\u00E1gina\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(effTotalPages)\"\n />\n </div>\n } @else {\n <div class=\"ius-pagination__nav\">\n <ius-icon-button\n icon=\"chevron_left\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina anterior\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(currentPage - 1)\"\n />\n <div class=\"ius-pagination__pages\">\n @for (row of pageRows; track $index) {\n @if (row.ellipsis) {\n <span class=\"ius-pagination__ellipsis\" aria-hidden=\"true\">\u2026</span>\n } @else {\n <ius-button\n class=\"ius-pagination__num\"\n [variant]=\"row.value === currentPage ? 'primary' : 'tertiary'\"\n [size]=\"size\"\n [label]=\"fmt(row.value!)\"\n [disabled]=\"disabled\"\n [attr.aria-current]=\"row.value === currentPage ? 'page' : null\"\n (clicked)=\"goTo(row.value!)\"\n />\n }\n }\n </div>\n <ius-icon-button\n icon=\"chevron_right\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina siguiente\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(currentPage + 1)\"\n />\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-secondary)}:host([data-block=true]){width:100%;justify-content:space-between}.ius-pagination__count{font-size:var(--_pg-fs, 14px);line-height:1.4;color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__count b{font-weight:var(--ius-fw-medium);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-pagination__main{display:flex;align-items:center;gap:var(--ius-space-lg)}.ius-pagination__nav,.ius-pagination__pages{display:flex;align-items:center;gap:var(--_pg-gap, var(--ius-space-xs))}.ius-pagination__nav ::ng-deep .ius-iconbtn{--_ib-size: var(--_pg-h, 40px);--_ib-icon: var(--_pg-icon, var(--ius-icon-md))}.ius-pagination__num ::ng-deep .ius-btn{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);padding-left:var(--ius-space-xs);padding-right:var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-pagination__ellipsis{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);display:inline-flex;align-items:flex-end;justify-content:center;padding-bottom:var(--ius-space-xs);color:var(--ius-text-tertiary);font-size:var(--_pg-fs, 14px);line-height:1}.ius-pagination__compact{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary)}.ius-pagination__compact b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-pagination__sizer{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__numsel ::ng-deep .ius-tf__field{padding-right:var(--ius-space-xs);padding-left:var(--ius-space-sm);gap:var(--ius-space-xxs)}.ius-pagination__numsel ::ng-deep .ius-select__value{font-variant-numeric:tabular-nums;min-width:16px}.ius-pagination__numsel ::ng-deep .ius-select__chevron .ius-icon{font-size:var(--ius-icon-md)}\n"] }]
8010
+ }, template: "<!-- Conteo X\u2013Y de Z (opcional, empuja el resto a la derecha v\u00EDa data-block) -->\r\n@if (showCountBlock) {\r\n <div class=\"ius-pagination__count\">\r\n @if (countRanged) {\r\n <b>{{ countFrom }}</b>\u2013<b>{{ countTo }}</b> de <b>{{ fmt(total!) }}</b> {{ countNoun }}\r\n } @else {\r\n <b>{{ fmt(total!) }}</b> {{ countNoun }}\r\n }\r\n </div>\r\n}\r\n\r\n<div class=\"ius-pagination__main\">\r\n <!-- Selector \"Filas por p\u00E1gina\" -->\r\n @if (pageSizeSelectOptions.length) {\r\n <div class=\"ius-pagination__sizer\">\r\n <span>Filas</span>\r\n <span class=\"ius-pagination__numsel\">\r\n <ius-select\r\n [options]=\"pageSizeSelectOptions\"\r\n [value]=\"pageSize\"\r\n (valueChange)=\"onSelectPageSize($event)\"\r\n compact\r\n [searchable]=\"false\"\r\n [showClear]=\"false\"\r\n [showHelpText]=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n placeholder=\"\"\r\n />\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (variant === 'compact') {\r\n <div class=\"ius-pagination__nav\">\r\n <ius-icon-button\r\n icon=\"first_page\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"Primera p\u00E1gina\"\r\n [disabled]=\"disabled || atStart\"\r\n (clicked)=\"goTo(1)\"\r\n />\r\n <ius-icon-button\r\n icon=\"chevron_left\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"P\u00E1gina anterior\"\r\n [disabled]=\"disabled || atStart\"\r\n (clicked)=\"goTo(currentPage - 1)\"\r\n />\r\n <span class=\"ius-pagination__compact\">\r\n P\u00E1gina&nbsp;\r\n <span class=\"ius-pagination__numsel\">\r\n <ius-select\r\n [options]=\"pageOptions\"\r\n [value]=\"currentPage\"\r\n (valueChange)=\"onSelectPage($event)\"\r\n compact\r\n [searchable]=\"false\"\r\n [showClear]=\"false\"\r\n [showHelpText]=\"false\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled || effTotalPages <= 1\"\r\n placeholder=\"\"\r\n />\r\n </span>\r\n <span>&nbsp;de&nbsp;</span>\r\n <b>{{ fmt(effTotalPages) }}</b>\r\n </span>\r\n <ius-icon-button\r\n icon=\"chevron_right\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"P\u00E1gina siguiente\"\r\n [disabled]=\"disabled || atEnd\"\r\n (clicked)=\"goTo(currentPage + 1)\"\r\n />\r\n <ius-icon-button\r\n icon=\"last_page\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"\u00DAltima p\u00E1gina\"\r\n [disabled]=\"disabled || atEnd\"\r\n (clicked)=\"goTo(effTotalPages)\"\r\n />\r\n </div>\r\n } @else {\r\n <div class=\"ius-pagination__nav\">\r\n <ius-icon-button\r\n icon=\"chevron_left\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"P\u00E1gina anterior\"\r\n [disabled]=\"disabled || atStart\"\r\n (clicked)=\"goTo(currentPage - 1)\"\r\n />\r\n <div class=\"ius-pagination__pages\">\r\n @for (row of pageRows; track $index) {\r\n @if (row.ellipsis) {\r\n <span class=\"ius-pagination__ellipsis\" aria-hidden=\"true\">\u2026</span>\r\n } @else {\r\n <ius-button\r\n class=\"ius-pagination__num\"\r\n [variant]=\"row.value === currentPage ? 'primary' : 'tertiary'\"\r\n [size]=\"size\"\r\n [label]=\"fmt(row.value!)\"\r\n [disabled]=\"disabled\"\r\n [attr.aria-current]=\"row.value === currentPage ? 'page' : null\"\r\n (clicked)=\"goTo(row.value!)\"\r\n />\r\n }\r\n }\r\n </div>\r\n <ius-icon-button\r\n icon=\"chevron_right\"\r\n variant=\"tertiary\"\r\n ariaLabel=\"P\u00E1gina siguiente\"\r\n [disabled]=\"disabled || atEnd\"\r\n (clicked)=\"goTo(currentPage + 1)\"\r\n />\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-secondary)}:host([data-block=true]){width:100%;justify-content:space-between}.ius-pagination__count{font-size:var(--_pg-fs, 14px);line-height:1.4;color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__count b{font-weight:var(--ius-fw-medium);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-pagination__main{display:flex;align-items:center;gap:var(--ius-space-lg)}.ius-pagination__nav,.ius-pagination__pages{display:flex;align-items:center;gap:var(--_pg-gap, var(--ius-space-xs))}.ius-pagination__nav ::ng-deep .ius-iconbtn{--_ib-size: var(--_pg-h, 40px);--_ib-icon: var(--_pg-icon, var(--ius-icon-md))}.ius-pagination__num ::ng-deep .ius-btn{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);padding-left:var(--ius-space-xs);padding-right:var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-pagination__ellipsis{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);display:inline-flex;align-items:flex-end;justify-content:center;padding-bottom:var(--ius-space-xs);color:var(--ius-text-tertiary);font-size:var(--_pg-fs, 14px);line-height:1}.ius-pagination__compact{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary)}.ius-pagination__compact b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-pagination__sizer{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__numsel ::ng-deep .ius-tf__field{padding-right:var(--ius-space-xs);padding-left:var(--ius-space-sm);gap:var(--ius-space-xxs)}.ius-pagination__numsel ::ng-deep .ius-select__value{font-variant-numeric:tabular-nums;min-width:16px}.ius-pagination__numsel ::ng-deep .ius-select__chevron .ius-icon{font-size:var(--ius-icon-md)}\n"] }]
8011
8011
  }], propDecorators: { variant: [{
8012
8012
  type: Input
8013
8013
  }], page: [{
@@ -8250,7 +8250,7 @@ class ListViewComponent {
8250
8250
  this.sortChange.emit(payload.value);
8251
8251
  }
8252
8252
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ListViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8253
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: ListViewComponent, isStandalone: true, selector: "ius-list-view", inputs: { hideHeader: ["hideHeader", "hideHeader", booleanAttribute], selectable: ["selectable", "selectable", booleanAttribute], allSelected: ["allSelected", "allSelected", booleanAttribute], someSelected: ["someSelected", "someSelected", booleanAttribute], selectLabel: "selectLabel", sortOptions: "sortOptions", sortValue: "sortValue", actions: "actions", selectedCount: ["selectedCount", "selectedCount", numberAttribute], selectionActions: "selectionActions", gap: "gap", bodyPadding: "bodyPadding", bordered: ["bordered", "bordered", booleanAttribute], scrollTrackMargin: "scrollTrackMargin", fit: ["fit", "fit", booleanAttribute], fieldWidths: "fieldWidths", hideFooter: ["hideFooter", "hideFooter", booleanAttribute], total: "total", countNoun: "countNoun", pagination: ["pagination", "pagination", booleanAttribute], paginationVariant: "paginationVariant", page: "page", pageSize: ["pageSize", "pageSize", numberAttribute], pageSizeOptions: "pageSizeOptions", size: "size" }, outputs: { selectAll: "selectAll", sortChange: "sortChange", clearSelection: "clearSelection", pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { properties: { "attr.data-size": "size !== 'medium' ? size : null", "attr.data-bordered": "bordered ? 'true' : 'false'", "attr.data-fit": "fit ? 'height' : null" }, classAttribute: "ius-listview" }, queries: [{ propertyName: "filtersRef", first: true, predicate: IusListViewFiltersDirective, descendants: true, isSignal: true }, { propertyName: "headerStartRef", first: true, predicate: IusListViewHeaderStartDirective, descendants: true, isSignal: true }, { propertyName: "headerEndRef", first: true, predicate: IusListViewHeaderEndDirective, descendants: true, isSignal: true }, { propertyName: "toolbarRef", first: true, predicate: IusListViewToolbarDirective, descendants: true, isSignal: true }, { propertyName: "footerStartRef", first: true, predicate: IusListViewFooterStartDirective, descendants: true, isSignal: true }, { propertyName: "footerEndRef", first: true, predicate: IusListViewFooterEndDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Header: modo selecci\u00F3n > toolbar > integrado -->\n@if (!hideHeader) {\n @if (inSelection) {\n <div class=\"ius-listview__header\" data-mode=\"selection\">\n @if (selectable) {\n <ius-checkbox\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n size=\"small\"\n (checkedChange)=\"selectAll.emit($event)\"\n />\n }\n <span class=\"ius-listview__selcount\">{{ selCountText }}</span>\n @if (selectionActions.length) {\n <span class=\"ius-listview__divider\"></span>\n }\n <div class=\"ius-listview__actions\">\n @for (a of selectionActions; track a.key ?? $index) {\n <ius-icon-button\n [icon]=\"a.icon\"\n variant=\"tertiary\"\n [size]=\"iconSize\"\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\n [disabled]=\"a.disabled ?? false\"\n (clicked)=\"onAction(a, $event)\"\n />\n }\n </div>\n <span class=\"ius-listview__spacer\"></span>\n @if (showClear) {\n <ius-text-button label=\"Limpiar\" (clicked)=\"clearSelection.emit()\" />\n }\n </div>\n } @else if (hasToolbar) {\n <div class=\"ius-listview__header ius-listview__header--toolbar\">\n <ng-content select=\"[iusListViewToolbar]\" />\n </div>\n } @else {\n <div class=\"ius-listview__header\">\n <div class=\"ius-listview__hgroup ius-listview__hgroup--grow\">\n <ng-content select=\"[iusListViewHeaderStart]\" />\n @if (selectable) {\n <ius-checkbox\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n size=\"small\"\n [label]=\"selectLabel\"\n (checkedChange)=\"selectAll.emit($event)\"\n />\n }\n @if (sortOptions.length) {\n <!-- orden: Dropdown de selecci\u00F3n \u00FAnica (trigger ghost swap_vert, tone neutral) -->\n <span class=\"ius-listview__sort\">\n <ius-dropdown\n selectable\n [items]=\"sortOptions\"\n [value]=\"sortValue\"\n [triggerLabel]=\"sortTriggerFallback\"\n triggerIcon=\"swap_vert\"\n tone=\"neutral\"\n ariaLabel=\"Ordenar\"\n (valueChange)=\"onSortChange($event)\"\n />\n </span>\n }\n @if (hasFilters) {\n <div class=\"ius-listview__filters\"><ng-content select=\"[iusListViewFilters]\" /></div>\n }\n </div>\n <div class=\"ius-listview__hgroup ius-listview__hgroup--end\">\n @if (actions.length) {\n <div class=\"ius-listview__actions\">\n @for (a of actions; track a.key ?? $index) {\n <ius-icon-button\n [icon]=\"a.icon\"\n variant=\"tertiary\"\n [size]=\"iconSize\"\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\n [disabled]=\"a.disabled ?? false\"\n (clicked)=\"onAction(a, $event)\"\n />\n }\n </div>\n }\n <ng-content select=\"[iusListViewHeaderEnd]\" />\n </div>\n </div>\n }\n}\n\n<!-- Body: \u00FAnico scroller; emite la rejilla --_lc-col-N a los ListCard proyectados -->\n<div\n class=\"ius-listview__body ius-scroll\"\n [style.gap]=\"px(gap)\"\n [style.padding]=\"px(bodyPadding)\"\n [style.--_sb-track-margin]=\"px(scrollTrackMargin)\"\n [style.--_lc-col-1]=\"colVar(0)\"\n [style.--_lc-col-2]=\"colVar(1)\"\n [style.--_lc-col-3]=\"colVar(2)\"\n [style.--_lc-col-4]=\"colVar(3)\"\n [style.--_lc-col-5]=\"colVar(4)\"\n [style.--_lc-col-6]=\"colVar(5)\"\n>\n <ng-content />\n</div>\n\n<!-- Footer: total a la izquierda + paginaci\u00F3n a la derecha -->\n@if (showFooter) {\n <div class=\"ius-listview__footer\">\n <ng-content select=\"[iusListViewFooterStart]\" />\n @if (countText) {\n <span class=\"ius-listview__count\">{{ countText }}</span>\n }\n @if (pagination) {\n <!-- FALLBACK Pagination: port interno (reemplazar por ius-pagination cuando exista) -->\n <ius-list-view-pagination\n [variant]=\"paginationVariant\"\n [total]=\"total\"\n [page]=\"page\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n size=\"small\"\n (pageChange)=\"pageChange.emit($event)\"\n (pageSizeChange)=\"pageSizeChange.emit($event)\"\n />\n }\n <ng-content select=\"[iusListViewFooterEnd]\" />\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-height:0;width:100%;height:100%;font-family:var(--ius-font-body);box-sizing:border-box}:host([data-bordered=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-listview__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:nowrap;padding:var(--ius-space-xs) var(--ius-space-md);min-height:40px}.ius-listview__hgroup{display:flex;align-items:center;gap:var(--ius-space-sm);min-width:0;flex-wrap:wrap}.ius-listview__hgroup--grow{flex:1 1 auto}.ius-listview__hgroup--end{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}:host([data-bordered=true]) .ius-listview__header{border-bottom:1px solid var(--ius-stroke)}.ius-listview__header--toolbar{flex-wrap:wrap;min-height:0}:host([data-size=small]) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}@container style(--ius-density: small){:host(:not([data-size])) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}}.ius-listview__spacer{flex:1 1 auto}.ius-listview__divider{align-self:stretch;width:1px;background:var(--ius-stroke);margin:var(--ius-space-xxs) var(--ius-space-xs)}.ius-listview__filters{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}.ius-listview__actions{display:flex;align-items:center;gap:var(--ius-space-xxs)}.ius-listview__selcount{font:var(--ius-fw-regular, 400) var(--ius-fs-base)/var(--ius-lh-base) var(--ius-font-body);color:var(--ius-primary-900);font-variant-numeric:tabular-nums}.ius-listview__body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}:host([data-fit=height]){flex:1 1 auto;min-height:0;overflow:hidden}.ius-listview__body ::ng-deep .ius-listcard:hover{z-index:2}.ius-listview__footer{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);padding:var(--ius-space-xs) var(--ius-space-md)}:host([data-bordered=true]) .ius-listview__footer{border-top:1px solid var(--ius-stroke)}.ius-listview__count{font:var(--ius-fw-regular, 400) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary);font-variant-numeric:tabular-nums}.ius-listview__footer .ius-pagination{margin-left:auto;flex:0 0 auto}.ius-listview__sort{display:inline-flex}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "ius-checkbox", inputs: ["label", "labelPosition", "showIconHelp", "iconHelpTitle", "iconHelpContent", "name", "value", "ariaLabel", "size", "checked", "defaultChecked", "indeterminate", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }, { kind: "component", type: ListViewPaginationComponent, selector: "ius-list-view-pagination", inputs: ["variant", "page", "defaultPage", "totalPages", "total", "pageSize", "pageSizeOptions", "showCount", "countNoun", "siblingCount", "boundaryCount", "size", "disabled"], outputs: ["pageChange", "pageSizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: ListViewComponent, isStandalone: true, selector: "ius-list-view", inputs: { hideHeader: ["hideHeader", "hideHeader", booleanAttribute], selectable: ["selectable", "selectable", booleanAttribute], allSelected: ["allSelected", "allSelected", booleanAttribute], someSelected: ["someSelected", "someSelected", booleanAttribute], selectLabel: "selectLabel", sortOptions: "sortOptions", sortValue: "sortValue", actions: "actions", selectedCount: ["selectedCount", "selectedCount", numberAttribute], selectionActions: "selectionActions", gap: "gap", bodyPadding: "bodyPadding", bordered: ["bordered", "bordered", booleanAttribute], scrollTrackMargin: "scrollTrackMargin", fit: ["fit", "fit", booleanAttribute], fieldWidths: "fieldWidths", hideFooter: ["hideFooter", "hideFooter", booleanAttribute], total: "total", countNoun: "countNoun", pagination: ["pagination", "pagination", booleanAttribute], paginationVariant: "paginationVariant", page: "page", pageSize: ["pageSize", "pageSize", numberAttribute], pageSizeOptions: "pageSizeOptions", size: "size" }, outputs: { selectAll: "selectAll", sortChange: "sortChange", clearSelection: "clearSelection", pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { properties: { "attr.data-size": "size !== 'medium' ? size : null", "attr.data-bordered": "bordered ? 'true' : 'false'", "attr.data-fit": "fit ? 'height' : null" }, classAttribute: "ius-listview" }, queries: [{ propertyName: "filtersRef", first: true, predicate: IusListViewFiltersDirective, descendants: true, isSignal: true }, { propertyName: "headerStartRef", first: true, predicate: IusListViewHeaderStartDirective, descendants: true, isSignal: true }, { propertyName: "headerEndRef", first: true, predicate: IusListViewHeaderEndDirective, descendants: true, isSignal: true }, { propertyName: "toolbarRef", first: true, predicate: IusListViewToolbarDirective, descendants: true, isSignal: true }, { propertyName: "footerStartRef", first: true, predicate: IusListViewFooterStartDirective, descendants: true, isSignal: true }, { propertyName: "footerEndRef", first: true, predicate: IusListViewFooterEndDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Header: modo selecci\u00F3n > toolbar > integrado -->\r\n@if (!hideHeader) {\r\n @if (inSelection) {\r\n <div class=\"ius-listview__header\" data-mode=\"selection\">\r\n @if (selectable) {\r\n <ius-checkbox\r\n [checked]=\"allSelected\"\r\n [indeterminate]=\"someSelected\"\r\n size=\"small\"\r\n (checkedChange)=\"selectAll.emit($event)\"\r\n />\r\n }\r\n <span class=\"ius-listview__selcount\">{{ selCountText }}</span>\r\n @if (selectionActions.length) {\r\n <span class=\"ius-listview__divider\"></span>\r\n }\r\n <div class=\"ius-listview__actions\">\r\n @for (a of selectionActions; track a.key ?? $index) {\r\n <ius-icon-button\r\n [icon]=\"a.icon\"\r\n variant=\"tertiary\"\r\n [size]=\"iconSize\"\r\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\r\n [disabled]=\"a.disabled ?? false\"\r\n (clicked)=\"onAction(a, $event)\"\r\n />\r\n }\r\n </div>\r\n <span class=\"ius-listview__spacer\"></span>\r\n @if (showClear) {\r\n <ius-text-button label=\"Limpiar\" (clicked)=\"clearSelection.emit()\" />\r\n }\r\n </div>\r\n } @else if (hasToolbar) {\r\n <div class=\"ius-listview__header ius-listview__header--toolbar\">\r\n <ng-content select=\"[iusListViewToolbar]\" />\r\n </div>\r\n } @else {\r\n <div class=\"ius-listview__header\">\r\n <div class=\"ius-listview__hgroup ius-listview__hgroup--grow\">\r\n <ng-content select=\"[iusListViewHeaderStart]\" />\r\n @if (selectable) {\r\n <ius-checkbox\r\n [checked]=\"allSelected\"\r\n [indeterminate]=\"someSelected\"\r\n size=\"small\"\r\n [label]=\"selectLabel\"\r\n (checkedChange)=\"selectAll.emit($event)\"\r\n />\r\n }\r\n @if (sortOptions.length) {\r\n <!-- orden: Dropdown de selecci\u00F3n \u00FAnica (trigger ghost swap_vert, tone neutral) -->\r\n <span class=\"ius-listview__sort\">\r\n <ius-dropdown\r\n selectable\r\n [items]=\"sortOptions\"\r\n [value]=\"sortValue\"\r\n [triggerLabel]=\"sortTriggerFallback\"\r\n triggerIcon=\"swap_vert\"\r\n tone=\"neutral\"\r\n ariaLabel=\"Ordenar\"\r\n (valueChange)=\"onSortChange($event)\"\r\n />\r\n </span>\r\n }\r\n @if (hasFilters) {\r\n <div class=\"ius-listview__filters\"><ng-content select=\"[iusListViewFilters]\" /></div>\r\n }\r\n </div>\r\n <div class=\"ius-listview__hgroup ius-listview__hgroup--end\">\r\n @if (actions.length) {\r\n <div class=\"ius-listview__actions\">\r\n @for (a of actions; track a.key ?? $index) {\r\n <ius-icon-button\r\n [icon]=\"a.icon\"\r\n variant=\"tertiary\"\r\n [size]=\"iconSize\"\r\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\r\n [disabled]=\"a.disabled ?? false\"\r\n (clicked)=\"onAction(a, $event)\"\r\n />\r\n }\r\n </div>\r\n }\r\n <ng-content select=\"[iusListViewHeaderEnd]\" />\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n<!-- Body: \u00FAnico scroller; emite la rejilla --_lc-col-N a los ListCard proyectados -->\r\n<div\r\n class=\"ius-listview__body ius-scroll\"\r\n [style.gap]=\"px(gap)\"\r\n [style.padding]=\"px(bodyPadding)\"\r\n [style.--_sb-track-margin]=\"px(scrollTrackMargin)\"\r\n [style.--_lc-col-1]=\"colVar(0)\"\r\n [style.--_lc-col-2]=\"colVar(1)\"\r\n [style.--_lc-col-3]=\"colVar(2)\"\r\n [style.--_lc-col-4]=\"colVar(3)\"\r\n [style.--_lc-col-5]=\"colVar(4)\"\r\n [style.--_lc-col-6]=\"colVar(5)\"\r\n>\r\n <ng-content />\r\n</div>\r\n\r\n<!-- Footer: total a la izquierda + paginaci\u00F3n a la derecha -->\r\n@if (showFooter) {\r\n <div class=\"ius-listview__footer\">\r\n <ng-content select=\"[iusListViewFooterStart]\" />\r\n @if (countText) {\r\n <span class=\"ius-listview__count\">{{ countText }}</span>\r\n }\r\n @if (pagination) {\r\n <!-- FALLBACK Pagination: port interno (reemplazar por ius-pagination cuando exista) -->\r\n <ius-list-view-pagination\r\n [variant]=\"paginationVariant\"\r\n [total]=\"total\"\r\n [page]=\"page\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n size=\"small\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n (pageSizeChange)=\"pageSizeChange.emit($event)\"\r\n />\r\n }\r\n <ng-content select=\"[iusListViewFooterEnd]\" />\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-height:0;width:100%;height:100%;font-family:var(--ius-font-body);box-sizing:border-box}:host([data-bordered=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-listview__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:nowrap;padding:var(--ius-space-xs) var(--ius-space-md);min-height:40px}.ius-listview__hgroup{display:flex;align-items:center;gap:var(--ius-space-sm);min-width:0;flex-wrap:wrap}.ius-listview__hgroup--grow{flex:1 1 auto}.ius-listview__hgroup--end{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}:host([data-bordered=true]) .ius-listview__header{border-bottom:1px solid var(--ius-stroke)}.ius-listview__header--toolbar{flex-wrap:wrap;min-height:0}:host([data-size=small]) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}@container style(--ius-density: small){:host(:not([data-size])) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}}.ius-listview__spacer{flex:1 1 auto}.ius-listview__divider{align-self:stretch;width:1px;background:var(--ius-stroke);margin:var(--ius-space-xxs) var(--ius-space-xs)}.ius-listview__filters{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}.ius-listview__actions{display:flex;align-items:center;gap:var(--ius-space-xxs)}.ius-listview__selcount{font:var(--ius-fw-regular, 400) var(--ius-fs-base)/var(--ius-lh-base) var(--ius-font-body);color:var(--ius-primary-900);font-variant-numeric:tabular-nums}.ius-listview__body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}:host([data-fit=height]){flex:1 1 auto;min-height:0;overflow:hidden}.ius-listview__body ::ng-deep .ius-listcard:hover{z-index:2}.ius-listview__footer{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);padding:var(--ius-space-xs) var(--ius-space-md)}:host([data-bordered=true]) .ius-listview__footer{border-top:1px solid var(--ius-stroke)}.ius-listview__count{font:var(--ius-fw-regular, 400) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary);font-variant-numeric:tabular-nums}.ius-listview__footer .ius-pagination{margin-left:auto;flex:0 0 auto}.ius-listview__sort{display:inline-flex}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "ius-checkbox", inputs: ["label", "labelPosition", "showIconHelp", "iconHelpTitle", "iconHelpContent", "name", "value", "ariaLabel", "size", "checked", "defaultChecked", "indeterminate", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }, { kind: "component", type: ListViewPaginationComponent, selector: "ius-list-view-pagination", inputs: ["variant", "page", "defaultPage", "totalPages", "total", "pageSize", "pageSizeOptions", "showCount", "countNoun", "siblingCount", "boundaryCount", "size", "disabled"], outputs: ["pageChange", "pageSizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8254
8254
  }
8255
8255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ListViewComponent, decorators: [{
8256
8256
  type: Component,
@@ -8265,7 +8265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
8265
8265
  '[attr.data-size]': "size !== 'medium' ? size : null",
8266
8266
  '[attr.data-bordered]': "bordered ? 'true' : 'false'",
8267
8267
  '[attr.data-fit]': "fit ? 'height' : null",
8268
- }, template: "<!-- Header: modo selecci\u00F3n > toolbar > integrado -->\n@if (!hideHeader) {\n @if (inSelection) {\n <div class=\"ius-listview__header\" data-mode=\"selection\">\n @if (selectable) {\n <ius-checkbox\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n size=\"small\"\n (checkedChange)=\"selectAll.emit($event)\"\n />\n }\n <span class=\"ius-listview__selcount\">{{ selCountText }}</span>\n @if (selectionActions.length) {\n <span class=\"ius-listview__divider\"></span>\n }\n <div class=\"ius-listview__actions\">\n @for (a of selectionActions; track a.key ?? $index) {\n <ius-icon-button\n [icon]=\"a.icon\"\n variant=\"tertiary\"\n [size]=\"iconSize\"\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\n [disabled]=\"a.disabled ?? false\"\n (clicked)=\"onAction(a, $event)\"\n />\n }\n </div>\n <span class=\"ius-listview__spacer\"></span>\n @if (showClear) {\n <ius-text-button label=\"Limpiar\" (clicked)=\"clearSelection.emit()\" />\n }\n </div>\n } @else if (hasToolbar) {\n <div class=\"ius-listview__header ius-listview__header--toolbar\">\n <ng-content select=\"[iusListViewToolbar]\" />\n </div>\n } @else {\n <div class=\"ius-listview__header\">\n <div class=\"ius-listview__hgroup ius-listview__hgroup--grow\">\n <ng-content select=\"[iusListViewHeaderStart]\" />\n @if (selectable) {\n <ius-checkbox\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n size=\"small\"\n [label]=\"selectLabel\"\n (checkedChange)=\"selectAll.emit($event)\"\n />\n }\n @if (sortOptions.length) {\n <!-- orden: Dropdown de selecci\u00F3n \u00FAnica (trigger ghost swap_vert, tone neutral) -->\n <span class=\"ius-listview__sort\">\n <ius-dropdown\n selectable\n [items]=\"sortOptions\"\n [value]=\"sortValue\"\n [triggerLabel]=\"sortTriggerFallback\"\n triggerIcon=\"swap_vert\"\n tone=\"neutral\"\n ariaLabel=\"Ordenar\"\n (valueChange)=\"onSortChange($event)\"\n />\n </span>\n }\n @if (hasFilters) {\n <div class=\"ius-listview__filters\"><ng-content select=\"[iusListViewFilters]\" /></div>\n }\n </div>\n <div class=\"ius-listview__hgroup ius-listview__hgroup--end\">\n @if (actions.length) {\n <div class=\"ius-listview__actions\">\n @for (a of actions; track a.key ?? $index) {\n <ius-icon-button\n [icon]=\"a.icon\"\n variant=\"tertiary\"\n [size]=\"iconSize\"\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\n [disabled]=\"a.disabled ?? false\"\n (clicked)=\"onAction(a, $event)\"\n />\n }\n </div>\n }\n <ng-content select=\"[iusListViewHeaderEnd]\" />\n </div>\n </div>\n }\n}\n\n<!-- Body: \u00FAnico scroller; emite la rejilla --_lc-col-N a los ListCard proyectados -->\n<div\n class=\"ius-listview__body ius-scroll\"\n [style.gap]=\"px(gap)\"\n [style.padding]=\"px(bodyPadding)\"\n [style.--_sb-track-margin]=\"px(scrollTrackMargin)\"\n [style.--_lc-col-1]=\"colVar(0)\"\n [style.--_lc-col-2]=\"colVar(1)\"\n [style.--_lc-col-3]=\"colVar(2)\"\n [style.--_lc-col-4]=\"colVar(3)\"\n [style.--_lc-col-5]=\"colVar(4)\"\n [style.--_lc-col-6]=\"colVar(5)\"\n>\n <ng-content />\n</div>\n\n<!-- Footer: total a la izquierda + paginaci\u00F3n a la derecha -->\n@if (showFooter) {\n <div class=\"ius-listview__footer\">\n <ng-content select=\"[iusListViewFooterStart]\" />\n @if (countText) {\n <span class=\"ius-listview__count\">{{ countText }}</span>\n }\n @if (pagination) {\n <!-- FALLBACK Pagination: port interno (reemplazar por ius-pagination cuando exista) -->\n <ius-list-view-pagination\n [variant]=\"paginationVariant\"\n [total]=\"total\"\n [page]=\"page\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n size=\"small\"\n (pageChange)=\"pageChange.emit($event)\"\n (pageSizeChange)=\"pageSizeChange.emit($event)\"\n />\n }\n <ng-content select=\"[iusListViewFooterEnd]\" />\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-height:0;width:100%;height:100%;font-family:var(--ius-font-body);box-sizing:border-box}:host([data-bordered=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-listview__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:nowrap;padding:var(--ius-space-xs) var(--ius-space-md);min-height:40px}.ius-listview__hgroup{display:flex;align-items:center;gap:var(--ius-space-sm);min-width:0;flex-wrap:wrap}.ius-listview__hgroup--grow{flex:1 1 auto}.ius-listview__hgroup--end{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}:host([data-bordered=true]) .ius-listview__header{border-bottom:1px solid var(--ius-stroke)}.ius-listview__header--toolbar{flex-wrap:wrap;min-height:0}:host([data-size=small]) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}@container style(--ius-density: small){:host(:not([data-size])) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}}.ius-listview__spacer{flex:1 1 auto}.ius-listview__divider{align-self:stretch;width:1px;background:var(--ius-stroke);margin:var(--ius-space-xxs) var(--ius-space-xs)}.ius-listview__filters{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}.ius-listview__actions{display:flex;align-items:center;gap:var(--ius-space-xxs)}.ius-listview__selcount{font:var(--ius-fw-regular, 400) var(--ius-fs-base)/var(--ius-lh-base) var(--ius-font-body);color:var(--ius-primary-900);font-variant-numeric:tabular-nums}.ius-listview__body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}:host([data-fit=height]){flex:1 1 auto;min-height:0;overflow:hidden}.ius-listview__body ::ng-deep .ius-listcard:hover{z-index:2}.ius-listview__footer{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);padding:var(--ius-space-xs) var(--ius-space-md)}:host([data-bordered=true]) .ius-listview__footer{border-top:1px solid var(--ius-stroke)}.ius-listview__count{font:var(--ius-fw-regular, 400) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary);font-variant-numeric:tabular-nums}.ius-listview__footer .ius-pagination{margin-left:auto;flex:0 0 auto}.ius-listview__sort{display:inline-flex}\n"] }]
8268
+ }, template: "<!-- Header: modo selecci\u00F3n > toolbar > integrado -->\r\n@if (!hideHeader) {\r\n @if (inSelection) {\r\n <div class=\"ius-listview__header\" data-mode=\"selection\">\r\n @if (selectable) {\r\n <ius-checkbox\r\n [checked]=\"allSelected\"\r\n [indeterminate]=\"someSelected\"\r\n size=\"small\"\r\n (checkedChange)=\"selectAll.emit($event)\"\r\n />\r\n }\r\n <span class=\"ius-listview__selcount\">{{ selCountText }}</span>\r\n @if (selectionActions.length) {\r\n <span class=\"ius-listview__divider\"></span>\r\n }\r\n <div class=\"ius-listview__actions\">\r\n @for (a of selectionActions; track a.key ?? $index) {\r\n <ius-icon-button\r\n [icon]=\"a.icon\"\r\n variant=\"tertiary\"\r\n [size]=\"iconSize\"\r\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\r\n [disabled]=\"a.disabled ?? false\"\r\n (clicked)=\"onAction(a, $event)\"\r\n />\r\n }\r\n </div>\r\n <span class=\"ius-listview__spacer\"></span>\r\n @if (showClear) {\r\n <ius-text-button label=\"Limpiar\" (clicked)=\"clearSelection.emit()\" />\r\n }\r\n </div>\r\n } @else if (hasToolbar) {\r\n <div class=\"ius-listview__header ius-listview__header--toolbar\">\r\n <ng-content select=\"[iusListViewToolbar]\" />\r\n </div>\r\n } @else {\r\n <div class=\"ius-listview__header\">\r\n <div class=\"ius-listview__hgroup ius-listview__hgroup--grow\">\r\n <ng-content select=\"[iusListViewHeaderStart]\" />\r\n @if (selectable) {\r\n <ius-checkbox\r\n [checked]=\"allSelected\"\r\n [indeterminate]=\"someSelected\"\r\n size=\"small\"\r\n [label]=\"selectLabel\"\r\n (checkedChange)=\"selectAll.emit($event)\"\r\n />\r\n }\r\n @if (sortOptions.length) {\r\n <!-- orden: Dropdown de selecci\u00F3n \u00FAnica (trigger ghost swap_vert, tone neutral) -->\r\n <span class=\"ius-listview__sort\">\r\n <ius-dropdown\r\n selectable\r\n [items]=\"sortOptions\"\r\n [value]=\"sortValue\"\r\n [triggerLabel]=\"sortTriggerFallback\"\r\n triggerIcon=\"swap_vert\"\r\n tone=\"neutral\"\r\n ariaLabel=\"Ordenar\"\r\n (valueChange)=\"onSortChange($event)\"\r\n />\r\n </span>\r\n }\r\n @if (hasFilters) {\r\n <div class=\"ius-listview__filters\"><ng-content select=\"[iusListViewFilters]\" /></div>\r\n }\r\n </div>\r\n <div class=\"ius-listview__hgroup ius-listview__hgroup--end\">\r\n @if (actions.length) {\r\n <div class=\"ius-listview__actions\">\r\n @for (a of actions; track a.key ?? $index) {\r\n <ius-icon-button\r\n [icon]=\"a.icon\"\r\n variant=\"tertiary\"\r\n [size]=\"iconSize\"\r\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\r\n [disabled]=\"a.disabled ?? false\"\r\n (clicked)=\"onAction(a, $event)\"\r\n />\r\n }\r\n </div>\r\n }\r\n <ng-content select=\"[iusListViewHeaderEnd]\" />\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n<!-- Body: \u00FAnico scroller; emite la rejilla --_lc-col-N a los ListCard proyectados -->\r\n<div\r\n class=\"ius-listview__body ius-scroll\"\r\n [style.gap]=\"px(gap)\"\r\n [style.padding]=\"px(bodyPadding)\"\r\n [style.--_sb-track-margin]=\"px(scrollTrackMargin)\"\r\n [style.--_lc-col-1]=\"colVar(0)\"\r\n [style.--_lc-col-2]=\"colVar(1)\"\r\n [style.--_lc-col-3]=\"colVar(2)\"\r\n [style.--_lc-col-4]=\"colVar(3)\"\r\n [style.--_lc-col-5]=\"colVar(4)\"\r\n [style.--_lc-col-6]=\"colVar(5)\"\r\n>\r\n <ng-content />\r\n</div>\r\n\r\n<!-- Footer: total a la izquierda + paginaci\u00F3n a la derecha -->\r\n@if (showFooter) {\r\n <div class=\"ius-listview__footer\">\r\n <ng-content select=\"[iusListViewFooterStart]\" />\r\n @if (countText) {\r\n <span class=\"ius-listview__count\">{{ countText }}</span>\r\n }\r\n @if (pagination) {\r\n <!-- FALLBACK Pagination: port interno (reemplazar por ius-pagination cuando exista) -->\r\n <ius-list-view-pagination\r\n [variant]=\"paginationVariant\"\r\n [total]=\"total\"\r\n [page]=\"page\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n size=\"small\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n (pageSizeChange)=\"pageSizeChange.emit($event)\"\r\n />\r\n }\r\n <ng-content select=\"[iusListViewFooterEnd]\" />\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-height:0;width:100%;height:100%;font-family:var(--ius-font-body);box-sizing:border-box}:host([data-bordered=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-listview__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:nowrap;padding:var(--ius-space-xs) var(--ius-space-md);min-height:40px}.ius-listview__hgroup{display:flex;align-items:center;gap:var(--ius-space-sm);min-width:0;flex-wrap:wrap}.ius-listview__hgroup--grow{flex:1 1 auto}.ius-listview__hgroup--end{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}:host([data-bordered=true]) .ius-listview__header{border-bottom:1px solid var(--ius-stroke)}.ius-listview__header--toolbar{flex-wrap:wrap;min-height:0}:host([data-size=small]) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}@container style(--ius-density: small){:host(:not([data-size])) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}}.ius-listview__spacer{flex:1 1 auto}.ius-listview__divider{align-self:stretch;width:1px;background:var(--ius-stroke);margin:var(--ius-space-xxs) var(--ius-space-xs)}.ius-listview__filters{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}.ius-listview__actions{display:flex;align-items:center;gap:var(--ius-space-xxs)}.ius-listview__selcount{font:var(--ius-fw-regular, 400) var(--ius-fs-base)/var(--ius-lh-base) var(--ius-font-body);color:var(--ius-primary-900);font-variant-numeric:tabular-nums}.ius-listview__body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}:host([data-fit=height]){flex:1 1 auto;min-height:0;overflow:hidden}.ius-listview__body ::ng-deep .ius-listcard:hover{z-index:2}.ius-listview__footer{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);padding:var(--ius-space-xs) var(--ius-space-md)}:host([data-bordered=true]) .ius-listview__footer{border-top:1px solid var(--ius-stroke)}.ius-listview__count{font:var(--ius-fw-regular, 400) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary);font-variant-numeric:tabular-nums}.ius-listview__footer .ius-pagination{margin-left:auto;flex:0 0 auto}.ius-listview__sort{display:inline-flex}\n"] }]
8269
8269
  }], propDecorators: { hideHeader: [{
8270
8270
  type: Input,
8271
8271
  args: [{ transform: booleanAttribute }]
@@ -8771,11 +8771,11 @@ class DrawerComponent {
8771
8771
  this.timers = [];
8772
8772
  }
8773
8773
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8774
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: DrawerComponent, isStandalone: true, selector: "ius-drawer", inputs: { open: "open", defaultOpen: ["defaultOpen", "defaultOpen", booleanAttribute], side: "side", size: "size", title: "title", centerTitle: ["centerTitle", "centerTitle", booleanAttribute], showBack: "showBack", showClose: ["showClose", "showClose", booleanAttribute], closeOnScrim: ["closeOnScrim", "closeOnScrim", booleanAttribute], closeOnEsc: ["closeOnEsc", "closeOnEsc", booleanAttribute], showScrim: ["showScrim", "showScrim", booleanAttribute], ariaLabel: "ariaLabel" }, outputs: { closed: "closed", openChange: "openChange", back: "back" }, queries: [{ propertyName: "titleSlot", first: true, predicate: IusDrawerTitleDirective, descendants: true }, { propertyName: "actionsSlot", first: true, predicate: IusDrawerHeaderActionsDirective, descendants: true }, { propertyName: "footerSlot", first: true, predicate: IusDrawerFooterDirective, descendants: true }], viewQueries: [{ propertyName: "tpl", first: true, predicate: ["tpl"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #tpl>\n @if (showScrim) {\n <div\n class=\"ius-drawer-scrim\"\n [attr.data-visible]=\"visible() ? 'true' : null\"\n (click)=\"onScrimClick()\"\n ></div>\n }\n <div\n class=\"ius-drawer\"\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.data-side]=\"side\"\n [attr.data-size]=\"size\"\n [attr.data-visible]=\"visible() ? 'true' : null\"\n [attr.data-entered]=\"entered() ? 'true' : null\"\n >\n @if (hasHeader) {\n <div class=\"ius-drawer__header\">\n @if (showBackBtn) {\n <ius-icon-button\n icon=\"arrow_back\"\n variant=\"tertiary\"\n size=\"medium\"\n ariaLabel=\"Volver\"\n (clicked)=\"onBackClick()\"\n />\n }\n @if (hasTitle) {\n <h2\n class=\"ius-drawer__title\"\n [class.ius-drawer__title--center]=\"centerTitle\"\n [id]=\"titleId\"\n >{{ title }}<ng-content select=\"[iusDrawerTitle]\" /></h2>\n }\n @if (hasActionsZone) {\n <div class=\"ius-drawer__actions\">\n <ng-content select=\"[iusDrawerHeaderActions]\" />\n @if (showClose) {\n <ius-icon-button\n icon=\"close\"\n variant=\"tertiary\"\n size=\"medium\"\n ariaLabel=\"Cerrar\"\n (clicked)=\"requestClose()\"\n />\n }\n </div>\n }\n </div>\n }\n\n <div class=\"ius-drawer__body ius-scroll\"><ng-content /></div>\n\n @if (footerSlot) {\n <div class=\"ius-drawer__footer\"><ng-content select=\"[iusDrawerFooter]\" /></div>\n }\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ius-drawer-scrim{position:fixed;inset:0;background:var(--ius-surface-overlay);opacity:0;transition:opacity var(--ius-duration-slow) var(--ius-ease-standard)}.ius-drawer-scrim[data-visible=true]{opacity:1}.ius-drawer{position:fixed;top:0;bottom:0;display:flex;flex-direction:column;box-sizing:border-box;width:var(--_drawer-w, min(440px, 100vw));background:var(--ius-surface-card);box-shadow:var(--ius-elevation-400);font-family:var(--ius-font-body);transition:transform var(--ius-duration-slow) var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1))}.ius-drawer[data-side=right]{right:0;transform:translate(100%);border-radius:var(--ius-radius-lg) 0 0 var(--ius-radius-lg)}.ius-drawer[data-side=left]{left:0;transform:translate(-100%);border-radius:0 var(--ius-radius-lg) var(--ius-radius-lg) 0}.ius-drawer[data-visible=true]{transform:translate(0)}.ius-drawer[data-entered=true]{transform:none}.ius-drawer[data-size=sm]{--_drawer-w: min(400px, 100vw)}.ius-drawer[data-size=md]{--_drawer-w: min(440px, 100vw)}.ius-drawer[data-size=lg]{--_drawer-w: min(560px, 100vw)}.ius-drawer[data-size=xl]{--_drawer-w: min(720px, 100vw)}@media(max-width:480px){.ius-drawer{width:100vw;border-radius:0}}@media(prefers-reduced-motion:reduce){.ius-drawer,.ius-drawer-scrim{transition:none}}.ius-drawer__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-xs);height:56px;box-sizing:border-box;padding:0 var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-drawer__title{flex:1 1 auto;min-width:0;margin:0;font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-lg);line-height:var(--ius-lh-lg);color:var(--ius-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ius-drawer__title--center{text-align:center}.ius-drawer__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-drawer__body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--ius-space-lg) var(--ius-space-md);display:flex;flex-direction:column;gap:var(--ius-space-md);scrollbar-width:thin;scrollbar-color:var(--ius-neutral-5) transparent}.ius-drawer__body::-webkit-scrollbar{width:10px}.ius-drawer__body::-webkit-scrollbar-track{background:transparent}.ius-drawer__body::-webkit-scrollbar-thumb{background:var(--ius-neutral-5);border-radius:var(--ius-radius-pill);border:3px solid var(--ius-surface-card);background-clip:padding-box}.ius-drawer__body::-webkit-scrollbar-thumb:hover{background:var(--ius-neutral-6);background-clip:padding-box}.ius-drawer__body ::ng-deep .ius-tf,.ius-drawer__body ::ng-deep .ius-sb{max-width:none}.ius-drawer__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md);border-top:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-drawer[data-side=right] .ius-drawer__footer{border-bottom-left-radius:var(--ius-radius-lg)}.ius-drawer[data-side=left] .ius-drawer__footer{border-bottom-right-radius:var(--ius-radius-lg)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8774
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: DrawerComponent, isStandalone: true, selector: "ius-drawer", inputs: { open: "open", defaultOpen: ["defaultOpen", "defaultOpen", booleanAttribute], side: "side", size: "size", title: "title", centerTitle: ["centerTitle", "centerTitle", booleanAttribute], showBack: "showBack", showClose: ["showClose", "showClose", booleanAttribute], closeOnScrim: ["closeOnScrim", "closeOnScrim", booleanAttribute], closeOnEsc: ["closeOnEsc", "closeOnEsc", booleanAttribute], showScrim: ["showScrim", "showScrim", booleanAttribute], ariaLabel: "ariaLabel" }, outputs: { closed: "closed", openChange: "openChange", back: "back" }, queries: [{ propertyName: "titleSlot", first: true, predicate: IusDrawerTitleDirective, descendants: true }, { propertyName: "actionsSlot", first: true, predicate: IusDrawerHeaderActionsDirective, descendants: true }, { propertyName: "footerSlot", first: true, predicate: IusDrawerFooterDirective, descendants: true }], viewQueries: [{ propertyName: "tpl", first: true, predicate: ["tpl"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #tpl>\r\n @if (showScrim) {\r\n <div\r\n class=\"ius-drawer-scrim\"\r\n [attr.data-visible]=\"visible() ? 'true' : null\"\r\n (click)=\"onScrimClick()\"\r\n ></div>\r\n }\r\n <div\r\n class=\"ius-drawer\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n tabindex=\"-1\"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"labelledBy\"\r\n [attr.data-side]=\"side\"\r\n [attr.data-size]=\"size\"\r\n [attr.data-visible]=\"visible() ? 'true' : null\"\r\n [attr.data-entered]=\"entered() ? 'true' : null\"\r\n >\r\n @if (hasHeader) {\r\n <div class=\"ius-drawer__header\">\r\n @if (showBackBtn) {\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"medium\"\r\n ariaLabel=\"Volver\"\r\n (clicked)=\"onBackClick()\"\r\n />\r\n }\r\n @if (hasTitle) {\r\n <h2\r\n class=\"ius-drawer__title\"\r\n [class.ius-drawer__title--center]=\"centerTitle\"\r\n [id]=\"titleId\"\r\n >{{ title }}<ng-content select=\"[iusDrawerTitle]\" /></h2>\r\n }\r\n @if (hasActionsZone) {\r\n <div class=\"ius-drawer__actions\">\r\n <ng-content select=\"[iusDrawerHeaderActions]\" />\r\n @if (showClose) {\r\n <ius-icon-button\r\n icon=\"close\"\r\n variant=\"tertiary\"\r\n size=\"medium\"\r\n ariaLabel=\"Cerrar\"\r\n (clicked)=\"requestClose()\"\r\n />\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"ius-drawer__body ius-scroll\"><ng-content /></div>\r\n\r\n @if (footerSlot) {\r\n <div class=\"ius-drawer__footer\"><ng-content select=\"[iusDrawerFooter]\" /></div>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.ius-drawer-scrim{position:fixed;inset:0;background:var(--ius-surface-overlay);opacity:0;transition:opacity var(--ius-duration-slow) var(--ius-ease-standard)}.ius-drawer-scrim[data-visible=true]{opacity:1}.ius-drawer{position:fixed;top:0;bottom:0;display:flex;flex-direction:column;box-sizing:border-box;width:var(--_drawer-w, min(440px, 100vw));background:var(--ius-surface-card);box-shadow:var(--ius-elevation-400);font-family:var(--ius-font-body);transition:transform var(--ius-duration-slow) var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1))}.ius-drawer[data-side=right]{right:0;transform:translate(100%);border-radius:var(--ius-radius-lg) 0 0 var(--ius-radius-lg)}.ius-drawer[data-side=left]{left:0;transform:translate(-100%);border-radius:0 var(--ius-radius-lg) var(--ius-radius-lg) 0}.ius-drawer[data-visible=true]{transform:translate(0)}.ius-drawer[data-entered=true]{transform:none}.ius-drawer[data-size=sm]{--_drawer-w: min(400px, 100vw)}.ius-drawer[data-size=md]{--_drawer-w: min(440px, 100vw)}.ius-drawer[data-size=lg]{--_drawer-w: min(560px, 100vw)}.ius-drawer[data-size=xl]{--_drawer-w: min(720px, 100vw)}@media(max-width:480px){.ius-drawer{width:100vw;border-radius:0}}@media(prefers-reduced-motion:reduce){.ius-drawer,.ius-drawer-scrim{transition:none}}.ius-drawer__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-xs);height:56px;box-sizing:border-box;padding:0 var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-drawer__title{flex:1 1 auto;min-width:0;margin:0;font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-lg);line-height:var(--ius-lh-lg);color:var(--ius-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ius-drawer__title--center{text-align:center}.ius-drawer__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-drawer__body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--ius-space-lg) var(--ius-space-md);display:flex;flex-direction:column;gap:var(--ius-space-md);scrollbar-width:thin;scrollbar-color:var(--ius-neutral-5) transparent}.ius-drawer__body::-webkit-scrollbar{width:10px}.ius-drawer__body::-webkit-scrollbar-track{background:transparent}.ius-drawer__body::-webkit-scrollbar-thumb{background:var(--ius-neutral-5);border-radius:var(--ius-radius-pill);border:3px solid var(--ius-surface-card);background-clip:padding-box}.ius-drawer__body::-webkit-scrollbar-thumb:hover{background:var(--ius-neutral-6);background-clip:padding-box}.ius-drawer__body ::ng-deep .ius-tf,.ius-drawer__body ::ng-deep .ius-sb{max-width:none}.ius-drawer__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md);border-top:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-drawer[data-side=right] .ius-drawer__footer{border-bottom-left-radius:var(--ius-radius-lg)}.ius-drawer[data-side=left] .ius-drawer__footer{border-bottom-right-radius:var(--ius-radius-lg)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8775
8775
  }
8776
8776
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DrawerComponent, decorators: [{
8777
8777
  type: Component,
8778
- args: [{ selector: 'ius-drawer', standalone: true, imports: [A11yModule, IconButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #tpl>\n @if (showScrim) {\n <div\n class=\"ius-drawer-scrim\"\n [attr.data-visible]=\"visible() ? 'true' : null\"\n (click)=\"onScrimClick()\"\n ></div>\n }\n <div\n class=\"ius-drawer\"\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.data-side]=\"side\"\n [attr.data-size]=\"size\"\n [attr.data-visible]=\"visible() ? 'true' : null\"\n [attr.data-entered]=\"entered() ? 'true' : null\"\n >\n @if (hasHeader) {\n <div class=\"ius-drawer__header\">\n @if (showBackBtn) {\n <ius-icon-button\n icon=\"arrow_back\"\n variant=\"tertiary\"\n size=\"medium\"\n ariaLabel=\"Volver\"\n (clicked)=\"onBackClick()\"\n />\n }\n @if (hasTitle) {\n <h2\n class=\"ius-drawer__title\"\n [class.ius-drawer__title--center]=\"centerTitle\"\n [id]=\"titleId\"\n >{{ title }}<ng-content select=\"[iusDrawerTitle]\" /></h2>\n }\n @if (hasActionsZone) {\n <div class=\"ius-drawer__actions\">\n <ng-content select=\"[iusDrawerHeaderActions]\" />\n @if (showClose) {\n <ius-icon-button\n icon=\"close\"\n variant=\"tertiary\"\n size=\"medium\"\n ariaLabel=\"Cerrar\"\n (clicked)=\"requestClose()\"\n />\n }\n </div>\n }\n </div>\n }\n\n <div class=\"ius-drawer__body ius-scroll\"><ng-content /></div>\n\n @if (footerSlot) {\n <div class=\"ius-drawer__footer\"><ng-content select=\"[iusDrawerFooter]\" /></div>\n }\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ius-drawer-scrim{position:fixed;inset:0;background:var(--ius-surface-overlay);opacity:0;transition:opacity var(--ius-duration-slow) var(--ius-ease-standard)}.ius-drawer-scrim[data-visible=true]{opacity:1}.ius-drawer{position:fixed;top:0;bottom:0;display:flex;flex-direction:column;box-sizing:border-box;width:var(--_drawer-w, min(440px, 100vw));background:var(--ius-surface-card);box-shadow:var(--ius-elevation-400);font-family:var(--ius-font-body);transition:transform var(--ius-duration-slow) var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1))}.ius-drawer[data-side=right]{right:0;transform:translate(100%);border-radius:var(--ius-radius-lg) 0 0 var(--ius-radius-lg)}.ius-drawer[data-side=left]{left:0;transform:translate(-100%);border-radius:0 var(--ius-radius-lg) var(--ius-radius-lg) 0}.ius-drawer[data-visible=true]{transform:translate(0)}.ius-drawer[data-entered=true]{transform:none}.ius-drawer[data-size=sm]{--_drawer-w: min(400px, 100vw)}.ius-drawer[data-size=md]{--_drawer-w: min(440px, 100vw)}.ius-drawer[data-size=lg]{--_drawer-w: min(560px, 100vw)}.ius-drawer[data-size=xl]{--_drawer-w: min(720px, 100vw)}@media(max-width:480px){.ius-drawer{width:100vw;border-radius:0}}@media(prefers-reduced-motion:reduce){.ius-drawer,.ius-drawer-scrim{transition:none}}.ius-drawer__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-xs);height:56px;box-sizing:border-box;padding:0 var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-drawer__title{flex:1 1 auto;min-width:0;margin:0;font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-lg);line-height:var(--ius-lh-lg);color:var(--ius-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ius-drawer__title--center{text-align:center}.ius-drawer__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-drawer__body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--ius-space-lg) var(--ius-space-md);display:flex;flex-direction:column;gap:var(--ius-space-md);scrollbar-width:thin;scrollbar-color:var(--ius-neutral-5) transparent}.ius-drawer__body::-webkit-scrollbar{width:10px}.ius-drawer__body::-webkit-scrollbar-track{background:transparent}.ius-drawer__body::-webkit-scrollbar-thumb{background:var(--ius-neutral-5);border-radius:var(--ius-radius-pill);border:3px solid var(--ius-surface-card);background-clip:padding-box}.ius-drawer__body::-webkit-scrollbar-thumb:hover{background:var(--ius-neutral-6);background-clip:padding-box}.ius-drawer__body ::ng-deep .ius-tf,.ius-drawer__body ::ng-deep .ius-sb{max-width:none}.ius-drawer__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md);border-top:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-drawer[data-side=right] .ius-drawer__footer{border-bottom-left-radius:var(--ius-radius-lg)}.ius-drawer[data-side=left] .ius-drawer__footer{border-bottom-right-radius:var(--ius-radius-lg)}\n"] }]
8778
+ args: [{ selector: 'ius-drawer', standalone: true, imports: [A11yModule, IconButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #tpl>\r\n @if (showScrim) {\r\n <div\r\n class=\"ius-drawer-scrim\"\r\n [attr.data-visible]=\"visible() ? 'true' : null\"\r\n (click)=\"onScrimClick()\"\r\n ></div>\r\n }\r\n <div\r\n class=\"ius-drawer\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n tabindex=\"-1\"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"labelledBy\"\r\n [attr.data-side]=\"side\"\r\n [attr.data-size]=\"size\"\r\n [attr.data-visible]=\"visible() ? 'true' : null\"\r\n [attr.data-entered]=\"entered() ? 'true' : null\"\r\n >\r\n @if (hasHeader) {\r\n <div class=\"ius-drawer__header\">\r\n @if (showBackBtn) {\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"medium\"\r\n ariaLabel=\"Volver\"\r\n (clicked)=\"onBackClick()\"\r\n />\r\n }\r\n @if (hasTitle) {\r\n <h2\r\n class=\"ius-drawer__title\"\r\n [class.ius-drawer__title--center]=\"centerTitle\"\r\n [id]=\"titleId\"\r\n >{{ title }}<ng-content select=\"[iusDrawerTitle]\" /></h2>\r\n }\r\n @if (hasActionsZone) {\r\n <div class=\"ius-drawer__actions\">\r\n <ng-content select=\"[iusDrawerHeaderActions]\" />\r\n @if (showClose) {\r\n <ius-icon-button\r\n icon=\"close\"\r\n variant=\"tertiary\"\r\n size=\"medium\"\r\n ariaLabel=\"Cerrar\"\r\n (clicked)=\"requestClose()\"\r\n />\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"ius-drawer__body ius-scroll\"><ng-content /></div>\r\n\r\n @if (footerSlot) {\r\n <div class=\"ius-drawer__footer\"><ng-content select=\"[iusDrawerFooter]\" /></div>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.ius-drawer-scrim{position:fixed;inset:0;background:var(--ius-surface-overlay);opacity:0;transition:opacity var(--ius-duration-slow) var(--ius-ease-standard)}.ius-drawer-scrim[data-visible=true]{opacity:1}.ius-drawer{position:fixed;top:0;bottom:0;display:flex;flex-direction:column;box-sizing:border-box;width:var(--_drawer-w, min(440px, 100vw));background:var(--ius-surface-card);box-shadow:var(--ius-elevation-400);font-family:var(--ius-font-body);transition:transform var(--ius-duration-slow) var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1))}.ius-drawer[data-side=right]{right:0;transform:translate(100%);border-radius:var(--ius-radius-lg) 0 0 var(--ius-radius-lg)}.ius-drawer[data-side=left]{left:0;transform:translate(-100%);border-radius:0 var(--ius-radius-lg) var(--ius-radius-lg) 0}.ius-drawer[data-visible=true]{transform:translate(0)}.ius-drawer[data-entered=true]{transform:none}.ius-drawer[data-size=sm]{--_drawer-w: min(400px, 100vw)}.ius-drawer[data-size=md]{--_drawer-w: min(440px, 100vw)}.ius-drawer[data-size=lg]{--_drawer-w: min(560px, 100vw)}.ius-drawer[data-size=xl]{--_drawer-w: min(720px, 100vw)}@media(max-width:480px){.ius-drawer{width:100vw;border-radius:0}}@media(prefers-reduced-motion:reduce){.ius-drawer,.ius-drawer-scrim{transition:none}}.ius-drawer__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-xs);height:56px;box-sizing:border-box;padding:0 var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-drawer__title{flex:1 1 auto;min-width:0;margin:0;font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-lg);line-height:var(--ius-lh-lg);color:var(--ius-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ius-drawer__title--center{text-align:center}.ius-drawer__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-drawer__body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--ius-space-lg) var(--ius-space-md);display:flex;flex-direction:column;gap:var(--ius-space-md);scrollbar-width:thin;scrollbar-color:var(--ius-neutral-5) transparent}.ius-drawer__body::-webkit-scrollbar{width:10px}.ius-drawer__body::-webkit-scrollbar-track{background:transparent}.ius-drawer__body::-webkit-scrollbar-thumb{background:var(--ius-neutral-5);border-radius:var(--ius-radius-pill);border:3px solid var(--ius-surface-card);background-clip:padding-box}.ius-drawer__body::-webkit-scrollbar-thumb:hover{background:var(--ius-neutral-6);background-clip:padding-box}.ius-drawer__body ::ng-deep .ius-tf,.ius-drawer__body ::ng-deep .ius-sb{max-width:none}.ius-drawer__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md);border-top:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-drawer[data-side=right] .ius-drawer__footer{border-bottom-left-radius:var(--ius-radius-lg)}.ius-drawer[data-side=left] .ius-drawer__footer{border-bottom-right-radius:var(--ius-radius-lg)}\n"] }]
8779
8779
  }], propDecorators: { tpl: [{
8780
8780
  type: ViewChild,
8781
8781
  args: ['tpl', { static: true }]
@@ -10381,11 +10381,11 @@ class WizardComponent {
10381
10381
  return Math.round(this.percent);
10382
10382
  }
10383
10383
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10384
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: WizardComponent, isStandalone: true, selector: "ius-wizard", inputs: { api: "api", showIndicator: ["showIndicator", "showIndicator", booleanAttribute], indicator: "indicator", showStepLabel: ["showStepLabel", "showStepLabel", booleanAttribute], stepWord: "stepWord", ofWord: "ofWord" }, host: { classAttribute: "ius-wizard" }, ngImport: i0, template: "@if (api) {\r\n @if (showIndicator || showStepLabel) {\r\n <div class=\"ius-wizard__head\">\r\n @if (showIndicator) {\r\n @if (indicator) {\r\n <ng-container [ngTemplateOutlet]=\"indicator\" />\r\n } @else {\r\n <div\r\n class=\"ius-lpb\"\r\n role=\"progressbar\"\r\n aria-label=\"Progreso\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuemax]=\"100\"\r\n [attr.aria-valuenow]=\"ariaNow\"\r\n >\r\n <div class=\"ius-lpb__track\">\r\n <div class=\"ius-lpb__fill\" [style.width.%]=\"percent\"></div>\r\n @if (percent < 100) {\r\n <div class=\"ius-lpb__rest\"></div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n }\r\n @if (showStepLabel) {\r\n <span class=\"ius-wizard__label\">\r\n {{ stepWord }} <b>{{ api.step }}</b> {{ ofWord }} {{ api.total }}\r\n @if (api.current?.label) {\r\n <span> \u00B7 {{ api.current?.label }}</span>\r\n }\r\n </span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"ius-wizard__step\">\r\n @if (api.current?.content) {\r\n <ng-container [ngTemplateOutlet]=\"api.current!.content!\" />\r\n }\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-md);font-family:var(--ius-font-body);min-width:0}.ius-wizard__head{display:flex;flex-direction:column;gap:var(--ius-space-xs)}.ius-wizard__label{font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}.ius-wizard__label b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium)}.ius-wizard__step{min-width:0}.ius-lpb{--_lpb-h: 6px;--_lpb-track: var(--ius-neutral-3);--_lpb-fill: var(--ius-info-500);width:100%;display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body)}.ius-lpb__track{display:flex;align-items:center;gap:var(--ius-space-xxs);width:100%;height:var(--_lpb-h)}.ius-lpb__fill{height:100%;flex:0 0 auto;min-width:var(--_lpb-h);background:var(--_lpb-fill);border-radius:var(--ius-radius-pill);transition:width var(--ius-duration-slow, .32s) var(--ius-ease-standard)}.ius-lpb__rest{height:100%;flex:1 1 0;min-width:0;background:var(--_lpb-track);border-radius:var(--ius-radius-pill)}@media(prefers-reduced-motion:reduce){.ius-lpb__fill{transition:none}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10384
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: WizardComponent, isStandalone: true, selector: "ius-wizard", inputs: { api: "api", showIndicator: ["showIndicator", "showIndicator", booleanAttribute], indicator: "indicator", showStepLabel: ["showStepLabel", "showStepLabel", booleanAttribute], stepWord: "stepWord", ofWord: "ofWord" }, host: { classAttribute: "ius-wizard" }, ngImport: i0, template: "@if (api) {\n @if (showIndicator || showStepLabel) {\n <div class=\"ius-wizard__head\">\n @if (showIndicator) {\n @if (indicator) {\n <ng-container [ngTemplateOutlet]=\"indicator\" />\n } @else {\n <div\n class=\"ius-lpb\"\n role=\"progressbar\"\n aria-label=\"Progreso\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-valuenow]=\"ariaNow\"\n >\n <div class=\"ius-lpb__track\">\n <div class=\"ius-lpb__fill\" [style.width.%]=\"percent\"></div>\n @if (percent < 100) {\n <div class=\"ius-lpb__rest\"></div>\n }\n </div>\n </div>\n }\n }\n @if (showStepLabel) {\n <span class=\"ius-wizard__label\">\n {{ stepWord }} <b>{{ api.step }}</b> {{ ofWord }} {{ api.total }}\n @if (api.current?.label) {\n <span> \u00B7 {{ api.current?.label }}</span>\n }\n </span>\n }\n </div>\n }\n\n <div class=\"ius-wizard__step\">\n @if (api.current?.content) {\n <ng-container [ngTemplateOutlet]=\"api.current!.content!\" />\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-md);font-family:var(--ius-font-body);min-width:0}.ius-wizard__head{display:flex;flex-direction:column;gap:var(--ius-space-xs)}.ius-wizard__label{font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}.ius-wizard__label b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium)}.ius-wizard__step{min-width:0}.ius-lpb{--_lpb-h: 6px;--_lpb-track: var(--ius-neutral-3);--_lpb-fill: var(--ius-info-500);width:100%;display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body)}.ius-lpb__track{display:flex;align-items:center;gap:var(--ius-space-xxs);width:100%;height:var(--_lpb-h)}.ius-lpb__fill{height:100%;flex:0 0 auto;min-width:var(--_lpb-h);background:var(--_lpb-fill);border-radius:var(--ius-radius-pill);transition:width var(--ius-duration-slow, .32s) var(--ius-ease-standard)}.ius-lpb__rest{height:100%;flex:1 1 0;min-width:0;background:var(--_lpb-track);border-radius:var(--ius-radius-pill)}@media(prefers-reduced-motion:reduce){.ius-lpb__fill{transition:none}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10385
10385
  }
10386
10386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: WizardComponent, decorators: [{
10387
10387
  type: Component,
10388
- args: [{ selector: 'ius-wizard', standalone: true, imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-wizard' }, template: "@if (api) {\r\n @if (showIndicator || showStepLabel) {\r\n <div class=\"ius-wizard__head\">\r\n @if (showIndicator) {\r\n @if (indicator) {\r\n <ng-container [ngTemplateOutlet]=\"indicator\" />\r\n } @else {\r\n <div\r\n class=\"ius-lpb\"\r\n role=\"progressbar\"\r\n aria-label=\"Progreso\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuemax]=\"100\"\r\n [attr.aria-valuenow]=\"ariaNow\"\r\n >\r\n <div class=\"ius-lpb__track\">\r\n <div class=\"ius-lpb__fill\" [style.width.%]=\"percent\"></div>\r\n @if (percent < 100) {\r\n <div class=\"ius-lpb__rest\"></div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n }\r\n @if (showStepLabel) {\r\n <span class=\"ius-wizard__label\">\r\n {{ stepWord }} <b>{{ api.step }}</b> {{ ofWord }} {{ api.total }}\r\n @if (api.current?.label) {\r\n <span> \u00B7 {{ api.current?.label }}</span>\r\n }\r\n </span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"ius-wizard__step\">\r\n @if (api.current?.content) {\r\n <ng-container [ngTemplateOutlet]=\"api.current!.content!\" />\r\n }\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-md);font-family:var(--ius-font-body);min-width:0}.ius-wizard__head{display:flex;flex-direction:column;gap:var(--ius-space-xs)}.ius-wizard__label{font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}.ius-wizard__label b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium)}.ius-wizard__step{min-width:0}.ius-lpb{--_lpb-h: 6px;--_lpb-track: var(--ius-neutral-3);--_lpb-fill: var(--ius-info-500);width:100%;display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body)}.ius-lpb__track{display:flex;align-items:center;gap:var(--ius-space-xxs);width:100%;height:var(--_lpb-h)}.ius-lpb__fill{height:100%;flex:0 0 auto;min-width:var(--_lpb-h);background:var(--_lpb-fill);border-radius:var(--ius-radius-pill);transition:width var(--ius-duration-slow, .32s) var(--ius-ease-standard)}.ius-lpb__rest{height:100%;flex:1 1 0;min-width:0;background:var(--_lpb-track);border-radius:var(--ius-radius-pill)}@media(prefers-reduced-motion:reduce){.ius-lpb__fill{transition:none}}\n"] }]
10388
+ args: [{ selector: 'ius-wizard', standalone: true, imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-wizard' }, template: "@if (api) {\n @if (showIndicator || showStepLabel) {\n <div class=\"ius-wizard__head\">\n @if (showIndicator) {\n @if (indicator) {\n <ng-container [ngTemplateOutlet]=\"indicator\" />\n } @else {\n <div\n class=\"ius-lpb\"\n role=\"progressbar\"\n aria-label=\"Progreso\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-valuenow]=\"ariaNow\"\n >\n <div class=\"ius-lpb__track\">\n <div class=\"ius-lpb__fill\" [style.width.%]=\"percent\"></div>\n @if (percent < 100) {\n <div class=\"ius-lpb__rest\"></div>\n }\n </div>\n </div>\n }\n }\n @if (showStepLabel) {\n <span class=\"ius-wizard__label\">\n {{ stepWord }} <b>{{ api.step }}</b> {{ ofWord }} {{ api.total }}\n @if (api.current?.label) {\n <span> \u00B7 {{ api.current?.label }}</span>\n }\n </span>\n }\n </div>\n }\n\n <div class=\"ius-wizard__step\">\n @if (api.current?.content) {\n <ng-container [ngTemplateOutlet]=\"api.current!.content!\" />\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-md);font-family:var(--ius-font-body);min-width:0}.ius-wizard__head{display:flex;flex-direction:column;gap:var(--ius-space-xs)}.ius-wizard__label{font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}.ius-wizard__label b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium)}.ius-wizard__step{min-width:0}.ius-lpb{--_lpb-h: 6px;--_lpb-track: var(--ius-neutral-3);--_lpb-fill: var(--ius-info-500);width:100%;display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body)}.ius-lpb__track{display:flex;align-items:center;gap:var(--ius-space-xxs);width:100%;height:var(--_lpb-h)}.ius-lpb__fill{height:100%;flex:0 0 auto;min-width:var(--_lpb-h);background:var(--_lpb-fill);border-radius:var(--ius-radius-pill);transition:width var(--ius-duration-slow, .32s) var(--ius-ease-standard)}.ius-lpb__rest{height:100%;flex:1 1 0;min-width:0;background:var(--_lpb-track);border-radius:var(--ius-radius-pill)}@media(prefers-reduced-motion:reduce){.ius-lpb__fill{transition:none}}\n"] }]
10389
10389
  }], propDecorators: { api: [{
10390
10390
  type: Input,
10391
10391
  args: [{ required: true }]
@@ -10451,11 +10451,11 @@ class WizardNavComponent {
10451
10451
  this.finishAction?.();
10452
10452
  }
10453
10453
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: WizardNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10454
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: WizardNavComponent, isStandalone: true, selector: "ius-wizard-nav", inputs: { api: "api", backLabel: "backLabel", nextLabel: "nextLabel", finishLabel: "finishLabel", nextIcon: "nextIcon", finishDynamic: ["finishDynamic", "finishDynamic", booleanAttribute], nextDisabled: ["nextDisabled", "nextDisabled", booleanAttribute], hideBackOnFirst: ["hideBackOnFirst", "hideBackOnFirst", booleanAttribute], finishAction: "finishAction" }, outputs: { finish: "finish" }, host: { classAttribute: "ius-wizard-nav" }, ngImport: i0, template: "@if (api) {\r\n @if (!(hideBackOnFirst && api.isFirst)) {\r\n <ius-button\r\n variant=\"secondary\"\r\n fullWidth\r\n [label]=\"backLabel\"\r\n [disabled]=\"api.isFirst\"\r\n (clicked)=\"api.back()\"\r\n />\r\n }\r\n\r\n @if (api.isLast) {\r\n @if (finishDynamic) {\r\n <ius-button\r\n variant=\"primary\"\r\n fullWidth\r\n dynamic\r\n [label]=\"finishLabel\"\r\n [action]=\"runFinish\"\r\n />\r\n } @else {\r\n <ius-button\r\n variant=\"primary\"\r\n fullWidth\r\n [label]=\"finishLabel\"\r\n (clicked)=\"onFinishClick()\"\r\n />\r\n }\r\n } @else {\r\n <ius-button\r\n variant=\"primary\"\r\n fullWidth\r\n [label]=\"nextLabel\"\r\n [sufixIcon]=\"nextIcon\"\r\n [disabled]=\"nextDisabled\"\r\n (clicked)=\"api.next()\"\r\n />\r\n }\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;gap:var(--ius-space-sm)}:host>*{flex:1 1 0;min-width:0}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ius-button", inputs: ["variant", "label", "prefixIcon", "sufixIcon", "dynamic", "loading", "status", "disabled", "pressed", "fullWidth", "type", "ariaLabel", "action", "size"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10454
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: WizardNavComponent, isStandalone: true, selector: "ius-wizard-nav", inputs: { api: "api", backLabel: "backLabel", nextLabel: "nextLabel", finishLabel: "finishLabel", nextIcon: "nextIcon", finishDynamic: ["finishDynamic", "finishDynamic", booleanAttribute], nextDisabled: ["nextDisabled", "nextDisabled", booleanAttribute], hideBackOnFirst: ["hideBackOnFirst", "hideBackOnFirst", booleanAttribute], finishAction: "finishAction" }, outputs: { finish: "finish" }, host: { classAttribute: "ius-wizard-nav" }, ngImport: i0, template: "@if (api) {\n @if (!(hideBackOnFirst && api.isFirst)) {\n <ius-button\n variant=\"secondary\"\n fullWidth\n [label]=\"backLabel\"\n [disabled]=\"api.isFirst\"\n (clicked)=\"api.back()\"\n />\n }\n\n @if (api.isLast) {\n @if (finishDynamic) {\n <ius-button\n variant=\"primary\"\n fullWidth\n dynamic\n [label]=\"finishLabel\"\n [action]=\"runFinish\"\n />\n } @else {\n <ius-button\n variant=\"primary\"\n fullWidth\n [label]=\"finishLabel\"\n (clicked)=\"onFinishClick()\"\n />\n }\n } @else {\n <ius-button\n variant=\"primary\"\n fullWidth\n [label]=\"nextLabel\"\n [sufixIcon]=\"nextIcon\"\n [disabled]=\"nextDisabled\"\n (clicked)=\"api.next()\"\n />\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;gap:var(--ius-space-sm)}:host>*{flex:1 1 0;min-width:0}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ius-button", inputs: ["variant", "label", "prefixIcon", "sufixIcon", "dynamic", "loading", "status", "disabled", "pressed", "fullWidth", "type", "ariaLabel", "action", "size"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10455
10455
  }
10456
10456
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: WizardNavComponent, decorators: [{
10457
10457
  type: Component,
10458
- args: [{ selector: 'ius-wizard-nav', standalone: true, imports: [ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-wizard-nav' }, template: "@if (api) {\r\n @if (!(hideBackOnFirst && api.isFirst)) {\r\n <ius-button\r\n variant=\"secondary\"\r\n fullWidth\r\n [label]=\"backLabel\"\r\n [disabled]=\"api.isFirst\"\r\n (clicked)=\"api.back()\"\r\n />\r\n }\r\n\r\n @if (api.isLast) {\r\n @if (finishDynamic) {\r\n <ius-button\r\n variant=\"primary\"\r\n fullWidth\r\n dynamic\r\n [label]=\"finishLabel\"\r\n [action]=\"runFinish\"\r\n />\r\n } @else {\r\n <ius-button\r\n variant=\"primary\"\r\n fullWidth\r\n [label]=\"finishLabel\"\r\n (clicked)=\"onFinishClick()\"\r\n />\r\n }\r\n } @else {\r\n <ius-button\r\n variant=\"primary\"\r\n fullWidth\r\n [label]=\"nextLabel\"\r\n [sufixIcon]=\"nextIcon\"\r\n [disabled]=\"nextDisabled\"\r\n (clicked)=\"api.next()\"\r\n />\r\n }\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;gap:var(--ius-space-sm)}:host>*{flex:1 1 0;min-width:0}\n"] }]
10458
+ args: [{ selector: 'ius-wizard-nav', standalone: true, imports: [ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-wizard-nav' }, template: "@if (api) {\n @if (!(hideBackOnFirst && api.isFirst)) {\n <ius-button\n variant=\"secondary\"\n fullWidth\n [label]=\"backLabel\"\n [disabled]=\"api.isFirst\"\n (clicked)=\"api.back()\"\n />\n }\n\n @if (api.isLast) {\n @if (finishDynamic) {\n <ius-button\n variant=\"primary\"\n fullWidth\n dynamic\n [label]=\"finishLabel\"\n [action]=\"runFinish\"\n />\n } @else {\n <ius-button\n variant=\"primary\"\n fullWidth\n [label]=\"finishLabel\"\n (clicked)=\"onFinishClick()\"\n />\n }\n } @else {\n <ius-button\n variant=\"primary\"\n fullWidth\n [label]=\"nextLabel\"\n [sufixIcon]=\"nextIcon\"\n [disabled]=\"nextDisabled\"\n (clicked)=\"api.next()\"\n />\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;gap:var(--ius-space-sm)}:host>*{flex:1 1 0;min-width:0}\n"] }]
10459
10459
  }], propDecorators: { api: [{
10460
10460
  type: Input,
10461
10461
  args: [{ required: true }]
@@ -10587,7 +10587,7 @@ class ScrollAreaComponent {
10587
10587
  }
10588
10588
  }
10589
10589
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10590
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", type: ScrollAreaComponent, isStandalone: true, selector: "ius-scroll-area", inputs: { axis: "axis", size: "size", autoHide: ["autoHide", "autoHide", booleanAttribute], fade: ["fade", "fade", booleanAttribute], maxHeight: "maxHeight", maxWidth: "maxWidth", viewClassName: "viewClassName" }, outputs: { scrolled: "scrolled" }, host: { properties: { "attr.data-axis": "axis", "attr.data-fade": "fade ? 'true' : 'false'" }, classAttribute: "ius-sa" }, viewQueries: [{ propertyName: "view", first: true, predicate: ["view"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n #view\r\n [class]=\"viewClasses\"\r\n [style.max-height]=\"maxHeightCss\"\r\n [style.max-width]=\"maxWidthCss\"\r\n>\r\n <ng-content />\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;box-sizing:border-box;display:block;min-height:0;min-width:0}.ius-sa__view{box-sizing:border-box;width:100%;height:100%}:host([data-axis=y]) .ius-sa__view{overflow-y:auto;overflow-x:hidden}:host([data-axis=x]) .ius-sa__view{overflow-x:auto;overflow-y:hidden}:host([data-axis=both]) .ius-sa__view{overflow:auto}:host([data-fade=true][data-axis=y]) .ius-sa__view{--_sa-top: 0px;--_sa-bot: 0px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--_sa-top),#000 calc(100% - var(--_sa-bot)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 var(--_sa-top),#000 calc(100% - var(--_sa-bot)),transparent 100%)}:host([data-fade=true][data-axis=x]) .ius-sa__view{--_sa-l: 0px;--_sa-r: 0px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--_sa-l),#000 calc(100% - var(--_sa-r)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--_sa-l),#000 calc(100% - var(--_sa-r)),transparent 100%)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10590
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", type: ScrollAreaComponent, isStandalone: true, selector: "ius-scroll-area", inputs: { axis: "axis", size: "size", autoHide: ["autoHide", "autoHide", booleanAttribute], fade: ["fade", "fade", booleanAttribute], maxHeight: "maxHeight", maxWidth: "maxWidth", viewClassName: "viewClassName" }, outputs: { scrolled: "scrolled" }, host: { properties: { "attr.data-axis": "axis", "attr.data-fade": "fade ? 'true' : 'false'" }, classAttribute: "ius-sa" }, viewQueries: [{ propertyName: "view", first: true, predicate: ["view"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #view\n [class]=\"viewClasses\"\n [style.max-height]=\"maxHeightCss\"\n [style.max-width]=\"maxWidthCss\"\n>\n <ng-content />\n</div>\n", styles: ["@charset \"UTF-8\";:host{position:relative;box-sizing:border-box;display:block;min-height:0;min-width:0}.ius-sa__view{box-sizing:border-box;width:100%;height:100%}:host([data-axis=y]) .ius-sa__view{overflow-y:auto;overflow-x:hidden}:host([data-axis=x]) .ius-sa__view{overflow-x:auto;overflow-y:hidden}:host([data-axis=both]) .ius-sa__view{overflow:auto}:host([data-fade=true][data-axis=y]) .ius-sa__view{--_sa-top: 0px;--_sa-bot: 0px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--_sa-top),#000 calc(100% - var(--_sa-bot)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 var(--_sa-top),#000 calc(100% - var(--_sa-bot)),transparent 100%)}:host([data-fade=true][data-axis=x]) .ius-sa__view{--_sa-l: 0px;--_sa-r: 0px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--_sa-l),#000 calc(100% - var(--_sa-r)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--_sa-l),#000 calc(100% - var(--_sa-r)),transparent 100%)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10591
10591
  }
10592
10592
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollAreaComponent, decorators: [{
10593
10593
  type: Component,
@@ -10595,7 +10595,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
10595
10595
  class: 'ius-sa',
10596
10596
  '[attr.data-axis]': 'axis',
10597
10597
  '[attr.data-fade]': "fade ? 'true' : 'false'",
10598
- }, template: "<div\r\n #view\r\n [class]=\"viewClasses\"\r\n [style.max-height]=\"maxHeightCss\"\r\n [style.max-width]=\"maxWidthCss\"\r\n>\r\n <ng-content />\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;box-sizing:border-box;display:block;min-height:0;min-width:0}.ius-sa__view{box-sizing:border-box;width:100%;height:100%}:host([data-axis=y]) .ius-sa__view{overflow-y:auto;overflow-x:hidden}:host([data-axis=x]) .ius-sa__view{overflow-x:auto;overflow-y:hidden}:host([data-axis=both]) .ius-sa__view{overflow:auto}:host([data-fade=true][data-axis=y]) .ius-sa__view{--_sa-top: 0px;--_sa-bot: 0px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--_sa-top),#000 calc(100% - var(--_sa-bot)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 var(--_sa-top),#000 calc(100% - var(--_sa-bot)),transparent 100%)}:host([data-fade=true][data-axis=x]) .ius-sa__view{--_sa-l: 0px;--_sa-r: 0px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--_sa-l),#000 calc(100% - var(--_sa-r)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--_sa-l),#000 calc(100% - var(--_sa-r)),transparent 100%)}\n"] }]
10598
+ }, template: "<div\n #view\n [class]=\"viewClasses\"\n [style.max-height]=\"maxHeightCss\"\n [style.max-width]=\"maxWidthCss\"\n>\n <ng-content />\n</div>\n", styles: ["@charset \"UTF-8\";:host{position:relative;box-sizing:border-box;display:block;min-height:0;min-width:0}.ius-sa__view{box-sizing:border-box;width:100%;height:100%}:host([data-axis=y]) .ius-sa__view{overflow-y:auto;overflow-x:hidden}:host([data-axis=x]) .ius-sa__view{overflow-x:auto;overflow-y:hidden}:host([data-axis=both]) .ius-sa__view{overflow:auto}:host([data-fade=true][data-axis=y]) .ius-sa__view{--_sa-top: 0px;--_sa-bot: 0px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--_sa-top),#000 calc(100% - var(--_sa-bot)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 var(--_sa-top),#000 calc(100% - var(--_sa-bot)),transparent 100%)}:host([data-fade=true][data-axis=x]) .ius-sa__view{--_sa-l: 0px;--_sa-r: 0px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--_sa-l),#000 calc(100% - var(--_sa-r)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--_sa-l),#000 calc(100% - var(--_sa-r)),transparent 100%)}\n"] }]
10599
10599
  }], propDecorators: { axis: [{
10600
10600
  type: Input
10601
10601
  }], size: [{
@@ -12302,7 +12302,7 @@ class SettingsNavComponent {
12302
12302
  this.visibleCount.set(count);
12303
12303
  }
12304
12304
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SettingsNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12305
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SettingsNavComponent, isStandalone: true, selector: "ius-settings-nav", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, accent: { classPropertyName: "accent", publicName: "accent", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, defaultCollapsed: { classPropertyName: "defaultCollapsed", publicName: "defaultCollapsed", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, overflowLabel: { classPropertyName: "overflowLabel", publicName: "overflowLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIdChange: "selectedIdChange", itemClick: "itemClick", collapsedChange: "collapsedChange" }, host: { attributes: { "role": "navigation" }, properties: { "attr.aria-label": "ariaLabel()", "attr.data-collapsed": "isCollapsed() ? 'true' : null", "attr.title": "null", "style.--_sn-w": "widthCss()", "style.--_sn-cico-h": "cicoH()", "style.--_sn-fg": "accentFg()", "style.--_sn-tint": "accentTint()" }, classAttribute: "ius-settings-nav" }, queries: [{ propertyName: "headerRef", first: true, predicate: IusSettingsNavHeaderDirective, descendants: true, isSignal: true }, { propertyName: "footerRef", first: true, predicate: IusSettingsNavFooterDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "wrapRef", first: true, predicate: ["wrap"], descendants: true, isSignal: true }, { propertyName: "measRef", first: true, predicate: ["meas"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\r\n SettingsNav \u2014 el HOST es el `<nav>` (ver `host:` del .ts), as\u00ED que aqu\u00ED\r\n arranca directamente el contenido: encabezado \u00B7 columna de filas \u00B7 pie.\r\n-->\r\n\r\n<!--\r\n Encabezado. El slot `[iusSettingsNavHeader]` MANDA sobre `title`, y `title`\r\n se oculta al colapsar (ambas condiciones viven en `showTitle()`).\r\n El `ng-content` va en un \u00FAnico `@if` (nunca anidado): con `@if` anidados el\r\n compilador solo iza el atributo `select` un nivel y la proyecci\u00F3n fallar\u00EDa en\r\n silencio.\r\n-->\r\n@if (headerRef() || showTitle()) {\r\n <div class=\"ius-settings-nav__header\">\r\n <ng-content select=\"[iusSettingsNavHeader]\" />\r\n @if (showTitle()) {\r\n <div class=\"ius-settings-nav__title\">{{ title() }}</div>\r\n }\r\n </div>\r\n}\r\n\r\n<!-- Columna de filas: NO scrollea (priority+ recoge lo que no cabe). -->\r\n<div class=\"ius-settings-nav__items\" #wrap>\r\n @for (it of visibleItems(); track it.id) {\r\n <ng-container [ngTemplateOutlet]=\"fila\" [ngTemplateOutletContext]=\"{ it: it }\" />\r\n }\r\n\r\n <!-- Desborde: lo que no cabe en alto se recoge en un Popover a la derecha. -->\r\n @if (hasOverflow()) {\r\n <ius-popover\r\n [open]=\"moreOpen()\"\r\n trigger=\"click\"\r\n placement=\"right-start\"\r\n [showArrow]=\"false\"\r\n [offset]=\"8\"\r\n [dismissable]=\"true\"\r\n (openChange)=\"moreOpen.set($event)\"\r\n >\r\n @if (isCollapsed()) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-settings-nav__cico\"\r\n [attr.data-selected]=\"anyHiddenSelected() ? 'true' : null\"\r\n [attr.aria-label]=\"overflowLabel()\"\r\n aria-haspopup=\"menu\"\r\n [attr.aria-expanded]=\"moreOpen()\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">more_horiz</span>\r\n @if (anyHiddenSelected()) {\r\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\r\n }\r\n </button>\r\n } @else {\r\n <ius-menu-item\r\n variant=\"rail\"\r\n [size]=\"size()\"\r\n icon=\"more_horiz\"\r\n [label]=\"overflowLabel()\"\r\n [selected]=\"anyHiddenSelected()\"\r\n [ariaLabel]=\"overflowLabel() + ' secciones'\"\r\n />\r\n }\r\n\r\n <!--\r\n Panel del desborde. Se estampa en el overlay del CDK (FUERA del host),\r\n as\u00ED que las variables de acento NO se heredan: se repiten en l\u00EDnea, tal\r\n como el golden repite `accentVars(accent)` en este mismo nodo.\r\n -->\r\n <div\r\n iusPopoverContent\r\n class=\"ius-settings-nav__pop\"\r\n role=\"menu\"\r\n [style.--_sn-fg]=\"accentFg()\"\r\n [style.--_sn-tint]=\"accentTint()\"\r\n >\r\n @for (it of hiddenItems(); track it.id) {\r\n <ius-menu-item\r\n variant=\"menu\"\r\n itemRole=\"menuitem\"\r\n [size]=\"size()\"\r\n [icon]=\"it.icon\"\r\n [label]=\"it.label\"\r\n [badge]=\"it.badge\"\r\n [selected]=\"it.id === selectedId()\"\r\n [disabled]=\"!!it.disabled\"\r\n [href]=\"it.href\"\r\n (clicked)=\"handleFromOverflow(it)\"\r\n />\r\n }\r\n </div>\r\n </ius-popover>\r\n }\r\n\r\n <!--\r\n Contenedor de MEDICI\u00D3N (priority+): clona TODAS las filas fuera de vista\r\n (`position: absolute` + `visibility: hidden`, as\u00ED que no aporta alto ni\r\n entra en el orden de tabulaci\u00F3n) y de ah\u00ED se leen los `offsetHeight`.\r\n Cada clon va envuelto en `__mrow` porque el host de `ius-menu-item` es\r\n `display: contents` y no generar\u00EDa caja que medir.\r\n -->\r\n <div class=\"ius-settings-nav__measure\" #meas aria-hidden=\"true\">\r\n @for (it of items(); track it.id) {\r\n <div class=\"ius-settings-nav__mrow\">\r\n <ng-container [ngTemplateOutlet]=\"fila\" [ngTemplateOutletContext]=\"{ it: it }\" />\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n<!-- Pie: slot libre + bot\u00F3n propio de colapso, sobre una l\u00EDnea separadora. -->\r\n@if (hasFooter()) {\r\n <div class=\"ius-settings-nav__sep\"></div>\r\n <div class=\"ius-settings-nav__footer\">\r\n <ng-content select=\"[iusSettingsNavFooter]\" />\r\n\r\n @if (collapsible()) {\r\n @if (isCollapsed()) {\r\n <ius-tooltip [label]=\"toggleLabel()\" placement=\"right\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-settings-nav__cico\"\r\n [attr.aria-label]=\"toggleLabel()\"\r\n aria-expanded=\"false\"\r\n (click)=\"toggleCollapsed()\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ toggleIcon() }}</span>\r\n </button>\r\n </ius-tooltip>\r\n } @else {\r\n <ius-menu-item\r\n variant=\"rail\"\r\n [size]=\"size()\"\r\n [icon]=\"toggleIcon()\"\r\n [label]=\"toggleLabel()\"\r\n [ariaLabel]=\"toggleLabel()\"\r\n (clicked)=\"toggleCollapsed()\"\r\n />\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<!--\r\n UNA sola plantilla de fila, estampada con `NgTemplateOutlet` en la columna\r\n visible y en el contenedor de medici\u00F3n. El contexto de un `ng-template` no\r\n est\u00E1 tipado, as\u00ED que `asItem()` le devuelve el tipo y `strictTemplates`\r\n vuelve a comprobar todo el cuerpo.\r\n-->\r\n<ng-template #fila let-raw=\"it\">\r\n @let it = asItem(raw);\r\n @let sel = it.id === selectedId();\r\n\r\n @if (isCollapsed()) {\r\n <!-- Colapsado: solo \u00EDcono; el nombre accesible lo dan Tooltip + aria-label. -->\r\n <ius-tooltip [label]=\"it.label\" placement=\"right\">\r\n @if (isLink(it)) {\r\n <a\r\n class=\"ius-settings-nav__cico\"\r\n [href]=\"it.href\"\r\n [attr.data-selected]=\"sel ? 'true' : null\"\r\n [attr.data-disabled]=\"it.disabled ? 'true' : null\"\r\n [attr.aria-current]=\"sel ? 'page' : null\"\r\n [attr.aria-label]=\"it.label\"\r\n (click)=\"handle(it)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ it.icon }}</span>\r\n @if (it.badge) {\r\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\r\n }\r\n </a>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"ius-settings-nav__cico\"\r\n [disabled]=\"!it.href && !!it.disabled\"\r\n [attr.data-selected]=\"sel ? 'true' : null\"\r\n [attr.data-disabled]=\"it.disabled ? 'true' : null\"\r\n [attr.aria-current]=\"sel ? 'page' : null\"\r\n [attr.aria-label]=\"it.label\"\r\n (click)=\"handle(it)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ it.icon }}</span>\r\n @if (it.badge) {\r\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\r\n }\r\n </button>\r\n }\r\n </ius-tooltip>\r\n } @else {\r\n <!-- Expandido: la fila ES un MenuItem `rail` (idle/hover/pressed heredados). -->\r\n <ius-menu-item\r\n variant=\"rail\"\r\n [size]=\"size()\"\r\n [icon]=\"it.icon\"\r\n [label]=\"it.label\"\r\n [badge]=\"it.badge\"\r\n [selected]=\"sel\"\r\n [disabled]=\"!!it.disabled\"\r\n [href]=\"it.href\"\r\n (clicked)=\"handle(it)\"\r\n />\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;width:var(--_sn-w, 240px);min-width:var(--_sn-w, 240px);height:100%;background:var(--ius-surface-card);border-right:1px solid var(--ius-stroke);padding:var(--ius-space-sm) var(--ius-space-xs);gap:var(--ius-space-xxs);font-family:var(--ius-font-body)}:host([data-collapsed=true]){width:var(--_sn-wc, 64px);min-width:var(--_sn-wc, 64px)}.ius-settings-nav__header{flex:0 0 auto;padding:var(--ius-space-xs) var(--ius-space-xs) var(--ius-space-sm);min-height:0}.ius-settings-nav__title{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:1.2;text-transform:uppercase;letter-spacing:.04em;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-settings-nav__items{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs);overflow:hidden;position:relative}.ius-settings-nav__measure{position:absolute;top:0;left:0;right:0;visibility:hidden;pointer-events:none;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-settings-nav__mrow{display:flex;flex-direction:column}.ius-settings-nav__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-settings-nav__sep{height:1px;background:var(--ius-stroke);margin:var(--ius-space-xs) var(--ius-space-xs);flex:0 0 auto}:host ::ng-deep .ius-menuitem[data-variant=rail]{--_mi-icon: var(--ius-neutral-8)}:host ::ng-deep .ius-menuitem[data-variant=rail][data-selected=true]{background:var(--_sn-tint);--_mi-icon: var(--_sn-fg)}:host ::ng-deep .ius-menuitem[data-variant=rail][data-selected=true] .ius-menuitem__label{color:var(--_sn-fg)}:host ::ng-deep ius-tooltip{align-items:stretch}:host ::ng-deep ius-tooltip>ius-popover{flex:1 1 auto;min-width:0;align-items:stretch}.ius-settings-nav__cico{appearance:none;border:0;background:transparent;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:var(--_sn-cico-h, var(--ius-hit-target-min));border-radius:var(--ius-radius-md);color:var(--ius-neutral-8);text-decoration:none;transition:background var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-settings-nav__cico:hover{background:var(--ius-neutral-2)}.ius-settings-nav__cico:active{background:var(--ius-neutral-3)}.ius-settings-nav__cico:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}.ius-settings-nav__cico[data-disabled=true]{opacity:.5;pointer-events:none;cursor:default}.ius-settings-nav__cico[data-selected=true]{background:var(--_sn-tint);color:var(--_sn-fg)}.ius-settings-nav__cico .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-settings-nav__cico-badge{position:absolute;top:7px;right:12px;width:8px;height:8px;border-radius:var(--ius-radius-pill);background:var(--ius-info-500);box-shadow:0 0 0 2px var(--ius-surface-card)}.ius-settings-nav__pop{display:flex;flex-direction:column;gap:var(--ius-space-xxs);min-width:208px;padding:var(--ius-space-xxs)}.ius-settings-nav__pop ::ng-deep .ius-menuitem[data-variant=menu][data-selected=true]{background:var(--_sn-tint);--_mi-icon: var(--_sn-fg)}.ius-settings-nav__pop ::ng-deep .ius-menuitem[data-variant=menu][data-selected=true] .ius-menuitem__label{color:var(--_sn-fg)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MenuItemComponent, selector: "ius-menu-item", inputs: ["icon", "label", "badge", "variant", "size", "selected", "disabled", "danger", "state", "href", "ariaLabel", "itemRole"], outputs: ["clicked"] }, { kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }, { kind: "component", type: TooltipComponent, selector: "ius-tooltip", inputs: ["label", "placement", "trigger", "offset", "showArrow", "disabled", "open", "defaultOpen"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12305
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SettingsNavComponent, isStandalone: true, selector: "ius-settings-nav", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, accent: { classPropertyName: "accent", publicName: "accent", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, defaultCollapsed: { classPropertyName: "defaultCollapsed", publicName: "defaultCollapsed", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, overflowLabel: { classPropertyName: "overflowLabel", publicName: "overflowLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIdChange: "selectedIdChange", itemClick: "itemClick", collapsedChange: "collapsedChange" }, host: { attributes: { "role": "navigation" }, properties: { "attr.aria-label": "ariaLabel()", "attr.data-collapsed": "isCollapsed() ? 'true' : null", "attr.title": "null", "style.--_sn-w": "widthCss()", "style.--_sn-cico-h": "cicoH()", "style.--_sn-fg": "accentFg()", "style.--_sn-tint": "accentTint()" }, classAttribute: "ius-settings-nav" }, queries: [{ propertyName: "headerRef", first: true, predicate: IusSettingsNavHeaderDirective, descendants: true, isSignal: true }, { propertyName: "footerRef", first: true, predicate: IusSettingsNavFooterDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "wrapRef", first: true, predicate: ["wrap"], descendants: true, isSignal: true }, { propertyName: "measRef", first: true, predicate: ["meas"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n SettingsNav \u2014 el HOST es el `<nav>` (ver `host:` del .ts), as\u00ED que aqu\u00ED\n arranca directamente el contenido: encabezado \u00B7 columna de filas \u00B7 pie.\n-->\n\n<!--\n Encabezado. El slot `[iusSettingsNavHeader]` MANDA sobre `title`, y `title`\n se oculta al colapsar (ambas condiciones viven en `showTitle()`).\n El `ng-content` va en un \u00FAnico `@if` (nunca anidado): con `@if` anidados el\n compilador solo iza el atributo `select` un nivel y la proyecci\u00F3n fallar\u00EDa en\n silencio.\n-->\n@if (headerRef() || showTitle()) {\n <div class=\"ius-settings-nav__header\">\n <ng-content select=\"[iusSettingsNavHeader]\" />\n @if (showTitle()) {\n <div class=\"ius-settings-nav__title\">{{ title() }}</div>\n }\n </div>\n}\n\n<!-- Columna de filas: NO scrollea (priority+ recoge lo que no cabe). -->\n<div class=\"ius-settings-nav__items\" #wrap>\n @for (it of visibleItems(); track it.id) {\n <ng-container [ngTemplateOutlet]=\"fila\" [ngTemplateOutletContext]=\"{ it: it }\" />\n }\n\n <!-- Desborde: lo que no cabe en alto se recoge en un Popover a la derecha. -->\n @if (hasOverflow()) {\n <ius-popover\n [open]=\"moreOpen()\"\n trigger=\"click\"\n placement=\"right-start\"\n [showArrow]=\"false\"\n [offset]=\"8\"\n [dismissable]=\"true\"\n (openChange)=\"moreOpen.set($event)\"\n >\n @if (isCollapsed()) {\n <button\n type=\"button\"\n class=\"ius-settings-nav__cico\"\n [attr.data-selected]=\"anyHiddenSelected() ? 'true' : null\"\n [attr.aria-label]=\"overflowLabel()\"\n aria-haspopup=\"menu\"\n [attr.aria-expanded]=\"moreOpen()\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">more_horiz</span>\n @if (anyHiddenSelected()) {\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\n }\n </button>\n } @else {\n <ius-menu-item\n variant=\"rail\"\n [size]=\"size()\"\n icon=\"more_horiz\"\n [label]=\"overflowLabel()\"\n [selected]=\"anyHiddenSelected()\"\n [ariaLabel]=\"overflowLabel() + ' secciones'\"\n />\n }\n\n <!--\n Panel del desborde. Se estampa en el overlay del CDK (FUERA del host),\n as\u00ED que las variables de acento NO se heredan: se repiten en l\u00EDnea, tal\n como el golden repite `accentVars(accent)` en este mismo nodo.\n -->\n <div\n iusPopoverContent\n class=\"ius-settings-nav__pop\"\n role=\"menu\"\n [style.--_sn-fg]=\"accentFg()\"\n [style.--_sn-tint]=\"accentTint()\"\n >\n @for (it of hiddenItems(); track it.id) {\n <ius-menu-item\n variant=\"menu\"\n itemRole=\"menuitem\"\n [size]=\"size()\"\n [icon]=\"it.icon\"\n [label]=\"it.label\"\n [badge]=\"it.badge\"\n [selected]=\"it.id === selectedId()\"\n [disabled]=\"!!it.disabled\"\n [href]=\"it.href\"\n (clicked)=\"handleFromOverflow(it)\"\n />\n }\n </div>\n </ius-popover>\n }\n\n <!--\n Contenedor de MEDICI\u00D3N (priority+): clona TODAS las filas fuera de vista\n (`position: absolute` + `visibility: hidden`, as\u00ED que no aporta alto ni\n entra en el orden de tabulaci\u00F3n) y de ah\u00ED se leen los `offsetHeight`.\n Cada clon va envuelto en `__mrow` porque el host de `ius-menu-item` es\n `display: contents` y no generar\u00EDa caja que medir.\n -->\n <div class=\"ius-settings-nav__measure\" #meas aria-hidden=\"true\">\n @for (it of items(); track it.id) {\n <div class=\"ius-settings-nav__mrow\">\n <ng-container [ngTemplateOutlet]=\"fila\" [ngTemplateOutletContext]=\"{ it: it }\" />\n </div>\n }\n </div>\n</div>\n\n<!-- Pie: slot libre + bot\u00F3n propio de colapso, sobre una l\u00EDnea separadora. -->\n@if (hasFooter()) {\n <div class=\"ius-settings-nav__sep\"></div>\n <div class=\"ius-settings-nav__footer\">\n <ng-content select=\"[iusSettingsNavFooter]\" />\n\n @if (collapsible()) {\n @if (isCollapsed()) {\n <ius-tooltip [label]=\"toggleLabel()\" placement=\"right\">\n <button\n type=\"button\"\n class=\"ius-settings-nav__cico\"\n [attr.aria-label]=\"toggleLabel()\"\n aria-expanded=\"false\"\n (click)=\"toggleCollapsed()\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ toggleIcon() }}</span>\n </button>\n </ius-tooltip>\n } @else {\n <ius-menu-item\n variant=\"rail\"\n [size]=\"size()\"\n [icon]=\"toggleIcon()\"\n [label]=\"toggleLabel()\"\n [ariaLabel]=\"toggleLabel()\"\n (clicked)=\"toggleCollapsed()\"\n />\n }\n }\n </div>\n}\n\n<!--\n UNA sola plantilla de fila, estampada con `NgTemplateOutlet` en la columna\n visible y en el contenedor de medici\u00F3n. El contexto de un `ng-template` no\n est\u00E1 tipado, as\u00ED que `asItem()` le devuelve el tipo y `strictTemplates`\n vuelve a comprobar todo el cuerpo.\n-->\n<ng-template #fila let-raw=\"it\">\n @let it = asItem(raw);\n @let sel = it.id === selectedId();\n\n @if (isCollapsed()) {\n <!-- Colapsado: solo \u00EDcono; el nombre accesible lo dan Tooltip + aria-label. -->\n <ius-tooltip [label]=\"it.label\" placement=\"right\">\n @if (isLink(it)) {\n <a\n class=\"ius-settings-nav__cico\"\n [href]=\"it.href\"\n [attr.data-selected]=\"sel ? 'true' : null\"\n [attr.data-disabled]=\"it.disabled ? 'true' : null\"\n [attr.aria-current]=\"sel ? 'page' : null\"\n [attr.aria-label]=\"it.label\"\n (click)=\"handle(it)\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ it.icon }}</span>\n @if (it.badge) {\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\n }\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"ius-settings-nav__cico\"\n [disabled]=\"!it.href && !!it.disabled\"\n [attr.data-selected]=\"sel ? 'true' : null\"\n [attr.data-disabled]=\"it.disabled ? 'true' : null\"\n [attr.aria-current]=\"sel ? 'page' : null\"\n [attr.aria-label]=\"it.label\"\n (click)=\"handle(it)\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ it.icon }}</span>\n @if (it.badge) {\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\n }\n </button>\n }\n </ius-tooltip>\n } @else {\n <!-- Expandido: la fila ES un MenuItem `rail` (idle/hover/pressed heredados). -->\n <ius-menu-item\n variant=\"rail\"\n [size]=\"size()\"\n [icon]=\"it.icon\"\n [label]=\"it.label\"\n [badge]=\"it.badge\"\n [selected]=\"sel\"\n [disabled]=\"!!it.disabled\"\n [href]=\"it.href\"\n (clicked)=\"handle(it)\"\n />\n }\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;width:var(--_sn-w, 240px);min-width:var(--_sn-w, 240px);height:100%;background:var(--ius-surface-card);border-right:1px solid var(--ius-stroke);padding:var(--ius-space-sm) var(--ius-space-xs);gap:var(--ius-space-xxs);font-family:var(--ius-font-body)}:host([data-collapsed=true]){width:var(--_sn-wc, 64px);min-width:var(--_sn-wc, 64px)}.ius-settings-nav__header{flex:0 0 auto;padding:var(--ius-space-xs) var(--ius-space-xs) var(--ius-space-sm);min-height:0}.ius-settings-nav__title{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:1.2;text-transform:uppercase;letter-spacing:.04em;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-settings-nav__items{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs);overflow:hidden;position:relative}.ius-settings-nav__measure{position:absolute;top:0;left:0;right:0;visibility:hidden;pointer-events:none;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-settings-nav__mrow{display:flex;flex-direction:column}.ius-settings-nav__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-settings-nav__sep{height:1px;background:var(--ius-stroke);margin:var(--ius-space-xs) var(--ius-space-xs);flex:0 0 auto}:host ::ng-deep .ius-menuitem[data-variant=rail]{--_mi-icon: var(--ius-neutral-8)}:host ::ng-deep .ius-menuitem[data-variant=rail][data-selected=true]{background:var(--_sn-tint);--_mi-icon: var(--_sn-fg)}:host ::ng-deep .ius-menuitem[data-variant=rail][data-selected=true] .ius-menuitem__label{color:var(--_sn-fg)}:host ::ng-deep ius-tooltip{align-items:stretch}:host ::ng-deep ius-tooltip>ius-popover{flex:1 1 auto;min-width:0;align-items:stretch}.ius-settings-nav__cico{appearance:none;border:0;background:transparent;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:var(--_sn-cico-h, var(--ius-hit-target-min));border-radius:var(--ius-radius-md);color:var(--ius-neutral-8);text-decoration:none;transition:background var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-settings-nav__cico:hover{background:var(--ius-neutral-2)}.ius-settings-nav__cico:active{background:var(--ius-neutral-3)}.ius-settings-nav__cico:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}.ius-settings-nav__cico[data-disabled=true]{opacity:.5;pointer-events:none;cursor:default}.ius-settings-nav__cico[data-selected=true]{background:var(--_sn-tint);color:var(--_sn-fg)}.ius-settings-nav__cico .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-settings-nav__cico-badge{position:absolute;top:7px;right:12px;width:8px;height:8px;border-radius:var(--ius-radius-pill);background:var(--ius-info-500);box-shadow:0 0 0 2px var(--ius-surface-card)}.ius-settings-nav__pop{display:flex;flex-direction:column;gap:var(--ius-space-xxs);min-width:208px;padding:var(--ius-space-xxs)}.ius-settings-nav__pop ::ng-deep .ius-menuitem[data-variant=menu][data-selected=true]{background:var(--_sn-tint);--_mi-icon: var(--_sn-fg)}.ius-settings-nav__pop ::ng-deep .ius-menuitem[data-variant=menu][data-selected=true] .ius-menuitem__label{color:var(--_sn-fg)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MenuItemComponent, selector: "ius-menu-item", inputs: ["icon", "label", "badge", "variant", "size", "selected", "disabled", "danger", "state", "href", "ariaLabel", "itemRole"], outputs: ["clicked"] }, { kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }, { kind: "component", type: TooltipComponent, selector: "ius-tooltip", inputs: ["label", "placement", "trigger", "offset", "showArrow", "disabled", "open", "defaultOpen"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12306
12306
  }
12307
12307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SettingsNavComponent, decorators: [{
12308
12308
  type: Component,
@@ -12321,7 +12321,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
12321
12321
  '[style.--_sn-cico-h]': 'cicoH()',
12322
12322
  '[style.--_sn-fg]': 'accentFg()',
12323
12323
  '[style.--_sn-tint]': 'accentTint()',
12324
- }, template: "<!--\r\n SettingsNav \u2014 el HOST es el `<nav>` (ver `host:` del .ts), as\u00ED que aqu\u00ED\r\n arranca directamente el contenido: encabezado \u00B7 columna de filas \u00B7 pie.\r\n-->\r\n\r\n<!--\r\n Encabezado. El slot `[iusSettingsNavHeader]` MANDA sobre `title`, y `title`\r\n se oculta al colapsar (ambas condiciones viven en `showTitle()`).\r\n El `ng-content` va en un \u00FAnico `@if` (nunca anidado): con `@if` anidados el\r\n compilador solo iza el atributo `select` un nivel y la proyecci\u00F3n fallar\u00EDa en\r\n silencio.\r\n-->\r\n@if (headerRef() || showTitle()) {\r\n <div class=\"ius-settings-nav__header\">\r\n <ng-content select=\"[iusSettingsNavHeader]\" />\r\n @if (showTitle()) {\r\n <div class=\"ius-settings-nav__title\">{{ title() }}</div>\r\n }\r\n </div>\r\n}\r\n\r\n<!-- Columna de filas: NO scrollea (priority+ recoge lo que no cabe). -->\r\n<div class=\"ius-settings-nav__items\" #wrap>\r\n @for (it of visibleItems(); track it.id) {\r\n <ng-container [ngTemplateOutlet]=\"fila\" [ngTemplateOutletContext]=\"{ it: it }\" />\r\n }\r\n\r\n <!-- Desborde: lo que no cabe en alto se recoge en un Popover a la derecha. -->\r\n @if (hasOverflow()) {\r\n <ius-popover\r\n [open]=\"moreOpen()\"\r\n trigger=\"click\"\r\n placement=\"right-start\"\r\n [showArrow]=\"false\"\r\n [offset]=\"8\"\r\n [dismissable]=\"true\"\r\n (openChange)=\"moreOpen.set($event)\"\r\n >\r\n @if (isCollapsed()) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-settings-nav__cico\"\r\n [attr.data-selected]=\"anyHiddenSelected() ? 'true' : null\"\r\n [attr.aria-label]=\"overflowLabel()\"\r\n aria-haspopup=\"menu\"\r\n [attr.aria-expanded]=\"moreOpen()\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">more_horiz</span>\r\n @if (anyHiddenSelected()) {\r\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\r\n }\r\n </button>\r\n } @else {\r\n <ius-menu-item\r\n variant=\"rail\"\r\n [size]=\"size()\"\r\n icon=\"more_horiz\"\r\n [label]=\"overflowLabel()\"\r\n [selected]=\"anyHiddenSelected()\"\r\n [ariaLabel]=\"overflowLabel() + ' secciones'\"\r\n />\r\n }\r\n\r\n <!--\r\n Panel del desborde. Se estampa en el overlay del CDK (FUERA del host),\r\n as\u00ED que las variables de acento NO se heredan: se repiten en l\u00EDnea, tal\r\n como el golden repite `accentVars(accent)` en este mismo nodo.\r\n -->\r\n <div\r\n iusPopoverContent\r\n class=\"ius-settings-nav__pop\"\r\n role=\"menu\"\r\n [style.--_sn-fg]=\"accentFg()\"\r\n [style.--_sn-tint]=\"accentTint()\"\r\n >\r\n @for (it of hiddenItems(); track it.id) {\r\n <ius-menu-item\r\n variant=\"menu\"\r\n itemRole=\"menuitem\"\r\n [size]=\"size()\"\r\n [icon]=\"it.icon\"\r\n [label]=\"it.label\"\r\n [badge]=\"it.badge\"\r\n [selected]=\"it.id === selectedId()\"\r\n [disabled]=\"!!it.disabled\"\r\n [href]=\"it.href\"\r\n (clicked)=\"handleFromOverflow(it)\"\r\n />\r\n }\r\n </div>\r\n </ius-popover>\r\n }\r\n\r\n <!--\r\n Contenedor de MEDICI\u00D3N (priority+): clona TODAS las filas fuera de vista\r\n (`position: absolute` + `visibility: hidden`, as\u00ED que no aporta alto ni\r\n entra en el orden de tabulaci\u00F3n) y de ah\u00ED se leen los `offsetHeight`.\r\n Cada clon va envuelto en `__mrow` porque el host de `ius-menu-item` es\r\n `display: contents` y no generar\u00EDa caja que medir.\r\n -->\r\n <div class=\"ius-settings-nav__measure\" #meas aria-hidden=\"true\">\r\n @for (it of items(); track it.id) {\r\n <div class=\"ius-settings-nav__mrow\">\r\n <ng-container [ngTemplateOutlet]=\"fila\" [ngTemplateOutletContext]=\"{ it: it }\" />\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n<!-- Pie: slot libre + bot\u00F3n propio de colapso, sobre una l\u00EDnea separadora. -->\r\n@if (hasFooter()) {\r\n <div class=\"ius-settings-nav__sep\"></div>\r\n <div class=\"ius-settings-nav__footer\">\r\n <ng-content select=\"[iusSettingsNavFooter]\" />\r\n\r\n @if (collapsible()) {\r\n @if (isCollapsed()) {\r\n <ius-tooltip [label]=\"toggleLabel()\" placement=\"right\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-settings-nav__cico\"\r\n [attr.aria-label]=\"toggleLabel()\"\r\n aria-expanded=\"false\"\r\n (click)=\"toggleCollapsed()\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ toggleIcon() }}</span>\r\n </button>\r\n </ius-tooltip>\r\n } @else {\r\n <ius-menu-item\r\n variant=\"rail\"\r\n [size]=\"size()\"\r\n [icon]=\"toggleIcon()\"\r\n [label]=\"toggleLabel()\"\r\n [ariaLabel]=\"toggleLabel()\"\r\n (clicked)=\"toggleCollapsed()\"\r\n />\r\n }\r\n }\r\n </div>\r\n}\r\n\r\n<!--\r\n UNA sola plantilla de fila, estampada con `NgTemplateOutlet` en la columna\r\n visible y en el contenedor de medici\u00F3n. El contexto de un `ng-template` no\r\n est\u00E1 tipado, as\u00ED que `asItem()` le devuelve el tipo y `strictTemplates`\r\n vuelve a comprobar todo el cuerpo.\r\n-->\r\n<ng-template #fila let-raw=\"it\">\r\n @let it = asItem(raw);\r\n @let sel = it.id === selectedId();\r\n\r\n @if (isCollapsed()) {\r\n <!-- Colapsado: solo \u00EDcono; el nombre accesible lo dan Tooltip + aria-label. -->\r\n <ius-tooltip [label]=\"it.label\" placement=\"right\">\r\n @if (isLink(it)) {\r\n <a\r\n class=\"ius-settings-nav__cico\"\r\n [href]=\"it.href\"\r\n [attr.data-selected]=\"sel ? 'true' : null\"\r\n [attr.data-disabled]=\"it.disabled ? 'true' : null\"\r\n [attr.aria-current]=\"sel ? 'page' : null\"\r\n [attr.aria-label]=\"it.label\"\r\n (click)=\"handle(it)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ it.icon }}</span>\r\n @if (it.badge) {\r\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\r\n }\r\n </a>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"ius-settings-nav__cico\"\r\n [disabled]=\"!it.href && !!it.disabled\"\r\n [attr.data-selected]=\"sel ? 'true' : null\"\r\n [attr.data-disabled]=\"it.disabled ? 'true' : null\"\r\n [attr.aria-current]=\"sel ? 'page' : null\"\r\n [attr.aria-label]=\"it.label\"\r\n (click)=\"handle(it)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ it.icon }}</span>\r\n @if (it.badge) {\r\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\r\n }\r\n </button>\r\n }\r\n </ius-tooltip>\r\n } @else {\r\n <!-- Expandido: la fila ES un MenuItem `rail` (idle/hover/pressed heredados). -->\r\n <ius-menu-item\r\n variant=\"rail\"\r\n [size]=\"size()\"\r\n [icon]=\"it.icon\"\r\n [label]=\"it.label\"\r\n [badge]=\"it.badge\"\r\n [selected]=\"sel\"\r\n [disabled]=\"!!it.disabled\"\r\n [href]=\"it.href\"\r\n (clicked)=\"handle(it)\"\r\n />\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;width:var(--_sn-w, 240px);min-width:var(--_sn-w, 240px);height:100%;background:var(--ius-surface-card);border-right:1px solid var(--ius-stroke);padding:var(--ius-space-sm) var(--ius-space-xs);gap:var(--ius-space-xxs);font-family:var(--ius-font-body)}:host([data-collapsed=true]){width:var(--_sn-wc, 64px);min-width:var(--_sn-wc, 64px)}.ius-settings-nav__header{flex:0 0 auto;padding:var(--ius-space-xs) var(--ius-space-xs) var(--ius-space-sm);min-height:0}.ius-settings-nav__title{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:1.2;text-transform:uppercase;letter-spacing:.04em;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-settings-nav__items{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs);overflow:hidden;position:relative}.ius-settings-nav__measure{position:absolute;top:0;left:0;right:0;visibility:hidden;pointer-events:none;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-settings-nav__mrow{display:flex;flex-direction:column}.ius-settings-nav__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-settings-nav__sep{height:1px;background:var(--ius-stroke);margin:var(--ius-space-xs) var(--ius-space-xs);flex:0 0 auto}:host ::ng-deep .ius-menuitem[data-variant=rail]{--_mi-icon: var(--ius-neutral-8)}:host ::ng-deep .ius-menuitem[data-variant=rail][data-selected=true]{background:var(--_sn-tint);--_mi-icon: var(--_sn-fg)}:host ::ng-deep .ius-menuitem[data-variant=rail][data-selected=true] .ius-menuitem__label{color:var(--_sn-fg)}:host ::ng-deep ius-tooltip{align-items:stretch}:host ::ng-deep ius-tooltip>ius-popover{flex:1 1 auto;min-width:0;align-items:stretch}.ius-settings-nav__cico{appearance:none;border:0;background:transparent;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:var(--_sn-cico-h, var(--ius-hit-target-min));border-radius:var(--ius-radius-md);color:var(--ius-neutral-8);text-decoration:none;transition:background var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-settings-nav__cico:hover{background:var(--ius-neutral-2)}.ius-settings-nav__cico:active{background:var(--ius-neutral-3)}.ius-settings-nav__cico:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}.ius-settings-nav__cico[data-disabled=true]{opacity:.5;pointer-events:none;cursor:default}.ius-settings-nav__cico[data-selected=true]{background:var(--_sn-tint);color:var(--_sn-fg)}.ius-settings-nav__cico .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-settings-nav__cico-badge{position:absolute;top:7px;right:12px;width:8px;height:8px;border-radius:var(--ius-radius-pill);background:var(--ius-info-500);box-shadow:0 0 0 2px var(--ius-surface-card)}.ius-settings-nav__pop{display:flex;flex-direction:column;gap:var(--ius-space-xxs);min-width:208px;padding:var(--ius-space-xxs)}.ius-settings-nav__pop ::ng-deep .ius-menuitem[data-variant=menu][data-selected=true]{background:var(--_sn-tint);--_mi-icon: var(--_sn-fg)}.ius-settings-nav__pop ::ng-deep .ius-menuitem[data-variant=menu][data-selected=true] .ius-menuitem__label{color:var(--_sn-fg)}\n"] }]
12324
+ }, template: "<!--\n SettingsNav \u2014 el HOST es el `<nav>` (ver `host:` del .ts), as\u00ED que aqu\u00ED\n arranca directamente el contenido: encabezado \u00B7 columna de filas \u00B7 pie.\n-->\n\n<!--\n Encabezado. El slot `[iusSettingsNavHeader]` MANDA sobre `title`, y `title`\n se oculta al colapsar (ambas condiciones viven en `showTitle()`).\n El `ng-content` va en un \u00FAnico `@if` (nunca anidado): con `@if` anidados el\n compilador solo iza el atributo `select` un nivel y la proyecci\u00F3n fallar\u00EDa en\n silencio.\n-->\n@if (headerRef() || showTitle()) {\n <div class=\"ius-settings-nav__header\">\n <ng-content select=\"[iusSettingsNavHeader]\" />\n @if (showTitle()) {\n <div class=\"ius-settings-nav__title\">{{ title() }}</div>\n }\n </div>\n}\n\n<!-- Columna de filas: NO scrollea (priority+ recoge lo que no cabe). -->\n<div class=\"ius-settings-nav__items\" #wrap>\n @for (it of visibleItems(); track it.id) {\n <ng-container [ngTemplateOutlet]=\"fila\" [ngTemplateOutletContext]=\"{ it: it }\" />\n }\n\n <!-- Desborde: lo que no cabe en alto se recoge en un Popover a la derecha. -->\n @if (hasOverflow()) {\n <ius-popover\n [open]=\"moreOpen()\"\n trigger=\"click\"\n placement=\"right-start\"\n [showArrow]=\"false\"\n [offset]=\"8\"\n [dismissable]=\"true\"\n (openChange)=\"moreOpen.set($event)\"\n >\n @if (isCollapsed()) {\n <button\n type=\"button\"\n class=\"ius-settings-nav__cico\"\n [attr.data-selected]=\"anyHiddenSelected() ? 'true' : null\"\n [attr.aria-label]=\"overflowLabel()\"\n aria-haspopup=\"menu\"\n [attr.aria-expanded]=\"moreOpen()\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">more_horiz</span>\n @if (anyHiddenSelected()) {\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\n }\n </button>\n } @else {\n <ius-menu-item\n variant=\"rail\"\n [size]=\"size()\"\n icon=\"more_horiz\"\n [label]=\"overflowLabel()\"\n [selected]=\"anyHiddenSelected()\"\n [ariaLabel]=\"overflowLabel() + ' secciones'\"\n />\n }\n\n <!--\n Panel del desborde. Se estampa en el overlay del CDK (FUERA del host),\n as\u00ED que las variables de acento NO se heredan: se repiten en l\u00EDnea, tal\n como el golden repite `accentVars(accent)` en este mismo nodo.\n -->\n <div\n iusPopoverContent\n class=\"ius-settings-nav__pop\"\n role=\"menu\"\n [style.--_sn-fg]=\"accentFg()\"\n [style.--_sn-tint]=\"accentTint()\"\n >\n @for (it of hiddenItems(); track it.id) {\n <ius-menu-item\n variant=\"menu\"\n itemRole=\"menuitem\"\n [size]=\"size()\"\n [icon]=\"it.icon\"\n [label]=\"it.label\"\n [badge]=\"it.badge\"\n [selected]=\"it.id === selectedId()\"\n [disabled]=\"!!it.disabled\"\n [href]=\"it.href\"\n (clicked)=\"handleFromOverflow(it)\"\n />\n }\n </div>\n </ius-popover>\n }\n\n <!--\n Contenedor de MEDICI\u00D3N (priority+): clona TODAS las filas fuera de vista\n (`position: absolute` + `visibility: hidden`, as\u00ED que no aporta alto ni\n entra en el orden de tabulaci\u00F3n) y de ah\u00ED se leen los `offsetHeight`.\n Cada clon va envuelto en `__mrow` porque el host de `ius-menu-item` es\n `display: contents` y no generar\u00EDa caja que medir.\n -->\n <div class=\"ius-settings-nav__measure\" #meas aria-hidden=\"true\">\n @for (it of items(); track it.id) {\n <div class=\"ius-settings-nav__mrow\">\n <ng-container [ngTemplateOutlet]=\"fila\" [ngTemplateOutletContext]=\"{ it: it }\" />\n </div>\n }\n </div>\n</div>\n\n<!-- Pie: slot libre + bot\u00F3n propio de colapso, sobre una l\u00EDnea separadora. -->\n@if (hasFooter()) {\n <div class=\"ius-settings-nav__sep\"></div>\n <div class=\"ius-settings-nav__footer\">\n <ng-content select=\"[iusSettingsNavFooter]\" />\n\n @if (collapsible()) {\n @if (isCollapsed()) {\n <ius-tooltip [label]=\"toggleLabel()\" placement=\"right\">\n <button\n type=\"button\"\n class=\"ius-settings-nav__cico\"\n [attr.aria-label]=\"toggleLabel()\"\n aria-expanded=\"false\"\n (click)=\"toggleCollapsed()\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ toggleIcon() }}</span>\n </button>\n </ius-tooltip>\n } @else {\n <ius-menu-item\n variant=\"rail\"\n [size]=\"size()\"\n [icon]=\"toggleIcon()\"\n [label]=\"toggleLabel()\"\n [ariaLabel]=\"toggleLabel()\"\n (clicked)=\"toggleCollapsed()\"\n />\n }\n }\n </div>\n}\n\n<!--\n UNA sola plantilla de fila, estampada con `NgTemplateOutlet` en la columna\n visible y en el contenedor de medici\u00F3n. El contexto de un `ng-template` no\n est\u00E1 tipado, as\u00ED que `asItem()` le devuelve el tipo y `strictTemplates`\n vuelve a comprobar todo el cuerpo.\n-->\n<ng-template #fila let-raw=\"it\">\n @let it = asItem(raw);\n @let sel = it.id === selectedId();\n\n @if (isCollapsed()) {\n <!-- Colapsado: solo \u00EDcono; el nombre accesible lo dan Tooltip + aria-label. -->\n <ius-tooltip [label]=\"it.label\" placement=\"right\">\n @if (isLink(it)) {\n <a\n class=\"ius-settings-nav__cico\"\n [href]=\"it.href\"\n [attr.data-selected]=\"sel ? 'true' : null\"\n [attr.data-disabled]=\"it.disabled ? 'true' : null\"\n [attr.aria-current]=\"sel ? 'page' : null\"\n [attr.aria-label]=\"it.label\"\n (click)=\"handle(it)\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ it.icon }}</span>\n @if (it.badge) {\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\n }\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"ius-settings-nav__cico\"\n [disabled]=\"!it.href && !!it.disabled\"\n [attr.data-selected]=\"sel ? 'true' : null\"\n [attr.data-disabled]=\"it.disabled ? 'true' : null\"\n [attr.aria-current]=\"sel ? 'page' : null\"\n [attr.aria-label]=\"it.label\"\n (click)=\"handle(it)\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ it.icon }}</span>\n @if (it.badge) {\n <span class=\"ius-settings-nav__cico-badge\" aria-hidden=\"true\"></span>\n }\n </button>\n }\n </ius-tooltip>\n } @else {\n <!-- Expandido: la fila ES un MenuItem `rail` (idle/hover/pressed heredados). -->\n <ius-menu-item\n variant=\"rail\"\n [size]=\"size()\"\n [icon]=\"it.icon\"\n [label]=\"it.label\"\n [badge]=\"it.badge\"\n [selected]=\"sel\"\n [disabled]=\"!!it.disabled\"\n [href]=\"it.href\"\n (clicked)=\"handle(it)\"\n />\n }\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;width:var(--_sn-w, 240px);min-width:var(--_sn-w, 240px);height:100%;background:var(--ius-surface-card);border-right:1px solid var(--ius-stroke);padding:var(--ius-space-sm) var(--ius-space-xs);gap:var(--ius-space-xxs);font-family:var(--ius-font-body)}:host([data-collapsed=true]){width:var(--_sn-wc, 64px);min-width:var(--_sn-wc, 64px)}.ius-settings-nav__header{flex:0 0 auto;padding:var(--ius-space-xs) var(--ius-space-xs) var(--ius-space-sm);min-height:0}.ius-settings-nav__title{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:1.2;text-transform:uppercase;letter-spacing:.04em;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-settings-nav__items{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs);overflow:hidden;position:relative}.ius-settings-nav__measure{position:absolute;top:0;left:0;right:0;visibility:hidden;pointer-events:none;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-settings-nav__mrow{display:flex;flex-direction:column}.ius-settings-nav__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-settings-nav__sep{height:1px;background:var(--ius-stroke);margin:var(--ius-space-xs) var(--ius-space-xs);flex:0 0 auto}:host ::ng-deep .ius-menuitem[data-variant=rail]{--_mi-icon: var(--ius-neutral-8)}:host ::ng-deep .ius-menuitem[data-variant=rail][data-selected=true]{background:var(--_sn-tint);--_mi-icon: var(--_sn-fg)}:host ::ng-deep .ius-menuitem[data-variant=rail][data-selected=true] .ius-menuitem__label{color:var(--_sn-fg)}:host ::ng-deep ius-tooltip{align-items:stretch}:host ::ng-deep ius-tooltip>ius-popover{flex:1 1 auto;min-width:0;align-items:stretch}.ius-settings-nav__cico{appearance:none;border:0;background:transparent;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:var(--_sn-cico-h, var(--ius-hit-target-min));border-radius:var(--ius-radius-md);color:var(--ius-neutral-8);text-decoration:none;transition:background var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-settings-nav__cico:hover{background:var(--ius-neutral-2)}.ius-settings-nav__cico:active{background:var(--ius-neutral-3)}.ius-settings-nav__cico:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}.ius-settings-nav__cico[data-disabled=true]{opacity:.5;pointer-events:none;cursor:default}.ius-settings-nav__cico[data-selected=true]{background:var(--_sn-tint);color:var(--_sn-fg)}.ius-settings-nav__cico .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-settings-nav__cico-badge{position:absolute;top:7px;right:12px;width:8px;height:8px;border-radius:var(--ius-radius-pill);background:var(--ius-info-500);box-shadow:0 0 0 2px var(--ius-surface-card)}.ius-settings-nav__pop{display:flex;flex-direction:column;gap:var(--ius-space-xxs);min-width:208px;padding:var(--ius-space-xxs)}.ius-settings-nav__pop ::ng-deep .ius-menuitem[data-variant=menu][data-selected=true]{background:var(--_sn-tint);--_mi-icon: var(--_sn-fg)}.ius-settings-nav__pop ::ng-deep .ius-menuitem[data-variant=menu][data-selected=true] .ius-menuitem__label{color:var(--_sn-fg)}\n"] }]
12325
12325
  }], ctorParameters: () => [], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], selectedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedId", required: false }] }], accent: [{ type: i0.Input, args: [{ isSignal: true, alias: "accent", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }], defaultCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultCollapsed", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], overflowLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflowLabel", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], selectedIdChange: [{ type: i0.Output, args: ["selectedIdChange"] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }], collapsedChange: [{ type: i0.Output, args: ["collapsedChange"] }], headerRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusSettingsNavHeaderDirective), { isSignal: true }] }], footerRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusSettingsNavFooterDirective), { isSignal: true }] }], wrapRef: [{ type: i0.ViewChild, args: ['wrap', { isSignal: true }] }], measRef: [{ type: i0.ViewChild, args: ['meas', { isSignal: true }] }] } });
12326
12326
 
12327
12327
  /** Ícono por defecto según el tono (mapa `DEFAULT_ICON` del golden). */
@@ -14198,7 +14198,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
14198
14198
  * PageHeader — Ius Design v2 (familia navigation).
14199
14199
  *
14200
14200
  * Encabezado **de la vista** dentro del `main`: [breadcrumb/volver] ·
14201
- * overline · título (h1/h2/h3) + subtítulo · acciones · [toolbar] ·
14201
+ * overline · título (h1…h5) + subtítulo · acciones · [toolbar] ·
14202
14202
  * [divider/surface]. Cáscara por slots: no conoce datos. Fuente de verdad:
14203
14203
  * `PageHeader.jsx` + `PageHeader.d.ts` + `PageHeader.ng-spec.md`.
14204
14204
  *
@@ -14212,6 +14212,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
14212
14212
  * `title`/`subtitle`/`overline` son proyección en el contrato (nodos): cada
14213
14213
  * uno acepta el input de texto O contenido proyectado con su directiva
14214
14214
  * (`iusPageHeaderTitle`…), como ListCard. El input, si viene, manda.
14215
+ *
14216
+ * `density="compact"`: paddings/gaps reducidos, subtítulo tenue (fs-sm,
14217
+ * text-tertiary), `titleLevel` `h4` por defecto y `--ius-control-size: small`
14218
+ * para los controles proyectados. Objetivo: encabezado de detalle ≤ ~140px.
14215
14219
  */
14216
14220
  class PageHeaderComponent {
14217
14221
  constructor() {
@@ -14224,9 +14228,15 @@ class PageHeaderComponent {
14224
14228
  /** Categoría / sección sobre el título (mayúsculas). */
14225
14229
  this.overline = input(/* @ts-ignore */
14226
14230
  ...(ngDevMode ? [undefined, { debugName: "overline" }] : /* istanbul ignore next */ []));
14227
- /** Nivel tipográfico del título. */
14228
- this.titleLevel = input('h3', /* @ts-ignore */
14229
- ...(ngDevMode ? [{ debugName: "titleLevel" }] : /* istanbul ignore next */ []));
14231
+ /**
14232
+ * Nivel tipográfico del título. Si se omite, es `h3` en densidad `default`
14233
+ * y `h4` en `compact` (igual que el golden).
14234
+ */
14235
+ this.titleLevel = input(/* @ts-ignore */
14236
+ ...(ngDevMode ? [undefined, { debugName: "titleLevel" }] : /* istanbul ignore next */ []));
14237
+ /** Densidad del encabezado. Default `default` (comportamiento histórico). */
14238
+ this.density = input('default', /* @ts-ignore */
14239
+ ...(ngDevMode ? [{ debugName: "density" }] : /* istanbul ignore next */ []));
14230
14240
  /** Muestra la flecha de volver (leading). */
14231
14241
  this.showBack = input(false, { ...(ngDevMode ? { debugName: "showBack" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
14232
14242
  /** Texto accesible de la flecha de volver. */
@@ -14262,12 +14272,15 @@ class PageHeaderComponent {
14262
14272
  ...(ngDevMode ? [{ debugName: "hasTitleSlot" }] : /* istanbul ignore next */ []));
14263
14273
  this.hasSubtitleSlot = computed(() => !!this.subtitleRef(), /* @ts-ignore */
14264
14274
  ...(ngDevMode ? [{ debugName: "hasSubtitleSlot" }] : /* istanbul ignore next */ []));
14275
+ /** Nivel efectivo del título: el input manda; si no, `h3`/`h4` según densidad. */
14276
+ this.titleLevelEfectivo = computed(() => this.titleLevel() ?? (this.density() === 'compact' ? 'h4' : 'h3'), /* @ts-ignore */
14277
+ ...(ngDevMode ? [{ debugName: "titleLevelEfectivo" }] : /* istanbul ignore next */ []));
14265
14278
  /** Volver es leading: si hay breadcrumb, encabeza esa fila. */
14266
14279
  this.backInBreadcrumb = computed(() => this.showBack() && this.hasBreadcrumb(), /* @ts-ignore */
14267
14280
  ...(ngDevMode ? [{ debugName: "backInBreadcrumb" }] : /* istanbul ignore next */ []));
14268
14281
  }
14269
14282
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14270
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: PageHeaderComponent, isStandalone: true, selector: "ius-page-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, overline: { classPropertyName: "overline", publicName: "overline", isSignal: true, isRequired: false, transformFunction: null }, titleLevel: { classPropertyName: "titleLevel", publicName: "titleLevel", isSignal: true, isRequired: false, transformFunction: null }, showBack: { classPropertyName: "showBack", publicName: "showBack", isSignal: true, isRequired: false, transformFunction: null }, backLabel: { classPropertyName: "backLabel", publicName: "backLabel", isSignal: true, isRequired: false, transformFunction: null }, divider: { classPropertyName: "divider", publicName: "divider", isSignal: true, isRequired: false, transformFunction: null }, surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back" }, host: { properties: { "attr.data-divider": "divider() ? 'true' : null", "attr.data-surface": "surface() ? 'true' : null" }, classAttribute: "ius-pageheader" }, queries: [{ propertyName: "breadcrumbRef", first: true, predicate: IusPageHeaderBreadcrumbDirective, descendants: true, isSignal: true }, { propertyName: "actionsRef", first: true, predicate: IusPageHeaderActionsDirective, descendants: true, isSignal: true }, { propertyName: "toolbarRef", first: true, predicate: IusPageHeaderToolbarDirective, descendants: true, isSignal: true }, { propertyName: "overlineRef", first: true, predicate: IusPageHeaderOverlineDirective, descendants: true, isSignal: true }, { propertyName: "titleRef", first: true, predicate: IusPageHeaderTitleDirective, descendants: true, isSignal: true }, { propertyName: "subtitleRef", first: true, predicate: IusPageHeaderSubtitleDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Fila de breadcrumb (solo detalle); volver la encabeza si existe -->\r\n@if (hasBreadcrumb()) {\r\n <div class=\"ius-pageheader__bc\">\r\n @if (backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <ng-content select=\"[iusPageHeaderBreadcrumb]\" />\r\n </div>\r\n}\r\n\r\n<div class=\"ius-pageheader__top\">\r\n <div class=\"ius-pageheader__lead\">\r\n @if (showBack() && !backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <div class=\"ius-pageheader__titles\">\r\n <!-- Cada pieza: input de texto \u203A contenido proyectado con su directiva -->\r\n @if (overline() != null || hasOverlineSlot()) {\r\n <span class=\"ius-pageheader__overline\">\r\n @if (overline() != null) {\r\n {{ overline() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderOverline]\" />\r\n }\r\n </span>\r\n }\r\n @if (title() != null || hasTitleSlot()) {\r\n <h1 class=\"ius-pageheader__title\" [class]=\"'ius-' + titleLevel()\">\r\n @if (title() != null) {\r\n {{ title() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderTitle]\" />\r\n }\r\n </h1>\r\n }\r\n @if (subtitle() != null || hasSubtitleSlot()) {\r\n <p class=\"ius-pageheader__subtitle\">\r\n @if (subtitle() != null) {\r\n {{ subtitle() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderSubtitle]\" />\r\n }\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n @if (hasActions()) {\r\n <div class=\"ius-pageheader__actions\"><ng-content select=\"[iusPageHeaderActions]\" /></div>\r\n }\r\n</div>\r\n\r\n@if (hasToolbar()) {\r\n <div class=\"ius-pageheader__toolbar\"><ng-content select=\"[iusPageHeaderToolbar]\" /></div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs)}:host([data-surface=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);padding:var(--ius-space-md) var(--ius-space-lg)}:host([data-divider=true]){border-bottom:1px solid var(--ius-stroke);padding-bottom:var(--ius-space-sm)}.ius-pageheader__bc{min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-pageheader__bc .ius-pageheader__back{margin-top:0}.ius-pageheader__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ius-space-lg)}.ius-pageheader__lead{display:flex;align-items:flex-start;gap:var(--ius-space-sm);min-width:0}.ius-pageheader__back{flex:0 0 auto}.ius-pageheader__titles{min-width:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-pageheader__overline{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);line-height:var(--ius-lh-sm);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-pageheader__title{margin:0}.ius-pageheader__subtitle{margin:0;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-pageheader__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-pageheader__toolbar{display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14283
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: PageHeaderComponent, isStandalone: true, selector: "ius-page-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, overline: { classPropertyName: "overline", publicName: "overline", isSignal: true, isRequired: false, transformFunction: null }, titleLevel: { classPropertyName: "titleLevel", publicName: "titleLevel", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null }, showBack: { classPropertyName: "showBack", publicName: "showBack", isSignal: true, isRequired: false, transformFunction: null }, backLabel: { classPropertyName: "backLabel", publicName: "backLabel", isSignal: true, isRequired: false, transformFunction: null }, divider: { classPropertyName: "divider", publicName: "divider", isSignal: true, isRequired: false, transformFunction: null }, surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back" }, host: { properties: { "attr.data-divider": "divider() ? 'true' : null", "attr.data-surface": "surface() ? 'true' : null", "attr.data-density": "density() === 'compact' ? 'compact' : null" }, classAttribute: "ius-pageheader" }, queries: [{ propertyName: "breadcrumbRef", first: true, predicate: IusPageHeaderBreadcrumbDirective, descendants: true, isSignal: true }, { propertyName: "actionsRef", first: true, predicate: IusPageHeaderActionsDirective, descendants: true, isSignal: true }, { propertyName: "toolbarRef", first: true, predicate: IusPageHeaderToolbarDirective, descendants: true, isSignal: true }, { propertyName: "overlineRef", first: true, predicate: IusPageHeaderOverlineDirective, descendants: true, isSignal: true }, { propertyName: "titleRef", first: true, predicate: IusPageHeaderTitleDirective, descendants: true, isSignal: true }, { propertyName: "subtitleRef", first: true, predicate: IusPageHeaderSubtitleDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Fila de breadcrumb (solo detalle); volver la encabeza si existe -->\r\n@if (hasBreadcrumb()) {\r\n <div class=\"ius-pageheader__bc\">\r\n @if (backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <ng-content select=\"[iusPageHeaderBreadcrumb]\" />\r\n </div>\r\n}\r\n\r\n<div class=\"ius-pageheader__top\">\r\n <div class=\"ius-pageheader__lead\">\r\n @if (showBack() && !backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <div class=\"ius-pageheader__titles\">\r\n <!-- Cada pieza: input de texto \u203A contenido proyectado con su directiva -->\r\n @if (overline() != null || hasOverlineSlot()) {\r\n <span class=\"ius-pageheader__overline\">\r\n @if (overline() != null) {\r\n {{ overline() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderOverline]\" />\r\n }\r\n </span>\r\n }\r\n @if (title() != null || hasTitleSlot()) {\r\n <h1 class=\"ius-pageheader__title\" [class]=\"'ius-' + titleLevelEfectivo()\">\r\n @if (title() != null) {\r\n {{ title() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderTitle]\" />\r\n }\r\n </h1>\r\n }\r\n @if (subtitle() != null || hasSubtitleSlot()) {\r\n <p class=\"ius-pageheader__subtitle\">\r\n @if (subtitle() != null) {\r\n {{ subtitle() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderSubtitle]\" />\r\n }\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n @if (hasActions()) {\r\n <div class=\"ius-pageheader__actions\"><ng-content select=\"[iusPageHeaderActions]\" /></div>\r\n }\r\n</div>\r\n\r\n@if (hasToolbar()) {\r\n <div class=\"ius-pageheader__toolbar\"><ng-content select=\"[iusPageHeaderToolbar]\" /></div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs)}:host([data-surface=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);padding:var(--ius-space-md) var(--ius-space-lg)}:host([data-divider=true]){border-bottom:1px solid var(--ius-stroke);padding-bottom:var(--ius-space-sm)}.ius-pageheader__bc{min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-pageheader__bc .ius-pageheader__back{margin-top:0}.ius-pageheader__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ius-space-lg)}.ius-pageheader__lead{display:flex;align-items:flex-start;gap:var(--ius-space-sm);min-width:0}.ius-pageheader__back{flex:0 0 auto}.ius-pageheader__titles{min-width:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-pageheader__overline{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);line-height:var(--ius-lh-sm);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-pageheader__title{margin:0}.ius-pageheader__subtitle{margin:0;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-pageheader__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-pageheader__toolbar{display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:wrap}:host([data-density=compact]){--ius-control-size: small;gap:0}:host([data-density=compact]) .ius-pageheader__bc{line-height:var(--ius-lh-sm)}:host([data-density=compact]) .ius-pageheader__top{align-items:center;gap:var(--ius-space-sm)}:host([data-density=compact]) .ius-pageheader__lead{align-items:center;gap:var(--ius-space-xs)}:host([data-density=compact]) .ius-pageheader__titles{gap:0}:host([data-density=compact]) .ius-pageheader__overline{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm)}:host([data-density=compact]) .ius-pageheader__subtitle{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}:host([data-density=compact][data-surface=true]){padding:var(--ius-space-xs) var(--ius-space-md)}:host([data-density=compact][data-divider=true]){padding-bottom:var(--ius-space-xs)}\n"], dependencies: [{ kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14271
14284
  }
14272
14285
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: PageHeaderComponent, decorators: [{
14273
14286
  type: Component,
@@ -14275,8 +14288,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
14275
14288
  class: 'ius-pageheader',
14276
14289
  '[attr.data-divider]': "divider() ? 'true' : null",
14277
14290
  '[attr.data-surface]': "surface() ? 'true' : null",
14278
- }, template: "<!-- Fila de breadcrumb (solo detalle); volver la encabeza si existe -->\r\n@if (hasBreadcrumb()) {\r\n <div class=\"ius-pageheader__bc\">\r\n @if (backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <ng-content select=\"[iusPageHeaderBreadcrumb]\" />\r\n </div>\r\n}\r\n\r\n<div class=\"ius-pageheader__top\">\r\n <div class=\"ius-pageheader__lead\">\r\n @if (showBack() && !backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <div class=\"ius-pageheader__titles\">\r\n <!-- Cada pieza: input de texto \u203A contenido proyectado con su directiva -->\r\n @if (overline() != null || hasOverlineSlot()) {\r\n <span class=\"ius-pageheader__overline\">\r\n @if (overline() != null) {\r\n {{ overline() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderOverline]\" />\r\n }\r\n </span>\r\n }\r\n @if (title() != null || hasTitleSlot()) {\r\n <h1 class=\"ius-pageheader__title\" [class]=\"'ius-' + titleLevel()\">\r\n @if (title() != null) {\r\n {{ title() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderTitle]\" />\r\n }\r\n </h1>\r\n }\r\n @if (subtitle() != null || hasSubtitleSlot()) {\r\n <p class=\"ius-pageheader__subtitle\">\r\n @if (subtitle() != null) {\r\n {{ subtitle() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderSubtitle]\" />\r\n }\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n @if (hasActions()) {\r\n <div class=\"ius-pageheader__actions\"><ng-content select=\"[iusPageHeaderActions]\" /></div>\r\n }\r\n</div>\r\n\r\n@if (hasToolbar()) {\r\n <div class=\"ius-pageheader__toolbar\"><ng-content select=\"[iusPageHeaderToolbar]\" /></div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs)}:host([data-surface=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);padding:var(--ius-space-md) var(--ius-space-lg)}:host([data-divider=true]){border-bottom:1px solid var(--ius-stroke);padding-bottom:var(--ius-space-sm)}.ius-pageheader__bc{min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-pageheader__bc .ius-pageheader__back{margin-top:0}.ius-pageheader__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ius-space-lg)}.ius-pageheader__lead{display:flex;align-items:flex-start;gap:var(--ius-space-sm);min-width:0}.ius-pageheader__back{flex:0 0 auto}.ius-pageheader__titles{min-width:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-pageheader__overline{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);line-height:var(--ius-lh-sm);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-pageheader__title{margin:0}.ius-pageheader__subtitle{margin:0;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-pageheader__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-pageheader__toolbar{display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:wrap}\n"] }]
14279
- }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], overline: [{ type: i0.Input, args: [{ isSignal: true, alias: "overline", required: false }] }], titleLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleLevel", required: false }] }], showBack: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBack", required: false }] }], backLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "backLabel", required: false }] }], divider: [{ type: i0.Input, args: [{ isSignal: true, alias: "divider", required: false }] }], surface: [{ type: i0.Input, args: [{ isSignal: true, alias: "surface", required: false }] }], back: [{ type: i0.Output, args: ["back"] }], breadcrumbRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderBreadcrumbDirective), { isSignal: true }] }], actionsRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderActionsDirective), { isSignal: true }] }], toolbarRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderToolbarDirective), { isSignal: true }] }], overlineRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderOverlineDirective), { isSignal: true }] }], titleRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderTitleDirective), { isSignal: true }] }], subtitleRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderSubtitleDirective), { isSignal: true }] }] } });
14291
+ '[attr.data-density]': "density() === 'compact' ? 'compact' : null",
14292
+ }, template: "<!-- Fila de breadcrumb (solo detalle); volver la encabeza si existe -->\r\n@if (hasBreadcrumb()) {\r\n <div class=\"ius-pageheader__bc\">\r\n @if (backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <ng-content select=\"[iusPageHeaderBreadcrumb]\" />\r\n </div>\r\n}\r\n\r\n<div class=\"ius-pageheader__top\">\r\n <div class=\"ius-pageheader__lead\">\r\n @if (showBack() && !backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <div class=\"ius-pageheader__titles\">\r\n <!-- Cada pieza: input de texto \u203A contenido proyectado con su directiva -->\r\n @if (overline() != null || hasOverlineSlot()) {\r\n <span class=\"ius-pageheader__overline\">\r\n @if (overline() != null) {\r\n {{ overline() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderOverline]\" />\r\n }\r\n </span>\r\n }\r\n @if (title() != null || hasTitleSlot()) {\r\n <h1 class=\"ius-pageheader__title\" [class]=\"'ius-' + titleLevelEfectivo()\">\r\n @if (title() != null) {\r\n {{ title() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderTitle]\" />\r\n }\r\n </h1>\r\n }\r\n @if (subtitle() != null || hasSubtitleSlot()) {\r\n <p class=\"ius-pageheader__subtitle\">\r\n @if (subtitle() != null) {\r\n {{ subtitle() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderSubtitle]\" />\r\n }\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n @if (hasActions()) {\r\n <div class=\"ius-pageheader__actions\"><ng-content select=\"[iusPageHeaderActions]\" /></div>\r\n }\r\n</div>\r\n\r\n@if (hasToolbar()) {\r\n <div class=\"ius-pageheader__toolbar\"><ng-content select=\"[iusPageHeaderToolbar]\" /></div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs)}:host([data-surface=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);padding:var(--ius-space-md) var(--ius-space-lg)}:host([data-divider=true]){border-bottom:1px solid var(--ius-stroke);padding-bottom:var(--ius-space-sm)}.ius-pageheader__bc{min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-pageheader__bc .ius-pageheader__back{margin-top:0}.ius-pageheader__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ius-space-lg)}.ius-pageheader__lead{display:flex;align-items:flex-start;gap:var(--ius-space-sm);min-width:0}.ius-pageheader__back{flex:0 0 auto}.ius-pageheader__titles{min-width:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-pageheader__overline{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);line-height:var(--ius-lh-sm);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-pageheader__title{margin:0}.ius-pageheader__subtitle{margin:0;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-pageheader__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-pageheader__toolbar{display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:wrap}:host([data-density=compact]){--ius-control-size: small;gap:0}:host([data-density=compact]) .ius-pageheader__bc{line-height:var(--ius-lh-sm)}:host([data-density=compact]) .ius-pageheader__top{align-items:center;gap:var(--ius-space-sm)}:host([data-density=compact]) .ius-pageheader__lead{align-items:center;gap:var(--ius-space-xs)}:host([data-density=compact]) .ius-pageheader__titles{gap:0}:host([data-density=compact]) .ius-pageheader__overline{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm)}:host([data-density=compact]) .ius-pageheader__subtitle{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}:host([data-density=compact][data-surface=true]){padding:var(--ius-space-xs) var(--ius-space-md)}:host([data-density=compact][data-divider=true]){padding-bottom:var(--ius-space-xs)}\n"] }]
14293
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], overline: [{ type: i0.Input, args: [{ isSignal: true, alias: "overline", required: false }] }], titleLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleLevel", required: false }] }], density: [{ type: i0.Input, args: [{ isSignal: true, alias: "density", required: false }] }], showBack: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBack", required: false }] }], backLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "backLabel", required: false }] }], divider: [{ type: i0.Input, args: [{ isSignal: true, alias: "divider", required: false }] }], surface: [{ type: i0.Input, args: [{ isSignal: true, alias: "surface", required: false }] }], back: [{ type: i0.Output, args: ["back"] }], breadcrumbRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderBreadcrumbDirective), { isSignal: true }] }], actionsRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderActionsDirective), { isSignal: true }] }], toolbarRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderToolbarDirective), { isSignal: true }] }], overlineRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderOverlineDirective), { isSignal: true }] }], titleRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderTitleDirective), { isSignal: true }] }], subtitleRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderSubtitleDirective), { isSignal: true }] }] } });
14280
14294
 
14281
14295
  let uid$8 = 0;
14282
14296
  /** `min`/`max`/`step` llegan como número o como atributo de texto; vacío = sin valor.
@@ -15207,7 +15221,7 @@ class SparklineComponent {
15207
15221
  ...(ngDevMode ? [{ debugName: "bars" }] : /* istanbul ignore next */ []));
15208
15222
  }
15209
15223
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SparklineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SparklineComponent, isStandalone: true, selector: "ius-sparkline", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, trend: { classPropertyName: "trend", publicName: "trend", isSignal: true, isRequired: false, transformFunction: null }, area: { classPropertyName: "area", publicName: "area", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: "strokeWidth", publicName: "strokeWidth", isSignal: true, isRequired: false, transformFunction: null }, showDot: { classPropertyName: "showDot", publicName: "showDot", 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 }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.width.px": "width()", "style.height.px": "height()" }, classAttribute: "ius-spark" }, ngImport: i0, template: "<!-- Sin datos el golden deja el span vac\u00EDo con su caja (width/height van en el host). -->\n@if (hasData()) {\n <svg\n class=\"ius-spark__svg\"\n [attr.width]=\"width()\"\n [attr.height]=\"height()\"\n [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n >\n @if (variant() === 'bar') {\n <g>\n @for (b of bars(); track $index) {\n <rect\n [attr.x]=\"b.x\"\n [attr.y]=\"b.y\"\n [attr.width]=\"b.w\"\n [attr.height]=\"b.h\"\n [attr.rx]=\"b.rx\"\n [attr.fill]=\"color()\"\n [attr.fill-opacity]=\"b.opacity\"\n />\n }\n </g>\n } @else {\n <g>\n @if (area()) {\n <defs>\n <linearGradient [attr.id]=\"gid\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.24\" />\n <stop offset=\"100%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.02\" />\n </linearGradient>\n </defs>\n <path [attr.d]=\"dArea()\" [attr.fill]=\"'url(#' + gid + ')'\" />\n }\n <path class=\"ius-spark__line\" [attr.d]=\"dLine()\" [attr.stroke]=\"color()\" [attr.stroke-width]=\"strokeWidth()\" />\n @if (showDot()) {\n @if (last(); as p) {\n <circle class=\"ius-spark__dot\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" [attr.r]=\"dotR()\" [attr.fill]=\"color()\" stroke-width=\"1\" />\n }\n }\n </g>\n }\n </svg>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;line-height:0;vertical-align:middle;-webkit-user-select:none;user-select:none}.ius-spark__svg{display:block;overflow:visible}.ius-spark__line{fill:none;stroke-linecap:round;stroke-linejoin:round}.ius-spark__dot{stroke:var(--ius-surface-card)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15224
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SparklineComponent, isStandalone: true, selector: "ius-sparkline", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, trend: { classPropertyName: "trend", publicName: "trend", isSignal: true, isRequired: false, transformFunction: null }, area: { classPropertyName: "area", publicName: "area", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: "strokeWidth", publicName: "strokeWidth", isSignal: true, isRequired: false, transformFunction: null }, showDot: { classPropertyName: "showDot", publicName: "showDot", 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 }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.width.px": "width()", "style.height.px": "height()" }, classAttribute: "ius-spark" }, ngImport: i0, template: "<!-- Sin datos el golden deja el span vac\u00EDo con su caja (width/height van en el host). -->\r\n@if (hasData()) {\r\n <svg\r\n class=\"ius-spark__svg\"\r\n [attr.width]=\"width()\"\r\n [attr.height]=\"height()\"\r\n [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n >\r\n @if (variant() === 'bar') {\r\n <g>\r\n @for (b of bars(); track $index) {\r\n <rect\r\n [attr.x]=\"b.x\"\r\n [attr.y]=\"b.y\"\r\n [attr.width]=\"b.w\"\r\n [attr.height]=\"b.h\"\r\n [attr.rx]=\"b.rx\"\r\n [attr.fill]=\"color()\"\r\n [attr.fill-opacity]=\"b.opacity\"\r\n />\r\n }\r\n </g>\r\n } @else {\r\n <g>\r\n @if (area()) {\r\n <defs>\r\n <linearGradient [attr.id]=\"gid\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.24\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.02\" />\r\n </linearGradient>\r\n </defs>\r\n <path [attr.d]=\"dArea()\" [attr.fill]=\"'url(#' + gid + ')'\" />\r\n }\r\n <path class=\"ius-spark__line\" [attr.d]=\"dLine()\" [attr.stroke]=\"color()\" [attr.stroke-width]=\"strokeWidth()\" />\r\n @if (showDot()) {\r\n @if (last(); as p) {\r\n <circle class=\"ius-spark__dot\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" [attr.r]=\"dotR()\" [attr.fill]=\"color()\" stroke-width=\"1\" />\r\n }\r\n }\r\n </g>\r\n }\r\n </svg>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;line-height:0;vertical-align:middle;-webkit-user-select:none;user-select:none}.ius-spark__svg{display:block;overflow:visible}.ius-spark__line{fill:none;stroke-linecap:round;stroke-linejoin:round}.ius-spark__dot{stroke:var(--ius-surface-card)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15211
15225
  }
15212
15226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SparklineComponent, decorators: [{
15213
15227
  type: Component,
@@ -15215,7 +15229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
15215
15229
  class: 'ius-spark',
15216
15230
  '[style.width.px]': 'width()',
15217
15231
  '[style.height.px]': 'height()',
15218
- }, template: "<!-- Sin datos el golden deja el span vac\u00EDo con su caja (width/height van en el host). -->\n@if (hasData()) {\n <svg\n class=\"ius-spark__svg\"\n [attr.width]=\"width()\"\n [attr.height]=\"height()\"\n [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n >\n @if (variant() === 'bar') {\n <g>\n @for (b of bars(); track $index) {\n <rect\n [attr.x]=\"b.x\"\n [attr.y]=\"b.y\"\n [attr.width]=\"b.w\"\n [attr.height]=\"b.h\"\n [attr.rx]=\"b.rx\"\n [attr.fill]=\"color()\"\n [attr.fill-opacity]=\"b.opacity\"\n />\n }\n </g>\n } @else {\n <g>\n @if (area()) {\n <defs>\n <linearGradient [attr.id]=\"gid\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.24\" />\n <stop offset=\"100%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.02\" />\n </linearGradient>\n </defs>\n <path [attr.d]=\"dArea()\" [attr.fill]=\"'url(#' + gid + ')'\" />\n }\n <path class=\"ius-spark__line\" [attr.d]=\"dLine()\" [attr.stroke]=\"color()\" [attr.stroke-width]=\"strokeWidth()\" />\n @if (showDot()) {\n @if (last(); as p) {\n <circle class=\"ius-spark__dot\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" [attr.r]=\"dotR()\" [attr.fill]=\"color()\" stroke-width=\"1\" />\n }\n }\n </g>\n }\n </svg>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;line-height:0;vertical-align:middle;-webkit-user-select:none;user-select:none}.ius-spark__svg{display:block;overflow:visible}.ius-spark__line{fill:none;stroke-linecap:round;stroke-linejoin:round}.ius-spark__dot{stroke:var(--ius-surface-card)}\n"] }]
15232
+ }, template: "<!-- Sin datos el golden deja el span vac\u00EDo con su caja (width/height van en el host). -->\r\n@if (hasData()) {\r\n <svg\r\n class=\"ius-spark__svg\"\r\n [attr.width]=\"width()\"\r\n [attr.height]=\"height()\"\r\n [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n >\r\n @if (variant() === 'bar') {\r\n <g>\r\n @for (b of bars(); track $index) {\r\n <rect\r\n [attr.x]=\"b.x\"\r\n [attr.y]=\"b.y\"\r\n [attr.width]=\"b.w\"\r\n [attr.height]=\"b.h\"\r\n [attr.rx]=\"b.rx\"\r\n [attr.fill]=\"color()\"\r\n [attr.fill-opacity]=\"b.opacity\"\r\n />\r\n }\r\n </g>\r\n } @else {\r\n <g>\r\n @if (area()) {\r\n <defs>\r\n <linearGradient [attr.id]=\"gid\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.24\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.02\" />\r\n </linearGradient>\r\n </defs>\r\n <path [attr.d]=\"dArea()\" [attr.fill]=\"'url(#' + gid + ')'\" />\r\n }\r\n <path class=\"ius-spark__line\" [attr.d]=\"dLine()\" [attr.stroke]=\"color()\" [attr.stroke-width]=\"strokeWidth()\" />\r\n @if (showDot()) {\r\n @if (last(); as p) {\r\n <circle class=\"ius-spark__dot\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" [attr.r]=\"dotR()\" [attr.fill]=\"color()\" stroke-width=\"1\" />\r\n }\r\n }\r\n </g>\r\n }\r\n </svg>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;line-height:0;vertical-align:middle;-webkit-user-select:none;user-select:none}.ius-spark__svg{display:block;overflow:visible}.ius-spark__line{fill:none;stroke-linecap:round;stroke-linejoin:round}.ius-spark__dot{stroke:var(--ius-surface-card)}\n"] }]
15219
15233
  }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], trend: [{ type: i0.Input, args: [{ isSignal: true, alias: "trend", required: false }] }], area: [{ type: i0.Input, args: [{ isSignal: true, alias: "area", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], strokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "strokeWidth", required: false }] }], showDot: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDot", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
15220
15234
 
15221
15235
  let uid$4 = 0;
@@ -15636,7 +15650,7 @@ class LineChartComponent {
15636
15650
  this.animations = [];
15637
15651
  }
15638
15652
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LineChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15639
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: LineChartComponent, isStandalone: true, selector: "ius-line-chart", inputs: { categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, aspectRatio: { classPropertyName: "aspectRatio", publicName: "aspectRatio", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, yAxisWidth: { classPropertyName: "yAxisWidth", publicName: "yAxisWidth", isSignal: true, isRequired: false, transformFunction: null }, showXAxis: { classPropertyName: "showXAxis", publicName: "showXAxis", isSignal: true, isRequired: false, transformFunction: null }, showYAxis: { classPropertyName: "showYAxis", publicName: "showYAxis", isSignal: true, isRequired: false, transformFunction: null }, showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, yTicks: { classPropertyName: "yTicks", publicName: "yTicks", isSignal: true, isRequired: false, transformFunction: null }, yMin: { classPropertyName: "yMin", publicName: "yMin", isSignal: true, isRequired: false, transformFunction: null }, yMax: { classPropertyName: "yMax", publicName: "yMax", isSignal: true, isRequired: false, transformFunction: null }, area: { classPropertyName: "area", publicName: "area", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, showPoints: { classPropertyName: "showPoints", publicName: "showPoints", isSignal: true, isRequired: false, transformFunction: null }, showValueLabels: { classPropertyName: "showValueLabels", publicName: "showValueLabels", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, xFormat: { classPropertyName: "xFormat", publicName: "xFormat", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: true, isRequired: false, transformFunction: null }, emptyTitle: { classPropertyName: "emptyTitle", publicName: "emptyTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyDescription: { classPropertyName: "emptyDescription", publicName: "emptyDescription", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-animate": "animate() && !loading() ? 'true' : 'false'", "style.width.px": "width() ?? null" }, classAttribute: "ius-chart" }, ngImport: i0, template: "@if (!loading() && !hasData()) {\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\n <div class=\"ius-chart__block\" [style.height.px]=\"frame().H\">\n @if (emptyTemplate(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\n }\n </div>\n} @else {\n @if (legendOn() && !loading()) {\n <div class=\"ius-chart__legend\">\n @for (l of lines(); track l.key) {\n <span class=\"ius-chart__leg\">\n <span class=\"ius-chart__dot\" [style.background]=\"l.color\"></span>\n {{ l.label }}\n </span>\n }\n </div>\n }\n\n <div class=\"ius-chart__plot\">\n <svg\n class=\"ius-chart__svg\"\n [attr.viewBox]=\"viewBox()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n (mousemove)=\"onMove($event)\"\n (mouseleave)=\"onLeave()\"\n >\n <defs>\n @for (l of lines(); track l.key) {\n <linearGradient [attr.id]=\"l.gradId\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.22\" />\n <stop offset=\"100%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.02\" />\n </linearGradient>\n }\n </defs>\n\n <!-- grilla -->\n @if (showGrid() && !loading()) {\n <g class=\"ius-chart__grid\">\n @for (y of gridYs(); track $index) {\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"y\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"y\" />\n }\n </g>\n }\n\n <!-- eje Y -->\n @if (showYAxis()) {\n <g class=\"ius-chart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\n @for (t of yTickItems(); track $index) {\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.y\">{{ t.text }}</text>\n }\n </g>\n }\n\n <!-- skeleton -->\n @if (loading()) {\n <g>\n <rect\n class=\"ius-chart__skel\"\n [attr.x]=\"frame().mL\"\n [attr.y]=\"frame().mT\"\n [attr.width]=\"frame().innerW\"\n [attr.height]=\"frame().innerH\"\n rx=\"8\"\n opacity=\"0.5\"\n />\n <path class=\"ius-chart__skel--line\" [attr.d]=\"skeletonPath()\" />\n </g>\n }\n\n <!-- \u00E1reas + l\u00EDneas -->\n @if (!loading()) {\n @for (l of lines(); track l.key) {\n <g>\n @if (l.dArea) {\n <path class=\"ius-chart__area\" [attr.d]=\"l.dArea\" [attr.fill]=\"'url(#' + l.gradId + ')'\" />\n }\n <path class=\"ius-chart__line\" [attr.data-dashed]=\"l.dashed ? 'true' : null\" [attr.d]=\"l.dLine\" [attr.stroke]=\"l.color\" />\n @if (showPoints() === 'always') {\n @for (p of l.points; track $index) {\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"3.5\" [attr.fill]=\"l.color\" />\n }\n }\n </g>\n }\n }\n\n <!-- etiquetas de valor (1 serie recomendado) -->\n @if (!loading() && showValueLabels()) {\n @for (v of valueLabels(); track $index) {\n <text class=\"ius-chart__vlabel\" [attr.x]=\"v.x\" [attr.y]=\"v.y\">{{ v.text }}</text>\n }\n }\n\n <!-- gu\u00EDa vertical + puntos activos -->\n @if (activeMarks(); as am) {\n <g>\n <line class=\"ius-chart__guide\" [attr.x1]=\"am.x\" [attr.y1]=\"am.y1\" [attr.x2]=\"am.x\" [attr.y2]=\"am.y2\" />\n @for (p of am.points; track p.key) {\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"4.5\" [attr.fill]=\"p.color\" />\n }\n </g>\n }\n\n <!-- eje X -->\n @if (showXAxis() && !loading()) {\n <g class=\"ius-chart__xlabel\" text-anchor=\"middle\">\n <line\n class=\"ius-chart__axisline\"\n [attr.x1]=\"frame().mL\"\n [attr.y1]=\"frame().mT + frame().innerH\"\n [attr.x2]=\"frame().mL + frame().innerW\"\n [attr.y2]=\"frame().mT + frame().innerH\"\n />\n @for (x of xLabels(); track $index) {\n <text [attr.x]=\"x.x\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ x.text }}</text>\n }\n </g>\n }\n </svg>\n\n <!-- tooltip (HTML) -->\n @if (tooltip(); as tip) {\n <div class=\"ius-chart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\n <div class=\"ius-chart__tip-x\">{{ tip.title }}</div>\n @for (r of tip.rows; track r.key) {\n <div class=\"ius-chart__tip-row\">\n <span class=\"ius-chart__dot\" [style.background]=\"r.color\"></span>\n {{ r.label }}\n <b>{{ r.value }}</b>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-chart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-chart__plot{position:relative}.ius-chart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-chart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-chart__tick,.ius-chart__xlabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-chart__line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ius-chart__line[data-dashed=true]{stroke-dasharray:6 5}.ius-chart__pt{stroke:var(--ius-surface-card);stroke-width:2}.ius-chart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle}.ius-chart__guide{stroke:var(--ius-stroke-strong);stroke-width:1;stroke-dasharray:4 4}.ius-chart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-chart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-chart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-chart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-chart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-chart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-chart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-chart__skel{fill:var(--ius-neutral-2)}.ius-chart__skel--line{stroke:var(--ius-neutral-3);stroke-width:2;fill:none}.ius-chart__block{display:grid;place-items:center;min-height:160px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EmptyStateComponent, selector: "ius-empty-state", inputs: ["variant", "size", "tone", "icon", "illustration", "illustrationTemplate", "title", "description", "primaryAction", "secondaryAction", "actionsTemplate", "role"], outputs: ["primaryClick", "secondaryClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15653
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: LineChartComponent, isStandalone: true, selector: "ius-line-chart", inputs: { categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, aspectRatio: { classPropertyName: "aspectRatio", publicName: "aspectRatio", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, yAxisWidth: { classPropertyName: "yAxisWidth", publicName: "yAxisWidth", isSignal: true, isRequired: false, transformFunction: null }, showXAxis: { classPropertyName: "showXAxis", publicName: "showXAxis", isSignal: true, isRequired: false, transformFunction: null }, showYAxis: { classPropertyName: "showYAxis", publicName: "showYAxis", isSignal: true, isRequired: false, transformFunction: null }, showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, yTicks: { classPropertyName: "yTicks", publicName: "yTicks", isSignal: true, isRequired: false, transformFunction: null }, yMin: { classPropertyName: "yMin", publicName: "yMin", isSignal: true, isRequired: false, transformFunction: null }, yMax: { classPropertyName: "yMax", publicName: "yMax", isSignal: true, isRequired: false, transformFunction: null }, area: { classPropertyName: "area", publicName: "area", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, showPoints: { classPropertyName: "showPoints", publicName: "showPoints", isSignal: true, isRequired: false, transformFunction: null }, showValueLabels: { classPropertyName: "showValueLabels", publicName: "showValueLabels", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, xFormat: { classPropertyName: "xFormat", publicName: "xFormat", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: true, isRequired: false, transformFunction: null }, emptyTitle: { classPropertyName: "emptyTitle", publicName: "emptyTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyDescription: { classPropertyName: "emptyDescription", publicName: "emptyDescription", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-animate": "animate() && !loading() ? 'true' : 'false'", "style.width.px": "width() ?? null" }, classAttribute: "ius-chart" }, ngImport: i0, template: "@if (!loading() && !hasData()) {\r\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\r\n <div class=\"ius-chart__block\" [style.height.px]=\"frame().H\">\r\n @if (emptyTemplate(); as tpl) {\r\n <ng-container *ngTemplateOutlet=\"tpl\" />\r\n } @else {\r\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\r\n }\r\n </div>\r\n} @else {\r\n @if (legendOn() && !loading()) {\r\n <div class=\"ius-chart__legend\">\r\n @for (l of lines(); track l.key) {\r\n <span class=\"ius-chart__leg\">\r\n <span class=\"ius-chart__dot\" [style.background]=\"l.color\"></span>\r\n {{ l.label }}\r\n </span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"ius-chart__plot\">\r\n <svg\r\n class=\"ius-chart__svg\"\r\n [attr.viewBox]=\"viewBox()\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n (mousemove)=\"onMove($event)\"\r\n (mouseleave)=\"onLeave()\"\r\n >\r\n <defs>\r\n @for (l of lines(); track l.key) {\r\n <linearGradient [attr.id]=\"l.gradId\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.22\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.02\" />\r\n </linearGradient>\r\n }\r\n </defs>\r\n\r\n <!-- grilla -->\r\n @if (showGrid() && !loading()) {\r\n <g class=\"ius-chart__grid\">\r\n @for (y of gridYs(); track $index) {\r\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"y\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"y\" />\r\n }\r\n </g>\r\n }\r\n\r\n <!-- eje Y -->\r\n @if (showYAxis()) {\r\n <g class=\"ius-chart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\r\n @for (t of yTickItems(); track $index) {\r\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.y\">{{ t.text }}</text>\r\n }\r\n </g>\r\n }\r\n\r\n <!-- skeleton -->\r\n @if (loading()) {\r\n <g>\r\n <rect\r\n class=\"ius-chart__skel\"\r\n [attr.x]=\"frame().mL\"\r\n [attr.y]=\"frame().mT\"\r\n [attr.width]=\"frame().innerW\"\r\n [attr.height]=\"frame().innerH\"\r\n rx=\"8\"\r\n opacity=\"0.5\"\r\n />\r\n <path class=\"ius-chart__skel--line\" [attr.d]=\"skeletonPath()\" />\r\n </g>\r\n }\r\n\r\n <!-- \u00E1reas + l\u00EDneas -->\r\n @if (!loading()) {\r\n @for (l of lines(); track l.key) {\r\n <g>\r\n @if (l.dArea) {\r\n <path class=\"ius-chart__area\" [attr.d]=\"l.dArea\" [attr.fill]=\"'url(#' + l.gradId + ')'\" />\r\n }\r\n <path class=\"ius-chart__line\" [attr.data-dashed]=\"l.dashed ? 'true' : null\" [attr.d]=\"l.dLine\" [attr.stroke]=\"l.color\" />\r\n @if (showPoints() === 'always') {\r\n @for (p of l.points; track $index) {\r\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"3.5\" [attr.fill]=\"l.color\" />\r\n }\r\n }\r\n </g>\r\n }\r\n }\r\n\r\n <!-- etiquetas de valor (1 serie recomendado) -->\r\n @if (!loading() && showValueLabels()) {\r\n @for (v of valueLabels(); track $index) {\r\n <text class=\"ius-chart__vlabel\" [attr.x]=\"v.x\" [attr.y]=\"v.y\">{{ v.text }}</text>\r\n }\r\n }\r\n\r\n <!-- gu\u00EDa vertical + puntos activos -->\r\n @if (activeMarks(); as am) {\r\n <g>\r\n <line class=\"ius-chart__guide\" [attr.x1]=\"am.x\" [attr.y1]=\"am.y1\" [attr.x2]=\"am.x\" [attr.y2]=\"am.y2\" />\r\n @for (p of am.points; track p.key) {\r\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"4.5\" [attr.fill]=\"p.color\" />\r\n }\r\n </g>\r\n }\r\n\r\n <!-- eje X -->\r\n @if (showXAxis() && !loading()) {\r\n <g class=\"ius-chart__xlabel\" text-anchor=\"middle\">\r\n <line\r\n class=\"ius-chart__axisline\"\r\n [attr.x1]=\"frame().mL\"\r\n [attr.y1]=\"frame().mT + frame().innerH\"\r\n [attr.x2]=\"frame().mL + frame().innerW\"\r\n [attr.y2]=\"frame().mT + frame().innerH\"\r\n />\r\n @for (x of xLabels(); track $index) {\r\n <text [attr.x]=\"x.x\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ x.text }}</text>\r\n }\r\n </g>\r\n }\r\n </svg>\r\n\r\n <!-- tooltip (HTML) -->\r\n @if (tooltip(); as tip) {\r\n <div class=\"ius-chart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\r\n <div class=\"ius-chart__tip-x\">{{ tip.title }}</div>\r\n @for (r of tip.rows; track r.key) {\r\n <div class=\"ius-chart__tip-row\">\r\n <span class=\"ius-chart__dot\" [style.background]=\"r.color\"></span>\r\n {{ r.label }}\r\n <b>{{ r.value }}</b>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-chart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-chart__plot{position:relative}.ius-chart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-chart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-chart__tick,.ius-chart__xlabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-chart__line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ius-chart__line[data-dashed=true]{stroke-dasharray:6 5}.ius-chart__pt{stroke:var(--ius-surface-card);stroke-width:2}.ius-chart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle}.ius-chart__guide{stroke:var(--ius-stroke-strong);stroke-width:1;stroke-dasharray:4 4}.ius-chart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-chart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-chart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-chart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-chart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-chart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-chart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-chart__skel{fill:var(--ius-neutral-2)}.ius-chart__skel--line{stroke:var(--ius-neutral-3);stroke-width:2;fill:none}.ius-chart__block{display:grid;place-items:center;min-height:160px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EmptyStateComponent, selector: "ius-empty-state", inputs: ["variant", "size", "tone", "icon", "illustration", "illustrationTemplate", "title", "description", "primaryAction", "secondaryAction", "actionsTemplate", "role"], outputs: ["primaryClick", "secondaryClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15640
15654
  }
15641
15655
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LineChartComponent, decorators: [{
15642
15656
  type: Component,
@@ -15644,7 +15658,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
15644
15658
  class: 'ius-chart',
15645
15659
  '[attr.data-animate]': "animate() && !loading() ? 'true' : 'false'",
15646
15660
  '[style.width.px]': 'width() ?? null',
15647
- }, template: "@if (!loading() && !hasData()) {\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\n <div class=\"ius-chart__block\" [style.height.px]=\"frame().H\">\n @if (emptyTemplate(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\n }\n </div>\n} @else {\n @if (legendOn() && !loading()) {\n <div class=\"ius-chart__legend\">\n @for (l of lines(); track l.key) {\n <span class=\"ius-chart__leg\">\n <span class=\"ius-chart__dot\" [style.background]=\"l.color\"></span>\n {{ l.label }}\n </span>\n }\n </div>\n }\n\n <div class=\"ius-chart__plot\">\n <svg\n class=\"ius-chart__svg\"\n [attr.viewBox]=\"viewBox()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n (mousemove)=\"onMove($event)\"\n (mouseleave)=\"onLeave()\"\n >\n <defs>\n @for (l of lines(); track l.key) {\n <linearGradient [attr.id]=\"l.gradId\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.22\" />\n <stop offset=\"100%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.02\" />\n </linearGradient>\n }\n </defs>\n\n <!-- grilla -->\n @if (showGrid() && !loading()) {\n <g class=\"ius-chart__grid\">\n @for (y of gridYs(); track $index) {\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"y\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"y\" />\n }\n </g>\n }\n\n <!-- eje Y -->\n @if (showYAxis()) {\n <g class=\"ius-chart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\n @for (t of yTickItems(); track $index) {\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.y\">{{ t.text }}</text>\n }\n </g>\n }\n\n <!-- skeleton -->\n @if (loading()) {\n <g>\n <rect\n class=\"ius-chart__skel\"\n [attr.x]=\"frame().mL\"\n [attr.y]=\"frame().mT\"\n [attr.width]=\"frame().innerW\"\n [attr.height]=\"frame().innerH\"\n rx=\"8\"\n opacity=\"0.5\"\n />\n <path class=\"ius-chart__skel--line\" [attr.d]=\"skeletonPath()\" />\n </g>\n }\n\n <!-- \u00E1reas + l\u00EDneas -->\n @if (!loading()) {\n @for (l of lines(); track l.key) {\n <g>\n @if (l.dArea) {\n <path class=\"ius-chart__area\" [attr.d]=\"l.dArea\" [attr.fill]=\"'url(#' + l.gradId + ')'\" />\n }\n <path class=\"ius-chart__line\" [attr.data-dashed]=\"l.dashed ? 'true' : null\" [attr.d]=\"l.dLine\" [attr.stroke]=\"l.color\" />\n @if (showPoints() === 'always') {\n @for (p of l.points; track $index) {\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"3.5\" [attr.fill]=\"l.color\" />\n }\n }\n </g>\n }\n }\n\n <!-- etiquetas de valor (1 serie recomendado) -->\n @if (!loading() && showValueLabels()) {\n @for (v of valueLabels(); track $index) {\n <text class=\"ius-chart__vlabel\" [attr.x]=\"v.x\" [attr.y]=\"v.y\">{{ v.text }}</text>\n }\n }\n\n <!-- gu\u00EDa vertical + puntos activos -->\n @if (activeMarks(); as am) {\n <g>\n <line class=\"ius-chart__guide\" [attr.x1]=\"am.x\" [attr.y1]=\"am.y1\" [attr.x2]=\"am.x\" [attr.y2]=\"am.y2\" />\n @for (p of am.points; track p.key) {\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"4.5\" [attr.fill]=\"p.color\" />\n }\n </g>\n }\n\n <!-- eje X -->\n @if (showXAxis() && !loading()) {\n <g class=\"ius-chart__xlabel\" text-anchor=\"middle\">\n <line\n class=\"ius-chart__axisline\"\n [attr.x1]=\"frame().mL\"\n [attr.y1]=\"frame().mT + frame().innerH\"\n [attr.x2]=\"frame().mL + frame().innerW\"\n [attr.y2]=\"frame().mT + frame().innerH\"\n />\n @for (x of xLabels(); track $index) {\n <text [attr.x]=\"x.x\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ x.text }}</text>\n }\n </g>\n }\n </svg>\n\n <!-- tooltip (HTML) -->\n @if (tooltip(); as tip) {\n <div class=\"ius-chart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\n <div class=\"ius-chart__tip-x\">{{ tip.title }}</div>\n @for (r of tip.rows; track r.key) {\n <div class=\"ius-chart__tip-row\">\n <span class=\"ius-chart__dot\" [style.background]=\"r.color\"></span>\n {{ r.label }}\n <b>{{ r.value }}</b>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-chart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-chart__plot{position:relative}.ius-chart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-chart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-chart__tick,.ius-chart__xlabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-chart__line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ius-chart__line[data-dashed=true]{stroke-dasharray:6 5}.ius-chart__pt{stroke:var(--ius-surface-card);stroke-width:2}.ius-chart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle}.ius-chart__guide{stroke:var(--ius-stroke-strong);stroke-width:1;stroke-dasharray:4 4}.ius-chart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-chart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-chart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-chart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-chart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-chart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-chart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-chart__skel{fill:var(--ius-neutral-2)}.ius-chart__skel--line{stroke:var(--ius-neutral-3);stroke-width:2;fill:none}.ius-chart__block{display:grid;place-items:center;min-height:160px}\n"] }]
15661
+ }, template: "@if (!loading() && !hasData()) {\r\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\r\n <div class=\"ius-chart__block\" [style.height.px]=\"frame().H\">\r\n @if (emptyTemplate(); as tpl) {\r\n <ng-container *ngTemplateOutlet=\"tpl\" />\r\n } @else {\r\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\r\n }\r\n </div>\r\n} @else {\r\n @if (legendOn() && !loading()) {\r\n <div class=\"ius-chart__legend\">\r\n @for (l of lines(); track l.key) {\r\n <span class=\"ius-chart__leg\">\r\n <span class=\"ius-chart__dot\" [style.background]=\"l.color\"></span>\r\n {{ l.label }}\r\n </span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"ius-chart__plot\">\r\n <svg\r\n class=\"ius-chart__svg\"\r\n [attr.viewBox]=\"viewBox()\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n (mousemove)=\"onMove($event)\"\r\n (mouseleave)=\"onLeave()\"\r\n >\r\n <defs>\r\n @for (l of lines(); track l.key) {\r\n <linearGradient [attr.id]=\"l.gradId\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n <stop offset=\"0%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.22\" />\r\n <stop offset=\"100%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.02\" />\r\n </linearGradient>\r\n }\r\n </defs>\r\n\r\n <!-- grilla -->\r\n @if (showGrid() && !loading()) {\r\n <g class=\"ius-chart__grid\">\r\n @for (y of gridYs(); track $index) {\r\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"y\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"y\" />\r\n }\r\n </g>\r\n }\r\n\r\n <!-- eje Y -->\r\n @if (showYAxis()) {\r\n <g class=\"ius-chart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\r\n @for (t of yTickItems(); track $index) {\r\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.y\">{{ t.text }}</text>\r\n }\r\n </g>\r\n }\r\n\r\n <!-- skeleton -->\r\n @if (loading()) {\r\n <g>\r\n <rect\r\n class=\"ius-chart__skel\"\r\n [attr.x]=\"frame().mL\"\r\n [attr.y]=\"frame().mT\"\r\n [attr.width]=\"frame().innerW\"\r\n [attr.height]=\"frame().innerH\"\r\n rx=\"8\"\r\n opacity=\"0.5\"\r\n />\r\n <path class=\"ius-chart__skel--line\" [attr.d]=\"skeletonPath()\" />\r\n </g>\r\n }\r\n\r\n <!-- \u00E1reas + l\u00EDneas -->\r\n @if (!loading()) {\r\n @for (l of lines(); track l.key) {\r\n <g>\r\n @if (l.dArea) {\r\n <path class=\"ius-chart__area\" [attr.d]=\"l.dArea\" [attr.fill]=\"'url(#' + l.gradId + ')'\" />\r\n }\r\n <path class=\"ius-chart__line\" [attr.data-dashed]=\"l.dashed ? 'true' : null\" [attr.d]=\"l.dLine\" [attr.stroke]=\"l.color\" />\r\n @if (showPoints() === 'always') {\r\n @for (p of l.points; track $index) {\r\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"3.5\" [attr.fill]=\"l.color\" />\r\n }\r\n }\r\n </g>\r\n }\r\n }\r\n\r\n <!-- etiquetas de valor (1 serie recomendado) -->\r\n @if (!loading() && showValueLabels()) {\r\n @for (v of valueLabels(); track $index) {\r\n <text class=\"ius-chart__vlabel\" [attr.x]=\"v.x\" [attr.y]=\"v.y\">{{ v.text }}</text>\r\n }\r\n }\r\n\r\n <!-- gu\u00EDa vertical + puntos activos -->\r\n @if (activeMarks(); as am) {\r\n <g>\r\n <line class=\"ius-chart__guide\" [attr.x1]=\"am.x\" [attr.y1]=\"am.y1\" [attr.x2]=\"am.x\" [attr.y2]=\"am.y2\" />\r\n @for (p of am.points; track p.key) {\r\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"4.5\" [attr.fill]=\"p.color\" />\r\n }\r\n </g>\r\n }\r\n\r\n <!-- eje X -->\r\n @if (showXAxis() && !loading()) {\r\n <g class=\"ius-chart__xlabel\" text-anchor=\"middle\">\r\n <line\r\n class=\"ius-chart__axisline\"\r\n [attr.x1]=\"frame().mL\"\r\n [attr.y1]=\"frame().mT + frame().innerH\"\r\n [attr.x2]=\"frame().mL + frame().innerW\"\r\n [attr.y2]=\"frame().mT + frame().innerH\"\r\n />\r\n @for (x of xLabels(); track $index) {\r\n <text [attr.x]=\"x.x\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ x.text }}</text>\r\n }\r\n </g>\r\n }\r\n </svg>\r\n\r\n <!-- tooltip (HTML) -->\r\n @if (tooltip(); as tip) {\r\n <div class=\"ius-chart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\r\n <div class=\"ius-chart__tip-x\">{{ tip.title }}</div>\r\n @for (r of tip.rows; track r.key) {\r\n <div class=\"ius-chart__tip-row\">\r\n <span class=\"ius-chart__dot\" [style.background]=\"r.color\"></span>\r\n {{ r.label }}\r\n <b>{{ r.value }}</b>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-chart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-chart__plot{position:relative}.ius-chart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-chart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-chart__tick,.ius-chart__xlabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-chart__line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ius-chart__line[data-dashed=true]{stroke-dasharray:6 5}.ius-chart__pt{stroke:var(--ius-surface-card);stroke-width:2}.ius-chart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle}.ius-chart__guide{stroke:var(--ius-stroke-strong);stroke-width:1;stroke-dasharray:4 4}.ius-chart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-chart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-chart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-chart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-chart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-chart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-chart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-chart__skel{fill:var(--ius-neutral-2)}.ius-chart__skel--line{stroke:var(--ius-neutral-3);stroke-width:2;fill:none}.ius-chart__block{display:grid;place-items:center;min-height:160px}\n"] }]
15648
15662
  }], ctorParameters: () => [], propDecorators: { categories: [{ type: i0.Input, args: [{ isSignal: true, alias: "categories", required: false }] }], series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], aspectRatio: [{ type: i0.Input, args: [{ isSignal: true, alias: "aspectRatio", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], yAxisWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "yAxisWidth", required: false }] }], showXAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "showXAxis", required: false }] }], showYAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "showYAxis", required: false }] }], showGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGrid", required: false }] }], yTicks: [{ type: i0.Input, args: [{ isSignal: true, alias: "yTicks", required: false }] }], yMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMin", required: false }] }], yMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMax", required: false }] }], area: [{ type: i0.Input, args: [{ isSignal: true, alias: "area", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], showPoints: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPoints", required: false }] }], showValueLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValueLabels", required: false }] }], showLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLegend", required: false }] }], showTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTooltip", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], xFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "xFormat", required: false }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTemplate", required: false }] }], emptyTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTitle", required: false }] }], emptyDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyDescription", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
15649
15663
 
15650
15664
  /*
@@ -15976,7 +15990,7 @@ class EntityRowComponent {
15976
15990
  this.menuOpen.set(open);
15977
15991
  }
15978
15992
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EntityRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15979
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: EntityRowComponent, isStandalone: true, selector: "ius-entity-row", inputs: { kind: "kind", icon: "icon", label: "label", sublabel: "sublabel", level: ["level", "level", numberAttribute], accent: "accent", expandable: ["expandable", "expandable", booleanAttribute], expanded: ["expanded", "expanded", booleanAttribute], loading: ["loading", "loading", booleanAttribute], selected: ["selected", "selected", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], count: "count", unread: "unread", hasUnread: ["hasUnread", "hasUnread", booleanAttribute], noveltyTone: "noveltyTone", pinned: ["pinned", "pinned", booleanAttribute], pinnable: ["pinnable", "pinnable", booleanAttribute], actions: "actions", actionsLabel: "actionsLabel", ariaLabel: "ariaLabel" }, outputs: { toggle: "toggle", togglePin: "togglePin", clicked: "clicked" }, host: { attributes: { "role": "button" }, listeners: { "click": "onRowClick($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.tabindex": "disabled ? null : 0", "attr.data-level": "level", "attr.data-accent": "accent", "attr.data-expanded": "expanded ? 'true' : null", "attr.data-selected": "selected ? 'true' : null", "attr.data-unread": "hasNovelty ? 'true' : null", "attr.data-disabled": "disabled ? 'true' : null", "attr.data-menu-open": "menuOpen() ? 'true' : null", "attr.data-loading": "loading ? 'true' : null", "attr.aria-busy": "loading ? 'true' : null", "attr.aria-expanded": "expandable ? (expanded ? 'true' : 'false') : null", "attr.aria-current": "selected ? 'true' : null", "attr.aria-label": "ariaLabel || null", "style.padding-left.px": "padLeft" }, classAttribute: "ius-entityrow" }, queries: [{ propertyName: "labelRef", first: true, predicate: IusEntityRowLabelDirective, descendants: true, isSignal: true }, { propertyName: "sublabelRef", first: true, predicate: IusEntityRowSublabelDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Orden verbatim del golden: twisty \u00B7 \u00EDcono \u00B7 punto de novedad \u00B7 cuerpo \u00B7\r\n contador \u00B7 acciones. La ra\u00EDz es el propio host (ver el .scss). -->\r\n\r\n<!-- Chevron / aro de carga / hueco.\r\n `loading` gana: el aro ocupa la MISMA caja de 18 px, as\u00ED la fila no salta.\r\n El chevron no entra en el orden de tabulaci\u00F3n (igual que el golden): en un\r\n \u00E1rbol grande ser\u00EDa un tab-stop por fila; el estado lo comunica el\r\n `aria-expanded` de la fila. -->\r\n@if (loading) {\r\n <span class=\"ius-entityrow__twisty ius-entityrow__twisty--loading\">\r\n <ius-circular-progress\r\n [indeterminate]=\"true\"\r\n size=\"small\"\r\n tone=\"neutral\"\r\n ariaLabel=\"Cargando contenido\"\r\n />\r\n </span>\r\n} @else if (expandable) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-entityrow__twisty\"\r\n tabindex=\"-1\"\r\n aria-hidden=\"true\"\r\n (click)=\"onToggleClick($event)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\r\n </button>\r\n} @else {\r\n <span class=\"ius-entityrow__twisty ius-entityrow__twisty--spacer\" aria-hidden=\"true\">\r\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\r\n </span>\r\n}\r\n\r\n<span class=\"ius-entityrow__icon\">\r\n <span translate=\"no\" class=\"ius-icon\">{{ effIcon }}</span>\r\n</span>\r\n\r\n<!-- Contenedor con novedad: solo el punto, sin n\u00FAmero (la hoja la comunica con\r\n su contador). Si adem\u00E1s llega `unread`, gana `unread` y esto no se pinta. -->\r\n@if (showNoveltyDot) {\r\n <span class=\"ius-entityrow__lead\">\r\n <ius-insignia\r\n variant=\"dot\"\r\n [tone]=\"noveltyTone\"\r\n size=\"small\"\r\n ariaLabel=\"Con novedades sin leer\"\r\n />\r\n </span>\r\n}\r\n\r\n<!-- Los dos slots se instancian SIEMPRE, nunca dentro de un `@if`: un\r\n `<ng-content>` detr\u00E1s de una condici\u00F3n que a\u00FAn no es cierta en el primer\r\n render pierde el contenido proyectado en silencio (el `contentChild` que\r\n alimentaba la condici\u00F3n se resuelve un tick tarde). El subt\u00EDtulo vac\u00EDo se\r\n oculta por CSS con `data-empty`, no quit\u00E1ndolo del \u00E1rbol. -->\r\n<span class=\"ius-entityrow__body\">\r\n <span class=\"ius-entityrow__label\">{{ label }}<ng-content select=\"[iusEntityRowLabel]\" /></span>\r\n <span class=\"ius-entityrow__sub\" [attr.data-empty]=\"hasSublabel ? null : 'true'\">{{ sublabel }}<ng-content select=\"[iusEntityRowSublabel]\" /></span>\r\n</span>\r\n\r\n<!-- Novedad (s\u00F3lido, alto contraste) vs conteo neutro de hijos: nunca ambos. -->\r\n@if (hasNovelty) {\r\n <span class=\"ius-entityrow__trailing\" [attr.data-dim]=\"dim\">\r\n <ius-insignia\r\n variant=\"count\"\r\n [tone]=\"noveltyTone\"\r\n [count]=\"unread\"\r\n [ariaLabel]=\"unread + ' sin leer'\"\r\n />\r\n </span>\r\n} @else if (showCount) {\r\n <span class=\"ius-entityrow__trailing\" [attr.data-dim]=\"dim\">\r\n <ius-insignia variant=\"count-soft\" [tone]=\"selected ? accent : 'neutral'\" [count]=\"count\" />\r\n </span>\r\n}\r\n\r\n<!-- Pin de acceso r\u00E1pido + men\u00FA \u22EE, revelados en hover. Un clic nacido aqu\u00ED\r\n dentro no navega (guarda `closest` en onRowClick). -->\r\n@if (hasRowActions) {\r\n <span class=\"ius-entityrow__actions\">\r\n @if (hasPin) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-entityrow__act ius-entityrow__act--pin\"\r\n [attr.data-pinned]=\"pinned ? 'true' : null\"\r\n [attr.aria-label]=\"pinLabel\"\r\n [attr.aria-pressed]=\"pinned\"\r\n (click)=\"onPinClick($event)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">push_pin</span>\r\n </button>\r\n }\r\n @if (hasActions) {\r\n <!-- ius-dropdown ES la composici\u00F3n Popover+Menu del golden, ya encapsulada:\r\n respeta `group` (divisores) y `danger` (al fondo, en rojo). -->\r\n <ius-dropdown\r\n [items]=\"actions\"\r\n placement=\"bottom-end\"\r\n [ariaLabel]=\"menuLabel\"\r\n (openChange)=\"onMenuOpenChange($event)\"\r\n >\r\n <button iusDropdownTrigger type=\"button\" class=\"ius-entityrow__act\" [attr.aria-label]=\"menuLabel\">\r\n <span translate=\"no\" class=\"ius-icon\">more_vert</span>\r\n </button>\r\n </ius-dropdown>\r\n }\r\n </span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;width:100%;display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-xs);background:transparent;border:0;border-radius:var(--ius-radius-md);cursor:pointer;font-family:var(--ius-font-body);color:var(--ius-text-primary);text-align:left;transition:background var(--ius-duration-fast) var(--ius-ease-standard);--_er-accent: var(--ius-info-600);--_er-tint: color-mix(in srgb, var(--ius-info-500) 14%, white)}:host(:hover){background:var(--ius-neutral-2)}:host(:focus-visible){outline:none;box-shadow:var(--ius-focus-ring)}:host([data-disabled=true]){cursor:default;opacity:.5;pointer-events:none}.ius-entityrow__twisty{flex:0 0 auto;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer;color:var(--ius-text-tertiary);transition:transform var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entityrow__twisty .ius-icon{font-size:var(--ius-icon-md)}:host([data-expanded=true]) .ius-entityrow__twisty{transform:rotate(90deg)}.ius-entityrow__twisty--spacer{visibility:hidden}.ius-entityrow__twisty--loading{--_er-spin-scale: .818;transform:none}:host([data-expanded=true]) .ius-entityrow__twisty--loading{transform:none}.ius-entityrow__twisty--loading ius-circular-progress{transform:scale(var(--_er-spin-scale))}.ius-entityrow__icon{flex:0 0 auto;display:inline-flex;color:var(--ius-neutral-7)}.ius-entityrow__icon .ius-icon{font-size:var(--ius-icon-md)}.ius-entityrow__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:0}.ius-entityrow__label{font-size:var(--ius-fs-base);line-height:1.3;color:var(--ius-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entityrow__sub{font-size:var(--ius-fs-sm);line-height:1.3;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entityrow__sub[data-empty=true]{display:none}:host([data-level=\"0\"]) .ius-entityrow__label{font-weight:var(--ius-fw-semibold)}:host([data-unread=true]) .ius-entityrow__label{font-weight:var(--ius-fw-semibold)}.ius-entityrow__lead{flex:0 0 auto;display:inline-flex;align-items:center}.ius-entityrow__trailing{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-entityrow__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-entityrow__act{appearance:none;border:0;background:transparent;cursor:pointer;width:26px;height:26px;border-radius:var(--ius-radius-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--ius-text-tertiary);opacity:0;transition:opacity var(--ius-duration-fast) var(--ius-ease-standard),background var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entityrow__act .ius-icon{font-size:var(--ius-icon-md)}.ius-entityrow__act:hover{background:var(--ius-neutral-3);color:var(--ius-text-primary)}.ius-entityrow__act:focus-visible{outline:none;box-shadow:var(--ius-focus-ring);opacity:1}:host([data-selected=true]) .ius-entityrow__act{color:var(--_er-accent)}:host([data-selected=true]) .ius-entityrow__act:hover{background:color-mix(in srgb,var(--_er-accent) 16%,white);color:var(--_er-accent)}:host(:hover) .ius-entityrow__act,:host([data-menu-open=true]) .ius-entityrow__act{opacity:1}.ius-entityrow__act--pin[data-pinned=true]{opacity:1;color:var(--_er-accent)}.ius-entityrow__act--pin[data-pinned=true] .ius-icon{font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 200,\"opsz\" 24}:host(:hover) .ius-entityrow__trailing[data-dim=true],:host([data-menu-open=true]) .ius-entityrow__trailing[data-dim=true]{display:none}:host([data-accent=primary]){--_er-accent: var(--ius-primary-700);--_er-tint: color-mix(in srgb, var(--ius-primary-500) 14%, white)}:host([data-accent=info]){--_er-accent: var(--ius-info-600);--_er-tint: color-mix(in srgb, var(--ius-info-500) 14%, white)}:host([data-accent=success]){--_er-accent: var(--ius-success-600);--_er-tint: color-mix(in srgb, var(--ius-success-500) 14%, white)}:host([data-accent=warning]){--_er-accent: var(--ius-warning-600);--_er-tint: color-mix(in srgb, var(--ius-warning-500) 14%, white)}:host([data-accent=danger]){--_er-accent: var(--ius-danger-600);--_er-tint: color-mix(in srgb, var(--ius-danger-500) 14%, white)}:host([data-accent=neutral]){--_er-accent: var(--ius-neutral-9);--_er-tint: color-mix(in srgb, var(--ius-neutral-7) 14%, white)}:host([data-accent=durazno]){--_er-accent: var(--ius-durazno-600);--_er-tint: color-mix(in srgb, var(--ius-durazno-500) 14%, white)}:host([data-accent=banano]){--_er-accent: var(--ius-banano-600);--_er-tint: color-mix(in srgb, var(--ius-banano-500) 14%, white)}:host([data-accent=sandia]){--_er-accent: var(--ius-sandia-600);--_er-tint: color-mix(in srgb, var(--ius-sandia-500) 14%, white)}:host([data-accent=arandano]){--_er-accent: var(--ius-arandano-600);--_er-tint: color-mix(in srgb, var(--ius-arandano-500) 14%, white)}:host([data-accent=uva]){--_er-accent: var(--ius-uva-600);--_er-tint: color-mix(in srgb, var(--ius-uva-500) 14%, white)}:host([data-accent=aguacate]){--_er-accent: var(--ius-aguacate-600);--_er-tint: color-mix(in srgb, var(--ius-aguacate-500) 14%, white)}:host([data-selected=true]){background:var(--_er-tint)}:host([data-selected=true]) .ius-entityrow__label{color:var(--_er-accent);font-weight:var(--ius-fw-semibold)}:host([data-selected=true]) .ius-entityrow__icon,:host([data-selected=true]) .ius-entityrow__twisty{color:var(--_er-accent)}:host([data-selected=true]:hover){background:var(--_er-tint)}\n"], dependencies: [{ kind: "component", type: CircularProgressComponent, selector: "ius-circular-progress", inputs: ["value", "max", "indeterminate", "tone", "size", "showValue", "ariaLabel", "duration", "paused"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "directive", type: IusDropdownTriggerDirective, selector: "[iusDropdownTrigger]" }, { kind: "component", type: InsigniaComponent, selector: "ius-insignia", inputs: ["variant", "tone", "size", "label", "count", "max", "ring", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15993
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: EntityRowComponent, isStandalone: true, selector: "ius-entity-row", inputs: { kind: "kind", icon: "icon", label: "label", sublabel: "sublabel", level: ["level", "level", numberAttribute], accent: "accent", expandable: ["expandable", "expandable", booleanAttribute], expanded: ["expanded", "expanded", booleanAttribute], loading: ["loading", "loading", booleanAttribute], selected: ["selected", "selected", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], count: "count", unread: "unread", hasUnread: ["hasUnread", "hasUnread", booleanAttribute], noveltyTone: "noveltyTone", pinned: ["pinned", "pinned", booleanAttribute], pinnable: ["pinnable", "pinnable", booleanAttribute], actions: "actions", actionsLabel: "actionsLabel", ariaLabel: "ariaLabel" }, outputs: { toggle: "toggle", togglePin: "togglePin", clicked: "clicked" }, host: { attributes: { "role": "button" }, listeners: { "click": "onRowClick($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.tabindex": "disabled ? null : 0", "attr.data-level": "level", "attr.data-accent": "accent", "attr.data-expanded": "expanded ? 'true' : null", "attr.data-selected": "selected ? 'true' : null", "attr.data-unread": "hasNovelty ? 'true' : null", "attr.data-disabled": "disabled ? 'true' : null", "attr.data-menu-open": "menuOpen() ? 'true' : null", "attr.data-loading": "loading ? 'true' : null", "attr.aria-busy": "loading ? 'true' : null", "attr.aria-expanded": "expandable ? (expanded ? 'true' : 'false') : null", "attr.aria-current": "selected ? 'true' : null", "attr.aria-label": "ariaLabel || null", "style.padding-left.px": "padLeft" }, classAttribute: "ius-entityrow" }, queries: [{ propertyName: "labelRef", first: true, predicate: IusEntityRowLabelDirective, descendants: true, isSignal: true }, { propertyName: "sublabelRef", first: true, predicate: IusEntityRowSublabelDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Orden verbatim del golden: twisty \u00B7 \u00EDcono \u00B7 punto de novedad \u00B7 cuerpo \u00B7\n contador \u00B7 acciones. La ra\u00EDz es el propio host (ver el .scss). -->\n\n<!-- Chevron / aro de carga / hueco.\n `loading` gana: el aro ocupa la MISMA caja de 18 px, as\u00ED la fila no salta.\n El chevron no entra en el orden de tabulaci\u00F3n (igual que el golden): en un\n \u00E1rbol grande ser\u00EDa un tab-stop por fila; el estado lo comunica el\n `aria-expanded` de la fila. -->\n@if (loading) {\n <span class=\"ius-entityrow__twisty ius-entityrow__twisty--loading\">\n <ius-circular-progress\n [indeterminate]=\"true\"\n size=\"small\"\n tone=\"neutral\"\n ariaLabel=\"Cargando contenido\"\n />\n </span>\n} @else if (expandable) {\n <button\n type=\"button\"\n class=\"ius-entityrow__twisty\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n (click)=\"onToggleClick($event)\"\n >\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\n </button>\n} @else {\n <span class=\"ius-entityrow__twisty ius-entityrow__twisty--spacer\" aria-hidden=\"true\">\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\n </span>\n}\n\n<span class=\"ius-entityrow__icon\">\n <span translate=\"no\" class=\"ius-icon\">{{ effIcon }}</span>\n</span>\n\n<!-- Contenedor con novedad: solo el punto, sin n\u00FAmero (la hoja la comunica con\n su contador). Si adem\u00E1s llega `unread`, gana `unread` y esto no se pinta. -->\n@if (showNoveltyDot) {\n <span class=\"ius-entityrow__lead\">\n <ius-insignia\n variant=\"dot\"\n [tone]=\"noveltyTone\"\n size=\"small\"\n ariaLabel=\"Con novedades sin leer\"\n />\n </span>\n}\n\n<!-- Los dos slots se instancian SIEMPRE, nunca dentro de un `@if`: un\n `<ng-content>` detr\u00E1s de una condici\u00F3n que a\u00FAn no es cierta en el primer\n render pierde el contenido proyectado en silencio (el `contentChild` que\n alimentaba la condici\u00F3n se resuelve un tick tarde). El subt\u00EDtulo vac\u00EDo se\n oculta por CSS con `data-empty`, no quit\u00E1ndolo del \u00E1rbol. -->\n<span class=\"ius-entityrow__body\">\n <span class=\"ius-entityrow__label\">{{ label }}<ng-content select=\"[iusEntityRowLabel]\" /></span>\n <span class=\"ius-entityrow__sub\" [attr.data-empty]=\"hasSublabel ? null : 'true'\">{{ sublabel }}<ng-content select=\"[iusEntityRowSublabel]\" /></span>\n</span>\n\n<!-- Novedad (s\u00F3lido, alto contraste) vs conteo neutro de hijos: nunca ambos. -->\n@if (hasNovelty) {\n <span class=\"ius-entityrow__trailing\" [attr.data-dim]=\"dim\">\n <ius-insignia\n variant=\"count\"\n [tone]=\"noveltyTone\"\n [count]=\"unread\"\n [ariaLabel]=\"unread + ' sin leer'\"\n />\n </span>\n} @else if (showCount) {\n <span class=\"ius-entityrow__trailing\" [attr.data-dim]=\"dim\">\n <ius-insignia variant=\"count-soft\" [tone]=\"selected ? accent : 'neutral'\" [count]=\"count\" />\n </span>\n}\n\n<!-- Pin de acceso r\u00E1pido + men\u00FA \u22EE, revelados en hover. Un clic nacido aqu\u00ED\n dentro no navega (guarda `closest` en onRowClick). -->\n@if (hasRowActions) {\n <span class=\"ius-entityrow__actions\">\n @if (hasPin) {\n <button\n type=\"button\"\n class=\"ius-entityrow__act ius-entityrow__act--pin\"\n [attr.data-pinned]=\"pinned ? 'true' : null\"\n [attr.aria-label]=\"pinLabel\"\n [attr.aria-pressed]=\"pinned\"\n (click)=\"onPinClick($event)\"\n >\n <span translate=\"no\" class=\"ius-icon\">push_pin</span>\n </button>\n }\n @if (hasActions) {\n <!-- ius-dropdown ES la composici\u00F3n Popover+Menu del golden, ya encapsulada:\n respeta `group` (divisores) y `danger` (al fondo, en rojo). -->\n <ius-dropdown\n [items]=\"actions\"\n placement=\"bottom-end\"\n [ariaLabel]=\"menuLabel\"\n (openChange)=\"onMenuOpenChange($event)\"\n >\n <button iusDropdownTrigger type=\"button\" class=\"ius-entityrow__act\" [attr.aria-label]=\"menuLabel\">\n <span translate=\"no\" class=\"ius-icon\">more_vert</span>\n </button>\n </ius-dropdown>\n }\n </span>\n}\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;width:100%;display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-xs);background:transparent;border:0;border-radius:var(--ius-radius-md);cursor:pointer;font-family:var(--ius-font-body);color:var(--ius-text-primary);text-align:left;transition:background var(--ius-duration-fast) var(--ius-ease-standard);--_er-accent: var(--ius-info-600);--_er-tint: color-mix(in srgb, var(--ius-info-500) 14%, white)}:host(:hover){background:var(--ius-neutral-2)}:host(:focus-visible){outline:none;box-shadow:var(--ius-focus-ring)}:host([data-disabled=true]){cursor:default;opacity:.5;pointer-events:none}.ius-entityrow__twisty{flex:0 0 auto;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer;color:var(--ius-text-tertiary);transition:transform var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entityrow__twisty .ius-icon{font-size:var(--ius-icon-md)}:host([data-expanded=true]) .ius-entityrow__twisty{transform:rotate(90deg)}.ius-entityrow__twisty--spacer{visibility:hidden}.ius-entityrow__twisty--loading{--_er-spin-scale: .818;transform:none}:host([data-expanded=true]) .ius-entityrow__twisty--loading{transform:none}.ius-entityrow__twisty--loading ius-circular-progress{transform:scale(var(--_er-spin-scale))}.ius-entityrow__icon{flex:0 0 auto;display:inline-flex;color:var(--ius-neutral-7)}.ius-entityrow__icon .ius-icon{font-size:var(--ius-icon-md)}.ius-entityrow__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:0}.ius-entityrow__label{font-size:var(--ius-fs-base);line-height:1.3;color:var(--ius-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entityrow__sub{font-size:var(--ius-fs-sm);line-height:1.3;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entityrow__sub[data-empty=true]{display:none}:host([data-level=\"0\"]) .ius-entityrow__label{font-weight:var(--ius-fw-semibold)}:host([data-unread=true]) .ius-entityrow__label{font-weight:var(--ius-fw-semibold)}.ius-entityrow__lead{flex:0 0 auto;display:inline-flex;align-items:center}.ius-entityrow__trailing{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-entityrow__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-entityrow__act{appearance:none;border:0;background:transparent;cursor:pointer;width:26px;height:26px;border-radius:var(--ius-radius-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--ius-text-tertiary);opacity:0;transition:opacity var(--ius-duration-fast) var(--ius-ease-standard),background var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entityrow__act .ius-icon{font-size:var(--ius-icon-md)}.ius-entityrow__act:hover{background:var(--ius-neutral-3);color:var(--ius-text-primary)}.ius-entityrow__act:focus-visible{outline:none;box-shadow:var(--ius-focus-ring);opacity:1}:host([data-selected=true]) .ius-entityrow__act{color:var(--_er-accent)}:host([data-selected=true]) .ius-entityrow__act:hover{background:color-mix(in srgb,var(--_er-accent) 16%,white);color:var(--_er-accent)}:host(:hover) .ius-entityrow__act,:host([data-menu-open=true]) .ius-entityrow__act{opacity:1}.ius-entityrow__act--pin[data-pinned=true]{opacity:1;color:var(--_er-accent)}.ius-entityrow__act--pin[data-pinned=true] .ius-icon{font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 200,\"opsz\" 24}:host(:hover) .ius-entityrow__trailing[data-dim=true],:host([data-menu-open=true]) .ius-entityrow__trailing[data-dim=true]{display:none}:host([data-accent=primary]){--_er-accent: var(--ius-primary-700);--_er-tint: color-mix(in srgb, var(--ius-primary-500) 14%, white)}:host([data-accent=info]){--_er-accent: var(--ius-info-600);--_er-tint: color-mix(in srgb, var(--ius-info-500) 14%, white)}:host([data-accent=success]){--_er-accent: var(--ius-success-600);--_er-tint: color-mix(in srgb, var(--ius-success-500) 14%, white)}:host([data-accent=warning]){--_er-accent: var(--ius-warning-600);--_er-tint: color-mix(in srgb, var(--ius-warning-500) 14%, white)}:host([data-accent=danger]){--_er-accent: var(--ius-danger-600);--_er-tint: color-mix(in srgb, var(--ius-danger-500) 14%, white)}:host([data-accent=neutral]){--_er-accent: var(--ius-neutral-9);--_er-tint: color-mix(in srgb, var(--ius-neutral-7) 14%, white)}:host([data-accent=durazno]){--_er-accent: var(--ius-durazno-600);--_er-tint: color-mix(in srgb, var(--ius-durazno-500) 14%, white)}:host([data-accent=banano]){--_er-accent: var(--ius-banano-600);--_er-tint: color-mix(in srgb, var(--ius-banano-500) 14%, white)}:host([data-accent=sandia]){--_er-accent: var(--ius-sandia-600);--_er-tint: color-mix(in srgb, var(--ius-sandia-500) 14%, white)}:host([data-accent=arandano]){--_er-accent: var(--ius-arandano-600);--_er-tint: color-mix(in srgb, var(--ius-arandano-500) 14%, white)}:host([data-accent=uva]){--_er-accent: var(--ius-uva-600);--_er-tint: color-mix(in srgb, var(--ius-uva-500) 14%, white)}:host([data-accent=aguacate]){--_er-accent: var(--ius-aguacate-600);--_er-tint: color-mix(in srgb, var(--ius-aguacate-500) 14%, white)}:host([data-selected=true]){background:var(--_er-tint)}:host([data-selected=true]) .ius-entityrow__label{color:var(--_er-accent);font-weight:var(--ius-fw-semibold)}:host([data-selected=true]) .ius-entityrow__icon,:host([data-selected=true]) .ius-entityrow__twisty{color:var(--_er-accent)}:host([data-selected=true]:hover){background:var(--_er-tint)}\n"], dependencies: [{ kind: "component", type: CircularProgressComponent, selector: "ius-circular-progress", inputs: ["value", "max", "indeterminate", "tone", "size", "showValue", "ariaLabel", "duration", "paused"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "directive", type: IusDropdownTriggerDirective, selector: "[iusDropdownTrigger]" }, { kind: "component", type: InsigniaComponent, selector: "ius-insignia", inputs: ["variant", "tone", "size", "label", "count", "max", "ring", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15980
15994
  }
15981
15995
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EntityRowComponent, decorators: [{
15982
15996
  type: Component,
@@ -16004,7 +16018,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
16004
16018
  '[style.padding-left.px]': 'padLeft',
16005
16019
  '(click)': 'onRowClick($event)',
16006
16020
  '(keydown)': 'onKeyDown($event)',
16007
- }, template: "<!-- Orden verbatim del golden: twisty \u00B7 \u00EDcono \u00B7 punto de novedad \u00B7 cuerpo \u00B7\r\n contador \u00B7 acciones. La ra\u00EDz es el propio host (ver el .scss). -->\r\n\r\n<!-- Chevron / aro de carga / hueco.\r\n `loading` gana: el aro ocupa la MISMA caja de 18 px, as\u00ED la fila no salta.\r\n El chevron no entra en el orden de tabulaci\u00F3n (igual que el golden): en un\r\n \u00E1rbol grande ser\u00EDa un tab-stop por fila; el estado lo comunica el\r\n `aria-expanded` de la fila. -->\r\n@if (loading) {\r\n <span class=\"ius-entityrow__twisty ius-entityrow__twisty--loading\">\r\n <ius-circular-progress\r\n [indeterminate]=\"true\"\r\n size=\"small\"\r\n tone=\"neutral\"\r\n ariaLabel=\"Cargando contenido\"\r\n />\r\n </span>\r\n} @else if (expandable) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-entityrow__twisty\"\r\n tabindex=\"-1\"\r\n aria-hidden=\"true\"\r\n (click)=\"onToggleClick($event)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\r\n </button>\r\n} @else {\r\n <span class=\"ius-entityrow__twisty ius-entityrow__twisty--spacer\" aria-hidden=\"true\">\r\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\r\n </span>\r\n}\r\n\r\n<span class=\"ius-entityrow__icon\">\r\n <span translate=\"no\" class=\"ius-icon\">{{ effIcon }}</span>\r\n</span>\r\n\r\n<!-- Contenedor con novedad: solo el punto, sin n\u00FAmero (la hoja la comunica con\r\n su contador). Si adem\u00E1s llega `unread`, gana `unread` y esto no se pinta. -->\r\n@if (showNoveltyDot) {\r\n <span class=\"ius-entityrow__lead\">\r\n <ius-insignia\r\n variant=\"dot\"\r\n [tone]=\"noveltyTone\"\r\n size=\"small\"\r\n ariaLabel=\"Con novedades sin leer\"\r\n />\r\n </span>\r\n}\r\n\r\n<!-- Los dos slots se instancian SIEMPRE, nunca dentro de un `@if`: un\r\n `<ng-content>` detr\u00E1s de una condici\u00F3n que a\u00FAn no es cierta en el primer\r\n render pierde el contenido proyectado en silencio (el `contentChild` que\r\n alimentaba la condici\u00F3n se resuelve un tick tarde). El subt\u00EDtulo vac\u00EDo se\r\n oculta por CSS con `data-empty`, no quit\u00E1ndolo del \u00E1rbol. -->\r\n<span class=\"ius-entityrow__body\">\r\n <span class=\"ius-entityrow__label\">{{ label }}<ng-content select=\"[iusEntityRowLabel]\" /></span>\r\n <span class=\"ius-entityrow__sub\" [attr.data-empty]=\"hasSublabel ? null : 'true'\">{{ sublabel }}<ng-content select=\"[iusEntityRowSublabel]\" /></span>\r\n</span>\r\n\r\n<!-- Novedad (s\u00F3lido, alto contraste) vs conteo neutro de hijos: nunca ambos. -->\r\n@if (hasNovelty) {\r\n <span class=\"ius-entityrow__trailing\" [attr.data-dim]=\"dim\">\r\n <ius-insignia\r\n variant=\"count\"\r\n [tone]=\"noveltyTone\"\r\n [count]=\"unread\"\r\n [ariaLabel]=\"unread + ' sin leer'\"\r\n />\r\n </span>\r\n} @else if (showCount) {\r\n <span class=\"ius-entityrow__trailing\" [attr.data-dim]=\"dim\">\r\n <ius-insignia variant=\"count-soft\" [tone]=\"selected ? accent : 'neutral'\" [count]=\"count\" />\r\n </span>\r\n}\r\n\r\n<!-- Pin de acceso r\u00E1pido + men\u00FA \u22EE, revelados en hover. Un clic nacido aqu\u00ED\r\n dentro no navega (guarda `closest` en onRowClick). -->\r\n@if (hasRowActions) {\r\n <span class=\"ius-entityrow__actions\">\r\n @if (hasPin) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-entityrow__act ius-entityrow__act--pin\"\r\n [attr.data-pinned]=\"pinned ? 'true' : null\"\r\n [attr.aria-label]=\"pinLabel\"\r\n [attr.aria-pressed]=\"pinned\"\r\n (click)=\"onPinClick($event)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">push_pin</span>\r\n </button>\r\n }\r\n @if (hasActions) {\r\n <!-- ius-dropdown ES la composici\u00F3n Popover+Menu del golden, ya encapsulada:\r\n respeta `group` (divisores) y `danger` (al fondo, en rojo). -->\r\n <ius-dropdown\r\n [items]=\"actions\"\r\n placement=\"bottom-end\"\r\n [ariaLabel]=\"menuLabel\"\r\n (openChange)=\"onMenuOpenChange($event)\"\r\n >\r\n <button iusDropdownTrigger type=\"button\" class=\"ius-entityrow__act\" [attr.aria-label]=\"menuLabel\">\r\n <span translate=\"no\" class=\"ius-icon\">more_vert</span>\r\n </button>\r\n </ius-dropdown>\r\n }\r\n </span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;width:100%;display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-xs);background:transparent;border:0;border-radius:var(--ius-radius-md);cursor:pointer;font-family:var(--ius-font-body);color:var(--ius-text-primary);text-align:left;transition:background var(--ius-duration-fast) var(--ius-ease-standard);--_er-accent: var(--ius-info-600);--_er-tint: color-mix(in srgb, var(--ius-info-500) 14%, white)}:host(:hover){background:var(--ius-neutral-2)}:host(:focus-visible){outline:none;box-shadow:var(--ius-focus-ring)}:host([data-disabled=true]){cursor:default;opacity:.5;pointer-events:none}.ius-entityrow__twisty{flex:0 0 auto;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer;color:var(--ius-text-tertiary);transition:transform var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entityrow__twisty .ius-icon{font-size:var(--ius-icon-md)}:host([data-expanded=true]) .ius-entityrow__twisty{transform:rotate(90deg)}.ius-entityrow__twisty--spacer{visibility:hidden}.ius-entityrow__twisty--loading{--_er-spin-scale: .818;transform:none}:host([data-expanded=true]) .ius-entityrow__twisty--loading{transform:none}.ius-entityrow__twisty--loading ius-circular-progress{transform:scale(var(--_er-spin-scale))}.ius-entityrow__icon{flex:0 0 auto;display:inline-flex;color:var(--ius-neutral-7)}.ius-entityrow__icon .ius-icon{font-size:var(--ius-icon-md)}.ius-entityrow__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:0}.ius-entityrow__label{font-size:var(--ius-fs-base);line-height:1.3;color:var(--ius-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entityrow__sub{font-size:var(--ius-fs-sm);line-height:1.3;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entityrow__sub[data-empty=true]{display:none}:host([data-level=\"0\"]) .ius-entityrow__label{font-weight:var(--ius-fw-semibold)}:host([data-unread=true]) .ius-entityrow__label{font-weight:var(--ius-fw-semibold)}.ius-entityrow__lead{flex:0 0 auto;display:inline-flex;align-items:center}.ius-entityrow__trailing{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-entityrow__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-entityrow__act{appearance:none;border:0;background:transparent;cursor:pointer;width:26px;height:26px;border-radius:var(--ius-radius-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--ius-text-tertiary);opacity:0;transition:opacity var(--ius-duration-fast) var(--ius-ease-standard),background var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entityrow__act .ius-icon{font-size:var(--ius-icon-md)}.ius-entityrow__act:hover{background:var(--ius-neutral-3);color:var(--ius-text-primary)}.ius-entityrow__act:focus-visible{outline:none;box-shadow:var(--ius-focus-ring);opacity:1}:host([data-selected=true]) .ius-entityrow__act{color:var(--_er-accent)}:host([data-selected=true]) .ius-entityrow__act:hover{background:color-mix(in srgb,var(--_er-accent) 16%,white);color:var(--_er-accent)}:host(:hover) .ius-entityrow__act,:host([data-menu-open=true]) .ius-entityrow__act{opacity:1}.ius-entityrow__act--pin[data-pinned=true]{opacity:1;color:var(--_er-accent)}.ius-entityrow__act--pin[data-pinned=true] .ius-icon{font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 200,\"opsz\" 24}:host(:hover) .ius-entityrow__trailing[data-dim=true],:host([data-menu-open=true]) .ius-entityrow__trailing[data-dim=true]{display:none}:host([data-accent=primary]){--_er-accent: var(--ius-primary-700);--_er-tint: color-mix(in srgb, var(--ius-primary-500) 14%, white)}:host([data-accent=info]){--_er-accent: var(--ius-info-600);--_er-tint: color-mix(in srgb, var(--ius-info-500) 14%, white)}:host([data-accent=success]){--_er-accent: var(--ius-success-600);--_er-tint: color-mix(in srgb, var(--ius-success-500) 14%, white)}:host([data-accent=warning]){--_er-accent: var(--ius-warning-600);--_er-tint: color-mix(in srgb, var(--ius-warning-500) 14%, white)}:host([data-accent=danger]){--_er-accent: var(--ius-danger-600);--_er-tint: color-mix(in srgb, var(--ius-danger-500) 14%, white)}:host([data-accent=neutral]){--_er-accent: var(--ius-neutral-9);--_er-tint: color-mix(in srgb, var(--ius-neutral-7) 14%, white)}:host([data-accent=durazno]){--_er-accent: var(--ius-durazno-600);--_er-tint: color-mix(in srgb, var(--ius-durazno-500) 14%, white)}:host([data-accent=banano]){--_er-accent: var(--ius-banano-600);--_er-tint: color-mix(in srgb, var(--ius-banano-500) 14%, white)}:host([data-accent=sandia]){--_er-accent: var(--ius-sandia-600);--_er-tint: color-mix(in srgb, var(--ius-sandia-500) 14%, white)}:host([data-accent=arandano]){--_er-accent: var(--ius-arandano-600);--_er-tint: color-mix(in srgb, var(--ius-arandano-500) 14%, white)}:host([data-accent=uva]){--_er-accent: var(--ius-uva-600);--_er-tint: color-mix(in srgb, var(--ius-uva-500) 14%, white)}:host([data-accent=aguacate]){--_er-accent: var(--ius-aguacate-600);--_er-tint: color-mix(in srgb, var(--ius-aguacate-500) 14%, white)}:host([data-selected=true]){background:var(--_er-tint)}:host([data-selected=true]) .ius-entityrow__label{color:var(--_er-accent);font-weight:var(--ius-fw-semibold)}:host([data-selected=true]) .ius-entityrow__icon,:host([data-selected=true]) .ius-entityrow__twisty{color:var(--_er-accent)}:host([data-selected=true]:hover){background:var(--_er-tint)}\n"] }]
16021
+ }, template: "<!-- Orden verbatim del golden: twisty \u00B7 \u00EDcono \u00B7 punto de novedad \u00B7 cuerpo \u00B7\n contador \u00B7 acciones. La ra\u00EDz es el propio host (ver el .scss). -->\n\n<!-- Chevron / aro de carga / hueco.\n `loading` gana: el aro ocupa la MISMA caja de 18 px, as\u00ED la fila no salta.\n El chevron no entra en el orden de tabulaci\u00F3n (igual que el golden): en un\n \u00E1rbol grande ser\u00EDa un tab-stop por fila; el estado lo comunica el\n `aria-expanded` de la fila. -->\n@if (loading) {\n <span class=\"ius-entityrow__twisty ius-entityrow__twisty--loading\">\n <ius-circular-progress\n [indeterminate]=\"true\"\n size=\"small\"\n tone=\"neutral\"\n ariaLabel=\"Cargando contenido\"\n />\n </span>\n} @else if (expandable) {\n <button\n type=\"button\"\n class=\"ius-entityrow__twisty\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n (click)=\"onToggleClick($event)\"\n >\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\n </button>\n} @else {\n <span class=\"ius-entityrow__twisty ius-entityrow__twisty--spacer\" aria-hidden=\"true\">\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\n </span>\n}\n\n<span class=\"ius-entityrow__icon\">\n <span translate=\"no\" class=\"ius-icon\">{{ effIcon }}</span>\n</span>\n\n<!-- Contenedor con novedad: solo el punto, sin n\u00FAmero (la hoja la comunica con\n su contador). Si adem\u00E1s llega `unread`, gana `unread` y esto no se pinta. -->\n@if (showNoveltyDot) {\n <span class=\"ius-entityrow__lead\">\n <ius-insignia\n variant=\"dot\"\n [tone]=\"noveltyTone\"\n size=\"small\"\n ariaLabel=\"Con novedades sin leer\"\n />\n </span>\n}\n\n<!-- Los dos slots se instancian SIEMPRE, nunca dentro de un `@if`: un\n `<ng-content>` detr\u00E1s de una condici\u00F3n que a\u00FAn no es cierta en el primer\n render pierde el contenido proyectado en silencio (el `contentChild` que\n alimentaba la condici\u00F3n se resuelve un tick tarde). El subt\u00EDtulo vac\u00EDo se\n oculta por CSS con `data-empty`, no quit\u00E1ndolo del \u00E1rbol. -->\n<span class=\"ius-entityrow__body\">\n <span class=\"ius-entityrow__label\">{{ label }}<ng-content select=\"[iusEntityRowLabel]\" /></span>\n <span class=\"ius-entityrow__sub\" [attr.data-empty]=\"hasSublabel ? null : 'true'\">{{ sublabel }}<ng-content select=\"[iusEntityRowSublabel]\" /></span>\n</span>\n\n<!-- Novedad (s\u00F3lido, alto contraste) vs conteo neutro de hijos: nunca ambos. -->\n@if (hasNovelty) {\n <span class=\"ius-entityrow__trailing\" [attr.data-dim]=\"dim\">\n <ius-insignia\n variant=\"count\"\n [tone]=\"noveltyTone\"\n [count]=\"unread\"\n [ariaLabel]=\"unread + ' sin leer'\"\n />\n </span>\n} @else if (showCount) {\n <span class=\"ius-entityrow__trailing\" [attr.data-dim]=\"dim\">\n <ius-insignia variant=\"count-soft\" [tone]=\"selected ? accent : 'neutral'\" [count]=\"count\" />\n </span>\n}\n\n<!-- Pin de acceso r\u00E1pido + men\u00FA \u22EE, revelados en hover. Un clic nacido aqu\u00ED\n dentro no navega (guarda `closest` en onRowClick). -->\n@if (hasRowActions) {\n <span class=\"ius-entityrow__actions\">\n @if (hasPin) {\n <button\n type=\"button\"\n class=\"ius-entityrow__act ius-entityrow__act--pin\"\n [attr.data-pinned]=\"pinned ? 'true' : null\"\n [attr.aria-label]=\"pinLabel\"\n [attr.aria-pressed]=\"pinned\"\n (click)=\"onPinClick($event)\"\n >\n <span translate=\"no\" class=\"ius-icon\">push_pin</span>\n </button>\n }\n @if (hasActions) {\n <!-- ius-dropdown ES la composici\u00F3n Popover+Menu del golden, ya encapsulada:\n respeta `group` (divisores) y `danger` (al fondo, en rojo). -->\n <ius-dropdown\n [items]=\"actions\"\n placement=\"bottom-end\"\n [ariaLabel]=\"menuLabel\"\n (openChange)=\"onMenuOpenChange($event)\"\n >\n <button iusDropdownTrigger type=\"button\" class=\"ius-entityrow__act\" [attr.aria-label]=\"menuLabel\">\n <span translate=\"no\" class=\"ius-icon\">more_vert</span>\n </button>\n </ius-dropdown>\n }\n </span>\n}\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;width:100%;display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-xs);background:transparent;border:0;border-radius:var(--ius-radius-md);cursor:pointer;font-family:var(--ius-font-body);color:var(--ius-text-primary);text-align:left;transition:background var(--ius-duration-fast) var(--ius-ease-standard);--_er-accent: var(--ius-info-600);--_er-tint: color-mix(in srgb, var(--ius-info-500) 14%, white)}:host(:hover){background:var(--ius-neutral-2)}:host(:focus-visible){outline:none;box-shadow:var(--ius-focus-ring)}:host([data-disabled=true]){cursor:default;opacity:.5;pointer-events:none}.ius-entityrow__twisty{flex:0 0 auto;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer;color:var(--ius-text-tertiary);transition:transform var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entityrow__twisty .ius-icon{font-size:var(--ius-icon-md)}:host([data-expanded=true]) .ius-entityrow__twisty{transform:rotate(90deg)}.ius-entityrow__twisty--spacer{visibility:hidden}.ius-entityrow__twisty--loading{--_er-spin-scale: .818;transform:none}:host([data-expanded=true]) .ius-entityrow__twisty--loading{transform:none}.ius-entityrow__twisty--loading ius-circular-progress{transform:scale(var(--_er-spin-scale))}.ius-entityrow__icon{flex:0 0 auto;display:inline-flex;color:var(--ius-neutral-7)}.ius-entityrow__icon .ius-icon{font-size:var(--ius-icon-md)}.ius-entityrow__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:0}.ius-entityrow__label{font-size:var(--ius-fs-base);line-height:1.3;color:var(--ius-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entityrow__sub{font-size:var(--ius-fs-sm);line-height:1.3;color:var(--ius-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entityrow__sub[data-empty=true]{display:none}:host([data-level=\"0\"]) .ius-entityrow__label{font-weight:var(--ius-fw-semibold)}:host([data-unread=true]) .ius-entityrow__label{font-weight:var(--ius-fw-semibold)}.ius-entityrow__lead{flex:0 0 auto;display:inline-flex;align-items:center}.ius-entityrow__trailing{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-entityrow__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-entityrow__act{appearance:none;border:0;background:transparent;cursor:pointer;width:26px;height:26px;border-radius:var(--ius-radius-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--ius-text-tertiary);opacity:0;transition:opacity var(--ius-duration-fast) var(--ius-ease-standard),background var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entityrow__act .ius-icon{font-size:var(--ius-icon-md)}.ius-entityrow__act:hover{background:var(--ius-neutral-3);color:var(--ius-text-primary)}.ius-entityrow__act:focus-visible{outline:none;box-shadow:var(--ius-focus-ring);opacity:1}:host([data-selected=true]) .ius-entityrow__act{color:var(--_er-accent)}:host([data-selected=true]) .ius-entityrow__act:hover{background:color-mix(in srgb,var(--_er-accent) 16%,white);color:var(--_er-accent)}:host(:hover) .ius-entityrow__act,:host([data-menu-open=true]) .ius-entityrow__act{opacity:1}.ius-entityrow__act--pin[data-pinned=true]{opacity:1;color:var(--_er-accent)}.ius-entityrow__act--pin[data-pinned=true] .ius-icon{font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 200,\"opsz\" 24}:host(:hover) .ius-entityrow__trailing[data-dim=true],:host([data-menu-open=true]) .ius-entityrow__trailing[data-dim=true]{display:none}:host([data-accent=primary]){--_er-accent: var(--ius-primary-700);--_er-tint: color-mix(in srgb, var(--ius-primary-500) 14%, white)}:host([data-accent=info]){--_er-accent: var(--ius-info-600);--_er-tint: color-mix(in srgb, var(--ius-info-500) 14%, white)}:host([data-accent=success]){--_er-accent: var(--ius-success-600);--_er-tint: color-mix(in srgb, var(--ius-success-500) 14%, white)}:host([data-accent=warning]){--_er-accent: var(--ius-warning-600);--_er-tint: color-mix(in srgb, var(--ius-warning-500) 14%, white)}:host([data-accent=danger]){--_er-accent: var(--ius-danger-600);--_er-tint: color-mix(in srgb, var(--ius-danger-500) 14%, white)}:host([data-accent=neutral]){--_er-accent: var(--ius-neutral-9);--_er-tint: color-mix(in srgb, var(--ius-neutral-7) 14%, white)}:host([data-accent=durazno]){--_er-accent: var(--ius-durazno-600);--_er-tint: color-mix(in srgb, var(--ius-durazno-500) 14%, white)}:host([data-accent=banano]){--_er-accent: var(--ius-banano-600);--_er-tint: color-mix(in srgb, var(--ius-banano-500) 14%, white)}:host([data-accent=sandia]){--_er-accent: var(--ius-sandia-600);--_er-tint: color-mix(in srgb, var(--ius-sandia-500) 14%, white)}:host([data-accent=arandano]){--_er-accent: var(--ius-arandano-600);--_er-tint: color-mix(in srgb, var(--ius-arandano-500) 14%, white)}:host([data-accent=uva]){--_er-accent: var(--ius-uva-600);--_er-tint: color-mix(in srgb, var(--ius-uva-500) 14%, white)}:host([data-accent=aguacate]){--_er-accent: var(--ius-aguacate-600);--_er-tint: color-mix(in srgb, var(--ius-aguacate-500) 14%, white)}:host([data-selected=true]){background:var(--_er-tint)}:host([data-selected=true]) .ius-entityrow__label{color:var(--_er-accent);font-weight:var(--ius-fw-semibold)}:host([data-selected=true]) .ius-entityrow__icon,:host([data-selected=true]) .ius-entityrow__twisty{color:var(--_er-accent)}:host([data-selected=true]:hover){background:var(--_er-tint)}\n"] }]
16008
16022
  }], propDecorators: { kind: [{
16009
16023
  type: Input
16010
16024
  }], icon: [{
@@ -16177,7 +16191,7 @@ class SwitchComponent {
16177
16191
  useExisting: forwardRef(() => SwitchComponent),
16178
16192
  multi: true,
16179
16193
  },
16180
- ], ngImport: i0, template: "<label class=\"ius-sw__inner\" [attr.data-label-position]=\"labelPosition\">\r\n <!-- Input primero + pista inmediatamente despu\u00E9s: el halo de foco usa el\r\n selector adyacente `.ius-sw__input:focus-visible + .ius-sw__track`, as\u00ED\r\n que el orden DOM se fija aqu\u00ED y la posici\u00F3n visual del label la resuelve\r\n `order` en el SCSS (labelPosition left/right). -->\r\n <input\r\n [id]=\"inputId\"\r\n class=\"ius-sw__input\"\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n [name]=\"name\"\r\n [attr.value]=\"value\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [attr.aria-checked]=\"ariaChecked\"\r\n [attr.aria-label]=\"ariaLabel ?? null\"\r\n (change)=\"onToggle()\"\r\n (blur)=\"onBlur()\"\r\n />\r\n\r\n <span class=\"ius-sw__track\" aria-hidden=\"true\">\r\n <span class=\"ius-sw__knob\"></span>\r\n </span>\r\n\r\n @if (label != null) {\r\n <span class=\"ius-sw__label\">\r\n <span>{{ label }}</span>\r\n @if (showIconHelp) {\r\n <ius-popover\r\n [title]=\"iconHelpTitle\"\r\n [content]=\"iconHelpContent\"\r\n [disabled]=\"!iconHelpTitle && !iconHelpContent\"\r\n >\r\n <span\r\n class=\"ius-sw__help\"\r\n tabindex=\"0\"\r\n aria-label=\"Ayuda\"\r\n (click)=\"$event.preventDefault()\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">help</span>\r\n </span>\r\n </ius-popover>\r\n }\r\n </span>\r\n }\r\n</label>\r\n", styles: ["@charset \"UTF-8\";:host{--_sw-w: 44px;--_sw-h: 24px;--_sw-knob: 18px;--_sw-fs: var(--ius-fs-base);display:inline-block;vertical-align:middle}:host([data-size=small]){--_sw-w: 36px;--_sw-h: 20px;--_sw-knob: 14px;--_sw-fs: var(--ius-fs-base)}:host([data-size=large]){--_sw-w: 52px;--_sw-h: 28px;--_sw-knob: 22px;--_sw-fs: var(--ius-fs-lg)}@container style(--ius-control-size: small){:host(:not([data-size])){--_sw-w: 36px;--_sw-h: 20px;--_sw-knob: 14px;--_sw-fs: var(--ius-fs-base)}}@container style(--ius-control-size: large){:host(:not([data-size])){--_sw-w: 52px;--_sw-h: 28px;--_sw-knob: 22px;--_sw-fs: var(--ius-fs-lg)}}.ius-sw__inner{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-body);font-size:var(--_sw-fs);color:var(--ius-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ius-sw__inner[data-label-position=left] .ius-sw__label{order:-1}:host([data-disabled=true]) .ius-sw__inner{cursor:not-allowed;color:var(--ius-text-disabled)}.ius-sw__input{position:absolute;opacity:0;width:0;height:0;margin:0}.ius-sw__track{position:relative;flex:0 0 auto;width:var(--_sw-w);height:var(--_sw-h);border-radius:var(--ius-radius-pill);background:var(--ius-neutral-4);transition:background-color var(--ius-duration-base) var(--ius-ease-standard),box-shadow var(--ius-duration-fast) var(--ius-ease-standard)}.ius-sw__knob{position:absolute;top:50%;left:calc((var(--_sw-h) - var(--_sw-knob)) / 2);transform:translateY(-50%);width:var(--_sw-knob);height:var(--_sw-knob);border-radius:var(--ius-radius-pill);background:var(--ius-neutral-white);box-shadow:var(--ius-elevation-100);transition:left var(--ius-duration-base) var(--ius-ease-standard)}:host(:hover) .ius-sw__track,:host([data-force=hover]) .ius-sw__track{background:var(--ius-neutral-5)}:host(:active) .ius-sw__track,:host([data-force=pressed]) .ius-sw__track{background:var(--ius-neutral-6)}:host([data-checked=true]) .ius-sw__track{background:var(--ius-primary-900)}:host([data-checked=true]) .ius-sw__knob{left:calc(var(--_sw-w) - var(--_sw-knob) - (var(--_sw-h) - var(--_sw-knob)) / 2)}:host([data-checked=true]:hover) .ius-sw__track,:host([data-checked=true][data-force=hover]) .ius-sw__track{background:var(--ius-primary-800)}:host([data-checked=true]:active) .ius-sw__track,:host([data-checked=true][data-force=pressed]) .ius-sw__track{background:var(--ius-info-700)}:host([data-force=focused]) .ius-sw__track,.ius-sw__input:focus-visible+.ius-sw__track{box-shadow:var(--ius-focus-ring)}:host([data-disabled=true]) .ius-sw__track{background:var(--ius-neutral-3)}:host([data-disabled=true][data-checked=true]) .ius-sw__track{background:var(--ius-info-200)}:host([data-disabled=true]) .ius-sw__knob{box-shadow:none;background:var(--ius-neutral-1)}.ius-sw__label{display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-sw__help{display:inline-flex;align-items:center;justify-content:center;color:var(--ius-neutral-7);cursor:help}.ius-sw__help .ius-icon{font-size:calc(var(--_sw-fs) + 4px);line-height:1}:host([data-disabled=true]) .ius-sw__help{color:var(--ius-text-disabled)}\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16194
+ ], ngImport: i0, template: "<label class=\"ius-sw__inner\" [attr.data-label-position]=\"labelPosition\">\n <!-- Input primero + pista inmediatamente despu\u00E9s: el halo de foco usa el\n selector adyacente `.ius-sw__input:focus-visible + .ius-sw__track`, as\u00ED\n que el orden DOM se fija aqu\u00ED y la posici\u00F3n visual del label la resuelve\n `order` en el SCSS (labelPosition left/right). -->\n <input\n [id]=\"inputId\"\n class=\"ius-sw__input\"\n type=\"checkbox\"\n role=\"switch\"\n [name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-label]=\"ariaLabel ?? null\"\n (change)=\"onToggle()\"\n (blur)=\"onBlur()\"\n />\n\n <span class=\"ius-sw__track\" aria-hidden=\"true\">\n <span class=\"ius-sw__knob\"></span>\n </span>\n\n @if (label != null) {\n <span class=\"ius-sw__label\">\n <span>{{ label }}</span>\n @if (showIconHelp) {\n <ius-popover\n [title]=\"iconHelpTitle\"\n [content]=\"iconHelpContent\"\n [disabled]=\"!iconHelpTitle && !iconHelpContent\"\n >\n <span\n class=\"ius-sw__help\"\n tabindex=\"0\"\n aria-label=\"Ayuda\"\n (click)=\"$event.preventDefault()\"\n >\n <span translate=\"no\" class=\"ius-icon\">help</span>\n </span>\n </ius-popover>\n }\n </span>\n }\n</label>\n", styles: ["@charset \"UTF-8\";:host{--_sw-w: 44px;--_sw-h: 24px;--_sw-knob: 18px;--_sw-fs: var(--ius-fs-base);display:inline-block;vertical-align:middle}:host([data-size=small]){--_sw-w: 36px;--_sw-h: 20px;--_sw-knob: 14px;--_sw-fs: var(--ius-fs-base)}:host([data-size=large]){--_sw-w: 52px;--_sw-h: 28px;--_sw-knob: 22px;--_sw-fs: var(--ius-fs-lg)}@container style(--ius-control-size: small){:host(:not([data-size])){--_sw-w: 36px;--_sw-h: 20px;--_sw-knob: 14px;--_sw-fs: var(--ius-fs-base)}}@container style(--ius-control-size: large){:host(:not([data-size])){--_sw-w: 52px;--_sw-h: 28px;--_sw-knob: 22px;--_sw-fs: var(--ius-fs-lg)}}.ius-sw__inner{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-body);font-size:var(--_sw-fs);color:var(--ius-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ius-sw__inner[data-label-position=left] .ius-sw__label{order:-1}:host([data-disabled=true]) .ius-sw__inner{cursor:not-allowed;color:var(--ius-text-disabled)}.ius-sw__input{position:absolute;opacity:0;width:0;height:0;margin:0}.ius-sw__track{position:relative;flex:0 0 auto;width:var(--_sw-w);height:var(--_sw-h);border-radius:var(--ius-radius-pill);background:var(--ius-neutral-4);transition:background-color var(--ius-duration-base) var(--ius-ease-standard),box-shadow var(--ius-duration-fast) var(--ius-ease-standard)}.ius-sw__knob{position:absolute;top:50%;left:calc((var(--_sw-h) - var(--_sw-knob)) / 2);transform:translateY(-50%);width:var(--_sw-knob);height:var(--_sw-knob);border-radius:var(--ius-radius-pill);background:var(--ius-neutral-white);box-shadow:var(--ius-elevation-100);transition:left var(--ius-duration-base) var(--ius-ease-standard)}:host(:hover) .ius-sw__track,:host([data-force=hover]) .ius-sw__track{background:var(--ius-neutral-5)}:host(:active) .ius-sw__track,:host([data-force=pressed]) .ius-sw__track{background:var(--ius-neutral-6)}:host([data-checked=true]) .ius-sw__track{background:var(--ius-primary-900)}:host([data-checked=true]) .ius-sw__knob{left:calc(var(--_sw-w) - var(--_sw-knob) - (var(--_sw-h) - var(--_sw-knob)) / 2)}:host([data-checked=true]:hover) .ius-sw__track,:host([data-checked=true][data-force=hover]) .ius-sw__track{background:var(--ius-primary-800)}:host([data-checked=true]:active) .ius-sw__track,:host([data-checked=true][data-force=pressed]) .ius-sw__track{background:var(--ius-info-700)}:host([data-force=focused]) .ius-sw__track,.ius-sw__input:focus-visible+.ius-sw__track{box-shadow:var(--ius-focus-ring)}:host([data-disabled=true]) .ius-sw__track{background:var(--ius-neutral-3)}:host([data-disabled=true][data-checked=true]) .ius-sw__track{background:var(--ius-info-200)}:host([data-disabled=true]) .ius-sw__knob{box-shadow:none;background:var(--ius-neutral-1)}.ius-sw__label{display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-sw__help{display:inline-flex;align-items:center;justify-content:center;color:var(--ius-neutral-7);cursor:help}.ius-sw__help .ius-icon{font-size:calc(var(--_sw-fs) + 4px);line-height:1}:host([data-disabled=true]) .ius-sw__help{color:var(--ius-text-disabled)}\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16181
16195
  }
16182
16196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SwitchComponent, decorators: [{
16183
16197
  type: Component,
@@ -16192,7 +16206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
16192
16206
  '[attr.data-size]': "size !== 'medium' ? size : null",
16193
16207
  '[attr.data-checked]': "checked ? 'true' : null",
16194
16208
  '[attr.data-disabled]': "disabled ? 'true' : null",
16195
- }, template: "<label class=\"ius-sw__inner\" [attr.data-label-position]=\"labelPosition\">\r\n <!-- Input primero + pista inmediatamente despu\u00E9s: el halo de foco usa el\r\n selector adyacente `.ius-sw__input:focus-visible + .ius-sw__track`, as\u00ED\r\n que el orden DOM se fija aqu\u00ED y la posici\u00F3n visual del label la resuelve\r\n `order` en el SCSS (labelPosition left/right). -->\r\n <input\r\n [id]=\"inputId\"\r\n class=\"ius-sw__input\"\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n [name]=\"name\"\r\n [attr.value]=\"value\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [attr.aria-checked]=\"ariaChecked\"\r\n [attr.aria-label]=\"ariaLabel ?? null\"\r\n (change)=\"onToggle()\"\r\n (blur)=\"onBlur()\"\r\n />\r\n\r\n <span class=\"ius-sw__track\" aria-hidden=\"true\">\r\n <span class=\"ius-sw__knob\"></span>\r\n </span>\r\n\r\n @if (label != null) {\r\n <span class=\"ius-sw__label\">\r\n <span>{{ label }}</span>\r\n @if (showIconHelp) {\r\n <ius-popover\r\n [title]=\"iconHelpTitle\"\r\n [content]=\"iconHelpContent\"\r\n [disabled]=\"!iconHelpTitle && !iconHelpContent\"\r\n >\r\n <span\r\n class=\"ius-sw__help\"\r\n tabindex=\"0\"\r\n aria-label=\"Ayuda\"\r\n (click)=\"$event.preventDefault()\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">help</span>\r\n </span>\r\n </ius-popover>\r\n }\r\n </span>\r\n }\r\n</label>\r\n", styles: ["@charset \"UTF-8\";:host{--_sw-w: 44px;--_sw-h: 24px;--_sw-knob: 18px;--_sw-fs: var(--ius-fs-base);display:inline-block;vertical-align:middle}:host([data-size=small]){--_sw-w: 36px;--_sw-h: 20px;--_sw-knob: 14px;--_sw-fs: var(--ius-fs-base)}:host([data-size=large]){--_sw-w: 52px;--_sw-h: 28px;--_sw-knob: 22px;--_sw-fs: var(--ius-fs-lg)}@container style(--ius-control-size: small){:host(:not([data-size])){--_sw-w: 36px;--_sw-h: 20px;--_sw-knob: 14px;--_sw-fs: var(--ius-fs-base)}}@container style(--ius-control-size: large){:host(:not([data-size])){--_sw-w: 52px;--_sw-h: 28px;--_sw-knob: 22px;--_sw-fs: var(--ius-fs-lg)}}.ius-sw__inner{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-body);font-size:var(--_sw-fs);color:var(--ius-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ius-sw__inner[data-label-position=left] .ius-sw__label{order:-1}:host([data-disabled=true]) .ius-sw__inner{cursor:not-allowed;color:var(--ius-text-disabled)}.ius-sw__input{position:absolute;opacity:0;width:0;height:0;margin:0}.ius-sw__track{position:relative;flex:0 0 auto;width:var(--_sw-w);height:var(--_sw-h);border-radius:var(--ius-radius-pill);background:var(--ius-neutral-4);transition:background-color var(--ius-duration-base) var(--ius-ease-standard),box-shadow var(--ius-duration-fast) var(--ius-ease-standard)}.ius-sw__knob{position:absolute;top:50%;left:calc((var(--_sw-h) - var(--_sw-knob)) / 2);transform:translateY(-50%);width:var(--_sw-knob);height:var(--_sw-knob);border-radius:var(--ius-radius-pill);background:var(--ius-neutral-white);box-shadow:var(--ius-elevation-100);transition:left var(--ius-duration-base) var(--ius-ease-standard)}:host(:hover) .ius-sw__track,:host([data-force=hover]) .ius-sw__track{background:var(--ius-neutral-5)}:host(:active) .ius-sw__track,:host([data-force=pressed]) .ius-sw__track{background:var(--ius-neutral-6)}:host([data-checked=true]) .ius-sw__track{background:var(--ius-primary-900)}:host([data-checked=true]) .ius-sw__knob{left:calc(var(--_sw-w) - var(--_sw-knob) - (var(--_sw-h) - var(--_sw-knob)) / 2)}:host([data-checked=true]:hover) .ius-sw__track,:host([data-checked=true][data-force=hover]) .ius-sw__track{background:var(--ius-primary-800)}:host([data-checked=true]:active) .ius-sw__track,:host([data-checked=true][data-force=pressed]) .ius-sw__track{background:var(--ius-info-700)}:host([data-force=focused]) .ius-sw__track,.ius-sw__input:focus-visible+.ius-sw__track{box-shadow:var(--ius-focus-ring)}:host([data-disabled=true]) .ius-sw__track{background:var(--ius-neutral-3)}:host([data-disabled=true][data-checked=true]) .ius-sw__track{background:var(--ius-info-200)}:host([data-disabled=true]) .ius-sw__knob{box-shadow:none;background:var(--ius-neutral-1)}.ius-sw__label{display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-sw__help{display:inline-flex;align-items:center;justify-content:center;color:var(--ius-neutral-7);cursor:help}.ius-sw__help .ius-icon{font-size:calc(var(--_sw-fs) + 4px);line-height:1}:host([data-disabled=true]) .ius-sw__help{color:var(--ius-text-disabled)}\n"] }]
16209
+ }, template: "<label class=\"ius-sw__inner\" [attr.data-label-position]=\"labelPosition\">\n <!-- Input primero + pista inmediatamente despu\u00E9s: el halo de foco usa el\n selector adyacente `.ius-sw__input:focus-visible + .ius-sw__track`, as\u00ED\n que el orden DOM se fija aqu\u00ED y la posici\u00F3n visual del label la resuelve\n `order` en el SCSS (labelPosition left/right). -->\n <input\n [id]=\"inputId\"\n class=\"ius-sw__input\"\n type=\"checkbox\"\n role=\"switch\"\n [name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-label]=\"ariaLabel ?? null\"\n (change)=\"onToggle()\"\n (blur)=\"onBlur()\"\n />\n\n <span class=\"ius-sw__track\" aria-hidden=\"true\">\n <span class=\"ius-sw__knob\"></span>\n </span>\n\n @if (label != null) {\n <span class=\"ius-sw__label\">\n <span>{{ label }}</span>\n @if (showIconHelp) {\n <ius-popover\n [title]=\"iconHelpTitle\"\n [content]=\"iconHelpContent\"\n [disabled]=\"!iconHelpTitle && !iconHelpContent\"\n >\n <span\n class=\"ius-sw__help\"\n tabindex=\"0\"\n aria-label=\"Ayuda\"\n (click)=\"$event.preventDefault()\"\n >\n <span translate=\"no\" class=\"ius-icon\">help</span>\n </span>\n </ius-popover>\n }\n </span>\n }\n</label>\n", styles: ["@charset \"UTF-8\";:host{--_sw-w: 44px;--_sw-h: 24px;--_sw-knob: 18px;--_sw-fs: var(--ius-fs-base);display:inline-block;vertical-align:middle}:host([data-size=small]){--_sw-w: 36px;--_sw-h: 20px;--_sw-knob: 14px;--_sw-fs: var(--ius-fs-base)}:host([data-size=large]){--_sw-w: 52px;--_sw-h: 28px;--_sw-knob: 22px;--_sw-fs: var(--ius-fs-lg)}@container style(--ius-control-size: small){:host(:not([data-size])){--_sw-w: 36px;--_sw-h: 20px;--_sw-knob: 14px;--_sw-fs: var(--ius-fs-base)}}@container style(--ius-control-size: large){:host(:not([data-size])){--_sw-w: 52px;--_sw-h: 28px;--_sw-knob: 22px;--_sw-fs: var(--ius-fs-lg)}}.ius-sw__inner{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-body);font-size:var(--_sw-fs);color:var(--ius-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ius-sw__inner[data-label-position=left] .ius-sw__label{order:-1}:host([data-disabled=true]) .ius-sw__inner{cursor:not-allowed;color:var(--ius-text-disabled)}.ius-sw__input{position:absolute;opacity:0;width:0;height:0;margin:0}.ius-sw__track{position:relative;flex:0 0 auto;width:var(--_sw-w);height:var(--_sw-h);border-radius:var(--ius-radius-pill);background:var(--ius-neutral-4);transition:background-color var(--ius-duration-base) var(--ius-ease-standard),box-shadow var(--ius-duration-fast) var(--ius-ease-standard)}.ius-sw__knob{position:absolute;top:50%;left:calc((var(--_sw-h) - var(--_sw-knob)) / 2);transform:translateY(-50%);width:var(--_sw-knob);height:var(--_sw-knob);border-radius:var(--ius-radius-pill);background:var(--ius-neutral-white);box-shadow:var(--ius-elevation-100);transition:left var(--ius-duration-base) var(--ius-ease-standard)}:host(:hover) .ius-sw__track,:host([data-force=hover]) .ius-sw__track{background:var(--ius-neutral-5)}:host(:active) .ius-sw__track,:host([data-force=pressed]) .ius-sw__track{background:var(--ius-neutral-6)}:host([data-checked=true]) .ius-sw__track{background:var(--ius-primary-900)}:host([data-checked=true]) .ius-sw__knob{left:calc(var(--_sw-w) - var(--_sw-knob) - (var(--_sw-h) - var(--_sw-knob)) / 2)}:host([data-checked=true]:hover) .ius-sw__track,:host([data-checked=true][data-force=hover]) .ius-sw__track{background:var(--ius-primary-800)}:host([data-checked=true]:active) .ius-sw__track,:host([data-checked=true][data-force=pressed]) .ius-sw__track{background:var(--ius-info-700)}:host([data-force=focused]) .ius-sw__track,.ius-sw__input:focus-visible+.ius-sw__track{box-shadow:var(--ius-focus-ring)}:host([data-disabled=true]) .ius-sw__track{background:var(--ius-neutral-3)}:host([data-disabled=true][data-checked=true]) .ius-sw__track{background:var(--ius-info-200)}:host([data-disabled=true]) .ius-sw__knob{box-shadow:none;background:var(--ius-neutral-1)}.ius-sw__label{display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-sw__help{display:inline-flex;align-items:center;justify-content:center;color:var(--ius-neutral-7);cursor:help}.ius-sw__help .ius-icon{font-size:calc(var(--_sw-fs) + 4px);line-height:1}:host([data-disabled=true]) .ius-sw__help{color:var(--ius-text-disabled)}\n"] }]
16196
16210
  }], propDecorators: { label: [{
16197
16211
  type: Input
16198
16212
  }], labelPosition: [{
@@ -16369,6 +16383,14 @@ class EntityNavigatorComponent {
16369
16383
  this.groupLimit = input(undefined, /* @ts-ignore */
16370
16384
  ...(ngDevMode ? [{ debugName: "groupLimit" }] : /* istanbul ignore next */ []));
16371
16385
  this.collapsibleGroups = input(false, { ...(ngDevMode ? { debugName: "collapsibleGroups" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
16386
+ /**
16387
+ * Grupos plegados **controlado** (keys). Presente → el consumidor gobierna el
16388
+ * plegado; el navegador refleja este set y emite `groupCollapse(next)` en cada
16389
+ * cambio — incluido el auto-despliegue del salto por letra sobre un grupo
16390
+ * plegado. Sin él, el plegado es estado interno. Requiere `collapsibleGroups`.
16391
+ */
16392
+ this.collapsedGroups = input(undefined, /* @ts-ignore */
16393
+ ...(ngDevMode ? [{ debugName: "collapsedGroups" }] : /* istanbul ignore next */ []));
16372
16394
  this.stickyHeaders = input(false, { ...(ngDevMode ? { debugName: "stickyHeaders" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
16373
16395
  this.pinnableGroups = input(false, { ...(ngDevMode ? { debugName: "pinnableGroups" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
16374
16396
  this.defaultPinnedGroup = input(null, /* @ts-ignore */
@@ -16416,6 +16438,8 @@ class EntityNavigatorComponent {
16416
16438
  this.togglePin = new EventEmitter();
16417
16439
  this.create = new EventEmitter();
16418
16440
  this.pinGroup = new EventEmitter();
16441
+ /** Par two-way de `collapsedGroups`. */
16442
+ this.groupCollapse = new EventEmitter();
16419
16443
  this.more = new EventEmitter();
16420
16444
  /** Par two-way de `collapsed`. */
16421
16445
  this.collapsedChange = new EventEmitter();
@@ -16487,6 +16511,12 @@ class EntityNavigatorComponent {
16487
16511
  this.vRaf = 0;
16488
16512
  this.isCollapsed = computed(() => this.collapsed() ?? this.internalCollapsed(), /* @ts-ignore */
16489
16513
  ...(ngDevMode ? [{ debugName: "isCollapsed" }] : /* istanbul ignore next */ []));
16514
+ /** Grupos plegados efectivos: el input controlado manda sobre el interno. */
16515
+ this.plegados = computed(() => {
16516
+ const ctrl = this.collapsedGroups();
16517
+ return ctrl !== undefined ? new Set(ctrl) : this.grpCollapsed();
16518
+ }, /* @ts-ignore */
16519
+ ...(ngDevMode ? [{ debugName: "plegados" }] : /* istanbul ignore next */ []));
16490
16520
  this.activeKeys = computed(() => {
16491
16521
  const ctrl = this.selectedFilters();
16492
16522
  return ctrl !== undefined ? new Set(ctrl) : this.internalFilterKeys();
@@ -16585,7 +16615,7 @@ class EntityNavigatorComponent {
16585
16615
  const puedeAnclar = this.togglePin.observed;
16586
16616
  const gl = this.groupLimit();
16587
16617
  const grpExp = this.grpExpanded();
16588
- const grpCol = this.grpCollapsed();
16618
+ const grpCol = this.plegados();
16589
16619
  const pinned = this.pinnedKey();
16590
16620
  const virt = this.virtualized();
16591
16621
  const umbral = this.virtualizeThreshold();
@@ -16630,8 +16660,11 @@ class EntityNavigatorComponent {
16630
16660
  // offset de cada letra dentro del flujo (la cabecera desplaza en 1 el índice)
16631
16661
  const base = conCabecera ? 1 : 0;
16632
16662
  descs.forEach((d, i) => {
16633
- if (d.kind === 'letter' && d.letter)
16663
+ // Primera aparición gana: el ancla del DOM que resuelve el salto no
16664
+ // virtualizado es también la primera, y ambos caminos deben coincidir.
16665
+ if (d.kind === 'letter' && d.letter && letras[d.letter] == null) {
16634
16666
  letras[d.letter] = inicios[base + i];
16667
+ }
16635
16668
  });
16636
16669
  cursor += altoSeccion;
16637
16670
  }
@@ -16740,26 +16773,34 @@ class EntityNavigatorComponent {
16740
16773
  // ════════════════════════════════════════════════════════════════════════
16741
16774
  // Índice alfabético
16742
16775
  // ════════════════════════════════════════════════════════════════════════
16743
- /** Letras realmente presentes en el nivel superior, en orden de aparición. */
16744
- this.letrasPresentes = computed(() => {
16745
- const vistas = new Set();
16746
- const out = [];
16747
- const scan = (list) => {
16776
+ /**
16777
+ * Barrido único del nivel superior: las letras presentes (en orden de
16778
+ * aparición) y el grupo donde cae cada una. Recorre `g.items` **crudo**, así
16779
+ * que ve también los grupos plegados — de ahí sale el auto-despliegue del
16780
+ * salto. Primera aparición gana, igual que el ancla del DOM.
16781
+ */
16782
+ this.barridoDeLetras = computed(() => {
16783
+ const orden = [];
16784
+ const grupo = new Map();
16785
+ const scan = (list, gk) => {
16748
16786
  for (const n of list ?? []) {
16749
- if (n.letter && !vistas.has(n.letter)) {
16750
- vistas.add(n.letter);
16751
- out.push(n.letter);
16787
+ if (n.letter && !grupo.has(n.letter)) {
16788
+ grupo.set(n.letter, gk);
16789
+ orden.push(n.letter);
16752
16790
  }
16753
16791
  }
16754
16792
  };
16755
16793
  const gs = this.groups();
16756
16794
  if (gs)
16757
16795
  for (const g of gs)
16758
- scan(g.items);
16796
+ scan(g.items, g.key || g.label || '');
16759
16797
  else
16760
- scan(this.items());
16761
- return out;
16798
+ scan(this.items(), '');
16799
+ return { orden, grupo };
16762
16800
  }, /* @ts-ignore */
16801
+ ...(ngDevMode ? [{ debugName: "barridoDeLetras" }] : /* istanbul ignore next */ []));
16802
+ /** Letras realmente presentes en el nivel superior, en orden de aparición. */
16803
+ this.letrasPresentes = computed(() => this.barridoDeLetras().orden, /* @ts-ignore */
16763
16804
  ...(ngDevMode ? [{ debugName: "letrasPresentes" }] : /* istanbul ignore next */ []));
16764
16805
  this.setPresentes = computed(() => new Set(this.letrasPresentes()), /* @ts-ignore */
16765
16806
  ...(ngDevMode ? [{ debugName: "setPresentes" }] : /* istanbul ignore next */ []));
@@ -17011,14 +17052,22 @@ class EntityNavigatorComponent {
17011
17052
  });
17012
17053
  }
17013
17054
  alternarPlegadoGrupo(key) {
17014
- this.grpCollapsed.update((prev) => {
17015
- const next = new Set(prev);
17016
- if (next.has(key))
17017
- next.delete(key);
17018
- else
17019
- next.add(key);
17020
- return next;
17021
- });
17055
+ const next = new Set(this.plegados());
17056
+ if (next.has(key))
17057
+ next.delete(key);
17058
+ else
17059
+ next.add(key);
17060
+ this.aplicarPlegado(next);
17061
+ }
17062
+ /**
17063
+ * Camino único del plegado: si `collapsedGroups` es controlado solo emite
17064
+ * (el consumidor manda el set); si no, muta el estado interno. Lo usan tanto
17065
+ * el chevron del encabezado como el auto-despliegue del salto por letra.
17066
+ */
17067
+ aplicarPlegado(next) {
17068
+ if (this.collapsedGroups() === undefined)
17069
+ this.grpCollapsed.set(next);
17070
+ this.groupCollapse.emit([...next]);
17022
17071
  }
17023
17072
  alternarColapso() {
17024
17073
  const next = !this.isCollapsed();
@@ -17165,6 +17214,14 @@ class EntityNavigatorComponent {
17165
17214
  if (!container)
17166
17215
  return;
17167
17216
  const suave = !this.prefiereMenosMovimiento();
17217
+ // El destino puede caer dentro de un grupo plegado: sin sus filas no hay
17218
+ // ancla ni offset y el rail quedaría clicable pero muerto. Se despliega y
17219
+ // el desplazamiento lo resuelve el efecto post-render, ya con layout.
17220
+ if (this.desplegarGrupoDeLetra(letter)) {
17221
+ this.pendingLetter = letter;
17222
+ this.activeLetter.set(letter);
17223
+ return;
17224
+ }
17168
17225
  // Con ventana de render el ancla puede no estar pintada: el destino sale del
17169
17226
  // índice en la lista aplanada, no del offsetTop.
17170
17227
  if (this.modelo().virtOn) {
@@ -17196,6 +17253,26 @@ class EntityNavigatorComponent {
17196
17253
  container.scrollTo({ top: this.topDeAncla(container, el), behavior: suave ? 'smooth' : 'auto' });
17197
17254
  this.activeLetter.set(letter);
17198
17255
  }
17256
+ /**
17257
+ * Despliega el grupo que contiene `letter` si está plegado. Va por el mismo
17258
+ * camino que el chevron (`aplicarPlegado`): con `collapsedGroups` controlado
17259
+ * emite `groupCollapse` para sincronizar al consumidor, si no muta el estado
17260
+ * interno. Devuelve `true` si hubo que desplegar (el salto queda pendiente).
17261
+ */
17262
+ desplegarGrupoDeLetra(letter) {
17263
+ if (!this.collapsibleGroups())
17264
+ return false;
17265
+ const gk = this.barridoDeLetras().grupo.get(letter);
17266
+ if (gk === undefined)
17267
+ return false;
17268
+ const plegados = this.plegados();
17269
+ if (!plegados.has(gk))
17270
+ return false;
17271
+ const next = new Set(plegados);
17272
+ next.delete(gk);
17273
+ this.aplicarPlegado(next);
17274
+ return true;
17275
+ }
17199
17276
  anclaDeLetra(letter) {
17200
17277
  for (const ref of this.letterAnchors()) {
17201
17278
  if (ref.nativeElement.getAttribute('data-letter') === letter)
@@ -17372,7 +17449,7 @@ class EntityNavigatorComponent {
17372
17449
  return fijada ? 'Dejar de fijar sección arriba' : 'Fijar sección arriba';
17373
17450
  }
17374
17451
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EntityNavigatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17375
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: EntityNavigatorComponent, isStandalone: true, selector: "ius-entity-navigator", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleIcon: { classPropertyName: "titleIcon", publicName: "titleIcon", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchThreshold: { classPropertyName: "searchThreshold", publicName: "searchThreshold", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, searchValue: { classPropertyName: "searchValue", publicName: "searchValue", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, selectedFilters: { classPropertyName: "selectedFilters", publicName: "selectedFilters", isSignal: true, isRequired: false, transformFunction: null }, availableFilters: { classPropertyName: "availableFilters", publicName: "availableFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFacets: { classPropertyName: "activeFacets", publicName: "activeFacets", isSignal: true, isRequired: false, transformFunction: null }, stateSegments: { classPropertyName: "stateSegments", publicName: "stateSegments", isSignal: true, isRequired: false, transformFunction: null }, stateValue: { classPropertyName: "stateValue", publicName: "stateValue", isSignal: true, isRequired: false, transformFunction: null }, sortLabel: { classPropertyName: "sortLabel", publicName: "sortLabel", isSignal: true, isRequired: false, transformFunction: null }, sortOptions: { classPropertyName: "sortOptions", publicName: "sortOptions", isSignal: true, isRequired: false, transformFunction: null }, sortValue: { classPropertyName: "sortValue", publicName: "sortValue", isSignal: true, isRequired: false, transformFunction: null }, metaLabel: { classPropertyName: "metaLabel", publicName: "metaLabel", isSignal: true, isRequired: false, transformFunction: null }, groups: { classPropertyName: "groups", publicName: "groups", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, accent: { classPropertyName: "accent", publicName: "accent", isSignal: true, isRequired: false, transformFunction: null }, defaultExpanded: { classPropertyName: "defaultExpanded", publicName: "defaultExpanded", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, autoExpandOnFilter: { classPropertyName: "autoExpandOnFilter", publicName: "autoExpandOnFilter", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, defaultSelected: { classPropertyName: "defaultSelected", publicName: "defaultSelected", isSignal: true, isRequired: false, transformFunction: null }, emptyStateTemplate: { classPropertyName: "emptyStateTemplate", publicName: "emptyStateTemplate", isSignal: true, isRequired: false, transformFunction: null }, noResultsLabel: { classPropertyName: "noResultsLabel", publicName: "noResultsLabel", isSignal: true, isRequired: false, transformFunction: null }, createLabel: { classPropertyName: "createLabel", publicName: "createLabel", isSignal: true, isRequired: false, transformFunction: null }, createIcon: { classPropertyName: "createIcon", publicName: "createIcon", isSignal: true, isRequired: false, transformFunction: null }, groupLimit: { classPropertyName: "groupLimit", publicName: "groupLimit", isSignal: true, isRequired: false, transformFunction: null }, collapsibleGroups: { classPropertyName: "collapsibleGroups", publicName: "collapsibleGroups", isSignal: true, isRequired: false, transformFunction: null }, stickyHeaders: { classPropertyName: "stickyHeaders", publicName: "stickyHeaders", isSignal: true, isRequired: false, transformFunction: null }, pinnableGroups: { classPropertyName: "pinnableGroups", publicName: "pinnableGroups", isSignal: true, isRequired: false, transformFunction: null }, defaultPinnedGroup: { classPropertyName: "defaultPinnedGroup", publicName: "defaultPinnedGroup", isSignal: true, isRequired: false, transformFunction: null }, moreLabel: { classPropertyName: "moreLabel", publicName: "moreLabel", isSignal: true, isRequired: false, transformFunction: null }, alphaIndex: { classPropertyName: "alphaIndex", publicName: "alphaIndex", isSignal: true, isRequired: false, transformFunction: null }, alphaIndexLetters: { classPropertyName: "alphaIndexLetters", publicName: "alphaIndexLetters", isSignal: true, isRequired: false, transformFunction: null }, loadMoreLabel: { classPropertyName: "loadMoreLabel", publicName: "loadMoreLabel", isSignal: true, isRequired: false, transformFunction: null }, virtualized: { classPropertyName: "virtualized", publicName: "virtualized", isSignal: true, isRequired: false, transformFunction: null }, virtualizeThreshold: { classPropertyName: "virtualizeThreshold", publicName: "virtualizeThreshold", isSignal: true, isRequired: false, transformFunction: null }, itemHeights: { classPropertyName: "itemHeights", publicName: "itemHeights", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, defaultCollapsed: { classPropertyName: "defaultCollapsed", publicName: "defaultCollapsed", isSignal: true, isRequired: false, transformFunction: null }, fluidWidth: { classPropertyName: "fluidWidth", publicName: "fluidWidth", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { search: "search", searchChange: "searchChange", searchClear: "searchClear", filter: "filter", filterRemove: "filterRemove", addFilter: "addFilter", stateChange: "stateChange", facetAdd: "facetAdd", facetRemove: "facetRemove", sort: "sort", select: "select", selectedChange: "selectedChange", expandedChange: "expandedChange", togglePin: "togglePin", create: "create", pinGroup: "pinGroup", more: "more", collapsedChange: "collapsedChange", jumpToLetter: "jumpToLetter", loadMore: "loadMore", expandLoad: "expandLoad" }, host: { properties: { "attr.data-collapsed": "isCollapsed() ? 'true' : null", "attr.data-fluid": "fluidWidth() ? 'true' : null", "attr.aria-label": "ariaLabel() || title() || null" }, classAttribute: "ius-entnav" }, viewQueries: [{ propertyName: "bodyRef", first: true, predicate: ["body"], descendants: true, isSignal: true }, { propertyName: "alphaRef", first: true, predicate: ["alpha"], descendants: true, isSignal: true }, { propertyName: "searchRef", first: true, predicate: ["searchBox"], descendants: true, isSignal: true }, { propertyName: "sentinels", predicate: ["lmSentinel"], descendants: true, isSignal: true }, { propertyName: "letterAnchors", predicate: ["letterAnchor"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Riel colapsado: solo expandir + CTA. Rama aparte, como el golden. -->\r\n@if (collapsible() && isCollapsed()) {\r\n <div class=\"ius-entnav__rail\">\r\n <ius-icon-button\r\n icon=\"left_panel_open\"\r\n variant=\"tertiary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n ariaLabel=\"Expandir\"\r\n (clicked)=\"alternarColapso()\"\r\n />\r\n @if (hayPie()) {\r\n <ius-icon-button\r\n [icon]=\"createIcon()\"\r\n variant=\"secondary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n [ariaLabel]=\"createLabel()\"\r\n (clicked)=\"create.emit($event)\"\r\n />\r\n }\r\n </div>\r\n} @else {\r\n <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Cabecera \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"ius-entnav__head\">\r\n @if (hayCabecera()) {\r\n <div class=\"ius-entnav__titlerow\">\r\n @if (title()) {\r\n <div class=\"ius-entnav__title\">\r\n @if (titleIcon()) {\r\n <span translate=\"no\" class=\"ius-icon\">{{ titleIcon() }}</span>\r\n }\r\n {{ title() }}\r\n </div>\r\n } @else {\r\n <span></span>\r\n }\r\n <span class=\"ius-entnav__actions\">\r\n @if (showSearchToggle()) {\r\n <!-- El `state: pressed` del golden no se porta: IconButton omite `state`\r\n de su API p\u00FAblica a prop\u00F3sito (decisi\u00F3n suya, documentada). -->\r\n <ius-icon-button\r\n icon=\"search\"\r\n variant=\"tertiary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n ariaLabel=\"Buscar (\u2318K)\"\r\n (clicked)=\"alternarBusqueda()\"\r\n />\r\n }\r\n @if (collapsible()) {\r\n <ius-icon-button\r\n icon=\"left_panel_close\"\r\n variant=\"tertiary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n ariaLabel=\"Colapsar\"\r\n (clicked)=\"alternarColapso()\"\r\n />\r\n }\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (searchVisible()) {\r\n <div #searchBox>\r\n <ius-search-bar\r\n [placeholder]=\"searchPlaceholder()\"\r\n size=\"medium\"\r\n [value]=\"searchValue()\"\r\n (valueChange)=\"onSearchValueChange($event)\"\r\n (search)=\"search.emit($event)\"\r\n (cleared)=\"searchClear.emit()\"\r\n />\r\n </div>\r\n }\r\n\r\n <!-- Eje de estado: excluyente, ortogonal a facetas y b\u00FAsqueda; no poda datos. -->\r\n @if (stateSegments()?.length) {\r\n <div class=\"ius-entnav__state\">\r\n <ius-segmented-control\r\n [options]=\"segmentos()\"\r\n [value]=\"stateVal()\"\r\n size=\"small\"\r\n variant=\"subtle\"\r\n fullWidth\r\n (valueChange)=\"elegirEstado($event)\"\r\n />\r\n </div>\r\n }\r\n\r\n @if (hayBarraFiltros()) {\r\n <div class=\"ius-entnav__filters\">\r\n @for (f of filters(); track f.key) {\r\n <ius-tag\r\n role=\"filter\"\r\n size=\"small\"\r\n [tone]=\"tonoFiltro(f)\"\r\n [icon]=\"f.icon\"\r\n [dot]=\"f.dot\"\r\n [count]=\"f.count\"\r\n [label]=\"f.label\"\r\n [selected]=\"activeKeys().has(f.key)\"\r\n [closable]=\"!!f.removable\"\r\n (clicked)=\"alternarFiltro(f.key)\"\r\n (closed)=\"quitarFiltro(f.key)\"\r\n />\r\n }\r\n\r\n <!-- Facetas: Tag `soft` con el tono categ\u00F3rico de su categor\u00EDa, NUNCA solid. -->\r\n @for (f of facets(); track f.key) {\r\n <ius-tag\r\n role=\"label\"\r\n variant=\"soft\"\r\n size=\"small\"\r\n [tone]=\"tonoFaceta(f)\"\r\n [icon]=\"f.icon\"\r\n closable\r\n [label]=\"textoFaceta(f)\"\r\n (closed)=\"quitarFaceta(f.key)\"\r\n />\r\n }\r\n\r\n @if (availableFilters().length) {\r\n <ius-popover\r\n trigger=\"manual\"\r\n [open]=\"addOpen()\"\r\n [dismissable]=\"true\"\r\n placement=\"bottom-start\"\r\n [offset]=\"6\"\r\n [showArrow]=\"false\"\r\n padding=\"none\"\r\n (openChange)=\"onAddOpenChange($event)\"\r\n >\r\n <ius-tag\r\n role=\"filter\"\r\n variant=\"outline\"\r\n tone=\"neutral\"\r\n size=\"small\"\r\n icon=\"add\"\r\n label=\"Filtro\"\r\n [selected]=\"addOpen()\"\r\n (clicked)=\"alternarMenuFiltro()\"\r\n />\r\n\r\n <div iusPopoverContent class=\"ius-entnav__addpanel\">\r\n @if (addStep(); as step) {\r\n <div class=\"ius-entnav__addhead\">\r\n <ius-menu-item\r\n icon=\"chevron_left\"\r\n [label]=\"step.label\"\r\n size=\"small\"\r\n (clicked)=\"volverDelPaso()\"\r\n />\r\n @if (step.picker === 'search') {\r\n <ius-search-bar\r\n size=\"small\"\r\n placeholder=\"Buscar\u2026\"\r\n [value]=\"addQuery()\"\r\n (valueChange)=\"addQuery.set($event)\"\r\n (cleared)=\"addQuery.set('')\"\r\n />\r\n }\r\n </div>\r\n <div class=\"ius-entnav__addlist ius-scroll ius-scroll--sm\">\r\n @if (opcionesDelPaso().length === 0) {\r\n <div class=\"ius-entnav__addempty\">Sin resultados</div>\r\n } @else {\r\n @for (o of opcionesDelPaso(); track o.key) {\r\n <!-- El check se proyecta SIEMPRE y se oculta por CSS: un\r\n `<ng-content>` detr\u00E1s de un `@if` que depende de un\r\n contentChild se pierde en el primer render. -->\r\n <ius-menu-item\r\n [label]=\"o.label\"\r\n size=\"small\"\r\n [selected]=\"facetaActiva(step, o)\"\r\n (clicked)=\"elegirValor(step, o)\"\r\n >\r\n <span\r\n iusMenuItemTrailing\r\n translate=\"no\"\r\n class=\"ius-icon\"\r\n [class.ius-entnav__check--off]=\"!facetaActiva(step, o)\"\r\n >check</span\r\n >\r\n </ius-menu-item>\r\n }\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"ius-entnav__addlist ius-scroll ius-scroll--sm\">\r\n @for (a of categoriasDisponibles(); track a.key) {\r\n <ius-menu-item\r\n [icon]=\"a.icon\"\r\n [label]=\"a.label\"\r\n size=\"small\"\r\n (clicked)=\"elegirCategoria(a)\"\r\n >\r\n <span\r\n iusMenuItemTrailing\r\n translate=\"no\"\r\n class=\"ius-icon\"\r\n [class.ius-entnav__check--off]=\"!a.picker\"\r\n >chevron_right</span\r\n >\r\n </ius-menu-item>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </ius-popover>\r\n }\r\n </div>\r\n }\r\n\r\n @if (hayMeta()) {\r\n <div class=\"ius-entnav__meta\">\r\n <span>{{ metaLabel() || '' }}</span>\r\n @if (sortOptions()?.length) {\r\n <ius-dropdown\r\n [selectable]=\"true\"\r\n [value]=\"sortValue()\"\r\n label=\"Ordenar por\"\r\n tone=\"neutral\"\r\n [items]=\"sortOptions() ?? []\"\r\n placement=\"bottom-end\"\r\n (valueChange)=\"onSort($event)\"\r\n />\r\n } @else if (sortLabel()) {\r\n <button type=\"button\" class=\"ius-entnav__sort\" (click)=\"sort.emit({ value: sortValue() })\">\r\n {{ sortLabel() }}\r\n <span translate=\"no\" class=\"ius-icon\">expand_more</span>\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Secci\u00F3n fijada: vive FUERA del cuerpo con scroll (no entra en la ventana\r\n de render ni en el cursor aritm\u00E9tico de la virtualizaci\u00F3n). -->\r\n @if (modelo().fijada; as fijada) {\r\n <div class=\"ius-entnav__pinned\">\r\n <ng-container [ngTemplateOutlet]=\"seccionTpl\" [ngTemplateOutletContext]=\"{ $implicit: fijada }\" />\r\n </div>\r\n }\r\n\r\n <div class=\"ius-entnav__scrollwrap\">\r\n <div\r\n class=\"ius-entnav__body ius-scroll ius-scroll--sm\"\r\n #body\r\n [attr.data-scrolled]=\"bodyScrolled() ? 'true' : null\"\r\n >\r\n @if (vacio()) {\r\n <div class=\"ius-entnav__empty\">\r\n @if (emptyStateTemplate(); as tpl) {\r\n <ng-container [ngTemplateOutlet]=\"tpl\" />\r\n } @else {\r\n <ius-empty-state\r\n variant=\"no-results\"\r\n size=\"compact\"\r\n [title]=\"noResultsLabel()\"\r\n [description]=\"descripcionVacio()\"\r\n />\r\n }\r\n </div>\r\n } @else {\r\n @for (s of modelo().secciones; track s.gk) {\r\n <ng-container [ngTemplateOutlet]=\"seccionTpl\" [ngTemplateOutletContext]=\"{ $implicit: s }\" />\r\n }\r\n }\r\n </div>\r\n\r\n <!-- \u00CDndice alfab\u00E9tico: navega, no reordena. Se oculta con b\u00FAsqueda/filtros. -->\r\n @if (alphaVisible()) {\r\n <nav\r\n class=\"ius-entnav__alpha\"\r\n #alpha\r\n role=\"navigation\"\r\n aria-label=\"\u00CDndice alfab\u00E9tico\"\r\n (keydown)=\"onRailKey($event)\"\r\n >\r\n @for (L of displayLetters(); track L) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-entnav__alpha-let\"\r\n [disabled]=\"!letraHabilitada(L)\"\r\n [attr.data-active]=\"activeLetter() === L ? 'true' : null\"\r\n [attr.aria-current]=\"activeLetter() === L ? 'true' : null\"\r\n [attr.aria-label]=\"'Ir a ' + L\"\r\n [attr.tabindex]=\"letraHabilitada(L) ? (L === alphaTabStop() ? 0 : -1) : -1\"\r\n (click)=\"saltarALetra(L)\"\r\n >\r\n {{ L }}\r\n </button>\r\n }\r\n </nav>\r\n }\r\n </div>\r\n\r\n @if (hayPie()) {\r\n <div class=\"ius-entnav__footer\">\r\n <ius-button\r\n variant=\"primary\"\r\n [prefixIcon]=\"createIcon()\"\r\n [label]=\"createLabel()\"\r\n fullWidth\r\n class=\"ius-entnav__cta\"\r\n (clicked)=\"create.emit($event)\"\r\n />\r\n </div>\r\n }\r\n}\r\n\r\n<!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Plantilla de secci\u00F3n (cuerpo y secci\u00F3n fijada comparten) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n<ng-template #seccionTpl let-s>\r\n <section class=\"ius-entnav__section\" [attr.data-pinned]=\"s.isPinned ? 'true' : null\">\r\n @if (s.hasHeader) {\r\n <ius-section-header\r\n [icon]=\"s.group.icon\"\r\n [count]=\"s.group.count\"\r\n [accent]=\"accent()\"\r\n [sticky]=\"s.sticky\"\r\n [collapsible]=\"collapsibleGroups()\"\r\n [collapsed]=\"s.isCollapsed\"\r\n (toggle)=\"alternarPlegadoGrupo(s.gk)\"\r\n >\r\n {{ s.group.label }}\r\n @if (pinnableGroups()) {\r\n <ius-icon-button\r\n iusSectionHeaderAction\r\n class=\"ius-entnav__pinbtn\"\r\n [class.ius-entnav__pinbtn--on]=\"s.isPinned\"\r\n icon=\"pinboard\"\r\n variant=\"tertiary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n [ariaLabel]=\"etiquetaPinGrupo(s.isPinned)\"\r\n (clicked)=\"alternarPinGrupo(s.gk)\"\r\n />\r\n }\r\n </ius-section-header>\r\n }\r\n\r\n @if (s.padTop) {\r\n <div class=\"ius-entnav__vpad\" [style.height.px]=\"s.padTop\" aria-hidden=\"true\"></div>\r\n }\r\n\r\n @for (d of s.visible; track d.key) {\r\n @switch (d.kind) {\r\n @case ('letter') {\r\n <div class=\"ius-entnav__lanchor\" #letterAnchor [attr.data-letter]=\"d.letter\">\r\n <ius-section-header variant=\"letter\" [accent]=\"accent()\">{{ d.letter }}</ius-section-header>\r\n </div>\r\n }\r\n @case ('addChild') {\r\n <div class=\"ius-entnav__addchild\" [style.padding-left.px]=\"padAddChild(d.level)\">\r\n <ius-text-button\r\n size=\"small\"\r\n prefixIcon=\"add\"\r\n [label]=\"d.node.addChildLabel\"\r\n (clicked)=\"onAddChild(d.node, $event)\"\r\n />\r\n </div>\r\n }\r\n @default {\r\n <ius-entity-row\r\n [kind]=\"d.node.kind ?? 'expediente'\"\r\n [icon]=\"d.node.icon\"\r\n [label]=\"d.node.label\"\r\n [sublabel]=\"d.node.sublabel\"\r\n [level]=\"d.level\"\r\n [accent]=\"accent()\"\r\n [expandable]=\"d.expandable\"\r\n [expanded]=\"d.expanded\"\r\n [loading]=\"d.loading\"\r\n [selected]=\"d.selected\"\r\n [count]=\"d.node.count\"\r\n [unread]=\"d.node.unread\"\r\n [hasUnread]=\"!!d.node.hasUnread\"\r\n [noveltyTone]=\"d.node.noveltyTone ?? 'info'\"\r\n [pinned]=\"!!d.node.pinned\"\r\n [pinnable]=\"d.canPin\"\r\n [actions]=\"d.node.actions ?? []\"\r\n (toggle)=\"alternarNodo(d.node)\"\r\n (togglePin)=\"onTogglePinNodo(d.node, $event)\"\r\n (clicked)=\"elegirNodo(d)\"\r\n />\r\n }\r\n }\r\n }\r\n\r\n @if (s.padBot) {\r\n <div class=\"ius-entnav__vpad\" [style.height.px]=\"s.padBot\" aria-hidden=\"true\"></div>\r\n }\r\n\r\n @if (s.showMore) {\r\n <div class=\"ius-entnav__morerow\">\r\n <ius-show-more\r\n [expanded]=\"s.moreExpanded\"\r\n [remaining]=\"s.moreRemaining\"\r\n align=\"end\"\r\n (toggle)=\"alternarShowMore(s.gk)\"\r\n />\r\n </div>\r\n }\r\n\r\n <!-- Carga por lotes: centinela (IntersectionObserver) + \u00ABCargar m\u00E1s\u00BB. -->\r\n @if (s.showLoadMore) {\r\n <div class=\"ius-entnav__loadmore\">\r\n @if (s.loadingMore) {\r\n <ius-loading variant=\"inline\" size=\"small\" [label]=\"textoCargando()\" />\r\n } @else {\r\n <div\r\n class=\"ius-entnav__sentinel\"\r\n #lmSentinel\r\n [attr.data-lm-group]=\"s.gk\"\r\n aria-hidden=\"true\"\r\n ></div>\r\n <ius-text-button size=\"small\" [label]=\"textoCargarMas()\" (clicked)=\"dispararLote(s.gk)\" />\r\n }\r\n </div>\r\n }\r\n </section>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;width:340px;min-width:0;height:100%;background:var(--ius-surface-card);border-right:1px solid var(--ius-stroke);font-family:var(--ius-font-body)}:host([data-collapsed=true]){width:52px}:host([data-fluid=true]:not([data-collapsed=true])){width:100%}.ius-entnav__rail{display:flex;flex-direction:column;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-sm) var(--ius-space-xs)}.ius-entnav__head{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md) var(--ius-space-md) var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-entnav__titlerow{display:flex;align-items:center;justify-content:space-between;gap:var(--ius-space-xs)}.ius-entnav__actions{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);margin-right:-4px}.ius-entnav__title{font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);font-size:var(--ius-fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--ius-text-tertiary);display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-entnav__title .ius-icon{font-size:var(--ius-icon-sm)}.ius-entnav__filters{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs)}.ius-entnav__state{display:flex}.ius-entnav__state+.ius-entnav__filters{padding-top:var(--ius-space-xs);border-top:1px solid var(--ius-stroke)}.ius-entnav__addpanel{display:flex;flex-direction:column;min-width:224px;max-width:300px;max-height:min(52vh,360px)}.ius-entnav__addhead{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);border-bottom:1px solid var(--ius-stroke)}.ius-entnav__addlist{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);--_sb-track-margin: var(--ius-space-sm)}.ius-entnav__addempty{padding:var(--ius-space-lg) var(--ius-space-sm);text-align:center;font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary)}.ius-entnav__check--off{visibility:hidden}.ius-entnav__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary)}.ius-entnav__meta>span:first-child{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entnav__meta>ius-dropdown{flex:0 0 auto}.ius-entnav__sort{appearance:none;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-body);font-weight:var(--ius-fw-semibold);font-size:var(--ius-fs-sm);line-height:1.2;color:var(--ius-primary-700)}.ius-entnav__sort .ius-icon{font-size:var(--ius-icon-sm)}.ius-entnav__sort:focus-visible{outline:none;box-shadow:var(--ius-focus-ring);border-radius:var(--ius-radius-sm)}.ius-entnav__scrollwrap{position:relative;flex:1 1 auto;min-height:0;display:flex}.ius-entnav__body{flex:1 1 auto;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:0 var(--ius-space-xs) var(--ius-space-xs);position:relative}.ius-entnav__body[data-scrolled=true]{box-shadow:inset 0 7px 6px -6px #26262629}.ius-entnav__body[data-scrolled=true]:before{content:\"\";position:sticky;top:0;z-index:3;display:block;height:0;margin:0 -8px;border-top:1px solid var(--ius-stroke)}.ius-entnav__section{display:contents}.ius-entnav__body ius-section-header[data-variant=group]{margin:0 -8px;padding-left:var(--ius-space-md);padding-right:var(--ius-space-md)}.ius-entnav__morerow{padding:var(--ius-space-xxs) 0}ius-show-more{padding-right:var(--ius-space-xs)}.ius-entnav__loadmore{display:flex;justify-content:center;padding:var(--ius-space-xs) 0 var(--ius-space-sm)}.ius-entnav__sentinel{height:1px;margin:0;padding:0;pointer-events:none}.ius-entnav__pinned{flex:0 0 auto;padding:var(--ius-space-xxs) var(--ius-space-xs) var(--ius-space-xs);border-bottom:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-entnav__pinned ius-section-header[data-variant=group]{margin:0 -8px;padding-left:var(--ius-space-md);padding-right:var(--ius-space-md)}.ius-entnav__pinbtn{opacity:0;transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}ius-section-header:hover .ius-entnav__pinbtn,.ius-entnav__pinbtn:focus-within,.ius-entnav__pinbtn--on{opacity:1}.ius-entnav__addchild{display:flex;padding:var(--ius-space-xxs) var(--ius-space-xs) var(--ius-space-xs) 0}.ius-entnav__empty{display:flex;align-items:center;justify-content:center;min-height:220px;padding:var(--ius-space-xl) var(--ius-space-md)}.ius-entnav__footer{flex:0 0 auto;padding:var(--ius-space-sm) var(--ius-space-md);border-top:1px solid var(--ius-stroke)}.ius-entnav__cta{width:100%}.ius-entnav__alpha{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:var(--ius-space-none);width:var(--ius-space-lg);padding:var(--ius-space-xxs) 0;overflow:hidden;-webkit-user-select:none;user-select:none}.ius-entnav__alpha-let{appearance:none;border:0;background:transparent;cursor:pointer;flex:1 1 0;min-height:0;display:inline-flex;align-items:center;justify-content:center;padding:0;font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);border-radius:var(--ius-radius-sm);transition:color var(--ius-duration-fast) var(--ius-ease-standard),background var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entnav__alpha-let:hover{color:var(--ius-primary-700)}.ius-entnav__alpha-let[data-active=true]{color:var(--ius-primary-900);background:var(--ius-neutral-2);font-weight:var(--ius-fw-bold)}.ius-entnav__alpha-let:disabled{color:var(--ius-text-tertiary);opacity:.35;cursor:default}.ius-entnav__alpha-let:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ius-button", inputs: ["variant", "label", "prefixIcon", "sufixIcon", "dynamic", "loading", "status", "disabled", "pressed", "fullWidth", "type", "ariaLabel", "action", "size"], outputs: ["clicked"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "component", type: EmptyStateComponent, selector: "ius-empty-state", inputs: ["variant", "size", "tone", "icon", "illustration", "illustrationTemplate", "title", "description", "primaryAction", "secondaryAction", "actionsTemplate", "role"], outputs: ["primaryClick", "secondaryClick"] }, { kind: "component", type: EntityRowComponent, selector: "ius-entity-row", inputs: ["kind", "icon", "label", "sublabel", "level", "accent", "expandable", "expanded", "loading", "selected", "disabled", "count", "unread", "hasUnread", "noveltyTone", "pinned", "pinnable", "actions", "actionsLabel", "ariaLabel"], outputs: ["toggle", "togglePin", "clicked"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "directive", type: IusMenuItemTrailingDirective, selector: "[iusMenuItemTrailing]" }, { kind: "component", type: LoadingComponent, selector: "ius-loading", inputs: ["variant", "label", "showLabel", "tone", "brand", "size", "active", "ariaLabel"] }, { kind: "component", type: MenuItemComponent, selector: "ius-menu-item", inputs: ["icon", "label", "badge", "variant", "size", "selected", "disabled", "danger", "state", "href", "ariaLabel", "itemRole"], outputs: ["clicked"] }, { kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }, { kind: "component", type: SearchBarComponent, selector: "ius-search-bar", inputs: ["value", "defaultValue", "size", "disabled", "state", "placeholder", "ariaLabel", "name", "id"], outputs: ["valueChange", "search", "cleared"] }, { kind: "component", type: SectionHeaderComponent, selector: "ius-section-header", inputs: ["icon", "count", "variant", "accent", "collapsible", "collapsed", "sticky", "ariaLabel"], outputs: ["toggle"] }, { kind: "component", type: SegmentedControlComponent, selector: "ius-segmented-control", inputs: ["options", "size", "variant", "fullWidth", "iconOnly", "ariaLabel", "name", "value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: ShowMoreComponent, selector: "ius-show-more", inputs: ["expanded", "remaining", "moreLabel", "lessLabel", "collapsible", "size", "align", "ariaControls"], outputs: ["toggle"] }, { kind: "component", type: TagComponent, selector: "ius-tag", inputs: ["label", "role", "tone", "variant", "size", "shape", "icon", "dot", "count", "closable", "closeLabel", "selected", "disabled", "interactive", "state"], outputs: ["clicked", "closed"] }, { kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17452
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: EntityNavigatorComponent, isStandalone: true, selector: "ius-entity-navigator", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleIcon: { classPropertyName: "titleIcon", publicName: "titleIcon", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchThreshold: { classPropertyName: "searchThreshold", publicName: "searchThreshold", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, searchValue: { classPropertyName: "searchValue", publicName: "searchValue", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, selectedFilters: { classPropertyName: "selectedFilters", publicName: "selectedFilters", isSignal: true, isRequired: false, transformFunction: null }, availableFilters: { classPropertyName: "availableFilters", publicName: "availableFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFacets: { classPropertyName: "activeFacets", publicName: "activeFacets", isSignal: true, isRequired: false, transformFunction: null }, stateSegments: { classPropertyName: "stateSegments", publicName: "stateSegments", isSignal: true, isRequired: false, transformFunction: null }, stateValue: { classPropertyName: "stateValue", publicName: "stateValue", isSignal: true, isRequired: false, transformFunction: null }, sortLabel: { classPropertyName: "sortLabel", publicName: "sortLabel", isSignal: true, isRequired: false, transformFunction: null }, sortOptions: { classPropertyName: "sortOptions", publicName: "sortOptions", isSignal: true, isRequired: false, transformFunction: null }, sortValue: { classPropertyName: "sortValue", publicName: "sortValue", isSignal: true, isRequired: false, transformFunction: null }, metaLabel: { classPropertyName: "metaLabel", publicName: "metaLabel", isSignal: true, isRequired: false, transformFunction: null }, groups: { classPropertyName: "groups", publicName: "groups", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, accent: { classPropertyName: "accent", publicName: "accent", isSignal: true, isRequired: false, transformFunction: null }, defaultExpanded: { classPropertyName: "defaultExpanded", publicName: "defaultExpanded", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, autoExpandOnFilter: { classPropertyName: "autoExpandOnFilter", publicName: "autoExpandOnFilter", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, defaultSelected: { classPropertyName: "defaultSelected", publicName: "defaultSelected", isSignal: true, isRequired: false, transformFunction: null }, emptyStateTemplate: { classPropertyName: "emptyStateTemplate", publicName: "emptyStateTemplate", isSignal: true, isRequired: false, transformFunction: null }, noResultsLabel: { classPropertyName: "noResultsLabel", publicName: "noResultsLabel", isSignal: true, isRequired: false, transformFunction: null }, createLabel: { classPropertyName: "createLabel", publicName: "createLabel", isSignal: true, isRequired: false, transformFunction: null }, createIcon: { classPropertyName: "createIcon", publicName: "createIcon", isSignal: true, isRequired: false, transformFunction: null }, groupLimit: { classPropertyName: "groupLimit", publicName: "groupLimit", isSignal: true, isRequired: false, transformFunction: null }, collapsibleGroups: { classPropertyName: "collapsibleGroups", publicName: "collapsibleGroups", isSignal: true, isRequired: false, transformFunction: null }, collapsedGroups: { classPropertyName: "collapsedGroups", publicName: "collapsedGroups", isSignal: true, isRequired: false, transformFunction: null }, stickyHeaders: { classPropertyName: "stickyHeaders", publicName: "stickyHeaders", isSignal: true, isRequired: false, transformFunction: null }, pinnableGroups: { classPropertyName: "pinnableGroups", publicName: "pinnableGroups", isSignal: true, isRequired: false, transformFunction: null }, defaultPinnedGroup: { classPropertyName: "defaultPinnedGroup", publicName: "defaultPinnedGroup", isSignal: true, isRequired: false, transformFunction: null }, moreLabel: { classPropertyName: "moreLabel", publicName: "moreLabel", isSignal: true, isRequired: false, transformFunction: null }, alphaIndex: { classPropertyName: "alphaIndex", publicName: "alphaIndex", isSignal: true, isRequired: false, transformFunction: null }, alphaIndexLetters: { classPropertyName: "alphaIndexLetters", publicName: "alphaIndexLetters", isSignal: true, isRequired: false, transformFunction: null }, loadMoreLabel: { classPropertyName: "loadMoreLabel", publicName: "loadMoreLabel", isSignal: true, isRequired: false, transformFunction: null }, virtualized: { classPropertyName: "virtualized", publicName: "virtualized", isSignal: true, isRequired: false, transformFunction: null }, virtualizeThreshold: { classPropertyName: "virtualizeThreshold", publicName: "virtualizeThreshold", isSignal: true, isRequired: false, transformFunction: null }, itemHeights: { classPropertyName: "itemHeights", publicName: "itemHeights", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, defaultCollapsed: { classPropertyName: "defaultCollapsed", publicName: "defaultCollapsed", isSignal: true, isRequired: false, transformFunction: null }, fluidWidth: { classPropertyName: "fluidWidth", publicName: "fluidWidth", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { search: "search", searchChange: "searchChange", searchClear: "searchClear", filter: "filter", filterRemove: "filterRemove", addFilter: "addFilter", stateChange: "stateChange", facetAdd: "facetAdd", facetRemove: "facetRemove", sort: "sort", select: "select", selectedChange: "selectedChange", expandedChange: "expandedChange", togglePin: "togglePin", create: "create", pinGroup: "pinGroup", groupCollapse: "groupCollapse", more: "more", collapsedChange: "collapsedChange", jumpToLetter: "jumpToLetter", loadMore: "loadMore", expandLoad: "expandLoad" }, host: { properties: { "attr.data-collapsed": "isCollapsed() ? 'true' : null", "attr.data-fluid": "fluidWidth() ? 'true' : null", "attr.aria-label": "ariaLabel() || title() || null" }, classAttribute: "ius-entnav" }, viewQueries: [{ propertyName: "bodyRef", first: true, predicate: ["body"], descendants: true, isSignal: true }, { propertyName: "alphaRef", first: true, predicate: ["alpha"], descendants: true, isSignal: true }, { propertyName: "searchRef", first: true, predicate: ["searchBox"], descendants: true, isSignal: true }, { propertyName: "sentinels", predicate: ["lmSentinel"], descendants: true, isSignal: true }, { propertyName: "letterAnchors", predicate: ["letterAnchor"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Riel colapsado: solo expandir + CTA. Rama aparte, como el golden. -->\n@if (collapsible() && isCollapsed()) {\n <div class=\"ius-entnav__rail\">\n <ius-icon-button\n icon=\"left_panel_open\"\n variant=\"tertiary\"\n shape=\"circle\"\n size=\"small\"\n ariaLabel=\"Expandir\"\n (clicked)=\"alternarColapso()\"\n />\n @if (hayPie()) {\n <ius-icon-button\n [icon]=\"createIcon()\"\n variant=\"secondary\"\n shape=\"circle\"\n size=\"small\"\n [ariaLabel]=\"createLabel()\"\n (clicked)=\"create.emit($event)\"\n />\n }\n </div>\n} @else {\n <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Cabecera \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"ius-entnav__head\">\n @if (hayCabecera()) {\n <div class=\"ius-entnav__titlerow\">\n @if (title()) {\n <div class=\"ius-entnav__title\">\n @if (titleIcon()) {\n <span translate=\"no\" class=\"ius-icon\">{{ titleIcon() }}</span>\n }\n {{ title() }}\n </div>\n } @else {\n <span></span>\n }\n <span class=\"ius-entnav__actions\">\n @if (showSearchToggle()) {\n <!-- El `state: pressed` del golden no se porta: IconButton omite `state`\n de su API p\u00FAblica a prop\u00F3sito (decisi\u00F3n suya, documentada). -->\n <ius-icon-button\n icon=\"search\"\n variant=\"tertiary\"\n shape=\"circle\"\n size=\"small\"\n ariaLabel=\"Buscar (\u2318K)\"\n (clicked)=\"alternarBusqueda()\"\n />\n }\n @if (collapsible()) {\n <ius-icon-button\n icon=\"left_panel_close\"\n variant=\"tertiary\"\n shape=\"circle\"\n size=\"small\"\n ariaLabel=\"Colapsar\"\n (clicked)=\"alternarColapso()\"\n />\n }\n </span>\n </div>\n }\n\n @if (searchVisible()) {\n <div #searchBox>\n <ius-search-bar\n [placeholder]=\"searchPlaceholder()\"\n size=\"medium\"\n [value]=\"searchValue()\"\n (valueChange)=\"onSearchValueChange($event)\"\n (search)=\"search.emit($event)\"\n (cleared)=\"searchClear.emit()\"\n />\n </div>\n }\n\n <!-- Eje de estado: excluyente, ortogonal a facetas y b\u00FAsqueda; no poda datos. -->\n @if (stateSegments()?.length) {\n <div class=\"ius-entnav__state\">\n <ius-segmented-control\n [options]=\"segmentos()\"\n [value]=\"stateVal()\"\n size=\"small\"\n variant=\"subtle\"\n fullWidth\n (valueChange)=\"elegirEstado($event)\"\n />\n </div>\n }\n\n @if (hayBarraFiltros()) {\n <div class=\"ius-entnav__filters\">\n @for (f of filters(); track f.key) {\n <ius-tag\n role=\"filter\"\n size=\"small\"\n [tone]=\"tonoFiltro(f)\"\n [icon]=\"f.icon\"\n [dot]=\"f.dot\"\n [count]=\"f.count\"\n [label]=\"f.label\"\n [selected]=\"activeKeys().has(f.key)\"\n [closable]=\"!!f.removable\"\n (clicked)=\"alternarFiltro(f.key)\"\n (closed)=\"quitarFiltro(f.key)\"\n />\n }\n\n <!-- Facetas: Tag `soft` con el tono categ\u00F3rico de su categor\u00EDa, NUNCA solid. -->\n @for (f of facets(); track f.key) {\n <ius-tag\n role=\"label\"\n variant=\"soft\"\n size=\"small\"\n [tone]=\"tonoFaceta(f)\"\n [icon]=\"f.icon\"\n closable\n [label]=\"textoFaceta(f)\"\n (closed)=\"quitarFaceta(f.key)\"\n />\n }\n\n @if (availableFilters().length) {\n <ius-popover\n trigger=\"manual\"\n [open]=\"addOpen()\"\n [dismissable]=\"true\"\n placement=\"bottom-start\"\n [offset]=\"6\"\n [showArrow]=\"false\"\n padding=\"none\"\n (openChange)=\"onAddOpenChange($event)\"\n >\n <ius-tag\n role=\"filter\"\n variant=\"outline\"\n tone=\"neutral\"\n size=\"small\"\n icon=\"add\"\n label=\"Filtro\"\n [selected]=\"addOpen()\"\n (clicked)=\"alternarMenuFiltro()\"\n />\n\n <div iusPopoverContent class=\"ius-entnav__addpanel\">\n @if (addStep(); as step) {\n <div class=\"ius-entnav__addhead\">\n <ius-menu-item\n icon=\"chevron_left\"\n [label]=\"step.label\"\n size=\"small\"\n (clicked)=\"volverDelPaso()\"\n />\n @if (step.picker === 'search') {\n <ius-search-bar\n size=\"small\"\n placeholder=\"Buscar\u2026\"\n [value]=\"addQuery()\"\n (valueChange)=\"addQuery.set($event)\"\n (cleared)=\"addQuery.set('')\"\n />\n }\n </div>\n <div class=\"ius-entnav__addlist ius-scroll ius-scroll--sm\">\n @if (opcionesDelPaso().length === 0) {\n <div class=\"ius-entnav__addempty\">Sin resultados</div>\n } @else {\n @for (o of opcionesDelPaso(); track o.key) {\n <!-- El check se proyecta SIEMPRE y se oculta por CSS: un\n `<ng-content>` detr\u00E1s de un `@if` que depende de un\n contentChild se pierde en el primer render. -->\n <ius-menu-item\n [label]=\"o.label\"\n size=\"small\"\n [selected]=\"facetaActiva(step, o)\"\n (clicked)=\"elegirValor(step, o)\"\n >\n <span\n iusMenuItemTrailing\n translate=\"no\"\n class=\"ius-icon\"\n [class.ius-entnav__check--off]=\"!facetaActiva(step, o)\"\n >check</span\n >\n </ius-menu-item>\n }\n }\n </div>\n } @else {\n <div class=\"ius-entnav__addlist ius-scroll ius-scroll--sm\">\n @for (a of categoriasDisponibles(); track a.key) {\n <ius-menu-item\n [icon]=\"a.icon\"\n [label]=\"a.label\"\n size=\"small\"\n (clicked)=\"elegirCategoria(a)\"\n >\n <span\n iusMenuItemTrailing\n translate=\"no\"\n class=\"ius-icon\"\n [class.ius-entnav__check--off]=\"!a.picker\"\n >chevron_right</span\n >\n </ius-menu-item>\n }\n </div>\n }\n </div>\n </ius-popover>\n }\n </div>\n }\n\n @if (hayMeta()) {\n <div class=\"ius-entnav__meta\">\n <span>{{ metaLabel() || '' }}</span>\n @if (sortOptions()?.length) {\n <ius-dropdown\n [selectable]=\"true\"\n [value]=\"sortValue()\"\n label=\"Ordenar por\"\n tone=\"neutral\"\n [items]=\"sortOptions() ?? []\"\n placement=\"bottom-end\"\n (valueChange)=\"onSort($event)\"\n />\n } @else if (sortLabel()) {\n <button type=\"button\" class=\"ius-entnav__sort\" (click)=\"sort.emit({ value: sortValue() })\">\n {{ sortLabel() }}\n <span translate=\"no\" class=\"ius-icon\">expand_more</span>\n </button>\n }\n </div>\n }\n </div>\n\n <!-- Secci\u00F3n fijada: vive FUERA del cuerpo con scroll (no entra en la ventana\n de render ni en el cursor aritm\u00E9tico de la virtualizaci\u00F3n). -->\n @if (modelo().fijada; as fijada) {\n <div class=\"ius-entnav__pinned\">\n <ng-container [ngTemplateOutlet]=\"seccionTpl\" [ngTemplateOutletContext]=\"{ $implicit: fijada }\" />\n </div>\n }\n\n <div class=\"ius-entnav__scrollwrap\">\n <div\n class=\"ius-entnav__body ius-scroll ius-scroll--sm\"\n #body\n [attr.data-scrolled]=\"bodyScrolled() ? 'true' : null\"\n >\n @if (vacio()) {\n <div class=\"ius-entnav__empty\">\n @if (emptyStateTemplate(); as tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl\" />\n } @else {\n <ius-empty-state\n variant=\"no-results\"\n size=\"compact\"\n [title]=\"noResultsLabel()\"\n [description]=\"descripcionVacio()\"\n />\n }\n </div>\n } @else {\n @for (s of modelo().secciones; track s.gk) {\n <ng-container [ngTemplateOutlet]=\"seccionTpl\" [ngTemplateOutletContext]=\"{ $implicit: s }\" />\n }\n }\n </div>\n\n <!-- \u00CDndice alfab\u00E9tico: navega, no reordena. Se oculta con b\u00FAsqueda/filtros. -->\n @if (alphaVisible()) {\n <nav\n class=\"ius-entnav__alpha\"\n #alpha\n role=\"navigation\"\n aria-label=\"\u00CDndice alfab\u00E9tico\"\n (keydown)=\"onRailKey($event)\"\n >\n @for (L of displayLetters(); track L) {\n <button\n type=\"button\"\n class=\"ius-entnav__alpha-let\"\n [disabled]=\"!letraHabilitada(L)\"\n [attr.data-active]=\"activeLetter() === L ? 'true' : null\"\n [attr.aria-current]=\"activeLetter() === L ? 'true' : null\"\n [attr.aria-label]=\"'Ir a ' + L\"\n [attr.tabindex]=\"letraHabilitada(L) ? (L === alphaTabStop() ? 0 : -1) : -1\"\n (click)=\"saltarALetra(L)\"\n >\n {{ L }}\n </button>\n }\n </nav>\n }\n </div>\n\n @if (hayPie()) {\n <div class=\"ius-entnav__footer\">\n <ius-button\n variant=\"primary\"\n [prefixIcon]=\"createIcon()\"\n [label]=\"createLabel()\"\n fullWidth\n class=\"ius-entnav__cta\"\n (clicked)=\"create.emit($event)\"\n />\n </div>\n }\n}\n\n<!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Plantilla de secci\u00F3n (cuerpo y secci\u00F3n fijada comparten) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n<ng-template #seccionTpl let-s>\n <section class=\"ius-entnav__section\" [attr.data-pinned]=\"s.isPinned ? 'true' : null\">\n @if (s.hasHeader) {\n <ius-section-header\n [icon]=\"s.group.icon\"\n [count]=\"s.group.count\"\n [accent]=\"accent()\"\n [sticky]=\"s.sticky\"\n [collapsible]=\"collapsibleGroups()\"\n [collapsed]=\"s.isCollapsed\"\n (toggle)=\"alternarPlegadoGrupo(s.gk)\"\n >\n {{ s.group.label }}\n @if (pinnableGroups()) {\n <ius-icon-button\n iusSectionHeaderAction\n class=\"ius-entnav__pinbtn\"\n [class.ius-entnav__pinbtn--on]=\"s.isPinned\"\n icon=\"pinboard\"\n variant=\"tertiary\"\n shape=\"circle\"\n size=\"small\"\n [ariaLabel]=\"etiquetaPinGrupo(s.isPinned)\"\n (clicked)=\"alternarPinGrupo(s.gk)\"\n />\n }\n </ius-section-header>\n }\n\n @if (s.padTop) {\n <div class=\"ius-entnav__vpad\" [style.height.px]=\"s.padTop\" aria-hidden=\"true\"></div>\n }\n\n @for (d of s.visible; track d.key) {\n @switch (d.kind) {\n @case ('letter') {\n <div class=\"ius-entnav__lanchor\" #letterAnchor [attr.data-letter]=\"d.letter\">\n <ius-section-header variant=\"letter\" [accent]=\"accent()\">{{ d.letter }}</ius-section-header>\n </div>\n }\n @case ('addChild') {\n <div class=\"ius-entnav__addchild\" [style.padding-left.px]=\"padAddChild(d.level)\">\n <ius-text-button\n size=\"small\"\n prefixIcon=\"add\"\n [label]=\"d.node.addChildLabel\"\n (clicked)=\"onAddChild(d.node, $event)\"\n />\n </div>\n }\n @default {\n <ius-entity-row\n [kind]=\"d.node.kind ?? 'expediente'\"\n [icon]=\"d.node.icon\"\n [label]=\"d.node.label\"\n [sublabel]=\"d.node.sublabel\"\n [level]=\"d.level\"\n [accent]=\"accent()\"\n [expandable]=\"d.expandable\"\n [expanded]=\"d.expanded\"\n [loading]=\"d.loading\"\n [selected]=\"d.selected\"\n [count]=\"d.node.count\"\n [unread]=\"d.node.unread\"\n [hasUnread]=\"!!d.node.hasUnread\"\n [noveltyTone]=\"d.node.noveltyTone ?? 'info'\"\n [pinned]=\"!!d.node.pinned\"\n [pinnable]=\"d.canPin\"\n [actions]=\"d.node.actions ?? []\"\n (toggle)=\"alternarNodo(d.node)\"\n (togglePin)=\"onTogglePinNodo(d.node, $event)\"\n (clicked)=\"elegirNodo(d)\"\n />\n }\n }\n }\n\n @if (s.padBot) {\n <div class=\"ius-entnav__vpad\" [style.height.px]=\"s.padBot\" aria-hidden=\"true\"></div>\n }\n\n @if (s.showMore) {\n <div class=\"ius-entnav__morerow\">\n <ius-show-more\n [expanded]=\"s.moreExpanded\"\n [remaining]=\"s.moreRemaining\"\n align=\"end\"\n (toggle)=\"alternarShowMore(s.gk)\"\n />\n </div>\n }\n\n <!-- Carga por lotes: centinela (IntersectionObserver) + \u00ABCargar m\u00E1s\u00BB. -->\n @if (s.showLoadMore) {\n <div class=\"ius-entnav__loadmore\">\n @if (s.loadingMore) {\n <ius-loading variant=\"inline\" size=\"small\" [label]=\"textoCargando()\" />\n } @else {\n <div\n class=\"ius-entnav__sentinel\"\n #lmSentinel\n [attr.data-lm-group]=\"s.gk\"\n aria-hidden=\"true\"\n ></div>\n <ius-text-button size=\"small\" [label]=\"textoCargarMas()\" (clicked)=\"dispararLote(s.gk)\" />\n }\n </div>\n }\n </section>\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;width:340px;min-width:0;height:100%;background:var(--ius-surface-card);border-right:1px solid var(--ius-stroke);font-family:var(--ius-font-body)}:host([data-collapsed=true]){width:52px}:host([data-fluid=true]:not([data-collapsed=true])){width:100%}.ius-entnav__rail{display:flex;flex-direction:column;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-sm) var(--ius-space-xs)}.ius-entnav__head{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md) var(--ius-space-md) var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-entnav__titlerow{display:flex;align-items:center;justify-content:space-between;gap:var(--ius-space-xs)}.ius-entnav__actions{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);margin-right:-4px}.ius-entnav__title{font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);font-size:var(--ius-fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--ius-text-tertiary);display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-entnav__title .ius-icon{font-size:var(--ius-icon-sm)}.ius-entnav__filters{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs)}.ius-entnav__state{display:flex}.ius-entnav__state+.ius-entnav__filters{padding-top:var(--ius-space-xs);border-top:1px solid var(--ius-stroke)}.ius-entnav__addpanel{display:flex;flex-direction:column;min-width:224px;max-width:300px;max-height:min(52vh,360px)}.ius-entnav__addhead{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);border-bottom:1px solid var(--ius-stroke)}.ius-entnav__addlist{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);--_sb-track-margin: var(--ius-space-sm)}.ius-entnav__addempty{padding:var(--ius-space-lg) var(--ius-space-sm);text-align:center;font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary)}.ius-entnav__check--off{visibility:hidden}.ius-entnav__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary)}.ius-entnav__meta>span:first-child{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entnav__meta>ius-dropdown{flex:0 0 auto}.ius-entnav__sort{appearance:none;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-body);font-weight:var(--ius-fw-semibold);font-size:var(--ius-fs-sm);line-height:1.2;color:var(--ius-primary-700)}.ius-entnav__sort .ius-icon{font-size:var(--ius-icon-sm)}.ius-entnav__sort:focus-visible{outline:none;box-shadow:var(--ius-focus-ring);border-radius:var(--ius-radius-sm)}.ius-entnav__scrollwrap{position:relative;flex:1 1 auto;min-height:0;display:flex}.ius-entnav__body{flex:1 1 auto;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:0 var(--ius-space-xs) var(--ius-space-xs);position:relative}.ius-entnav__body[data-scrolled=true]{box-shadow:inset 0 7px 6px -6px #26262629}.ius-entnav__body[data-scrolled=true]:before{content:\"\";position:sticky;top:0;z-index:3;display:block;height:0;margin:0 -8px;border-top:1px solid var(--ius-stroke)}.ius-entnav__section{display:contents}.ius-entnav__body ius-section-header[data-variant=group]{margin:0 -8px;padding-left:var(--ius-space-md);padding-right:var(--ius-space-md)}.ius-entnav__morerow{padding:var(--ius-space-xxs) 0}ius-show-more{padding-right:var(--ius-space-xs)}.ius-entnav__loadmore{display:flex;justify-content:center;padding:var(--ius-space-xs) 0 var(--ius-space-sm)}.ius-entnav__sentinel{height:1px;margin:0;padding:0;pointer-events:none}.ius-entnav__pinned{flex:0 0 auto;padding:var(--ius-space-xxs) var(--ius-space-xs) var(--ius-space-xs);border-bottom:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-entnav__pinned ius-section-header[data-variant=group]{margin:0 -8px;padding-left:var(--ius-space-md);padding-right:var(--ius-space-md)}.ius-entnav__pinbtn{opacity:0;transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}ius-section-header:hover .ius-entnav__pinbtn,.ius-entnav__pinbtn:focus-within,.ius-entnav__pinbtn--on{opacity:1}.ius-entnav__addchild{display:flex;padding:var(--ius-space-xxs) var(--ius-space-xs) var(--ius-space-xs) 0}.ius-entnav__empty{display:flex;align-items:center;justify-content:center;min-height:220px;padding:var(--ius-space-xl) var(--ius-space-md)}.ius-entnav__footer{flex:0 0 auto;padding:var(--ius-space-sm) var(--ius-space-md);border-top:1px solid var(--ius-stroke)}.ius-entnav__cta{width:100%}.ius-entnav__alpha{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:var(--ius-space-none);width:var(--ius-space-lg);padding:var(--ius-space-xxs) 0;overflow:hidden;-webkit-user-select:none;user-select:none}.ius-entnav__alpha-let{appearance:none;border:0;background:transparent;cursor:pointer;flex:1 1 0;min-height:0;display:inline-flex;align-items:center;justify-content:center;padding:0;font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);border-radius:var(--ius-radius-sm);transition:color var(--ius-duration-fast) var(--ius-ease-standard),background var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entnav__alpha-let:hover{color:var(--ius-primary-700)}.ius-entnav__alpha-let[data-active=true]{color:var(--ius-primary-900);background:var(--ius-neutral-2);font-weight:var(--ius-fw-bold)}.ius-entnav__alpha-let:disabled{color:var(--ius-text-tertiary);opacity:.35;cursor:default}.ius-entnav__alpha-let:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ius-button", inputs: ["variant", "label", "prefixIcon", "sufixIcon", "dynamic", "loading", "status", "disabled", "pressed", "fullWidth", "type", "ariaLabel", "action", "size"], outputs: ["clicked"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "component", type: EmptyStateComponent, selector: "ius-empty-state", inputs: ["variant", "size", "tone", "icon", "illustration", "illustrationTemplate", "title", "description", "primaryAction", "secondaryAction", "actionsTemplate", "role"], outputs: ["primaryClick", "secondaryClick"] }, { kind: "component", type: EntityRowComponent, selector: "ius-entity-row", inputs: ["kind", "icon", "label", "sublabel", "level", "accent", "expandable", "expanded", "loading", "selected", "disabled", "count", "unread", "hasUnread", "noveltyTone", "pinned", "pinnable", "actions", "actionsLabel", "ariaLabel"], outputs: ["toggle", "togglePin", "clicked"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "directive", type: IusMenuItemTrailingDirective, selector: "[iusMenuItemTrailing]" }, { kind: "component", type: LoadingComponent, selector: "ius-loading", inputs: ["variant", "label", "showLabel", "tone", "brand", "size", "active", "ariaLabel"] }, { kind: "component", type: MenuItemComponent, selector: "ius-menu-item", inputs: ["icon", "label", "badge", "variant", "size", "selected", "disabled", "danger", "state", "href", "ariaLabel", "itemRole"], outputs: ["clicked"] }, { kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }, { kind: "component", type: SearchBarComponent, selector: "ius-search-bar", inputs: ["value", "defaultValue", "size", "disabled", "state", "placeholder", "ariaLabel", "name", "id"], outputs: ["valueChange", "search", "cleared"] }, { kind: "component", type: SectionHeaderComponent, selector: "ius-section-header", inputs: ["icon", "count", "variant", "accent", "collapsible", "collapsed", "sticky", "ariaLabel"], outputs: ["toggle"] }, { kind: "component", type: SegmentedControlComponent, selector: "ius-segmented-control", inputs: ["options", "size", "variant", "fullWidth", "iconOnly", "ariaLabel", "name", "value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: ShowMoreComponent, selector: "ius-show-more", inputs: ["expanded", "remaining", "moreLabel", "lessLabel", "collapsible", "size", "align", "ariaControls"], outputs: ["toggle"] }, { kind: "component", type: TagComponent, selector: "ius-tag", inputs: ["label", "role", "tone", "variant", "size", "shape", "icon", "dot", "count", "closable", "closeLabel", "selected", "disabled", "interactive", "state"], outputs: ["clicked", "closed"] }, { kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17376
17453
  }
17377
17454
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: EntityNavigatorComponent, decorators: [{
17378
17455
  type: Component,
@@ -17398,8 +17475,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
17398
17475
  '[attr.data-collapsed]': "isCollapsed() ? 'true' : null",
17399
17476
  '[attr.data-fluid]': "fluidWidth() ? 'true' : null",
17400
17477
  '[attr.aria-label]': 'ariaLabel() || title() || null',
17401
- }, template: "<!-- Riel colapsado: solo expandir + CTA. Rama aparte, como el golden. -->\r\n@if (collapsible() && isCollapsed()) {\r\n <div class=\"ius-entnav__rail\">\r\n <ius-icon-button\r\n icon=\"left_panel_open\"\r\n variant=\"tertiary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n ariaLabel=\"Expandir\"\r\n (clicked)=\"alternarColapso()\"\r\n />\r\n @if (hayPie()) {\r\n <ius-icon-button\r\n [icon]=\"createIcon()\"\r\n variant=\"secondary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n [ariaLabel]=\"createLabel()\"\r\n (clicked)=\"create.emit($event)\"\r\n />\r\n }\r\n </div>\r\n} @else {\r\n <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Cabecera \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n <div class=\"ius-entnav__head\">\r\n @if (hayCabecera()) {\r\n <div class=\"ius-entnav__titlerow\">\r\n @if (title()) {\r\n <div class=\"ius-entnav__title\">\r\n @if (titleIcon()) {\r\n <span translate=\"no\" class=\"ius-icon\">{{ titleIcon() }}</span>\r\n }\r\n {{ title() }}\r\n </div>\r\n } @else {\r\n <span></span>\r\n }\r\n <span class=\"ius-entnav__actions\">\r\n @if (showSearchToggle()) {\r\n <!-- El `state: pressed` del golden no se porta: IconButton omite `state`\r\n de su API p\u00FAblica a prop\u00F3sito (decisi\u00F3n suya, documentada). -->\r\n <ius-icon-button\r\n icon=\"search\"\r\n variant=\"tertiary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n ariaLabel=\"Buscar (\u2318K)\"\r\n (clicked)=\"alternarBusqueda()\"\r\n />\r\n }\r\n @if (collapsible()) {\r\n <ius-icon-button\r\n icon=\"left_panel_close\"\r\n variant=\"tertiary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n ariaLabel=\"Colapsar\"\r\n (clicked)=\"alternarColapso()\"\r\n />\r\n }\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (searchVisible()) {\r\n <div #searchBox>\r\n <ius-search-bar\r\n [placeholder]=\"searchPlaceholder()\"\r\n size=\"medium\"\r\n [value]=\"searchValue()\"\r\n (valueChange)=\"onSearchValueChange($event)\"\r\n (search)=\"search.emit($event)\"\r\n (cleared)=\"searchClear.emit()\"\r\n />\r\n </div>\r\n }\r\n\r\n <!-- Eje de estado: excluyente, ortogonal a facetas y b\u00FAsqueda; no poda datos. -->\r\n @if (stateSegments()?.length) {\r\n <div class=\"ius-entnav__state\">\r\n <ius-segmented-control\r\n [options]=\"segmentos()\"\r\n [value]=\"stateVal()\"\r\n size=\"small\"\r\n variant=\"subtle\"\r\n fullWidth\r\n (valueChange)=\"elegirEstado($event)\"\r\n />\r\n </div>\r\n }\r\n\r\n @if (hayBarraFiltros()) {\r\n <div class=\"ius-entnav__filters\">\r\n @for (f of filters(); track f.key) {\r\n <ius-tag\r\n role=\"filter\"\r\n size=\"small\"\r\n [tone]=\"tonoFiltro(f)\"\r\n [icon]=\"f.icon\"\r\n [dot]=\"f.dot\"\r\n [count]=\"f.count\"\r\n [label]=\"f.label\"\r\n [selected]=\"activeKeys().has(f.key)\"\r\n [closable]=\"!!f.removable\"\r\n (clicked)=\"alternarFiltro(f.key)\"\r\n (closed)=\"quitarFiltro(f.key)\"\r\n />\r\n }\r\n\r\n <!-- Facetas: Tag `soft` con el tono categ\u00F3rico de su categor\u00EDa, NUNCA solid. -->\r\n @for (f of facets(); track f.key) {\r\n <ius-tag\r\n role=\"label\"\r\n variant=\"soft\"\r\n size=\"small\"\r\n [tone]=\"tonoFaceta(f)\"\r\n [icon]=\"f.icon\"\r\n closable\r\n [label]=\"textoFaceta(f)\"\r\n (closed)=\"quitarFaceta(f.key)\"\r\n />\r\n }\r\n\r\n @if (availableFilters().length) {\r\n <ius-popover\r\n trigger=\"manual\"\r\n [open]=\"addOpen()\"\r\n [dismissable]=\"true\"\r\n placement=\"bottom-start\"\r\n [offset]=\"6\"\r\n [showArrow]=\"false\"\r\n padding=\"none\"\r\n (openChange)=\"onAddOpenChange($event)\"\r\n >\r\n <ius-tag\r\n role=\"filter\"\r\n variant=\"outline\"\r\n tone=\"neutral\"\r\n size=\"small\"\r\n icon=\"add\"\r\n label=\"Filtro\"\r\n [selected]=\"addOpen()\"\r\n (clicked)=\"alternarMenuFiltro()\"\r\n />\r\n\r\n <div iusPopoverContent class=\"ius-entnav__addpanel\">\r\n @if (addStep(); as step) {\r\n <div class=\"ius-entnav__addhead\">\r\n <ius-menu-item\r\n icon=\"chevron_left\"\r\n [label]=\"step.label\"\r\n size=\"small\"\r\n (clicked)=\"volverDelPaso()\"\r\n />\r\n @if (step.picker === 'search') {\r\n <ius-search-bar\r\n size=\"small\"\r\n placeholder=\"Buscar\u2026\"\r\n [value]=\"addQuery()\"\r\n (valueChange)=\"addQuery.set($event)\"\r\n (cleared)=\"addQuery.set('')\"\r\n />\r\n }\r\n </div>\r\n <div class=\"ius-entnav__addlist ius-scroll ius-scroll--sm\">\r\n @if (opcionesDelPaso().length === 0) {\r\n <div class=\"ius-entnav__addempty\">Sin resultados</div>\r\n } @else {\r\n @for (o of opcionesDelPaso(); track o.key) {\r\n <!-- El check se proyecta SIEMPRE y se oculta por CSS: un\r\n `<ng-content>` detr\u00E1s de un `@if` que depende de un\r\n contentChild se pierde en el primer render. -->\r\n <ius-menu-item\r\n [label]=\"o.label\"\r\n size=\"small\"\r\n [selected]=\"facetaActiva(step, o)\"\r\n (clicked)=\"elegirValor(step, o)\"\r\n >\r\n <span\r\n iusMenuItemTrailing\r\n translate=\"no\"\r\n class=\"ius-icon\"\r\n [class.ius-entnav__check--off]=\"!facetaActiva(step, o)\"\r\n >check</span\r\n >\r\n </ius-menu-item>\r\n }\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"ius-entnav__addlist ius-scroll ius-scroll--sm\">\r\n @for (a of categoriasDisponibles(); track a.key) {\r\n <ius-menu-item\r\n [icon]=\"a.icon\"\r\n [label]=\"a.label\"\r\n size=\"small\"\r\n (clicked)=\"elegirCategoria(a)\"\r\n >\r\n <span\r\n iusMenuItemTrailing\r\n translate=\"no\"\r\n class=\"ius-icon\"\r\n [class.ius-entnav__check--off]=\"!a.picker\"\r\n >chevron_right</span\r\n >\r\n </ius-menu-item>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </ius-popover>\r\n }\r\n </div>\r\n }\r\n\r\n @if (hayMeta()) {\r\n <div class=\"ius-entnav__meta\">\r\n <span>{{ metaLabel() || '' }}</span>\r\n @if (sortOptions()?.length) {\r\n <ius-dropdown\r\n [selectable]=\"true\"\r\n [value]=\"sortValue()\"\r\n label=\"Ordenar por\"\r\n tone=\"neutral\"\r\n [items]=\"sortOptions() ?? []\"\r\n placement=\"bottom-end\"\r\n (valueChange)=\"onSort($event)\"\r\n />\r\n } @else if (sortLabel()) {\r\n <button type=\"button\" class=\"ius-entnav__sort\" (click)=\"sort.emit({ value: sortValue() })\">\r\n {{ sortLabel() }}\r\n <span translate=\"no\" class=\"ius-icon\">expand_more</span>\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- Secci\u00F3n fijada: vive FUERA del cuerpo con scroll (no entra en la ventana\r\n de render ni en el cursor aritm\u00E9tico de la virtualizaci\u00F3n). -->\r\n @if (modelo().fijada; as fijada) {\r\n <div class=\"ius-entnav__pinned\">\r\n <ng-container [ngTemplateOutlet]=\"seccionTpl\" [ngTemplateOutletContext]=\"{ $implicit: fijada }\" />\r\n </div>\r\n }\r\n\r\n <div class=\"ius-entnav__scrollwrap\">\r\n <div\r\n class=\"ius-entnav__body ius-scroll ius-scroll--sm\"\r\n #body\r\n [attr.data-scrolled]=\"bodyScrolled() ? 'true' : null\"\r\n >\r\n @if (vacio()) {\r\n <div class=\"ius-entnav__empty\">\r\n @if (emptyStateTemplate(); as tpl) {\r\n <ng-container [ngTemplateOutlet]=\"tpl\" />\r\n } @else {\r\n <ius-empty-state\r\n variant=\"no-results\"\r\n size=\"compact\"\r\n [title]=\"noResultsLabel()\"\r\n [description]=\"descripcionVacio()\"\r\n />\r\n }\r\n </div>\r\n } @else {\r\n @for (s of modelo().secciones; track s.gk) {\r\n <ng-container [ngTemplateOutlet]=\"seccionTpl\" [ngTemplateOutletContext]=\"{ $implicit: s }\" />\r\n }\r\n }\r\n </div>\r\n\r\n <!-- \u00CDndice alfab\u00E9tico: navega, no reordena. Se oculta con b\u00FAsqueda/filtros. -->\r\n @if (alphaVisible()) {\r\n <nav\r\n class=\"ius-entnav__alpha\"\r\n #alpha\r\n role=\"navigation\"\r\n aria-label=\"\u00CDndice alfab\u00E9tico\"\r\n (keydown)=\"onRailKey($event)\"\r\n >\r\n @for (L of displayLetters(); track L) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-entnav__alpha-let\"\r\n [disabled]=\"!letraHabilitada(L)\"\r\n [attr.data-active]=\"activeLetter() === L ? 'true' : null\"\r\n [attr.aria-current]=\"activeLetter() === L ? 'true' : null\"\r\n [attr.aria-label]=\"'Ir a ' + L\"\r\n [attr.tabindex]=\"letraHabilitada(L) ? (L === alphaTabStop() ? 0 : -1) : -1\"\r\n (click)=\"saltarALetra(L)\"\r\n >\r\n {{ L }}\r\n </button>\r\n }\r\n </nav>\r\n }\r\n </div>\r\n\r\n @if (hayPie()) {\r\n <div class=\"ius-entnav__footer\">\r\n <ius-button\r\n variant=\"primary\"\r\n [prefixIcon]=\"createIcon()\"\r\n [label]=\"createLabel()\"\r\n fullWidth\r\n class=\"ius-entnav__cta\"\r\n (clicked)=\"create.emit($event)\"\r\n />\r\n </div>\r\n }\r\n}\r\n\r\n<!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Plantilla de secci\u00F3n (cuerpo y secci\u00F3n fijada comparten) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n<ng-template #seccionTpl let-s>\r\n <section class=\"ius-entnav__section\" [attr.data-pinned]=\"s.isPinned ? 'true' : null\">\r\n @if (s.hasHeader) {\r\n <ius-section-header\r\n [icon]=\"s.group.icon\"\r\n [count]=\"s.group.count\"\r\n [accent]=\"accent()\"\r\n [sticky]=\"s.sticky\"\r\n [collapsible]=\"collapsibleGroups()\"\r\n [collapsed]=\"s.isCollapsed\"\r\n (toggle)=\"alternarPlegadoGrupo(s.gk)\"\r\n >\r\n {{ s.group.label }}\r\n @if (pinnableGroups()) {\r\n <ius-icon-button\r\n iusSectionHeaderAction\r\n class=\"ius-entnav__pinbtn\"\r\n [class.ius-entnav__pinbtn--on]=\"s.isPinned\"\r\n icon=\"pinboard\"\r\n variant=\"tertiary\"\r\n shape=\"circle\"\r\n size=\"small\"\r\n [ariaLabel]=\"etiquetaPinGrupo(s.isPinned)\"\r\n (clicked)=\"alternarPinGrupo(s.gk)\"\r\n />\r\n }\r\n </ius-section-header>\r\n }\r\n\r\n @if (s.padTop) {\r\n <div class=\"ius-entnav__vpad\" [style.height.px]=\"s.padTop\" aria-hidden=\"true\"></div>\r\n }\r\n\r\n @for (d of s.visible; track d.key) {\r\n @switch (d.kind) {\r\n @case ('letter') {\r\n <div class=\"ius-entnav__lanchor\" #letterAnchor [attr.data-letter]=\"d.letter\">\r\n <ius-section-header variant=\"letter\" [accent]=\"accent()\">{{ d.letter }}</ius-section-header>\r\n </div>\r\n }\r\n @case ('addChild') {\r\n <div class=\"ius-entnav__addchild\" [style.padding-left.px]=\"padAddChild(d.level)\">\r\n <ius-text-button\r\n size=\"small\"\r\n prefixIcon=\"add\"\r\n [label]=\"d.node.addChildLabel\"\r\n (clicked)=\"onAddChild(d.node, $event)\"\r\n />\r\n </div>\r\n }\r\n @default {\r\n <ius-entity-row\r\n [kind]=\"d.node.kind ?? 'expediente'\"\r\n [icon]=\"d.node.icon\"\r\n [label]=\"d.node.label\"\r\n [sublabel]=\"d.node.sublabel\"\r\n [level]=\"d.level\"\r\n [accent]=\"accent()\"\r\n [expandable]=\"d.expandable\"\r\n [expanded]=\"d.expanded\"\r\n [loading]=\"d.loading\"\r\n [selected]=\"d.selected\"\r\n [count]=\"d.node.count\"\r\n [unread]=\"d.node.unread\"\r\n [hasUnread]=\"!!d.node.hasUnread\"\r\n [noveltyTone]=\"d.node.noveltyTone ?? 'info'\"\r\n [pinned]=\"!!d.node.pinned\"\r\n [pinnable]=\"d.canPin\"\r\n [actions]=\"d.node.actions ?? []\"\r\n (toggle)=\"alternarNodo(d.node)\"\r\n (togglePin)=\"onTogglePinNodo(d.node, $event)\"\r\n (clicked)=\"elegirNodo(d)\"\r\n />\r\n }\r\n }\r\n }\r\n\r\n @if (s.padBot) {\r\n <div class=\"ius-entnav__vpad\" [style.height.px]=\"s.padBot\" aria-hidden=\"true\"></div>\r\n }\r\n\r\n @if (s.showMore) {\r\n <div class=\"ius-entnav__morerow\">\r\n <ius-show-more\r\n [expanded]=\"s.moreExpanded\"\r\n [remaining]=\"s.moreRemaining\"\r\n align=\"end\"\r\n (toggle)=\"alternarShowMore(s.gk)\"\r\n />\r\n </div>\r\n }\r\n\r\n <!-- Carga por lotes: centinela (IntersectionObserver) + \u00ABCargar m\u00E1s\u00BB. -->\r\n @if (s.showLoadMore) {\r\n <div class=\"ius-entnav__loadmore\">\r\n @if (s.loadingMore) {\r\n <ius-loading variant=\"inline\" size=\"small\" [label]=\"textoCargando()\" />\r\n } @else {\r\n <div\r\n class=\"ius-entnav__sentinel\"\r\n #lmSentinel\r\n [attr.data-lm-group]=\"s.gk\"\r\n aria-hidden=\"true\"\r\n ></div>\r\n <ius-text-button size=\"small\" [label]=\"textoCargarMas()\" (clicked)=\"dispararLote(s.gk)\" />\r\n }\r\n </div>\r\n }\r\n </section>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;width:340px;min-width:0;height:100%;background:var(--ius-surface-card);border-right:1px solid var(--ius-stroke);font-family:var(--ius-font-body)}:host([data-collapsed=true]){width:52px}:host([data-fluid=true]:not([data-collapsed=true])){width:100%}.ius-entnav__rail{display:flex;flex-direction:column;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-sm) var(--ius-space-xs)}.ius-entnav__head{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md) var(--ius-space-md) var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-entnav__titlerow{display:flex;align-items:center;justify-content:space-between;gap:var(--ius-space-xs)}.ius-entnav__actions{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);margin-right:-4px}.ius-entnav__title{font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);font-size:var(--ius-fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--ius-text-tertiary);display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-entnav__title .ius-icon{font-size:var(--ius-icon-sm)}.ius-entnav__filters{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs)}.ius-entnav__state{display:flex}.ius-entnav__state+.ius-entnav__filters{padding-top:var(--ius-space-xs);border-top:1px solid var(--ius-stroke)}.ius-entnav__addpanel{display:flex;flex-direction:column;min-width:224px;max-width:300px;max-height:min(52vh,360px)}.ius-entnav__addhead{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);border-bottom:1px solid var(--ius-stroke)}.ius-entnav__addlist{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);--_sb-track-margin: var(--ius-space-sm)}.ius-entnav__addempty{padding:var(--ius-space-lg) var(--ius-space-sm);text-align:center;font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary)}.ius-entnav__check--off{visibility:hidden}.ius-entnav__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary)}.ius-entnav__meta>span:first-child{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entnav__meta>ius-dropdown{flex:0 0 auto}.ius-entnav__sort{appearance:none;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-body);font-weight:var(--ius-fw-semibold);font-size:var(--ius-fs-sm);line-height:1.2;color:var(--ius-primary-700)}.ius-entnav__sort .ius-icon{font-size:var(--ius-icon-sm)}.ius-entnav__sort:focus-visible{outline:none;box-shadow:var(--ius-focus-ring);border-radius:var(--ius-radius-sm)}.ius-entnav__scrollwrap{position:relative;flex:1 1 auto;min-height:0;display:flex}.ius-entnav__body{flex:1 1 auto;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:0 var(--ius-space-xs) var(--ius-space-xs);position:relative}.ius-entnav__body[data-scrolled=true]{box-shadow:inset 0 7px 6px -6px #26262629}.ius-entnav__body[data-scrolled=true]:before{content:\"\";position:sticky;top:0;z-index:3;display:block;height:0;margin:0 -8px;border-top:1px solid var(--ius-stroke)}.ius-entnav__section{display:contents}.ius-entnav__body ius-section-header[data-variant=group]{margin:0 -8px;padding-left:var(--ius-space-md);padding-right:var(--ius-space-md)}.ius-entnav__morerow{padding:var(--ius-space-xxs) 0}ius-show-more{padding-right:var(--ius-space-xs)}.ius-entnav__loadmore{display:flex;justify-content:center;padding:var(--ius-space-xs) 0 var(--ius-space-sm)}.ius-entnav__sentinel{height:1px;margin:0;padding:0;pointer-events:none}.ius-entnav__pinned{flex:0 0 auto;padding:var(--ius-space-xxs) var(--ius-space-xs) var(--ius-space-xs);border-bottom:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-entnav__pinned ius-section-header[data-variant=group]{margin:0 -8px;padding-left:var(--ius-space-md);padding-right:var(--ius-space-md)}.ius-entnav__pinbtn{opacity:0;transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}ius-section-header:hover .ius-entnav__pinbtn,.ius-entnav__pinbtn:focus-within,.ius-entnav__pinbtn--on{opacity:1}.ius-entnav__addchild{display:flex;padding:var(--ius-space-xxs) var(--ius-space-xs) var(--ius-space-xs) 0}.ius-entnav__empty{display:flex;align-items:center;justify-content:center;min-height:220px;padding:var(--ius-space-xl) var(--ius-space-md)}.ius-entnav__footer{flex:0 0 auto;padding:var(--ius-space-sm) var(--ius-space-md);border-top:1px solid var(--ius-stroke)}.ius-entnav__cta{width:100%}.ius-entnav__alpha{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:var(--ius-space-none);width:var(--ius-space-lg);padding:var(--ius-space-xxs) 0;overflow:hidden;-webkit-user-select:none;user-select:none}.ius-entnav__alpha-let{appearance:none;border:0;background:transparent;cursor:pointer;flex:1 1 0;min-height:0;display:inline-flex;align-items:center;justify-content:center;padding:0;font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);border-radius:var(--ius-radius-sm);transition:color var(--ius-duration-fast) var(--ius-ease-standard),background var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entnav__alpha-let:hover{color:var(--ius-primary-700)}.ius-entnav__alpha-let[data-active=true]{color:var(--ius-primary-900);background:var(--ius-neutral-2);font-weight:var(--ius-fw-bold)}.ius-entnav__alpha-let:disabled{color:var(--ius-text-tertiary);opacity:.35;cursor:default}.ius-entnav__alpha-let:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}\n"] }]
17402
- }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleIcon", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], searchThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchThreshold", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], searchValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchValue", required: false }] }], filters: [{ type: i0.Input, args: [{ isSignal: true, alias: "filters", required: false }] }], selectedFilters: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedFilters", required: false }] }], availableFilters: [{ type: i0.Input, args: [{ isSignal: true, alias: "availableFilters", required: false }] }], activeFacets: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeFacets", required: false }] }], stateSegments: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateSegments", required: false }] }], stateValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateValue", required: false }] }], sortLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortLabel", required: false }] }], sortOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortOptions", required: false }] }], sortValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortValue", required: false }] }], metaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "metaLabel", required: false }] }], groups: [{ type: i0.Input, args: [{ isSignal: true, alias: "groups", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], accent: [{ type: i0.Input, args: [{ isSignal: true, alias: "accent", required: false }] }], defaultExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultExpanded", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }], autoExpandOnFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoExpandOnFilter", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], defaultSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSelected", required: false }] }], emptyStateTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateTemplate", required: false }] }], noResultsLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noResultsLabel", required: false }] }], createLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "createLabel", required: false }] }], createIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "createIcon", required: false }] }], groupLimit: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupLimit", required: false }] }], collapsibleGroups: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsibleGroups", required: false }] }], stickyHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyHeaders", required: false }] }], pinnableGroups: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinnableGroups", required: false }] }], defaultPinnedGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPinnedGroup", required: false }] }], moreLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "moreLabel", required: false }] }], alphaIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "alphaIndex", required: false }] }], alphaIndexLetters: [{ type: i0.Input, args: [{ isSignal: true, alias: "alphaIndexLetters", required: false }] }], loadMoreLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadMoreLabel", required: false }] }], virtualized: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualized", required: false }] }], virtualizeThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualizeThreshold", required: false }] }], itemHeights: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemHeights", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }], defaultCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultCollapsed", required: false }] }], fluidWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fluidWidth", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], search: [{
17478
+ }, template: "<!-- Riel colapsado: solo expandir + CTA. Rama aparte, como el golden. -->\n@if (collapsible() && isCollapsed()) {\n <div class=\"ius-entnav__rail\">\n <ius-icon-button\n icon=\"left_panel_open\"\n variant=\"tertiary\"\n shape=\"circle\"\n size=\"small\"\n ariaLabel=\"Expandir\"\n (clicked)=\"alternarColapso()\"\n />\n @if (hayPie()) {\n <ius-icon-button\n [icon]=\"createIcon()\"\n variant=\"secondary\"\n shape=\"circle\"\n size=\"small\"\n [ariaLabel]=\"createLabel()\"\n (clicked)=\"create.emit($event)\"\n />\n }\n </div>\n} @else {\n <!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Cabecera \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"ius-entnav__head\">\n @if (hayCabecera()) {\n <div class=\"ius-entnav__titlerow\">\n @if (title()) {\n <div class=\"ius-entnav__title\">\n @if (titleIcon()) {\n <span translate=\"no\" class=\"ius-icon\">{{ titleIcon() }}</span>\n }\n {{ title() }}\n </div>\n } @else {\n <span></span>\n }\n <span class=\"ius-entnav__actions\">\n @if (showSearchToggle()) {\n <!-- El `state: pressed` del golden no se porta: IconButton omite `state`\n de su API p\u00FAblica a prop\u00F3sito (decisi\u00F3n suya, documentada). -->\n <ius-icon-button\n icon=\"search\"\n variant=\"tertiary\"\n shape=\"circle\"\n size=\"small\"\n ariaLabel=\"Buscar (\u2318K)\"\n (clicked)=\"alternarBusqueda()\"\n />\n }\n @if (collapsible()) {\n <ius-icon-button\n icon=\"left_panel_close\"\n variant=\"tertiary\"\n shape=\"circle\"\n size=\"small\"\n ariaLabel=\"Colapsar\"\n (clicked)=\"alternarColapso()\"\n />\n }\n </span>\n </div>\n }\n\n @if (searchVisible()) {\n <div #searchBox>\n <ius-search-bar\n [placeholder]=\"searchPlaceholder()\"\n size=\"medium\"\n [value]=\"searchValue()\"\n (valueChange)=\"onSearchValueChange($event)\"\n (search)=\"search.emit($event)\"\n (cleared)=\"searchClear.emit()\"\n />\n </div>\n }\n\n <!-- Eje de estado: excluyente, ortogonal a facetas y b\u00FAsqueda; no poda datos. -->\n @if (stateSegments()?.length) {\n <div class=\"ius-entnav__state\">\n <ius-segmented-control\n [options]=\"segmentos()\"\n [value]=\"stateVal()\"\n size=\"small\"\n variant=\"subtle\"\n fullWidth\n (valueChange)=\"elegirEstado($event)\"\n />\n </div>\n }\n\n @if (hayBarraFiltros()) {\n <div class=\"ius-entnav__filters\">\n @for (f of filters(); track f.key) {\n <ius-tag\n role=\"filter\"\n size=\"small\"\n [tone]=\"tonoFiltro(f)\"\n [icon]=\"f.icon\"\n [dot]=\"f.dot\"\n [count]=\"f.count\"\n [label]=\"f.label\"\n [selected]=\"activeKeys().has(f.key)\"\n [closable]=\"!!f.removable\"\n (clicked)=\"alternarFiltro(f.key)\"\n (closed)=\"quitarFiltro(f.key)\"\n />\n }\n\n <!-- Facetas: Tag `soft` con el tono categ\u00F3rico de su categor\u00EDa, NUNCA solid. -->\n @for (f of facets(); track f.key) {\n <ius-tag\n role=\"label\"\n variant=\"soft\"\n size=\"small\"\n [tone]=\"tonoFaceta(f)\"\n [icon]=\"f.icon\"\n closable\n [label]=\"textoFaceta(f)\"\n (closed)=\"quitarFaceta(f.key)\"\n />\n }\n\n @if (availableFilters().length) {\n <ius-popover\n trigger=\"manual\"\n [open]=\"addOpen()\"\n [dismissable]=\"true\"\n placement=\"bottom-start\"\n [offset]=\"6\"\n [showArrow]=\"false\"\n padding=\"none\"\n (openChange)=\"onAddOpenChange($event)\"\n >\n <ius-tag\n role=\"filter\"\n variant=\"outline\"\n tone=\"neutral\"\n size=\"small\"\n icon=\"add\"\n label=\"Filtro\"\n [selected]=\"addOpen()\"\n (clicked)=\"alternarMenuFiltro()\"\n />\n\n <div iusPopoverContent class=\"ius-entnav__addpanel\">\n @if (addStep(); as step) {\n <div class=\"ius-entnav__addhead\">\n <ius-menu-item\n icon=\"chevron_left\"\n [label]=\"step.label\"\n size=\"small\"\n (clicked)=\"volverDelPaso()\"\n />\n @if (step.picker === 'search') {\n <ius-search-bar\n size=\"small\"\n placeholder=\"Buscar\u2026\"\n [value]=\"addQuery()\"\n (valueChange)=\"addQuery.set($event)\"\n (cleared)=\"addQuery.set('')\"\n />\n }\n </div>\n <div class=\"ius-entnav__addlist ius-scroll ius-scroll--sm\">\n @if (opcionesDelPaso().length === 0) {\n <div class=\"ius-entnav__addempty\">Sin resultados</div>\n } @else {\n @for (o of opcionesDelPaso(); track o.key) {\n <!-- El check se proyecta SIEMPRE y se oculta por CSS: un\n `<ng-content>` detr\u00E1s de un `@if` que depende de un\n contentChild se pierde en el primer render. -->\n <ius-menu-item\n [label]=\"o.label\"\n size=\"small\"\n [selected]=\"facetaActiva(step, o)\"\n (clicked)=\"elegirValor(step, o)\"\n >\n <span\n iusMenuItemTrailing\n translate=\"no\"\n class=\"ius-icon\"\n [class.ius-entnav__check--off]=\"!facetaActiva(step, o)\"\n >check</span\n >\n </ius-menu-item>\n }\n }\n </div>\n } @else {\n <div class=\"ius-entnav__addlist ius-scroll ius-scroll--sm\">\n @for (a of categoriasDisponibles(); track a.key) {\n <ius-menu-item\n [icon]=\"a.icon\"\n [label]=\"a.label\"\n size=\"small\"\n (clicked)=\"elegirCategoria(a)\"\n >\n <span\n iusMenuItemTrailing\n translate=\"no\"\n class=\"ius-icon\"\n [class.ius-entnav__check--off]=\"!a.picker\"\n >chevron_right</span\n >\n </ius-menu-item>\n }\n </div>\n }\n </div>\n </ius-popover>\n }\n </div>\n }\n\n @if (hayMeta()) {\n <div class=\"ius-entnav__meta\">\n <span>{{ metaLabel() || '' }}</span>\n @if (sortOptions()?.length) {\n <ius-dropdown\n [selectable]=\"true\"\n [value]=\"sortValue()\"\n label=\"Ordenar por\"\n tone=\"neutral\"\n [items]=\"sortOptions() ?? []\"\n placement=\"bottom-end\"\n (valueChange)=\"onSort($event)\"\n />\n } @else if (sortLabel()) {\n <button type=\"button\" class=\"ius-entnav__sort\" (click)=\"sort.emit({ value: sortValue() })\">\n {{ sortLabel() }}\n <span translate=\"no\" class=\"ius-icon\">expand_more</span>\n </button>\n }\n </div>\n }\n </div>\n\n <!-- Secci\u00F3n fijada: vive FUERA del cuerpo con scroll (no entra en la ventana\n de render ni en el cursor aritm\u00E9tico de la virtualizaci\u00F3n). -->\n @if (modelo().fijada; as fijada) {\n <div class=\"ius-entnav__pinned\">\n <ng-container [ngTemplateOutlet]=\"seccionTpl\" [ngTemplateOutletContext]=\"{ $implicit: fijada }\" />\n </div>\n }\n\n <div class=\"ius-entnav__scrollwrap\">\n <div\n class=\"ius-entnav__body ius-scroll ius-scroll--sm\"\n #body\n [attr.data-scrolled]=\"bodyScrolled() ? 'true' : null\"\n >\n @if (vacio()) {\n <div class=\"ius-entnav__empty\">\n @if (emptyStateTemplate(); as tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl\" />\n } @else {\n <ius-empty-state\n variant=\"no-results\"\n size=\"compact\"\n [title]=\"noResultsLabel()\"\n [description]=\"descripcionVacio()\"\n />\n }\n </div>\n } @else {\n @for (s of modelo().secciones; track s.gk) {\n <ng-container [ngTemplateOutlet]=\"seccionTpl\" [ngTemplateOutletContext]=\"{ $implicit: s }\" />\n }\n }\n </div>\n\n <!-- \u00CDndice alfab\u00E9tico: navega, no reordena. Se oculta con b\u00FAsqueda/filtros. -->\n @if (alphaVisible()) {\n <nav\n class=\"ius-entnav__alpha\"\n #alpha\n role=\"navigation\"\n aria-label=\"\u00CDndice alfab\u00E9tico\"\n (keydown)=\"onRailKey($event)\"\n >\n @for (L of displayLetters(); track L) {\n <button\n type=\"button\"\n class=\"ius-entnav__alpha-let\"\n [disabled]=\"!letraHabilitada(L)\"\n [attr.data-active]=\"activeLetter() === L ? 'true' : null\"\n [attr.aria-current]=\"activeLetter() === L ? 'true' : null\"\n [attr.aria-label]=\"'Ir a ' + L\"\n [attr.tabindex]=\"letraHabilitada(L) ? (L === alphaTabStop() ? 0 : -1) : -1\"\n (click)=\"saltarALetra(L)\"\n >\n {{ L }}\n </button>\n }\n </nav>\n }\n </div>\n\n @if (hayPie()) {\n <div class=\"ius-entnav__footer\">\n <ius-button\n variant=\"primary\"\n [prefixIcon]=\"createIcon()\"\n [label]=\"createLabel()\"\n fullWidth\n class=\"ius-entnav__cta\"\n (clicked)=\"create.emit($event)\"\n />\n </div>\n }\n}\n\n<!-- \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Plantilla de secci\u00F3n (cuerpo y secci\u00F3n fijada comparten) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n<ng-template #seccionTpl let-s>\n <section class=\"ius-entnav__section\" [attr.data-pinned]=\"s.isPinned ? 'true' : null\">\n @if (s.hasHeader) {\n <ius-section-header\n [icon]=\"s.group.icon\"\n [count]=\"s.group.count\"\n [accent]=\"accent()\"\n [sticky]=\"s.sticky\"\n [collapsible]=\"collapsibleGroups()\"\n [collapsed]=\"s.isCollapsed\"\n (toggle)=\"alternarPlegadoGrupo(s.gk)\"\n >\n {{ s.group.label }}\n @if (pinnableGroups()) {\n <ius-icon-button\n iusSectionHeaderAction\n class=\"ius-entnav__pinbtn\"\n [class.ius-entnav__pinbtn--on]=\"s.isPinned\"\n icon=\"pinboard\"\n variant=\"tertiary\"\n shape=\"circle\"\n size=\"small\"\n [ariaLabel]=\"etiquetaPinGrupo(s.isPinned)\"\n (clicked)=\"alternarPinGrupo(s.gk)\"\n />\n }\n </ius-section-header>\n }\n\n @if (s.padTop) {\n <div class=\"ius-entnav__vpad\" [style.height.px]=\"s.padTop\" aria-hidden=\"true\"></div>\n }\n\n @for (d of s.visible; track d.key) {\n @switch (d.kind) {\n @case ('letter') {\n <div class=\"ius-entnav__lanchor\" #letterAnchor [attr.data-letter]=\"d.letter\">\n <ius-section-header variant=\"letter\" [accent]=\"accent()\">{{ d.letter }}</ius-section-header>\n </div>\n }\n @case ('addChild') {\n <div class=\"ius-entnav__addchild\" [style.padding-left.px]=\"padAddChild(d.level)\">\n <ius-text-button\n size=\"small\"\n prefixIcon=\"add\"\n [label]=\"d.node.addChildLabel\"\n (clicked)=\"onAddChild(d.node, $event)\"\n />\n </div>\n }\n @default {\n <ius-entity-row\n [kind]=\"d.node.kind ?? 'expediente'\"\n [icon]=\"d.node.icon\"\n [label]=\"d.node.label\"\n [sublabel]=\"d.node.sublabel\"\n [level]=\"d.level\"\n [accent]=\"accent()\"\n [expandable]=\"d.expandable\"\n [expanded]=\"d.expanded\"\n [loading]=\"d.loading\"\n [selected]=\"d.selected\"\n [count]=\"d.node.count\"\n [unread]=\"d.node.unread\"\n [hasUnread]=\"!!d.node.hasUnread\"\n [noveltyTone]=\"d.node.noveltyTone ?? 'info'\"\n [pinned]=\"!!d.node.pinned\"\n [pinnable]=\"d.canPin\"\n [actions]=\"d.node.actions ?? []\"\n (toggle)=\"alternarNodo(d.node)\"\n (togglePin)=\"onTogglePinNodo(d.node, $event)\"\n (clicked)=\"elegirNodo(d)\"\n />\n }\n }\n }\n\n @if (s.padBot) {\n <div class=\"ius-entnav__vpad\" [style.height.px]=\"s.padBot\" aria-hidden=\"true\"></div>\n }\n\n @if (s.showMore) {\n <div class=\"ius-entnav__morerow\">\n <ius-show-more\n [expanded]=\"s.moreExpanded\"\n [remaining]=\"s.moreRemaining\"\n align=\"end\"\n (toggle)=\"alternarShowMore(s.gk)\"\n />\n </div>\n }\n\n <!-- Carga por lotes: centinela (IntersectionObserver) + \u00ABCargar m\u00E1s\u00BB. -->\n @if (s.showLoadMore) {\n <div class=\"ius-entnav__loadmore\">\n @if (s.loadingMore) {\n <ius-loading variant=\"inline\" size=\"small\" [label]=\"textoCargando()\" />\n } @else {\n <div\n class=\"ius-entnav__sentinel\"\n #lmSentinel\n [attr.data-lm-group]=\"s.gk\"\n aria-hidden=\"true\"\n ></div>\n <ius-text-button size=\"small\" [label]=\"textoCargarMas()\" (clicked)=\"dispararLote(s.gk)\" />\n }\n </div>\n }\n </section>\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{box-sizing:border-box;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;width:340px;min-width:0;height:100%;background:var(--ius-surface-card);border-right:1px solid var(--ius-stroke);font-family:var(--ius-font-body)}:host([data-collapsed=true]){width:52px}:host([data-fluid=true]:not([data-collapsed=true])){width:100%}.ius-entnav__rail{display:flex;flex-direction:column;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-sm) var(--ius-space-xs)}.ius-entnav__head{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md) var(--ius-space-md) var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-entnav__titlerow{display:flex;align-items:center;justify-content:space-between;gap:var(--ius-space-xs)}.ius-entnav__actions{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);margin-right:-4px}.ius-entnav__title{font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);font-size:var(--ius-fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--ius-text-tertiary);display:inline-flex;align-items:center;gap:var(--ius-space-xs)}.ius-entnav__title .ius-icon{font-size:var(--ius-icon-sm)}.ius-entnav__filters{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs)}.ius-entnav__state{display:flex}.ius-entnav__state+.ius-entnav__filters{padding-top:var(--ius-space-xs);border-top:1px solid var(--ius-stroke)}.ius-entnav__addpanel{display:flex;flex-direction:column;min-width:224px;max-width:300px;max-height:min(52vh,360px)}.ius-entnav__addhead{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);border-bottom:1px solid var(--ius-stroke)}.ius-entnav__addlist{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);--_sb-track-margin: var(--ius-space-sm)}.ius-entnav__addempty{padding:var(--ius-space-lg) var(--ius-space-sm);text-align:center;font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary)}.ius-entnav__check--off{visibility:hidden}.ius-entnav__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary)}.ius-entnav__meta>span:first-child{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ius-entnav__meta>ius-dropdown{flex:0 0 auto}.ius-entnav__sort{appearance:none;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-body);font-weight:var(--ius-fw-semibold);font-size:var(--ius-fs-sm);line-height:1.2;color:var(--ius-primary-700)}.ius-entnav__sort .ius-icon{font-size:var(--ius-icon-sm)}.ius-entnav__sort:focus-visible{outline:none;box-shadow:var(--ius-focus-ring);border-radius:var(--ius-radius-sm)}.ius-entnav__scrollwrap{position:relative;flex:1 1 auto;min-height:0;display:flex}.ius-entnav__body{flex:1 1 auto;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:0 var(--ius-space-xs) var(--ius-space-xs);position:relative}.ius-entnav__body[data-scrolled=true]{box-shadow:inset 0 7px 6px -6px #26262629}.ius-entnav__body[data-scrolled=true]:before{content:\"\";position:sticky;top:0;z-index:3;display:block;height:0;margin:0 -8px;border-top:1px solid var(--ius-stroke)}.ius-entnav__section{display:contents}.ius-entnav__body ius-section-header[data-variant=group]{margin:0 -8px;padding-left:var(--ius-space-md);padding-right:var(--ius-space-md)}.ius-entnav__morerow{padding:var(--ius-space-xxs) 0}ius-show-more{padding-right:var(--ius-space-xs)}.ius-entnav__loadmore{display:flex;justify-content:center;padding:var(--ius-space-xs) 0 var(--ius-space-sm)}.ius-entnav__sentinel{height:1px;margin:0;padding:0;pointer-events:none}.ius-entnav__pinned{flex:0 0 auto;padding:var(--ius-space-xxs) var(--ius-space-xs) var(--ius-space-xs);border-bottom:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-entnav__pinned ius-section-header[data-variant=group]{margin:0 -8px;padding-left:var(--ius-space-md);padding-right:var(--ius-space-md)}.ius-entnav__pinbtn{opacity:0;transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}ius-section-header:hover .ius-entnav__pinbtn,.ius-entnav__pinbtn:focus-within,.ius-entnav__pinbtn--on{opacity:1}.ius-entnav__addchild{display:flex;padding:var(--ius-space-xxs) var(--ius-space-xs) var(--ius-space-xs) 0}.ius-entnav__empty{display:flex;align-items:center;justify-content:center;min-height:220px;padding:var(--ius-space-xl) var(--ius-space-md)}.ius-entnav__footer{flex:0 0 auto;padding:var(--ius-space-sm) var(--ius-space-md);border-top:1px solid var(--ius-stroke)}.ius-entnav__cta{width:100%}.ius-entnav__alpha{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:var(--ius-space-none);width:var(--ius-space-lg);padding:var(--ius-space-xxs) 0;overflow:hidden;-webkit-user-select:none;user-select:none}.ius-entnav__alpha-let{appearance:none;border:0;background:transparent;cursor:pointer;flex:1 1 0;min-height:0;display:inline-flex;align-items:center;justify-content:center;padding:0;font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);border-radius:var(--ius-radius-sm);transition:color var(--ius-duration-fast) var(--ius-ease-standard),background var(--ius-duration-fast) var(--ius-ease-standard)}.ius-entnav__alpha-let:hover{color:var(--ius-primary-700)}.ius-entnav__alpha-let[data-active=true]{color:var(--ius-primary-900);background:var(--ius-neutral-2);font-weight:var(--ius-fw-bold)}.ius-entnav__alpha-let:disabled{color:var(--ius-text-tertiary);opacity:.35;cursor:default}.ius-entnav__alpha-let:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}\n"] }]
17479
+ }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleIcon", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], searchThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchThreshold", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], searchValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchValue", required: false }] }], filters: [{ type: i0.Input, args: [{ isSignal: true, alias: "filters", required: false }] }], selectedFilters: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedFilters", required: false }] }], availableFilters: [{ type: i0.Input, args: [{ isSignal: true, alias: "availableFilters", required: false }] }], activeFacets: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeFacets", required: false }] }], stateSegments: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateSegments", required: false }] }], stateValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateValue", required: false }] }], sortLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortLabel", required: false }] }], sortOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortOptions", required: false }] }], sortValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortValue", required: false }] }], metaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "metaLabel", required: false }] }], groups: [{ type: i0.Input, args: [{ isSignal: true, alias: "groups", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], accent: [{ type: i0.Input, args: [{ isSignal: true, alias: "accent", required: false }] }], defaultExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultExpanded", required: false }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }], autoExpandOnFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoExpandOnFilter", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], defaultSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSelected", required: false }] }], emptyStateTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateTemplate", required: false }] }], noResultsLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noResultsLabel", required: false }] }], createLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "createLabel", required: false }] }], createIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "createIcon", required: false }] }], groupLimit: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupLimit", required: false }] }], collapsibleGroups: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsibleGroups", required: false }] }], collapsedGroups: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedGroups", required: false }] }], stickyHeaders: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyHeaders", required: false }] }], pinnableGroups: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinnableGroups", required: false }] }], defaultPinnedGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPinnedGroup", required: false }] }], moreLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "moreLabel", required: false }] }], alphaIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "alphaIndex", required: false }] }], alphaIndexLetters: [{ type: i0.Input, args: [{ isSignal: true, alias: "alphaIndexLetters", required: false }] }], loadMoreLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadMoreLabel", required: false }] }], virtualized: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualized", required: false }] }], virtualizeThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualizeThreshold", required: false }] }], itemHeights: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemHeights", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }], defaultCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultCollapsed", required: false }] }], fluidWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fluidWidth", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], search: [{
17403
17480
  type: Output
17404
17481
  }], searchChange: [{
17405
17482
  type: Output
@@ -17431,6 +17508,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
17431
17508
  type: Output
17432
17509
  }], pinGroup: [{
17433
17510
  type: Output
17511
+ }], groupCollapse: [{
17512
+ type: Output
17434
17513
  }], more: [{
17435
17514
  type: Output
17436
17515
  }], collapsedChange: [{
@@ -17975,7 +18054,7 @@ class RepeatableFieldComponent {
17975
18054
  useExisting: forwardRef(() => RepeatableFieldComponent),
17976
18055
  multi: true,
17977
18056
  },
17978
- ], ngImport: i0, template: "@if (label) {\r\n <span class=\"ius-repeat__label\" [id]=\"labelId\">\r\n @if (required) {\r\n <span class=\"ius-repeat__req\" aria-hidden=\"true\"></span>\r\n }\r\n {{ label }}\r\n </span>\r\n}\r\n\r\n<div class=\"ius-repeat__rows\" role=\"group\" [attr.aria-labelledby]=\"label ? labelId : null\">\r\n @for (vm of filasVM(); track vm.fila.id) {\r\n <div class=\"ius-repeat__row\">\r\n @if (conTipos()) {\r\n <div class=\"ius-repeat__type\" [style.width]=\"anchoTipo\">\r\n <ius-select\r\n [options]=\"opcionesTipo()\"\r\n [value]=\"vm.fila.type ?? null\"\r\n [placeholder]=\"typePlaceholder\"\r\n [searchable]=\"false\"\r\n [showClear]=\"false\"\r\n [showHelpText]=\"false\"\r\n [disabled]=\"disabled\"\r\n [size]=\"size\"\r\n (valueChange)=\"setTipo(vm.fila.id, $event)\"\r\n />\r\n </div>\r\n }\r\n\r\n <div class=\"ius-repeat__control\">\r\n @if (renderControl) {\r\n <ng-container [ngTemplateOutlet]=\"renderControl\" [ngTemplateOutletContext]=\"vm.ctx\" />\r\n } @else {\r\n <!--\r\n `[ngModel]` de una v\u00EDa: TextField expone su valor solo por CVA (mismo\r\n recurso que ius-query-builder). `standalone` evita que un <form> del\r\n consumidor intente registrar estos inputs como controles con nombre.\r\n -->\r\n <ius-text-field\r\n [ngModel]=\"vm.texto\"\r\n [ngModelOptions]=\"ngModelSuelto\"\r\n [placeholder]=\"placeholder\"\r\n [prefixIcon]=\"prefixIcon\"\r\n [type]=\"tipoInput()\"\r\n [disabled]=\"disabled\"\r\n [size]=\"size\"\r\n [error]=\"vm.error\"\r\n [errorText]=\"vm.errorText\"\r\n [showHelpText]=\"!!vm.errorText\"\r\n [showClear]=\"false\"\r\n (ngModelChange)=\"setValor(vm.fila.id, $event)\"\r\n />\r\n }\r\n </div>\r\n\r\n <div class=\"ius-repeat__remove\">\r\n <ius-icon-button\r\n icon=\"close\"\r\n variant=\"tertiary\"\r\n shape=\"squared\"\r\n size=\"small\"\r\n tooltip=\"Quitar\"\r\n ariaLabel=\"Quitar fila\"\r\n [disabled]=\"vm.quitarDeshabilitado\"\r\n (clicked)=\"quitar(vm.fila.id)\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n\r\n<div class=\"ius-repeat__foot\">\r\n <ius-text-button\r\n [prefixIcon]=\"addIcon\"\r\n [label]=\"addLabel\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled || alTope()\"\r\n (clicked)=\"agregar()\"\r\n />\r\n</div>\r\n\r\n@if (pie()) {\r\n <span class=\"ius-repeat__hint\">{{ pie() }}</span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body);--_rf-field-h: 40px}:host([data-size=small]){--_rf-field-h: 34px}:host([data-size=large]){--_rf-field-h: 48px}@container style(--ius-control-size: small){:host(:not([data-size])){--_rf-field-h: 34px}}@container style(--ius-control-size: large){:host(:not([data-size])){--_rf-field-h: 48px}}.ius-repeat__label{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font:var(--ius-fw-medium) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary)}.ius-repeat__req{width:6px;height:6px;border-radius:var(--ius-radius-pill);background:var(--ius-danger-500);flex:0 0 auto}.ius-repeat__rows{display:flex;flex-direction:column;gap:var(--ius-space-sm)}.ius-repeat__row{display:flex;align-items:flex-start;gap:var(--ius-space-xs)}.ius-repeat__type{flex:0 0 auto;width:var(--_rf-type-w, 150px)}.ius-repeat__type .ius-tf{min-width:0;max-width:none;width:100%}.ius-repeat__type ::ng-deep .ius-select__chevron{height:var(--ius-lh-base)}.ius-repeat__row ::ng-deep .ius-tf__field{align-items:center}.ius-repeat__control{flex:1 1 auto;min-width:0}.ius-repeat__control .ius-tf{max-width:none;width:100%}.ius-repeat__remove{flex:0 0 auto;height:var(--_rf-field-h);display:flex;align-items:center}.ius-repeat__foot{display:flex}.ius-repeat__hint{font:var(--ius-fw-regular) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-tertiary)}:host([data-error=true]) .ius-repeat__hint{color:var(--ius-danger-700)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TextFieldComponent, selector: "ius-text-field", inputs: ["label", "placeholder", "required", "prefixIcon", "showClear", "helpText", "errorText", "showHelpText", "showIconHelp", "iconHelpTitle", "iconHelpContent", "error", "name", "autocomplete", "type", "size", "disabled"], outputs: ["valueChange", "cleared"] }, { kind: "component", type: SelectComponent, selector: "ius-select", inputs: ["options", "multiple", "size", "disabled", "error", "state", "open", "value", "label", "required", "placeholder", "prefixIcon", "searchable", "searchPlaceholder", "emptyText", "creatable", "createPlaceholder", "createLabel", "createFactory", "maxVisible", "helpText", "errorText", "showHelpText", "showIconHelp", "iconHelpTitle", "iconHelpContent", "showClear", "defaultOpen", "compact", "defaultValue", "id", "name"], outputs: ["valueChange", "cleared", "openChange", "created"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18057
+ ], ngImport: i0, template: "@if (label) {\n <span class=\"ius-repeat__label\" [id]=\"labelId\">\n @if (required) {\n <span class=\"ius-repeat__req\" aria-hidden=\"true\"></span>\n }\n {{ label }}\n </span>\n}\n\n<div class=\"ius-repeat__rows\" role=\"group\" [attr.aria-labelledby]=\"label ? labelId : null\">\n @for (vm of filasVM(); track vm.fila.id) {\n <div class=\"ius-repeat__row\">\n @if (conTipos()) {\n <div class=\"ius-repeat__type\" [style.width]=\"anchoTipo\">\n <ius-select\n [options]=\"opcionesTipo()\"\n [value]=\"vm.fila.type ?? null\"\n [placeholder]=\"typePlaceholder\"\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n (valueChange)=\"setTipo(vm.fila.id, $event)\"\n />\n </div>\n }\n\n <div class=\"ius-repeat__control\">\n @if (renderControl) {\n <ng-container [ngTemplateOutlet]=\"renderControl\" [ngTemplateOutletContext]=\"vm.ctx\" />\n } @else {\n <!--\n `[ngModel]` de una v\u00EDa: TextField expone su valor solo por CVA (mismo\n recurso que ius-query-builder). `standalone` evita que un <form> del\n consumidor intente registrar estos inputs como controles con nombre.\n -->\n <ius-text-field\n [ngModel]=\"vm.texto\"\n [ngModelOptions]=\"ngModelSuelto\"\n [placeholder]=\"placeholder\"\n [prefixIcon]=\"prefixIcon\"\n [type]=\"tipoInput()\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [error]=\"vm.error\"\n [errorText]=\"vm.errorText\"\n [showHelpText]=\"!!vm.errorText\"\n [showClear]=\"false\"\n (ngModelChange)=\"setValor(vm.fila.id, $event)\"\n />\n }\n </div>\n\n <div class=\"ius-repeat__remove\">\n <ius-icon-button\n icon=\"close\"\n variant=\"tertiary\"\n shape=\"squared\"\n size=\"small\"\n tooltip=\"Quitar\"\n ariaLabel=\"Quitar fila\"\n [disabled]=\"vm.quitarDeshabilitado\"\n (clicked)=\"quitar(vm.fila.id)\"\n />\n </div>\n </div>\n }\n</div>\n\n<div class=\"ius-repeat__foot\">\n <ius-text-button\n [prefixIcon]=\"addIcon\"\n [label]=\"addLabel\"\n [size]=\"size\"\n [disabled]=\"disabled || alTope()\"\n (clicked)=\"agregar()\"\n />\n</div>\n\n@if (pie()) {\n <span class=\"ius-repeat__hint\">{{ pie() }}</span>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body);--_rf-field-h: 40px}:host([data-size=small]){--_rf-field-h: 34px}:host([data-size=large]){--_rf-field-h: 48px}@container style(--ius-control-size: small){:host(:not([data-size])){--_rf-field-h: 34px}}@container style(--ius-control-size: large){:host(:not([data-size])){--_rf-field-h: 48px}}.ius-repeat__label{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font:var(--ius-fw-medium) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary)}.ius-repeat__req{width:6px;height:6px;border-radius:var(--ius-radius-pill);background:var(--ius-danger-500);flex:0 0 auto}.ius-repeat__rows{display:flex;flex-direction:column;gap:var(--ius-space-sm)}.ius-repeat__row{display:flex;align-items:flex-start;gap:var(--ius-space-xs)}.ius-repeat__type{flex:0 0 auto;width:var(--_rf-type-w, 150px)}.ius-repeat__type .ius-tf{min-width:0;max-width:none;width:100%}.ius-repeat__type ::ng-deep .ius-select__chevron{height:var(--ius-lh-base)}.ius-repeat__row ::ng-deep .ius-tf__field{align-items:center}.ius-repeat__control{flex:1 1 auto;min-width:0}.ius-repeat__control .ius-tf{max-width:none;width:100%}.ius-repeat__remove{flex:0 0 auto;height:var(--_rf-field-h);display:flex;align-items:center}.ius-repeat__foot{display:flex}.ius-repeat__hint{font:var(--ius-fw-regular) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-tertiary)}:host([data-error=true]) .ius-repeat__hint{color:var(--ius-danger-700)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TextFieldComponent, selector: "ius-text-field", inputs: ["label", "placeholder", "required", "prefixIcon", "showClear", "helpText", "errorText", "showHelpText", "showIconHelp", "iconHelpTitle", "iconHelpContent", "error", "name", "autocomplete", "type", "size", "disabled"], outputs: ["valueChange", "cleared"] }, { kind: "component", type: SelectComponent, selector: "ius-select", inputs: ["options", "multiple", "size", "disabled", "error", "state", "open", "value", "label", "required", "placeholder", "prefixIcon", "searchable", "searchPlaceholder", "emptyText", "creatable", "createPlaceholder", "createLabel", "createFactory", "maxVisible", "helpText", "errorText", "showHelpText", "showIconHelp", "iconHelpTitle", "iconHelpContent", "showClear", "defaultOpen", "compact", "defaultValue", "id", "name"], outputs: ["valueChange", "cleared", "openChange", "created"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17979
18058
  }
17980
18059
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: RepeatableFieldComponent, decorators: [{
17981
18060
  type: Component,
@@ -17996,7 +18075,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
17996
18075
  class: 'ius-repeat',
17997
18076
  '[attr.data-size]': "size !== 'medium' ? size : null",
17998
18077
  '[attr.data-error]': "error ? 'true' : null",
17999
- }, template: "@if (label) {\r\n <span class=\"ius-repeat__label\" [id]=\"labelId\">\r\n @if (required) {\r\n <span class=\"ius-repeat__req\" aria-hidden=\"true\"></span>\r\n }\r\n {{ label }}\r\n </span>\r\n}\r\n\r\n<div class=\"ius-repeat__rows\" role=\"group\" [attr.aria-labelledby]=\"label ? labelId : null\">\r\n @for (vm of filasVM(); track vm.fila.id) {\r\n <div class=\"ius-repeat__row\">\r\n @if (conTipos()) {\r\n <div class=\"ius-repeat__type\" [style.width]=\"anchoTipo\">\r\n <ius-select\r\n [options]=\"opcionesTipo()\"\r\n [value]=\"vm.fila.type ?? null\"\r\n [placeholder]=\"typePlaceholder\"\r\n [searchable]=\"false\"\r\n [showClear]=\"false\"\r\n [showHelpText]=\"false\"\r\n [disabled]=\"disabled\"\r\n [size]=\"size\"\r\n (valueChange)=\"setTipo(vm.fila.id, $event)\"\r\n />\r\n </div>\r\n }\r\n\r\n <div class=\"ius-repeat__control\">\r\n @if (renderControl) {\r\n <ng-container [ngTemplateOutlet]=\"renderControl\" [ngTemplateOutletContext]=\"vm.ctx\" />\r\n } @else {\r\n <!--\r\n `[ngModel]` de una v\u00EDa: TextField expone su valor solo por CVA (mismo\r\n recurso que ius-query-builder). `standalone` evita que un <form> del\r\n consumidor intente registrar estos inputs como controles con nombre.\r\n -->\r\n <ius-text-field\r\n [ngModel]=\"vm.texto\"\r\n [ngModelOptions]=\"ngModelSuelto\"\r\n [placeholder]=\"placeholder\"\r\n [prefixIcon]=\"prefixIcon\"\r\n [type]=\"tipoInput()\"\r\n [disabled]=\"disabled\"\r\n [size]=\"size\"\r\n [error]=\"vm.error\"\r\n [errorText]=\"vm.errorText\"\r\n [showHelpText]=\"!!vm.errorText\"\r\n [showClear]=\"false\"\r\n (ngModelChange)=\"setValor(vm.fila.id, $event)\"\r\n />\r\n }\r\n </div>\r\n\r\n <div class=\"ius-repeat__remove\">\r\n <ius-icon-button\r\n icon=\"close\"\r\n variant=\"tertiary\"\r\n shape=\"squared\"\r\n size=\"small\"\r\n tooltip=\"Quitar\"\r\n ariaLabel=\"Quitar fila\"\r\n [disabled]=\"vm.quitarDeshabilitado\"\r\n (clicked)=\"quitar(vm.fila.id)\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n\r\n<div class=\"ius-repeat__foot\">\r\n <ius-text-button\r\n [prefixIcon]=\"addIcon\"\r\n [label]=\"addLabel\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled || alTope()\"\r\n (clicked)=\"agregar()\"\r\n />\r\n</div>\r\n\r\n@if (pie()) {\r\n <span class=\"ius-repeat__hint\">{{ pie() }}</span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body);--_rf-field-h: 40px}:host([data-size=small]){--_rf-field-h: 34px}:host([data-size=large]){--_rf-field-h: 48px}@container style(--ius-control-size: small){:host(:not([data-size])){--_rf-field-h: 34px}}@container style(--ius-control-size: large){:host(:not([data-size])){--_rf-field-h: 48px}}.ius-repeat__label{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font:var(--ius-fw-medium) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary)}.ius-repeat__req{width:6px;height:6px;border-radius:var(--ius-radius-pill);background:var(--ius-danger-500);flex:0 0 auto}.ius-repeat__rows{display:flex;flex-direction:column;gap:var(--ius-space-sm)}.ius-repeat__row{display:flex;align-items:flex-start;gap:var(--ius-space-xs)}.ius-repeat__type{flex:0 0 auto;width:var(--_rf-type-w, 150px)}.ius-repeat__type .ius-tf{min-width:0;max-width:none;width:100%}.ius-repeat__type ::ng-deep .ius-select__chevron{height:var(--ius-lh-base)}.ius-repeat__row ::ng-deep .ius-tf__field{align-items:center}.ius-repeat__control{flex:1 1 auto;min-width:0}.ius-repeat__control .ius-tf{max-width:none;width:100%}.ius-repeat__remove{flex:0 0 auto;height:var(--_rf-field-h);display:flex;align-items:center}.ius-repeat__foot{display:flex}.ius-repeat__hint{font:var(--ius-fw-regular) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-tertiary)}:host([data-error=true]) .ius-repeat__hint{color:var(--ius-danger-700)}\n"] }]
18078
+ }, template: "@if (label) {\n <span class=\"ius-repeat__label\" [id]=\"labelId\">\n @if (required) {\n <span class=\"ius-repeat__req\" aria-hidden=\"true\"></span>\n }\n {{ label }}\n </span>\n}\n\n<div class=\"ius-repeat__rows\" role=\"group\" [attr.aria-labelledby]=\"label ? labelId : null\">\n @for (vm of filasVM(); track vm.fila.id) {\n <div class=\"ius-repeat__row\">\n @if (conTipos()) {\n <div class=\"ius-repeat__type\" [style.width]=\"anchoTipo\">\n <ius-select\n [options]=\"opcionesTipo()\"\n [value]=\"vm.fila.type ?? null\"\n [placeholder]=\"typePlaceholder\"\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n (valueChange)=\"setTipo(vm.fila.id, $event)\"\n />\n </div>\n }\n\n <div class=\"ius-repeat__control\">\n @if (renderControl) {\n <ng-container [ngTemplateOutlet]=\"renderControl\" [ngTemplateOutletContext]=\"vm.ctx\" />\n } @else {\n <!--\n `[ngModel]` de una v\u00EDa: TextField expone su valor solo por CVA (mismo\n recurso que ius-query-builder). `standalone` evita que un <form> del\n consumidor intente registrar estos inputs como controles con nombre.\n -->\n <ius-text-field\n [ngModel]=\"vm.texto\"\n [ngModelOptions]=\"ngModelSuelto\"\n [placeholder]=\"placeholder\"\n [prefixIcon]=\"prefixIcon\"\n [type]=\"tipoInput()\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [error]=\"vm.error\"\n [errorText]=\"vm.errorText\"\n [showHelpText]=\"!!vm.errorText\"\n [showClear]=\"false\"\n (ngModelChange)=\"setValor(vm.fila.id, $event)\"\n />\n }\n </div>\n\n <div class=\"ius-repeat__remove\">\n <ius-icon-button\n icon=\"close\"\n variant=\"tertiary\"\n shape=\"squared\"\n size=\"small\"\n tooltip=\"Quitar\"\n ariaLabel=\"Quitar fila\"\n [disabled]=\"vm.quitarDeshabilitado\"\n (clicked)=\"quitar(vm.fila.id)\"\n />\n </div>\n </div>\n }\n</div>\n\n<div class=\"ius-repeat__foot\">\n <ius-text-button\n [prefixIcon]=\"addIcon\"\n [label]=\"addLabel\"\n [size]=\"size\"\n [disabled]=\"disabled || alTope()\"\n (clicked)=\"agregar()\"\n />\n</div>\n\n@if (pie()) {\n <span class=\"ius-repeat__hint\">{{ pie() }}</span>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body);--_rf-field-h: 40px}:host([data-size=small]){--_rf-field-h: 34px}:host([data-size=large]){--_rf-field-h: 48px}@container style(--ius-control-size: small){:host(:not([data-size])){--_rf-field-h: 34px}}@container style(--ius-control-size: large){:host(:not([data-size])){--_rf-field-h: 48px}}.ius-repeat__label{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font:var(--ius-fw-medium) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary)}.ius-repeat__req{width:6px;height:6px;border-radius:var(--ius-radius-pill);background:var(--ius-danger-500);flex:0 0 auto}.ius-repeat__rows{display:flex;flex-direction:column;gap:var(--ius-space-sm)}.ius-repeat__row{display:flex;align-items:flex-start;gap:var(--ius-space-xs)}.ius-repeat__type{flex:0 0 auto;width:var(--_rf-type-w, 150px)}.ius-repeat__type .ius-tf{min-width:0;max-width:none;width:100%}.ius-repeat__type ::ng-deep .ius-select__chevron{height:var(--ius-lh-base)}.ius-repeat__row ::ng-deep .ius-tf__field{align-items:center}.ius-repeat__control{flex:1 1 auto;min-width:0}.ius-repeat__control .ius-tf{max-width:none;width:100%}.ius-repeat__remove{flex:0 0 auto;height:var(--_rf-field-h);display:flex;align-items:center}.ius-repeat__foot{display:flex}.ius-repeat__hint{font:var(--ius-fw-regular) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-tertiary)}:host([data-error=true]) .ius-repeat__hint{color:var(--ius-danger-700)}\n"] }]
18000
18079
  }], propDecorators: { items: [{
18001
18080
  type: Input
18002
18081
  }], defaultItems: [{
@@ -18574,7 +18653,7 @@ class BarChartComponent {
18574
18653
  this.animations = [];
18575
18654
  }
18576
18655
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18577
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarChartComponent, isStandalone: true, selector: "ius-bar-chart", inputs: { categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, stacked: { classPropertyName: "stacked", publicName: "stacked", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, aspectRatio: { classPropertyName: "aspectRatio", publicName: "aspectRatio", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, axisWidth: { classPropertyName: "axisWidth", publicName: "axisWidth", isSignal: true, isRequired: false, transformFunction: null }, barSize: { classPropertyName: "barSize", publicName: "barSize", isSignal: true, isRequired: false, transformFunction: null }, showCategoryAxis: { classPropertyName: "showCategoryAxis", publicName: "showCategoryAxis", isSignal: true, isRequired: false, transformFunction: null }, showValueAxis: { classPropertyName: "showValueAxis", publicName: "showValueAxis", isSignal: true, isRequired: false, transformFunction: null }, showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, valueTicks: { classPropertyName: "valueTicks", publicName: "valueTicks", isSignal: true, isRequired: false, transformFunction: null }, valueMin: { classPropertyName: "valueMin", publicName: "valueMin", isSignal: true, isRequired: false, transformFunction: null }, valueMax: { classPropertyName: "valueMax", publicName: "valueMax", isSignal: true, isRequired: false, transformFunction: null }, showValueLabels: { classPropertyName: "showValueLabels", publicName: "showValueLabels", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, categoryFormat: { classPropertyName: "categoryFormat", publicName: "categoryFormat", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: true, isRequired: false, transformFunction: null }, emptyTitle: { classPropertyName: "emptyTitle", publicName: "emptyTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyDescription: { classPropertyName: "emptyDescription", publicName: "emptyDescription", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-dim": "active() != null ? 'true' : 'false'", "style.width.px": "width() ?? null" }, classAttribute: "ius-bchart" }, ngImport: i0, template: "@if (!loading() && !hasData()) {\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\n <div class=\"ius-bchart__block\" [style.height.px]=\"frame().H\">\n @if (emptyTemplate(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\n }\n </div>\n} @else {\n @if (legendOn() && !loading()) {\n <div class=\"ius-bchart__legend\">\n @for (s of seriesView(); track s.key) {\n <span class=\"ius-bchart__leg\">\n <span class=\"ius-bchart__dot\" [style.background]=\"s.color\"></span>\n {{ s.label }}\n </span>\n }\n </div>\n }\n\n <div class=\"ius-bchart__plot\">\n <svg class=\"ius-bchart__svg\" [attr.viewBox]=\"viewBox()\" role=\"img\" [attr.aria-label]=\"ariaLabel() || null\">\n <!-- grilla (sobre eje de valor) -->\n @if (showGrid() && !loading()) {\n <g class=\"ius-bchart__grid\">\n @for (t of tickItems(); track $index) {\n @if (frame().vertical) {\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"t.pos\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"t.pos\" />\n } @else {\n <line [attr.x1]=\"t.pos\" [attr.y1]=\"frame().mT\" [attr.x2]=\"t.pos\" [attr.y2]=\"frame().mT + frame().innerH\" />\n }\n }\n </g>\n }\n\n <!-- eje de valor -->\n @if (showValueAxis() && !loading()) {\n @if (frame().vertical) {\n <g class=\"ius-bchart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\n @for (t of tickItems(); track $index) {\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.pos\">{{ t.text }}</text>\n }\n </g>\n } @else {\n <g class=\"ius-bchart__tick\" text-anchor=\"middle\">\n @for (t of tickItems(); track $index) {\n <text [attr.x]=\"t.pos\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ t.text }}</text>\n }\n </g>\n }\n }\n\n <!-- skeleton -->\n @if (loading()) {\n <g>\n @for (r of skeletonRects(); track $index) {\n <rect class=\"ius-bchart__skel\" [attr.x]=\"r.x\" [attr.y]=\"r.y\" [attr.width]=\"r.w\" [attr.height]=\"r.h\" rx=\"3\" />\n }\n </g>\n }\n\n <!-- bandas de hover (tooltip por categor\u00EDa) -->\n @if (!loading() && showTooltip()) {\n <g>\n @for (b of hoverBands(); track b.i) {\n <rect\n class=\"ius-bchart__hover\"\n [attr.data-active]=\"active() === b.i ? 'true' : null\"\n [attr.x]=\"b.x\"\n [attr.y]=\"b.y\"\n [attr.width]=\"b.w\"\n [attr.height]=\"b.h\"\n (mouseenter)=\"onBandEnter(b.i)\"\n (mouseleave)=\"onBandLeave(b.i)\"\n />\n }\n </g>\n }\n\n <!-- barras -->\n @if (!loading()) {\n <g>\n @for (r of rects(); track $index) {\n @if (r.d) {\n <path\n class=\"ius-bchart__bar\"\n [attr.data-cat]=\"r.i\"\n [attr.data-active]=\"active() === r.i ? 'true' : null\"\n [attr.d]=\"r.d\"\n [attr.fill]=\"r.color\"\n />\n } @else {\n <rect\n class=\"ius-bchart__bar\"\n [attr.data-cat]=\"r.i\"\n [attr.data-active]=\"active() === r.i ? 'true' : null\"\n [attr.x]=\"r.x\"\n [attr.y]=\"r.y\"\n [attr.width]=\"r.w\"\n [attr.height]=\"r.h\"\n [attr.rx]=\"r.rx\"\n [attr.fill]=\"r.color\"\n />\n }\n }\n </g>\n }\n\n <!-- etiquetas de valor -->\n @if (valueLabelItems().length) {\n <g>\n @for (v of valueLabelItems(); track $index) {\n <text\n class=\"ius-bchart__vlabel\"\n [attr.text-anchor]=\"v.anchor\"\n [attr.dominant-baseline]=\"v.baseline\"\n [attr.x]=\"v.x\"\n [attr.y]=\"v.y\"\n >{{ v.text }}</text>\n }\n </g>\n }\n\n <!-- eje de categor\u00EDas -->\n @if (showCategoryAxis() && !loading()) {\n @if (frame().vertical) {\n <g class=\"ius-bchart__clabel\" text-anchor=\"middle\">\n <line\n class=\"ius-bchart__axisline\"\n [attr.x1]=\"frame().mL\"\n [attr.y1]=\"frame().mT + frame().innerH\"\n [attr.x2]=\"frame().mL + frame().innerW\"\n [attr.y2]=\"frame().mT + frame().innerH\"\n />\n @for (c of catItems(); track $index) {\n <text [attr.x]=\"c.center\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ c.text }}</text>\n }\n </g>\n } @else {\n <g class=\"ius-bchart__clabel\" text-anchor=\"end\" dominant-baseline=\"middle\">\n <line\n class=\"ius-bchart__axisline\"\n [attr.x1]=\"frame().mL\"\n [attr.y1]=\"frame().mT\"\n [attr.x2]=\"frame().mL\"\n [attr.y2]=\"frame().mT + frame().innerH\"\n />\n @for (c of catItems(); track $index) {\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"c.center\">{{ c.text }}</text>\n }\n </g>\n }\n }\n </svg>\n\n <!-- tooltip (HTML) -->\n @if (tooltip(); as tip) {\n <div class=\"ius-bchart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\n <div class=\"ius-bchart__tip-x\">{{ tip.title }}</div>\n @for (r of tip.rows; track r.key) {\n <div class=\"ius-bchart__tip-row\">\n <span class=\"ius-bchart__dot\" [style.background]=\"r.color\"></span>\n {{ r.label }}\n <b>{{ r.value }}</b>\n </div>\n }\n @if (tip.total) {\n <div class=\"ius-bchart__tip-row ius-bchart__tip-row--total\">Total<b>{{ tip.total }}</b></div>\n }\n </div>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-bchart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-bchart__plot{position:relative}.ius-bchart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-bchart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-bchart__tick,.ius-bchart__clabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-bchart__bar{transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}:host([data-dim=true]) .ius-bchart__bar:not([data-active=true]){opacity:.38}.ius-bchart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium)}.ius-bchart__hover{fill:var(--ius-neutral-2);opacity:0}.ius-bchart__hover[data-active=true]{opacity:.5}.ius-bchart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-bchart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-bchart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-bchart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-bchart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-bchart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-bchart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-bchart__tip-row--total{border-top:1px solid var(--ius-stroke);margin-top:var(--ius-space-xxs);padding-top:var(--ius-space-xxs)}.ius-bchart__skel{fill:var(--ius-neutral-2)}.ius-bchart__block{display:grid;place-items:center;min-height:160px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EmptyStateComponent, selector: "ius-empty-state", inputs: ["variant", "size", "tone", "icon", "illustration", "illustrationTemplate", "title", "description", "primaryAction", "secondaryAction", "actionsTemplate", "role"], outputs: ["primaryClick", "secondaryClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18656
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarChartComponent, isStandalone: true, selector: "ius-bar-chart", inputs: { categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, stacked: { classPropertyName: "stacked", publicName: "stacked", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, aspectRatio: { classPropertyName: "aspectRatio", publicName: "aspectRatio", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, axisWidth: { classPropertyName: "axisWidth", publicName: "axisWidth", isSignal: true, isRequired: false, transformFunction: null }, barSize: { classPropertyName: "barSize", publicName: "barSize", isSignal: true, isRequired: false, transformFunction: null }, showCategoryAxis: { classPropertyName: "showCategoryAxis", publicName: "showCategoryAxis", isSignal: true, isRequired: false, transformFunction: null }, showValueAxis: { classPropertyName: "showValueAxis", publicName: "showValueAxis", isSignal: true, isRequired: false, transformFunction: null }, showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, valueTicks: { classPropertyName: "valueTicks", publicName: "valueTicks", isSignal: true, isRequired: false, transformFunction: null }, valueMin: { classPropertyName: "valueMin", publicName: "valueMin", isSignal: true, isRequired: false, transformFunction: null }, valueMax: { classPropertyName: "valueMax", publicName: "valueMax", isSignal: true, isRequired: false, transformFunction: null }, showValueLabels: { classPropertyName: "showValueLabels", publicName: "showValueLabels", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, categoryFormat: { classPropertyName: "categoryFormat", publicName: "categoryFormat", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: true, isRequired: false, transformFunction: null }, emptyTitle: { classPropertyName: "emptyTitle", publicName: "emptyTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyDescription: { classPropertyName: "emptyDescription", publicName: "emptyDescription", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-dim": "active() != null ? 'true' : 'false'", "style.width.px": "width() ?? null" }, classAttribute: "ius-bchart" }, ngImport: i0, template: "@if (!loading() && !hasData()) {\r\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\r\n <div class=\"ius-bchart__block\" [style.height.px]=\"frame().H\">\r\n @if (emptyTemplate(); as tpl) {\r\n <ng-container *ngTemplateOutlet=\"tpl\" />\r\n } @else {\r\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\r\n }\r\n </div>\r\n} @else {\r\n @if (legendOn() && !loading()) {\r\n <div class=\"ius-bchart__legend\">\r\n @for (s of seriesView(); track s.key) {\r\n <span class=\"ius-bchart__leg\">\r\n <span class=\"ius-bchart__dot\" [style.background]=\"s.color\"></span>\r\n {{ s.label }}\r\n </span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"ius-bchart__plot\">\r\n <svg class=\"ius-bchart__svg\" [attr.viewBox]=\"viewBox()\" role=\"img\" [attr.aria-label]=\"ariaLabel() || null\">\r\n <!-- grilla (sobre eje de valor) -->\r\n @if (showGrid() && !loading()) {\r\n <g class=\"ius-bchart__grid\">\r\n @for (t of tickItems(); track $index) {\r\n @if (frame().vertical) {\r\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"t.pos\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"t.pos\" />\r\n } @else {\r\n <line [attr.x1]=\"t.pos\" [attr.y1]=\"frame().mT\" [attr.x2]=\"t.pos\" [attr.y2]=\"frame().mT + frame().innerH\" />\r\n }\r\n }\r\n </g>\r\n }\r\n\r\n <!-- eje de valor -->\r\n @if (showValueAxis() && !loading()) {\r\n @if (frame().vertical) {\r\n <g class=\"ius-bchart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\r\n @for (t of tickItems(); track $index) {\r\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.pos\">{{ t.text }}</text>\r\n }\r\n </g>\r\n } @else {\r\n <g class=\"ius-bchart__tick\" text-anchor=\"middle\">\r\n @for (t of tickItems(); track $index) {\r\n <text [attr.x]=\"t.pos\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ t.text }}</text>\r\n }\r\n </g>\r\n }\r\n }\r\n\r\n <!-- skeleton -->\r\n @if (loading()) {\r\n <g>\r\n @for (r of skeletonRects(); track $index) {\r\n <rect class=\"ius-bchart__skel\" [attr.x]=\"r.x\" [attr.y]=\"r.y\" [attr.width]=\"r.w\" [attr.height]=\"r.h\" rx=\"3\" />\r\n }\r\n </g>\r\n }\r\n\r\n <!-- bandas de hover (tooltip por categor\u00EDa) -->\r\n @if (!loading() && showTooltip()) {\r\n <g>\r\n @for (b of hoverBands(); track b.i) {\r\n <rect\r\n class=\"ius-bchart__hover\"\r\n [attr.data-active]=\"active() === b.i ? 'true' : null\"\r\n [attr.x]=\"b.x\"\r\n [attr.y]=\"b.y\"\r\n [attr.width]=\"b.w\"\r\n [attr.height]=\"b.h\"\r\n (mouseenter)=\"onBandEnter(b.i)\"\r\n (mouseleave)=\"onBandLeave(b.i)\"\r\n />\r\n }\r\n </g>\r\n }\r\n\r\n <!-- barras -->\r\n @if (!loading()) {\r\n <g>\r\n @for (r of rects(); track $index) {\r\n @if (r.d) {\r\n <path\r\n class=\"ius-bchart__bar\"\r\n [attr.data-cat]=\"r.i\"\r\n [attr.data-active]=\"active() === r.i ? 'true' : null\"\r\n [attr.d]=\"r.d\"\r\n [attr.fill]=\"r.color\"\r\n />\r\n } @else {\r\n <rect\r\n class=\"ius-bchart__bar\"\r\n [attr.data-cat]=\"r.i\"\r\n [attr.data-active]=\"active() === r.i ? 'true' : null\"\r\n [attr.x]=\"r.x\"\r\n [attr.y]=\"r.y\"\r\n [attr.width]=\"r.w\"\r\n [attr.height]=\"r.h\"\r\n [attr.rx]=\"r.rx\"\r\n [attr.fill]=\"r.color\"\r\n />\r\n }\r\n }\r\n </g>\r\n }\r\n\r\n <!-- etiquetas de valor -->\r\n @if (valueLabelItems().length) {\r\n <g>\r\n @for (v of valueLabelItems(); track $index) {\r\n <text\r\n class=\"ius-bchart__vlabel\"\r\n [attr.text-anchor]=\"v.anchor\"\r\n [attr.dominant-baseline]=\"v.baseline\"\r\n [attr.x]=\"v.x\"\r\n [attr.y]=\"v.y\"\r\n >{{ v.text }}</text>\r\n }\r\n </g>\r\n }\r\n\r\n <!-- eje de categor\u00EDas -->\r\n @if (showCategoryAxis() && !loading()) {\r\n @if (frame().vertical) {\r\n <g class=\"ius-bchart__clabel\" text-anchor=\"middle\">\r\n <line\r\n class=\"ius-bchart__axisline\"\r\n [attr.x1]=\"frame().mL\"\r\n [attr.y1]=\"frame().mT + frame().innerH\"\r\n [attr.x2]=\"frame().mL + frame().innerW\"\r\n [attr.y2]=\"frame().mT + frame().innerH\"\r\n />\r\n @for (c of catItems(); track $index) {\r\n <text [attr.x]=\"c.center\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ c.text }}</text>\r\n }\r\n </g>\r\n } @else {\r\n <g class=\"ius-bchart__clabel\" text-anchor=\"end\" dominant-baseline=\"middle\">\r\n <line\r\n class=\"ius-bchart__axisline\"\r\n [attr.x1]=\"frame().mL\"\r\n [attr.y1]=\"frame().mT\"\r\n [attr.x2]=\"frame().mL\"\r\n [attr.y2]=\"frame().mT + frame().innerH\"\r\n />\r\n @for (c of catItems(); track $index) {\r\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"c.center\">{{ c.text }}</text>\r\n }\r\n </g>\r\n }\r\n }\r\n </svg>\r\n\r\n <!-- tooltip (HTML) -->\r\n @if (tooltip(); as tip) {\r\n <div class=\"ius-bchart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\r\n <div class=\"ius-bchart__tip-x\">{{ tip.title }}</div>\r\n @for (r of tip.rows; track r.key) {\r\n <div class=\"ius-bchart__tip-row\">\r\n <span class=\"ius-bchart__dot\" [style.background]=\"r.color\"></span>\r\n {{ r.label }}\r\n <b>{{ r.value }}</b>\r\n </div>\r\n }\r\n @if (tip.total) {\r\n <div class=\"ius-bchart__tip-row ius-bchart__tip-row--total\">Total<b>{{ tip.total }}</b></div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-bchart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-bchart__plot{position:relative}.ius-bchart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-bchart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-bchart__tick,.ius-bchart__clabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-bchart__bar{transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}:host([data-dim=true]) .ius-bchart__bar:not([data-active=true]){opacity:.38}.ius-bchart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium)}.ius-bchart__hover{fill:var(--ius-neutral-2);opacity:0}.ius-bchart__hover[data-active=true]{opacity:.5}.ius-bchart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-bchart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-bchart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-bchart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-bchart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-bchart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-bchart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-bchart__tip-row--total{border-top:1px solid var(--ius-stroke);margin-top:var(--ius-space-xxs);padding-top:var(--ius-space-xxs)}.ius-bchart__skel{fill:var(--ius-neutral-2)}.ius-bchart__block{display:grid;place-items:center;min-height:160px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EmptyStateComponent, selector: "ius-empty-state", inputs: ["variant", "size", "tone", "icon", "illustration", "illustrationTemplate", "title", "description", "primaryAction", "secondaryAction", "actionsTemplate", "role"], outputs: ["primaryClick", "secondaryClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18578
18657
  }
18579
18658
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarChartComponent, decorators: [{
18580
18659
  type: Component,
@@ -18582,7 +18661,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
18582
18661
  class: 'ius-bchart',
18583
18662
  '[attr.data-dim]': "active() != null ? 'true' : 'false'",
18584
18663
  '[style.width.px]': 'width() ?? null',
18585
- }, template: "@if (!loading() && !hasData()) {\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\n <div class=\"ius-bchart__block\" [style.height.px]=\"frame().H\">\n @if (emptyTemplate(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\n }\n </div>\n} @else {\n @if (legendOn() && !loading()) {\n <div class=\"ius-bchart__legend\">\n @for (s of seriesView(); track s.key) {\n <span class=\"ius-bchart__leg\">\n <span class=\"ius-bchart__dot\" [style.background]=\"s.color\"></span>\n {{ s.label }}\n </span>\n }\n </div>\n }\n\n <div class=\"ius-bchart__plot\">\n <svg class=\"ius-bchart__svg\" [attr.viewBox]=\"viewBox()\" role=\"img\" [attr.aria-label]=\"ariaLabel() || null\">\n <!-- grilla (sobre eje de valor) -->\n @if (showGrid() && !loading()) {\n <g class=\"ius-bchart__grid\">\n @for (t of tickItems(); track $index) {\n @if (frame().vertical) {\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"t.pos\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"t.pos\" />\n } @else {\n <line [attr.x1]=\"t.pos\" [attr.y1]=\"frame().mT\" [attr.x2]=\"t.pos\" [attr.y2]=\"frame().mT + frame().innerH\" />\n }\n }\n </g>\n }\n\n <!-- eje de valor -->\n @if (showValueAxis() && !loading()) {\n @if (frame().vertical) {\n <g class=\"ius-bchart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\n @for (t of tickItems(); track $index) {\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.pos\">{{ t.text }}</text>\n }\n </g>\n } @else {\n <g class=\"ius-bchart__tick\" text-anchor=\"middle\">\n @for (t of tickItems(); track $index) {\n <text [attr.x]=\"t.pos\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ t.text }}</text>\n }\n </g>\n }\n }\n\n <!-- skeleton -->\n @if (loading()) {\n <g>\n @for (r of skeletonRects(); track $index) {\n <rect class=\"ius-bchart__skel\" [attr.x]=\"r.x\" [attr.y]=\"r.y\" [attr.width]=\"r.w\" [attr.height]=\"r.h\" rx=\"3\" />\n }\n </g>\n }\n\n <!-- bandas de hover (tooltip por categor\u00EDa) -->\n @if (!loading() && showTooltip()) {\n <g>\n @for (b of hoverBands(); track b.i) {\n <rect\n class=\"ius-bchart__hover\"\n [attr.data-active]=\"active() === b.i ? 'true' : null\"\n [attr.x]=\"b.x\"\n [attr.y]=\"b.y\"\n [attr.width]=\"b.w\"\n [attr.height]=\"b.h\"\n (mouseenter)=\"onBandEnter(b.i)\"\n (mouseleave)=\"onBandLeave(b.i)\"\n />\n }\n </g>\n }\n\n <!-- barras -->\n @if (!loading()) {\n <g>\n @for (r of rects(); track $index) {\n @if (r.d) {\n <path\n class=\"ius-bchart__bar\"\n [attr.data-cat]=\"r.i\"\n [attr.data-active]=\"active() === r.i ? 'true' : null\"\n [attr.d]=\"r.d\"\n [attr.fill]=\"r.color\"\n />\n } @else {\n <rect\n class=\"ius-bchart__bar\"\n [attr.data-cat]=\"r.i\"\n [attr.data-active]=\"active() === r.i ? 'true' : null\"\n [attr.x]=\"r.x\"\n [attr.y]=\"r.y\"\n [attr.width]=\"r.w\"\n [attr.height]=\"r.h\"\n [attr.rx]=\"r.rx\"\n [attr.fill]=\"r.color\"\n />\n }\n }\n </g>\n }\n\n <!-- etiquetas de valor -->\n @if (valueLabelItems().length) {\n <g>\n @for (v of valueLabelItems(); track $index) {\n <text\n class=\"ius-bchart__vlabel\"\n [attr.text-anchor]=\"v.anchor\"\n [attr.dominant-baseline]=\"v.baseline\"\n [attr.x]=\"v.x\"\n [attr.y]=\"v.y\"\n >{{ v.text }}</text>\n }\n </g>\n }\n\n <!-- eje de categor\u00EDas -->\n @if (showCategoryAxis() && !loading()) {\n @if (frame().vertical) {\n <g class=\"ius-bchart__clabel\" text-anchor=\"middle\">\n <line\n class=\"ius-bchart__axisline\"\n [attr.x1]=\"frame().mL\"\n [attr.y1]=\"frame().mT + frame().innerH\"\n [attr.x2]=\"frame().mL + frame().innerW\"\n [attr.y2]=\"frame().mT + frame().innerH\"\n />\n @for (c of catItems(); track $index) {\n <text [attr.x]=\"c.center\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ c.text }}</text>\n }\n </g>\n } @else {\n <g class=\"ius-bchart__clabel\" text-anchor=\"end\" dominant-baseline=\"middle\">\n <line\n class=\"ius-bchart__axisline\"\n [attr.x1]=\"frame().mL\"\n [attr.y1]=\"frame().mT\"\n [attr.x2]=\"frame().mL\"\n [attr.y2]=\"frame().mT + frame().innerH\"\n />\n @for (c of catItems(); track $index) {\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"c.center\">{{ c.text }}</text>\n }\n </g>\n }\n }\n </svg>\n\n <!-- tooltip (HTML) -->\n @if (tooltip(); as tip) {\n <div class=\"ius-bchart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\n <div class=\"ius-bchart__tip-x\">{{ tip.title }}</div>\n @for (r of tip.rows; track r.key) {\n <div class=\"ius-bchart__tip-row\">\n <span class=\"ius-bchart__dot\" [style.background]=\"r.color\"></span>\n {{ r.label }}\n <b>{{ r.value }}</b>\n </div>\n }\n @if (tip.total) {\n <div class=\"ius-bchart__tip-row ius-bchart__tip-row--total\">Total<b>{{ tip.total }}</b></div>\n }\n </div>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-bchart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-bchart__plot{position:relative}.ius-bchart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-bchart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-bchart__tick,.ius-bchart__clabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-bchart__bar{transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}:host([data-dim=true]) .ius-bchart__bar:not([data-active=true]){opacity:.38}.ius-bchart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium)}.ius-bchart__hover{fill:var(--ius-neutral-2);opacity:0}.ius-bchart__hover[data-active=true]{opacity:.5}.ius-bchart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-bchart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-bchart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-bchart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-bchart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-bchart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-bchart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-bchart__tip-row--total{border-top:1px solid var(--ius-stroke);margin-top:var(--ius-space-xxs);padding-top:var(--ius-space-xxs)}.ius-bchart__skel{fill:var(--ius-neutral-2)}.ius-bchart__block{display:grid;place-items:center;min-height:160px}\n"] }]
18664
+ }, template: "@if (!loading() && !hasData()) {\r\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\r\n <div class=\"ius-bchart__block\" [style.height.px]=\"frame().H\">\r\n @if (emptyTemplate(); as tpl) {\r\n <ng-container *ngTemplateOutlet=\"tpl\" />\r\n } @else {\r\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\r\n }\r\n </div>\r\n} @else {\r\n @if (legendOn() && !loading()) {\r\n <div class=\"ius-bchart__legend\">\r\n @for (s of seriesView(); track s.key) {\r\n <span class=\"ius-bchart__leg\">\r\n <span class=\"ius-bchart__dot\" [style.background]=\"s.color\"></span>\r\n {{ s.label }}\r\n </span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"ius-bchart__plot\">\r\n <svg class=\"ius-bchart__svg\" [attr.viewBox]=\"viewBox()\" role=\"img\" [attr.aria-label]=\"ariaLabel() || null\">\r\n <!-- grilla (sobre eje de valor) -->\r\n @if (showGrid() && !loading()) {\r\n <g class=\"ius-bchart__grid\">\r\n @for (t of tickItems(); track $index) {\r\n @if (frame().vertical) {\r\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"t.pos\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"t.pos\" />\r\n } @else {\r\n <line [attr.x1]=\"t.pos\" [attr.y1]=\"frame().mT\" [attr.x2]=\"t.pos\" [attr.y2]=\"frame().mT + frame().innerH\" />\r\n }\r\n }\r\n </g>\r\n }\r\n\r\n <!-- eje de valor -->\r\n @if (showValueAxis() && !loading()) {\r\n @if (frame().vertical) {\r\n <g class=\"ius-bchart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\r\n @for (t of tickItems(); track $index) {\r\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.pos\">{{ t.text }}</text>\r\n }\r\n </g>\r\n } @else {\r\n <g class=\"ius-bchart__tick\" text-anchor=\"middle\">\r\n @for (t of tickItems(); track $index) {\r\n <text [attr.x]=\"t.pos\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ t.text }}</text>\r\n }\r\n </g>\r\n }\r\n }\r\n\r\n <!-- skeleton -->\r\n @if (loading()) {\r\n <g>\r\n @for (r of skeletonRects(); track $index) {\r\n <rect class=\"ius-bchart__skel\" [attr.x]=\"r.x\" [attr.y]=\"r.y\" [attr.width]=\"r.w\" [attr.height]=\"r.h\" rx=\"3\" />\r\n }\r\n </g>\r\n }\r\n\r\n <!-- bandas de hover (tooltip por categor\u00EDa) -->\r\n @if (!loading() && showTooltip()) {\r\n <g>\r\n @for (b of hoverBands(); track b.i) {\r\n <rect\r\n class=\"ius-bchart__hover\"\r\n [attr.data-active]=\"active() === b.i ? 'true' : null\"\r\n [attr.x]=\"b.x\"\r\n [attr.y]=\"b.y\"\r\n [attr.width]=\"b.w\"\r\n [attr.height]=\"b.h\"\r\n (mouseenter)=\"onBandEnter(b.i)\"\r\n (mouseleave)=\"onBandLeave(b.i)\"\r\n />\r\n }\r\n </g>\r\n }\r\n\r\n <!-- barras -->\r\n @if (!loading()) {\r\n <g>\r\n @for (r of rects(); track $index) {\r\n @if (r.d) {\r\n <path\r\n class=\"ius-bchart__bar\"\r\n [attr.data-cat]=\"r.i\"\r\n [attr.data-active]=\"active() === r.i ? 'true' : null\"\r\n [attr.d]=\"r.d\"\r\n [attr.fill]=\"r.color\"\r\n />\r\n } @else {\r\n <rect\r\n class=\"ius-bchart__bar\"\r\n [attr.data-cat]=\"r.i\"\r\n [attr.data-active]=\"active() === r.i ? 'true' : null\"\r\n [attr.x]=\"r.x\"\r\n [attr.y]=\"r.y\"\r\n [attr.width]=\"r.w\"\r\n [attr.height]=\"r.h\"\r\n [attr.rx]=\"r.rx\"\r\n [attr.fill]=\"r.color\"\r\n />\r\n }\r\n }\r\n </g>\r\n }\r\n\r\n <!-- etiquetas de valor -->\r\n @if (valueLabelItems().length) {\r\n <g>\r\n @for (v of valueLabelItems(); track $index) {\r\n <text\r\n class=\"ius-bchart__vlabel\"\r\n [attr.text-anchor]=\"v.anchor\"\r\n [attr.dominant-baseline]=\"v.baseline\"\r\n [attr.x]=\"v.x\"\r\n [attr.y]=\"v.y\"\r\n >{{ v.text }}</text>\r\n }\r\n </g>\r\n }\r\n\r\n <!-- eje de categor\u00EDas -->\r\n @if (showCategoryAxis() && !loading()) {\r\n @if (frame().vertical) {\r\n <g class=\"ius-bchart__clabel\" text-anchor=\"middle\">\r\n <line\r\n class=\"ius-bchart__axisline\"\r\n [attr.x1]=\"frame().mL\"\r\n [attr.y1]=\"frame().mT + frame().innerH\"\r\n [attr.x2]=\"frame().mL + frame().innerW\"\r\n [attr.y2]=\"frame().mT + frame().innerH\"\r\n />\r\n @for (c of catItems(); track $index) {\r\n <text [attr.x]=\"c.center\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ c.text }}</text>\r\n }\r\n </g>\r\n } @else {\r\n <g class=\"ius-bchart__clabel\" text-anchor=\"end\" dominant-baseline=\"middle\">\r\n <line\r\n class=\"ius-bchart__axisline\"\r\n [attr.x1]=\"frame().mL\"\r\n [attr.y1]=\"frame().mT\"\r\n [attr.x2]=\"frame().mL\"\r\n [attr.y2]=\"frame().mT + frame().innerH\"\r\n />\r\n @for (c of catItems(); track $index) {\r\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"c.center\">{{ c.text }}</text>\r\n }\r\n </g>\r\n }\r\n }\r\n </svg>\r\n\r\n <!-- tooltip (HTML) -->\r\n @if (tooltip(); as tip) {\r\n <div class=\"ius-bchart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\r\n <div class=\"ius-bchart__tip-x\">{{ tip.title }}</div>\r\n @for (r of tip.rows; track r.key) {\r\n <div class=\"ius-bchart__tip-row\">\r\n <span class=\"ius-bchart__dot\" [style.background]=\"r.color\"></span>\r\n {{ r.label }}\r\n <b>{{ r.value }}</b>\r\n </div>\r\n }\r\n @if (tip.total) {\r\n <div class=\"ius-bchart__tip-row ius-bchart__tip-row--total\">Total<b>{{ tip.total }}</b></div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-bchart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-bchart__plot{position:relative}.ius-bchart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-bchart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-bchart__tick,.ius-bchart__clabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-bchart__bar{transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}:host([data-dim=true]) .ius-bchart__bar:not([data-active=true]){opacity:.38}.ius-bchart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium)}.ius-bchart__hover{fill:var(--ius-neutral-2);opacity:0}.ius-bchart__hover[data-active=true]{opacity:.5}.ius-bchart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-bchart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-bchart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-bchart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-bchart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-bchart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-bchart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-bchart__tip-row--total{border-top:1px solid var(--ius-stroke);margin-top:var(--ius-space-xxs);padding-top:var(--ius-space-xxs)}.ius-bchart__skel{fill:var(--ius-neutral-2)}.ius-bchart__block{display:grid;place-items:center;min-height:160px}\n"] }]
18586
18665
  }], ctorParameters: () => [], propDecorators: { categories: [{ type: i0.Input, args: [{ isSignal: true, alias: "categories", required: false }] }], series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], stacked: [{ type: i0.Input, args: [{ isSignal: true, alias: "stacked", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], aspectRatio: [{ type: i0.Input, args: [{ isSignal: true, alias: "aspectRatio", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], axisWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "axisWidth", required: false }] }], barSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "barSize", required: false }] }], showCategoryAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCategoryAxis", required: false }] }], showValueAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValueAxis", required: false }] }], showGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGrid", required: false }] }], valueTicks: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueTicks", required: false }] }], valueMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueMin", required: false }] }], valueMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueMax", required: false }] }], showValueLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValueLabels", required: false }] }], showLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLegend", required: false }] }], showTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTooltip", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], categoryFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "categoryFormat", required: false }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTemplate", required: false }] }], emptyTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTitle", required: false }] }], emptyDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyDescription", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
18587
18666
 
18588
18667
  /** Duración de la entrada (WAAPI) y red de seguridad que deja la dona completa. */
@@ -18920,7 +18999,7 @@ class DonutChartComponent {
18920
18999
  this.animations = [];
18921
19000
  }
18922
19001
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DonutChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18923
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: DonutChartComponent, isStandalone: true, selector: "ius-donut-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, startAngle: { classPropertyName: "startAngle", publicName: "startAngle", isSignal: true, isRequired: false, transformFunction: null }, padAngle: { classPropertyName: "padAngle", publicName: "padAngle", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, legendPosition: { classPropertyName: "legendPosition", publicName: "legendPosition", isSignal: true, isRequired: false, transformFunction: null }, legendValues: { classPropertyName: "legendValues", publicName: "legendValues", isSignal: true, isRequired: false, transformFunction: null }, showLabels: { classPropertyName: "showLabels", publicName: "showLabels", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, centerLabel: { classPropertyName: "centerLabel", publicName: "centerLabel", isSignal: true, isRequired: false, transformFunction: null }, centerSublabel: { classPropertyName: "centerSublabel", publicName: "centerSublabel", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: true, isRequired: false, transformFunction: null }, emptyTitle: { classPropertyName: "emptyTitle", publicName: "emptyTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyDescription: { classPropertyName: "emptyDescription", publicName: "emptyDescription", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-legend": "legendPosition()", "attr.data-dim": "active() != null ? 'true' : 'false'" }, classAttribute: "ius-donut" }, ngImport: i0, template: "@if (!loading() && !hasData()) {\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor). -->\n <div class=\"ius-donut__block\">\n @if (emptyTemplate(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\n }\n </div>\n} @else {\n <div class=\"ius-donut__chart\" [style.width.px]=\"geo().D\" [style.height.px]=\"geo().D\">\n <svg\n class=\"ius-donut__svg\"\n [attr.width]=\"geo().D\"\n [attr.height]=\"geo().D\"\n [attr.viewBox]=\"viewBox()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n >\n @if (loading()) {\n <circle\n class=\"ius-donut__skel\"\n [attr.cx]=\"geo().cx\"\n [attr.cy]=\"geo().cy\"\n [attr.r]=\"geo().rMid\"\n [attr.stroke-width]=\"geo().ringW\"\n />\n } @else {\n <g class=\"ius-donut__slices\">\n @if (slices().length === 1) {\n <circle\n class=\"ius-donut__seg\"\n [attr.cx]=\"geo().cx\"\n [attr.cy]=\"geo().cy\"\n [attr.r]=\"geo().rMid\"\n fill=\"none\"\n [attr.stroke]=\"slices()[0].color\"\n [attr.stroke-width]=\"geo().ringW\"\n />\n } @else {\n @for (sl of slices(); track sl.key) {\n <path\n class=\"ius-donut__seg\"\n [attr.data-active]=\"active() === sl.i ? 'true' : null\"\n [attr.d]=\"sl.d\"\n [attr.fill]=\"sl.color\"\n (mouseenter)=\"onSegEnter(sl.i)\"\n (mouseleave)=\"onSegLeave(sl.i)\"\n />\n }\n }\n @for (l of sliceLabels(); track l.key) {\n <text class=\"ius-donut__slabel\" [attr.x]=\"l.x\" [attr.y]=\"l.y\">{{ l.text }}</text>\n }\n </g>\n }\n </svg>\n\n @if (centerOn()) {\n <div class=\"ius-donut__center\">\n <div>\n @if (centerMain(); as main) {\n <div class=\"ius-donut__center-main\">{{ main }}</div>\n }\n @if (centerSublabel(); as sub) {\n <div class=\"ius-donut__center-sub\">{{ sub }}</div>\n }\n </div>\n </div>\n }\n\n <!-- tooltip -->\n @if (tooltip(); as tip) {\n <div class=\"ius-donut__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\n <div class=\"ius-donut__tip-row\">\n <span class=\"ius-donut__dot\" [style.background]=\"tip.color\"></span>\n {{ tip.label }}\n <b>{{ tip.value }}</b>\n </div>\n <div class=\"ius-donut__tip-pct\">{{ tip.pct }}</div>\n </div>\n }\n </div>\n\n @if (showLegend() && !loading()) {\n <div class=\"ius-donut__legend\">\n @for (item of legendItems(); track item.key) {\n <span\n class=\"ius-donut__leg\"\n [attr.data-active]=\"active() === item.i ? 'true' : null\"\n (mouseenter)=\"onSegEnter(item.i)\"\n (mouseleave)=\"onSegLeave(item.i)\"\n >\n <span class=\"ius-donut__dot\" [style.background]=\"item.color\"></span>\n <span class=\"ius-donut__leg-label\">{{ item.label }}</span>\n @if (legendValues()) {\n <span class=\"ius-donut__leg-val\">{{ item.val }}</span>\n }\n </span>\n }\n </div>\n }\n}\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:flex;width:100%;box-sizing:border-box;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}:host([data-legend=right]){flex-direction:row;align-items:center}:host([data-legend=bottom]){flex-direction:column;align-items:center}.ius-donut__chart{position:relative;flex:0 0 auto}.ius-donut__svg{display:block;overflow:visible}.ius-donut__seg{transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}:host([data-dim=true]) .ius-donut__seg:not([data-active=true]){opacity:.4}.ius-donut__slabel{fill:var(--ius-neutral-white);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle;dominant-baseline:middle;pointer-events:none}.ius-donut__center{position:absolute;inset:0;display:grid;place-items:center;text-align:center;pointer-events:none}.ius-donut__center-main{font-family:var(--ius-font-display);font-weight:var(--ius-fw-bold);font-size:var(--ius-fs-h4);line-height:var(--ius-lh-h4);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-donut__center-sub{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}.ius-donut__legend{display:flex;flex-direction:column;gap:var(--ius-space-xs);min-width:0;flex:1 1 auto}:host([data-legend=bottom]) .ius-donut__legend{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--ius-space-xs) var(--ius-space-md);flex:0 0 auto}.ius-donut__leg{display:flex;align-items:center;gap:var(--ius-space-xs);min-width:0;font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);cursor:default}:host([data-legend=bottom]) .ius-donut__leg{flex:0 0 auto}.ius-donut__leg[data-active=true]{color:var(--ius-text-primary)}.ius-donut__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-donut__leg-label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host([data-legend=bottom]) .ius-donut__leg-label{flex:0 0 auto}.ius-donut__leg-val{flex:0 0 auto;margin-left:auto;padding-left:var(--ius-space-sm);white-space:nowrap;color:var(--ius-text-primary);font-variant-numeric:tabular-nums}:host([data-legend=bottom]) .ius-donut__leg-val{margin-left:0}.ius-donut__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:120px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - 10px))}.ius-donut__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-donut__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-donut__tip-pct{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);text-align:right}.ius-donut__skel{fill:none;stroke:var(--ius-neutral-2)}.ius-donut__block{display:grid;place-items:center;min-height:160px;width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EmptyStateComponent, selector: "ius-empty-state", inputs: ["variant", "size", "tone", "icon", "illustration", "illustrationTemplate", "title", "description", "primaryAction", "secondaryAction", "actionsTemplate", "role"], outputs: ["primaryClick", "secondaryClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19002
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: DonutChartComponent, isStandalone: true, selector: "ius-donut-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, startAngle: { classPropertyName: "startAngle", publicName: "startAngle", isSignal: true, isRequired: false, transformFunction: null }, padAngle: { classPropertyName: "padAngle", publicName: "padAngle", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, legendPosition: { classPropertyName: "legendPosition", publicName: "legendPosition", isSignal: true, isRequired: false, transformFunction: null }, legendValues: { classPropertyName: "legendValues", publicName: "legendValues", isSignal: true, isRequired: false, transformFunction: null }, showLabels: { classPropertyName: "showLabels", publicName: "showLabels", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, centerLabel: { classPropertyName: "centerLabel", publicName: "centerLabel", isSignal: true, isRequired: false, transformFunction: null }, centerSublabel: { classPropertyName: "centerSublabel", publicName: "centerSublabel", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: true, isRequired: false, transformFunction: null }, emptyTitle: { classPropertyName: "emptyTitle", publicName: "emptyTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyDescription: { classPropertyName: "emptyDescription", publicName: "emptyDescription", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-legend": "legendPosition()", "attr.data-dim": "active() != null ? 'true' : 'false'" }, classAttribute: "ius-donut" }, ngImport: i0, template: "@if (!loading() && !hasData()) {\r\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor). -->\r\n <div class=\"ius-donut__block\">\r\n @if (emptyTemplate(); as tpl) {\r\n <ng-container *ngTemplateOutlet=\"tpl\" />\r\n } @else {\r\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\r\n }\r\n </div>\r\n} @else {\r\n <div class=\"ius-donut__chart\" [style.width.px]=\"geo().D\" [style.height.px]=\"geo().D\">\r\n <svg\r\n class=\"ius-donut__svg\"\r\n [attr.width]=\"geo().D\"\r\n [attr.height]=\"geo().D\"\r\n [attr.viewBox]=\"viewBox()\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n >\r\n @if (loading()) {\r\n <circle\r\n class=\"ius-donut__skel\"\r\n [attr.cx]=\"geo().cx\"\r\n [attr.cy]=\"geo().cy\"\r\n [attr.r]=\"geo().rMid\"\r\n [attr.stroke-width]=\"geo().ringW\"\r\n />\r\n } @else {\r\n <g class=\"ius-donut__slices\">\r\n @if (slices().length === 1) {\r\n <circle\r\n class=\"ius-donut__seg\"\r\n [attr.cx]=\"geo().cx\"\r\n [attr.cy]=\"geo().cy\"\r\n [attr.r]=\"geo().rMid\"\r\n fill=\"none\"\r\n [attr.stroke]=\"slices()[0].color\"\r\n [attr.stroke-width]=\"geo().ringW\"\r\n />\r\n } @else {\r\n @for (sl of slices(); track sl.key) {\r\n <path\r\n class=\"ius-donut__seg\"\r\n [attr.data-active]=\"active() === sl.i ? 'true' : null\"\r\n [attr.d]=\"sl.d\"\r\n [attr.fill]=\"sl.color\"\r\n (mouseenter)=\"onSegEnter(sl.i)\"\r\n (mouseleave)=\"onSegLeave(sl.i)\"\r\n />\r\n }\r\n }\r\n @for (l of sliceLabels(); track l.key) {\r\n <text class=\"ius-donut__slabel\" [attr.x]=\"l.x\" [attr.y]=\"l.y\">{{ l.text }}</text>\r\n }\r\n </g>\r\n }\r\n </svg>\r\n\r\n @if (centerOn()) {\r\n <div class=\"ius-donut__center\">\r\n <div>\r\n @if (centerMain(); as main) {\r\n <div class=\"ius-donut__center-main\">{{ main }}</div>\r\n }\r\n @if (centerSublabel(); as sub) {\r\n <div class=\"ius-donut__center-sub\">{{ sub }}</div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <!-- tooltip -->\r\n @if (tooltip(); as tip) {\r\n <div class=\"ius-donut__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\r\n <div class=\"ius-donut__tip-row\">\r\n <span class=\"ius-donut__dot\" [style.background]=\"tip.color\"></span>\r\n {{ tip.label }}\r\n <b>{{ tip.value }}</b>\r\n </div>\r\n <div class=\"ius-donut__tip-pct\">{{ tip.pct }}</div>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showLegend() && !loading()) {\r\n <div class=\"ius-donut__legend\">\r\n @for (item of legendItems(); track item.key) {\r\n <span\r\n class=\"ius-donut__leg\"\r\n [attr.data-active]=\"active() === item.i ? 'true' : null\"\r\n (mouseenter)=\"onSegEnter(item.i)\"\r\n (mouseleave)=\"onSegLeave(item.i)\"\r\n >\r\n <span class=\"ius-donut__dot\" [style.background]=\"item.color\"></span>\r\n <span class=\"ius-donut__leg-label\">{{ item.label }}</span>\r\n @if (legendValues()) {\r\n <span class=\"ius-donut__leg-val\">{{ item.val }}</span>\r\n }\r\n </span>\r\n }\r\n </div>\r\n }\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:flex;width:100%;box-sizing:border-box;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}:host([data-legend=right]){flex-direction:row;align-items:center}:host([data-legend=bottom]){flex-direction:column;align-items:center}.ius-donut__chart{position:relative;flex:0 0 auto}.ius-donut__svg{display:block;overflow:visible}.ius-donut__seg{transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}:host([data-dim=true]) .ius-donut__seg:not([data-active=true]){opacity:.4}.ius-donut__slabel{fill:var(--ius-neutral-white);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle;dominant-baseline:middle;pointer-events:none}.ius-donut__center{position:absolute;inset:0;display:grid;place-items:center;text-align:center;pointer-events:none}.ius-donut__center-main{font-family:var(--ius-font-display);font-weight:var(--ius-fw-bold);font-size:var(--ius-fs-h4);line-height:var(--ius-lh-h4);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-donut__center-sub{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}.ius-donut__legend{display:flex;flex-direction:column;gap:var(--ius-space-xs);min-width:0;flex:1 1 auto}:host([data-legend=bottom]) .ius-donut__legend{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--ius-space-xs) var(--ius-space-md);flex:0 0 auto}.ius-donut__leg{display:flex;align-items:center;gap:var(--ius-space-xs);min-width:0;font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);cursor:default}:host([data-legend=bottom]) .ius-donut__leg{flex:0 0 auto}.ius-donut__leg[data-active=true]{color:var(--ius-text-primary)}.ius-donut__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-donut__leg-label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host([data-legend=bottom]) .ius-donut__leg-label{flex:0 0 auto}.ius-donut__leg-val{flex:0 0 auto;margin-left:auto;padding-left:var(--ius-space-sm);white-space:nowrap;color:var(--ius-text-primary);font-variant-numeric:tabular-nums}:host([data-legend=bottom]) .ius-donut__leg-val{margin-left:0}.ius-donut__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:120px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - 10px))}.ius-donut__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-donut__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-donut__tip-pct{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);text-align:right}.ius-donut__skel{fill:none;stroke:var(--ius-neutral-2)}.ius-donut__block{display:grid;place-items:center;min-height:160px;width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EmptyStateComponent, selector: "ius-empty-state", inputs: ["variant", "size", "tone", "icon", "illustration", "illustrationTemplate", "title", "description", "primaryAction", "secondaryAction", "actionsTemplate", "role"], outputs: ["primaryClick", "secondaryClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18924
19003
  }
18925
19004
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DonutChartComponent, decorators: [{
18926
19005
  type: Component,
@@ -18928,7 +19007,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
18928
19007
  class: 'ius-donut',
18929
19008
  '[attr.data-legend]': 'legendPosition()',
18930
19009
  '[attr.data-dim]': "active() != null ? 'true' : 'false'",
18931
- }, template: "@if (!loading() && !hasData()) {\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor). -->\n <div class=\"ius-donut__block\">\n @if (emptyTemplate(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\n }\n </div>\n} @else {\n <div class=\"ius-donut__chart\" [style.width.px]=\"geo().D\" [style.height.px]=\"geo().D\">\n <svg\n class=\"ius-donut__svg\"\n [attr.width]=\"geo().D\"\n [attr.height]=\"geo().D\"\n [attr.viewBox]=\"viewBox()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n >\n @if (loading()) {\n <circle\n class=\"ius-donut__skel\"\n [attr.cx]=\"geo().cx\"\n [attr.cy]=\"geo().cy\"\n [attr.r]=\"geo().rMid\"\n [attr.stroke-width]=\"geo().ringW\"\n />\n } @else {\n <g class=\"ius-donut__slices\">\n @if (slices().length === 1) {\n <circle\n class=\"ius-donut__seg\"\n [attr.cx]=\"geo().cx\"\n [attr.cy]=\"geo().cy\"\n [attr.r]=\"geo().rMid\"\n fill=\"none\"\n [attr.stroke]=\"slices()[0].color\"\n [attr.stroke-width]=\"geo().ringW\"\n />\n } @else {\n @for (sl of slices(); track sl.key) {\n <path\n class=\"ius-donut__seg\"\n [attr.data-active]=\"active() === sl.i ? 'true' : null\"\n [attr.d]=\"sl.d\"\n [attr.fill]=\"sl.color\"\n (mouseenter)=\"onSegEnter(sl.i)\"\n (mouseleave)=\"onSegLeave(sl.i)\"\n />\n }\n }\n @for (l of sliceLabels(); track l.key) {\n <text class=\"ius-donut__slabel\" [attr.x]=\"l.x\" [attr.y]=\"l.y\">{{ l.text }}</text>\n }\n </g>\n }\n </svg>\n\n @if (centerOn()) {\n <div class=\"ius-donut__center\">\n <div>\n @if (centerMain(); as main) {\n <div class=\"ius-donut__center-main\">{{ main }}</div>\n }\n @if (centerSublabel(); as sub) {\n <div class=\"ius-donut__center-sub\">{{ sub }}</div>\n }\n </div>\n </div>\n }\n\n <!-- tooltip -->\n @if (tooltip(); as tip) {\n <div class=\"ius-donut__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\n <div class=\"ius-donut__tip-row\">\n <span class=\"ius-donut__dot\" [style.background]=\"tip.color\"></span>\n {{ tip.label }}\n <b>{{ tip.value }}</b>\n </div>\n <div class=\"ius-donut__tip-pct\">{{ tip.pct }}</div>\n </div>\n }\n </div>\n\n @if (showLegend() && !loading()) {\n <div class=\"ius-donut__legend\">\n @for (item of legendItems(); track item.key) {\n <span\n class=\"ius-donut__leg\"\n [attr.data-active]=\"active() === item.i ? 'true' : null\"\n (mouseenter)=\"onSegEnter(item.i)\"\n (mouseleave)=\"onSegLeave(item.i)\"\n >\n <span class=\"ius-donut__dot\" [style.background]=\"item.color\"></span>\n <span class=\"ius-donut__leg-label\">{{ item.label }}</span>\n @if (legendValues()) {\n <span class=\"ius-donut__leg-val\">{{ item.val }}</span>\n }\n </span>\n }\n </div>\n }\n}\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:flex;width:100%;box-sizing:border-box;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}:host([data-legend=right]){flex-direction:row;align-items:center}:host([data-legend=bottom]){flex-direction:column;align-items:center}.ius-donut__chart{position:relative;flex:0 0 auto}.ius-donut__svg{display:block;overflow:visible}.ius-donut__seg{transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}:host([data-dim=true]) .ius-donut__seg:not([data-active=true]){opacity:.4}.ius-donut__slabel{fill:var(--ius-neutral-white);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle;dominant-baseline:middle;pointer-events:none}.ius-donut__center{position:absolute;inset:0;display:grid;place-items:center;text-align:center;pointer-events:none}.ius-donut__center-main{font-family:var(--ius-font-display);font-weight:var(--ius-fw-bold);font-size:var(--ius-fs-h4);line-height:var(--ius-lh-h4);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-donut__center-sub{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}.ius-donut__legend{display:flex;flex-direction:column;gap:var(--ius-space-xs);min-width:0;flex:1 1 auto}:host([data-legend=bottom]) .ius-donut__legend{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--ius-space-xs) var(--ius-space-md);flex:0 0 auto}.ius-donut__leg{display:flex;align-items:center;gap:var(--ius-space-xs);min-width:0;font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);cursor:default}:host([data-legend=bottom]) .ius-donut__leg{flex:0 0 auto}.ius-donut__leg[data-active=true]{color:var(--ius-text-primary)}.ius-donut__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-donut__leg-label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host([data-legend=bottom]) .ius-donut__leg-label{flex:0 0 auto}.ius-donut__leg-val{flex:0 0 auto;margin-left:auto;padding-left:var(--ius-space-sm);white-space:nowrap;color:var(--ius-text-primary);font-variant-numeric:tabular-nums}:host([data-legend=bottom]) .ius-donut__leg-val{margin-left:0}.ius-donut__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:120px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - 10px))}.ius-donut__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-donut__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-donut__tip-pct{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);text-align:right}.ius-donut__skel{fill:none;stroke:var(--ius-neutral-2)}.ius-donut__block{display:grid;place-items:center;min-height:160px;width:100%}\n"] }]
19010
+ }, template: "@if (!loading() && !hasData()) {\r\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor). -->\r\n <div class=\"ius-donut__block\">\r\n @if (emptyTemplate(); as tpl) {\r\n <ng-container *ngTemplateOutlet=\"tpl\" />\r\n } @else {\r\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\r\n }\r\n </div>\r\n} @else {\r\n <div class=\"ius-donut__chart\" [style.width.px]=\"geo().D\" [style.height.px]=\"geo().D\">\r\n <svg\r\n class=\"ius-donut__svg\"\r\n [attr.width]=\"geo().D\"\r\n [attr.height]=\"geo().D\"\r\n [attr.viewBox]=\"viewBox()\"\r\n role=\"img\"\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n >\r\n @if (loading()) {\r\n <circle\r\n class=\"ius-donut__skel\"\r\n [attr.cx]=\"geo().cx\"\r\n [attr.cy]=\"geo().cy\"\r\n [attr.r]=\"geo().rMid\"\r\n [attr.stroke-width]=\"geo().ringW\"\r\n />\r\n } @else {\r\n <g class=\"ius-donut__slices\">\r\n @if (slices().length === 1) {\r\n <circle\r\n class=\"ius-donut__seg\"\r\n [attr.cx]=\"geo().cx\"\r\n [attr.cy]=\"geo().cy\"\r\n [attr.r]=\"geo().rMid\"\r\n fill=\"none\"\r\n [attr.stroke]=\"slices()[0].color\"\r\n [attr.stroke-width]=\"geo().ringW\"\r\n />\r\n } @else {\r\n @for (sl of slices(); track sl.key) {\r\n <path\r\n class=\"ius-donut__seg\"\r\n [attr.data-active]=\"active() === sl.i ? 'true' : null\"\r\n [attr.d]=\"sl.d\"\r\n [attr.fill]=\"sl.color\"\r\n (mouseenter)=\"onSegEnter(sl.i)\"\r\n (mouseleave)=\"onSegLeave(sl.i)\"\r\n />\r\n }\r\n }\r\n @for (l of sliceLabels(); track l.key) {\r\n <text class=\"ius-donut__slabel\" [attr.x]=\"l.x\" [attr.y]=\"l.y\">{{ l.text }}</text>\r\n }\r\n </g>\r\n }\r\n </svg>\r\n\r\n @if (centerOn()) {\r\n <div class=\"ius-donut__center\">\r\n <div>\r\n @if (centerMain(); as main) {\r\n <div class=\"ius-donut__center-main\">{{ main }}</div>\r\n }\r\n @if (centerSublabel(); as sub) {\r\n <div class=\"ius-donut__center-sub\">{{ sub }}</div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <!-- tooltip -->\r\n @if (tooltip(); as tip) {\r\n <div class=\"ius-donut__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\r\n <div class=\"ius-donut__tip-row\">\r\n <span class=\"ius-donut__dot\" [style.background]=\"tip.color\"></span>\r\n {{ tip.label }}\r\n <b>{{ tip.value }}</b>\r\n </div>\r\n <div class=\"ius-donut__tip-pct\">{{ tip.pct }}</div>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showLegend() && !loading()) {\r\n <div class=\"ius-donut__legend\">\r\n @for (item of legendItems(); track item.key) {\r\n <span\r\n class=\"ius-donut__leg\"\r\n [attr.data-active]=\"active() === item.i ? 'true' : null\"\r\n (mouseenter)=\"onSegEnter(item.i)\"\r\n (mouseleave)=\"onSegLeave(item.i)\"\r\n >\r\n <span class=\"ius-donut__dot\" [style.background]=\"item.color\"></span>\r\n <span class=\"ius-donut__leg-label\">{{ item.label }}</span>\r\n @if (legendValues()) {\r\n <span class=\"ius-donut__leg-val\">{{ item.val }}</span>\r\n }\r\n </span>\r\n }\r\n </div>\r\n }\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:flex;width:100%;box-sizing:border-box;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}:host([data-legend=right]){flex-direction:row;align-items:center}:host([data-legend=bottom]){flex-direction:column;align-items:center}.ius-donut__chart{position:relative;flex:0 0 auto}.ius-donut__svg{display:block;overflow:visible}.ius-donut__seg{transition:opacity var(--ius-duration-fast) var(--ius-ease-standard)}:host([data-dim=true]) .ius-donut__seg:not([data-active=true]){opacity:.4}.ius-donut__slabel{fill:var(--ius-neutral-white);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle;dominant-baseline:middle;pointer-events:none}.ius-donut__center{position:absolute;inset:0;display:grid;place-items:center;text-align:center;pointer-events:none}.ius-donut__center-main{font-family:var(--ius-font-display);font-weight:var(--ius-fw-bold);font-size:var(--ius-fs-h4);line-height:var(--ius-lh-h4);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-donut__center-sub{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary)}.ius-donut__legend{display:flex;flex-direction:column;gap:var(--ius-space-xs);min-width:0;flex:1 1 auto}:host([data-legend=bottom]) .ius-donut__legend{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--ius-space-xs) var(--ius-space-md);flex:0 0 auto}.ius-donut__leg{display:flex;align-items:center;gap:var(--ius-space-xs);min-width:0;font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);cursor:default}:host([data-legend=bottom]) .ius-donut__leg{flex:0 0 auto}.ius-donut__leg[data-active=true]{color:var(--ius-text-primary)}.ius-donut__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-donut__leg-label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host([data-legend=bottom]) .ius-donut__leg-label{flex:0 0 auto}.ius-donut__leg-val{flex:0 0 auto;margin-left:auto;padding-left:var(--ius-space-sm);white-space:nowrap;color:var(--ius-text-primary);font-variant-numeric:tabular-nums}:host([data-legend=bottom]) .ius-donut__leg-val{margin-left:0}.ius-donut__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:120px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - 10px))}.ius-donut__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-donut__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-donut__tip-pct{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);text-align:right}.ius-donut__skel{fill:none;stroke:var(--ius-neutral-2)}.ius-donut__block{display:grid;place-items:center;min-height:160px;width:100%}\n"] }]
18932
19011
  }], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], thickness: [{ type: i0.Input, args: [{ isSignal: true, alias: "thickness", required: false }] }], startAngle: [{ type: i0.Input, args: [{ isSignal: true, alias: "startAngle", required: false }] }], padAngle: [{ type: i0.Input, args: [{ isSignal: true, alias: "padAngle", required: false }] }], showLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLegend", required: false }] }], legendPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendPosition", required: false }] }], legendValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendValues", required: false }] }], showLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabels", required: false }] }], showTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTooltip", required: false }] }], centerLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerLabel", required: false }] }], centerSublabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerSublabel", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTemplate", required: false }] }], emptyTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTitle", required: false }] }], emptyDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyDescription", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
18933
19012
 
18934
19013
  /**
@@ -19077,7 +19156,7 @@ class AnswerFeedbackComponent {
19077
19156
  this.valueChange.emit(resolved);
19078
19157
  }
19079
19158
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AnswerFeedbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19080
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AnswerFeedbackComponent, isStandalone: true, selector: "ius-answer-feedback", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, question: { classPropertyName: "question", publicName: "question", isSignal: true, isRequired: false, transformFunction: null }, thanksLabel: { classPropertyName: "thanksLabel", publicName: "thanksLabel", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "role": "group" }, properties: { "attr.aria-label": "question()", "attr.data-voted": "current() ? 'true' : 'false'" }, classAttribute: "ius-answer-feedback" }, ngImport: i0, template: "@if (current()) {\n <span class=\"ius-answer-feedback__thanks\">\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">check</span>\n {{ thanksLabel() }}\n </span>\n} @else {\n <span class=\"ius-answer-feedback__q\">{{ question() }}</span>\n}\n\n<span class=\"ius-answer-feedback__btns\">\n <ius-icon-button\n icon=\"thumb_up\"\n variant=\"tertiary\"\n shape=\"squared\"\n [size]=\"size()\"\n tooltip=\"Buena respuesta\"\n ariaLabel=\"Buena respuesta\"\n [disabled]=\"disabled()\"\n [ariaPressed]=\"current() === 'up'\"\n (clicked)=\"vote('up')\"\n />\n <ius-icon-button\n icon=\"thumb_down\"\n variant=\"tertiary\"\n shape=\"squared\"\n [size]=\"size()\"\n tooltip=\"Mala respuesta\"\n ariaLabel=\"Mala respuesta\"\n [disabled]=\"disabled()\"\n [ariaPressed]=\"current() === 'down'\"\n (clicked)=\"vote('down')\"\n />\n</span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);-webkit-user-select:none;user-select:none}.ius-answer-feedback__q{font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-answer-feedback__btns{display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}:host ::ng-deep .ius-iconbtn{--_ib-bg-pressed: var(--ius-primary-100);--_ib-fg-pressed: var(--ius-primary-700)}:host ::ng-deep .ius-iconbtn[aria-pressed=true]{--_ib-bg: var(--ius-primary-100);--_ib-fg: var(--ius-primary-700);--_ib-bg-hover: var(--ius-primary-100);--_ib-fg-hover: var(--ius-primary-700)}:host([data-voted=true]) ::ng-deep .ius-iconbtn[aria-pressed=false]{opacity:.5}.ius-answer-feedback__thanks{font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-answer-feedback__thanks .ius-icon{font-size:var(--ius-icon-sm);color:var(--ius-primary-500)}\n"], dependencies: [{ kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AnswerFeedbackComponent, isStandalone: true, selector: "ius-answer-feedback", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, question: { classPropertyName: "question", publicName: "question", isSignal: true, isRequired: false, transformFunction: null }, thanksLabel: { classPropertyName: "thanksLabel", publicName: "thanksLabel", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "role": "group" }, properties: { "attr.aria-label": "question()", "attr.data-voted": "current() ? 'true' : 'false'" }, classAttribute: "ius-answer-feedback" }, ngImport: i0, template: "@if (current()) {\r\n <span class=\"ius-answer-feedback__thanks\">\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">check</span>\r\n {{ thanksLabel() }}\r\n </span>\r\n} @else {\r\n <span class=\"ius-answer-feedback__q\">{{ question() }}</span>\r\n}\r\n\r\n<span class=\"ius-answer-feedback__btns\">\r\n <ius-icon-button\r\n icon=\"thumb_up\"\r\n variant=\"tertiary\"\r\n shape=\"squared\"\r\n [size]=\"size()\"\r\n tooltip=\"Buena respuesta\"\r\n ariaLabel=\"Buena respuesta\"\r\n [disabled]=\"disabled()\"\r\n [ariaPressed]=\"current() === 'up'\"\r\n (clicked)=\"vote('up')\"\r\n />\r\n <ius-icon-button\r\n icon=\"thumb_down\"\r\n variant=\"tertiary\"\r\n shape=\"squared\"\r\n [size]=\"size()\"\r\n tooltip=\"Mala respuesta\"\r\n ariaLabel=\"Mala respuesta\"\r\n [disabled]=\"disabled()\"\r\n [ariaPressed]=\"current() === 'down'\"\r\n (clicked)=\"vote('down')\"\r\n />\r\n</span>\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);-webkit-user-select:none;user-select:none}.ius-answer-feedback__q{font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-answer-feedback__btns{display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}:host ::ng-deep .ius-iconbtn{--_ib-bg-pressed: var(--ius-primary-100);--_ib-fg-pressed: var(--ius-primary-700)}:host ::ng-deep .ius-iconbtn[aria-pressed=true]{--_ib-bg: var(--ius-primary-100);--_ib-fg: var(--ius-primary-700);--_ib-bg-hover: var(--ius-primary-100);--_ib-fg-hover: var(--ius-primary-700)}:host([data-voted=true]) ::ng-deep .ius-iconbtn[aria-pressed=false]{opacity:.5}.ius-answer-feedback__thanks{font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-answer-feedback__thanks .ius-icon{font-size:var(--ius-icon-sm);color:var(--ius-primary-500)}\n"], dependencies: [{ kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19081
19160
  }
19082
19161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AnswerFeedbackComponent, decorators: [{
19083
19162
  type: Component,
@@ -19086,7 +19165,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
19086
19165
  role: 'group',
19087
19166
  '[attr.aria-label]': 'question()',
19088
19167
  '[attr.data-voted]': "current() ? 'true' : 'false'",
19089
- }, template: "@if (current()) {\n <span class=\"ius-answer-feedback__thanks\">\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">check</span>\n {{ thanksLabel() }}\n </span>\n} @else {\n <span class=\"ius-answer-feedback__q\">{{ question() }}</span>\n}\n\n<span class=\"ius-answer-feedback__btns\">\n <ius-icon-button\n icon=\"thumb_up\"\n variant=\"tertiary\"\n shape=\"squared\"\n [size]=\"size()\"\n tooltip=\"Buena respuesta\"\n ariaLabel=\"Buena respuesta\"\n [disabled]=\"disabled()\"\n [ariaPressed]=\"current() === 'up'\"\n (clicked)=\"vote('up')\"\n />\n <ius-icon-button\n icon=\"thumb_down\"\n variant=\"tertiary\"\n shape=\"squared\"\n [size]=\"size()\"\n tooltip=\"Mala respuesta\"\n ariaLabel=\"Mala respuesta\"\n [disabled]=\"disabled()\"\n [ariaPressed]=\"current() === 'down'\"\n (clicked)=\"vote('down')\"\n />\n</span>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);-webkit-user-select:none;user-select:none}.ius-answer-feedback__q{font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-answer-feedback__btns{display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}:host ::ng-deep .ius-iconbtn{--_ib-bg-pressed: var(--ius-primary-100);--_ib-fg-pressed: var(--ius-primary-700)}:host ::ng-deep .ius-iconbtn[aria-pressed=true]{--_ib-bg: var(--ius-primary-100);--_ib-fg: var(--ius-primary-700);--_ib-bg-hover: var(--ius-primary-100);--_ib-fg-hover: var(--ius-primary-700)}:host([data-voted=true]) ::ng-deep .ius-iconbtn[aria-pressed=false]{opacity:.5}.ius-answer-feedback__thanks{font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-answer-feedback__thanks .ius-icon{font-size:var(--ius-icon-sm);color:var(--ius-primary-500)}\n"] }]
19168
+ }, template: "@if (current()) {\r\n <span class=\"ius-answer-feedback__thanks\">\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">check</span>\r\n {{ thanksLabel() }}\r\n </span>\r\n} @else {\r\n <span class=\"ius-answer-feedback__q\">{{ question() }}</span>\r\n}\r\n\r\n<span class=\"ius-answer-feedback__btns\">\r\n <ius-icon-button\r\n icon=\"thumb_up\"\r\n variant=\"tertiary\"\r\n shape=\"squared\"\r\n [size]=\"size()\"\r\n tooltip=\"Buena respuesta\"\r\n ariaLabel=\"Buena respuesta\"\r\n [disabled]=\"disabled()\"\r\n [ariaPressed]=\"current() === 'up'\"\r\n (clicked)=\"vote('up')\"\r\n />\r\n <ius-icon-button\r\n icon=\"thumb_down\"\r\n variant=\"tertiary\"\r\n shape=\"squared\"\r\n [size]=\"size()\"\r\n tooltip=\"Mala respuesta\"\r\n ariaLabel=\"Mala respuesta\"\r\n [disabled]=\"disabled()\"\r\n [ariaPressed]=\"current() === 'down'\"\r\n (clicked)=\"vote('down')\"\r\n />\r\n</span>\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);-webkit-user-select:none;user-select:none}.ius-answer-feedback__q{font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-answer-feedback__btns{display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}:host ::ng-deep .ius-iconbtn{--_ib-bg-pressed: var(--ius-primary-100);--_ib-fg-pressed: var(--ius-primary-700)}:host ::ng-deep .ius-iconbtn[aria-pressed=true]{--_ib-bg: var(--ius-primary-100);--_ib-fg: var(--ius-primary-700);--_ib-bg-hover: var(--ius-primary-100);--_ib-fg-hover: var(--ius-primary-700)}:host([data-voted=true]) ::ng-deep .ius-iconbtn[aria-pressed=false]{opacity:.5}.ius-answer-feedback__thanks{font-family:var(--ius-font-body);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-answer-feedback__thanks .ius-icon{font-size:var(--ius-icon-sm);color:var(--ius-primary-500)}\n"] }]
19090
19169
  }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], question: [{ type: i0.Input, args: [{ isSignal: true, alias: "question", required: false }] }], thanksLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "thanksLabel", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
19091
19170
 
19092
19171
  /**
@@ -19209,7 +19288,7 @@ class InsightComponent {
19209
19288
  this.feedbackChanged.emit(value);
19210
19289
  }
19211
19290
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: InsightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19212
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: InsightComponent, isStandalone: true, selector: "ius-insight", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, overline: { classPropertyName: "overline", publicName: "overline", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, beam: { classPropertyName: "beam", publicName: "beam", isSignal: true, isRequired: false, transformFunction: null }, copyable: { classPropertyName: "copyable", publicName: "copyable", isSignal: true, isRequired: false, transformFunction: null }, copyText: { classPropertyName: "copyText", publicName: "copyText", isSignal: true, isRequired: false, transformFunction: null }, feedback: { classPropertyName: "feedback", publicName: "feedback", isSignal: true, isRequired: false, transformFunction: null }, feedbackValue: { classPropertyName: "feedbackValue", publicName: "feedbackValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { copied: "copied", feedbackChanged: "feedbackChanged" }, host: { attributes: { "role": "note" }, properties: { "attr.aria-label": "overline() || 'Generado por IA'", "attr.data-tone": "tone()", "attr.data-variant": "variant()" }, classAttribute: "ius-insight" }, queries: [{ propertyName: "actionsRef", first: true, predicate: IusInsightActionsDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "bodyRef", first: true, predicate: ["bodyRef"], descendants: true, static: true }], ngImport: i0, template: "@if (beam()) {\n <ius-border-beam [accent]=\"tone()\" [duration]=\"9\" />\n}\n\n<!-- cabecera de procedencia = la firma que lo distingue de un Alert -->\n@if (hasProv()) {\n <div class=\"ius-insight__prov\">\n @if (hasOverline()) {\n <span class=\"ius-insight__spark\" aria-hidden=\"true\">\n <span translate=\"no\" class=\"ius-icon\">{{ icon() }}</span>\n </span>\n <span class=\"ius-insight__provtext\">{{ overline() }}</span>\n }\n @if (meta() != null) {\n <span class=\"ius-insight__provmeta\">{{ meta() }}</span>\n }\n </div>\n}\n\n@if (title() != null) {\n <ius-section-title size=\"small\" [divider]=\"false\">{{ title() }}</ius-section-title>\n}\n\n<div class=\"ius-insight__body\" [hidden]=\"!hasBody()\" #bodyRef><ng-content /></div>\n\n@if (hasBar) {\n <div class=\"ius-insight__bar\">\n @if (copyable()) {\n <ius-icon-button\n [icon]=\"copiedNow() ? 'check' : 'content_copy'\"\n variant=\"tertiary\"\n size=\"small\"\n [tooltip]=\"copiedNow() ? 'Copiado' : 'Copiar'\"\n ariaLabel=\"Copiar resumen\"\n (clicked)=\"doCopy()\"\n />\n }\n @if (feedback()) {\n <ius-answer-feedback [value]=\"feedbackValue()\" (valueChange)=\"onFeedback($event)\" />\n }\n <ng-content select=\"[iusInsightActions]\" />\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{--_in-accent: var(--ius-primary-700);--_in-chip: var(--ius-primary-100);position:relative;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--ius-space-sm);padding:var(--ius-space-md);border-radius:var(--ius-radius-lg);border:1px solid var(--ius-stroke);background:var(--ius-surface-card);font-family:var(--ius-font-body);color:var(--ius-text-primary);overflow:hidden}:host([data-tone=info]){--_in-accent: var(--ius-info-700);--_in-chip: var(--ius-info-100)}:host([data-variant=tinted]){background:linear-gradient(135deg,var(--_in-chip) 0%,var(--ius-surface-card) 60%)}.ius-insight__prov{display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-insight__spark{flex:0 0 auto;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:var(--ius-radius-pill);background:var(--_in-chip);color:var(--_in-accent)}.ius-insight__spark .ius-icon{font-size:var(--ius-icon-sm)}.ius-insight__provtext{font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:.02em;color:var(--_in-accent)}.ius-insight__provmeta{margin-inline-start:auto;font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);white-space:nowrap}.ius-insight__body{font-family:var(--ius-font-body);font-weight:var(--ius-fw-regular);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-insight__body ::ng-deep b,.ius-insight__body ::ng-deep strong{color:var(--ius-text-primary);font-weight:var(--ius-fw-semibold)}.ius-insight__bar{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: AnswerFeedbackComponent, selector: "ius-answer-feedback", inputs: ["value", "defaultValue", "question", "thanksLabel", "size", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: BorderBeamComponent, selector: "ius-border-beam", inputs: ["size", "borderWidth", "duration", "delay", "reverse", "accent", "colorFrom", "colorTo", "radius"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: SectionTitleComponent, selector: "ius-section-title", inputs: ["help", "helpTitle", "helpIcon", "helpPlacement", "helpTrigger", "divider", "truncate", "size", "as"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: InsightComponent, isStandalone: true, selector: "ius-insight", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, overline: { classPropertyName: "overline", publicName: "overline", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, beam: { classPropertyName: "beam", publicName: "beam", isSignal: true, isRequired: false, transformFunction: null }, copyable: { classPropertyName: "copyable", publicName: "copyable", isSignal: true, isRequired: false, transformFunction: null }, copyText: { classPropertyName: "copyText", publicName: "copyText", isSignal: true, isRequired: false, transformFunction: null }, feedback: { classPropertyName: "feedback", publicName: "feedback", isSignal: true, isRequired: false, transformFunction: null }, feedbackValue: { classPropertyName: "feedbackValue", publicName: "feedbackValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { copied: "copied", feedbackChanged: "feedbackChanged" }, host: { attributes: { "role": "note" }, properties: { "attr.aria-label": "overline() || 'Generado por IA'", "attr.data-tone": "tone()", "attr.data-variant": "variant()" }, classAttribute: "ius-insight" }, queries: [{ propertyName: "actionsRef", first: true, predicate: IusInsightActionsDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "bodyRef", first: true, predicate: ["bodyRef"], descendants: true, static: true }], ngImport: i0, template: "@if (beam()) {\r\n <ius-border-beam [accent]=\"tone()\" [duration]=\"9\" />\r\n}\r\n\r\n<!-- cabecera de procedencia = la firma que lo distingue de un Alert -->\r\n@if (hasProv()) {\r\n <div class=\"ius-insight__prov\">\r\n @if (hasOverline()) {\r\n <span class=\"ius-insight__spark\" aria-hidden=\"true\">\r\n <span translate=\"no\" class=\"ius-icon\">{{ icon() }}</span>\r\n </span>\r\n <span class=\"ius-insight__provtext\">{{ overline() }}</span>\r\n }\r\n @if (meta() != null) {\r\n <span class=\"ius-insight__provmeta\">{{ meta() }}</span>\r\n }\r\n </div>\r\n}\r\n\r\n@if (title() != null) {\r\n <ius-section-title size=\"small\" [divider]=\"false\">{{ title() }}</ius-section-title>\r\n}\r\n\r\n<div class=\"ius-insight__body\" [hidden]=\"!hasBody()\" #bodyRef><ng-content /></div>\r\n\r\n@if (hasBar) {\r\n <div class=\"ius-insight__bar\">\r\n @if (copyable()) {\r\n <ius-icon-button\r\n [icon]=\"copiedNow() ? 'check' : 'content_copy'\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [tooltip]=\"copiedNow() ? 'Copiado' : 'Copiar'\"\r\n ariaLabel=\"Copiar resumen\"\r\n (clicked)=\"doCopy()\"\r\n />\r\n }\r\n @if (feedback()) {\r\n <ius-answer-feedback [value]=\"feedbackValue()\" (valueChange)=\"onFeedback($event)\" />\r\n }\r\n <ng-content select=\"[iusInsightActions]\" />\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{--_in-accent: var(--ius-primary-700);--_in-chip: var(--ius-primary-100);position:relative;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--ius-space-sm);padding:var(--ius-space-md);border-radius:var(--ius-radius-lg);border:1px solid var(--ius-stroke);background:var(--ius-surface-card);font-family:var(--ius-font-body);color:var(--ius-text-primary);overflow:hidden}:host([data-tone=info]){--_in-accent: var(--ius-info-700);--_in-chip: var(--ius-info-100)}:host([data-variant=tinted]){background:linear-gradient(135deg,var(--_in-chip) 0%,var(--ius-surface-card) 60%)}.ius-insight__prov{display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-insight__spark{flex:0 0 auto;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:var(--ius-radius-pill);background:var(--_in-chip);color:var(--_in-accent)}.ius-insight__spark .ius-icon{font-size:var(--ius-icon-sm)}.ius-insight__provtext{font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:.02em;color:var(--_in-accent)}.ius-insight__provmeta{margin-inline-start:auto;font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);white-space:nowrap}.ius-insight__body{font-family:var(--ius-font-body);font-weight:var(--ius-fw-regular);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-insight__body ::ng-deep b,.ius-insight__body ::ng-deep strong{color:var(--ius-text-primary);font-weight:var(--ius-fw-semibold)}.ius-insight__bar{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: AnswerFeedbackComponent, selector: "ius-answer-feedback", inputs: ["value", "defaultValue", "question", "thanksLabel", "size", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: BorderBeamComponent, selector: "ius-border-beam", inputs: ["size", "borderWidth", "duration", "delay", "reverse", "accent", "colorFrom", "colorTo", "radius"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "ariaPressed", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: SectionTitleComponent, selector: "ius-section-title", inputs: ["help", "helpTitle", "helpIcon", "helpPlacement", "helpTrigger", "divider", "truncate", "size", "as"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19213
19292
  }
19214
19293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: InsightComponent, decorators: [{
19215
19294
  type: Component,
@@ -19219,7 +19298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
19219
19298
  '[attr.aria-label]': "overline() || 'Generado por IA'",
19220
19299
  '[attr.data-tone]': 'tone()',
19221
19300
  '[attr.data-variant]': 'variant()',
19222
- }, template: "@if (beam()) {\n <ius-border-beam [accent]=\"tone()\" [duration]=\"9\" />\n}\n\n<!-- cabecera de procedencia = la firma que lo distingue de un Alert -->\n@if (hasProv()) {\n <div class=\"ius-insight__prov\">\n @if (hasOverline()) {\n <span class=\"ius-insight__spark\" aria-hidden=\"true\">\n <span translate=\"no\" class=\"ius-icon\">{{ icon() }}</span>\n </span>\n <span class=\"ius-insight__provtext\">{{ overline() }}</span>\n }\n @if (meta() != null) {\n <span class=\"ius-insight__provmeta\">{{ meta() }}</span>\n }\n </div>\n}\n\n@if (title() != null) {\n <ius-section-title size=\"small\" [divider]=\"false\">{{ title() }}</ius-section-title>\n}\n\n<div class=\"ius-insight__body\" [hidden]=\"!hasBody()\" #bodyRef><ng-content /></div>\n\n@if (hasBar) {\n <div class=\"ius-insight__bar\">\n @if (copyable()) {\n <ius-icon-button\n [icon]=\"copiedNow() ? 'check' : 'content_copy'\"\n variant=\"tertiary\"\n size=\"small\"\n [tooltip]=\"copiedNow() ? 'Copiado' : 'Copiar'\"\n ariaLabel=\"Copiar resumen\"\n (clicked)=\"doCopy()\"\n />\n }\n @if (feedback()) {\n <ius-answer-feedback [value]=\"feedbackValue()\" (valueChange)=\"onFeedback($event)\" />\n }\n <ng-content select=\"[iusInsightActions]\" />\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{--_in-accent: var(--ius-primary-700);--_in-chip: var(--ius-primary-100);position:relative;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--ius-space-sm);padding:var(--ius-space-md);border-radius:var(--ius-radius-lg);border:1px solid var(--ius-stroke);background:var(--ius-surface-card);font-family:var(--ius-font-body);color:var(--ius-text-primary);overflow:hidden}:host([data-tone=info]){--_in-accent: var(--ius-info-700);--_in-chip: var(--ius-info-100)}:host([data-variant=tinted]){background:linear-gradient(135deg,var(--_in-chip) 0%,var(--ius-surface-card) 60%)}.ius-insight__prov{display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-insight__spark{flex:0 0 auto;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:var(--ius-radius-pill);background:var(--_in-chip);color:var(--_in-accent)}.ius-insight__spark .ius-icon{font-size:var(--ius-icon-sm)}.ius-insight__provtext{font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:.02em;color:var(--_in-accent)}.ius-insight__provmeta{margin-inline-start:auto;font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);white-space:nowrap}.ius-insight__body{font-family:var(--ius-font-body);font-weight:var(--ius-fw-regular);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-insight__body ::ng-deep b,.ius-insight__body ::ng-deep strong{color:var(--ius-text-primary);font-weight:var(--ius-fw-semibold)}.ius-insight__bar{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}\n"] }]
19301
+ }, template: "@if (beam()) {\r\n <ius-border-beam [accent]=\"tone()\" [duration]=\"9\" />\r\n}\r\n\r\n<!-- cabecera de procedencia = la firma que lo distingue de un Alert -->\r\n@if (hasProv()) {\r\n <div class=\"ius-insight__prov\">\r\n @if (hasOverline()) {\r\n <span class=\"ius-insight__spark\" aria-hidden=\"true\">\r\n <span translate=\"no\" class=\"ius-icon\">{{ icon() }}</span>\r\n </span>\r\n <span class=\"ius-insight__provtext\">{{ overline() }}</span>\r\n }\r\n @if (meta() != null) {\r\n <span class=\"ius-insight__provmeta\">{{ meta() }}</span>\r\n }\r\n </div>\r\n}\r\n\r\n@if (title() != null) {\r\n <ius-section-title size=\"small\" [divider]=\"false\">{{ title() }}</ius-section-title>\r\n}\r\n\r\n<div class=\"ius-insight__body\" [hidden]=\"!hasBody()\" #bodyRef><ng-content /></div>\r\n\r\n@if (hasBar) {\r\n <div class=\"ius-insight__bar\">\r\n @if (copyable()) {\r\n <ius-icon-button\r\n [icon]=\"copiedNow() ? 'check' : 'content_copy'\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [tooltip]=\"copiedNow() ? 'Copiado' : 'Copiar'\"\r\n ariaLabel=\"Copiar resumen\"\r\n (clicked)=\"doCopy()\"\r\n />\r\n }\r\n @if (feedback()) {\r\n <ius-answer-feedback [value]=\"feedbackValue()\" (valueChange)=\"onFeedback($event)\" />\r\n }\r\n <ng-content select=\"[iusInsightActions]\" />\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{--_in-accent: var(--ius-primary-700);--_in-chip: var(--ius-primary-100);position:relative;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--ius-space-sm);padding:var(--ius-space-md);border-radius:var(--ius-radius-lg);border:1px solid var(--ius-stroke);background:var(--ius-surface-card);font-family:var(--ius-font-body);color:var(--ius-text-primary);overflow:hidden}:host([data-tone=info]){--_in-accent: var(--ius-info-700);--_in-chip: var(--ius-info-100)}:host([data-variant=tinted]){background:linear-gradient(135deg,var(--_in-chip) 0%,var(--ius-surface-card) 60%)}.ius-insight__prov{display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-insight__spark{flex:0 0 auto;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:var(--ius-radius-pill);background:var(--_in-chip);color:var(--_in-accent)}.ius-insight__spark .ius-icon{font-size:var(--ius-icon-sm)}.ius-insight__provtext{font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:.02em;color:var(--_in-accent)}.ius-insight__provmeta{margin-inline-start:auto;font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-tertiary);white-space:nowrap}.ius-insight__body{font-family:var(--ius-font-body);font-weight:var(--ius-fw-regular);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-insight__body ::ng-deep b,.ius-insight__body ::ng-deep strong{color:var(--ius-text-primary);font-weight:var(--ius-fw-semibold)}.ius-insight__bar{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}\n"] }]
19223
19302
  }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], overline: [{ type: i0.Input, args: [{ isSignal: true, alias: "overline", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], beam: [{ type: i0.Input, args: [{ isSignal: true, alias: "beam", required: false }] }], copyable: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyable", required: false }] }], copyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyText", required: false }] }], feedback: [{ type: i0.Input, args: [{ isSignal: true, alias: "feedback", required: false }] }], feedbackValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "feedbackValue", required: false }] }], copied: [{ type: i0.Output, args: ["copied"] }], feedbackChanged: [{ type: i0.Output, args: ["feedbackChanged"] }], actionsRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusInsightActionsDirective), { isSignal: true }] }], bodyRef: [{
19224
19303
  type: ViewChild,
19225
19304
  args: ['bodyRef', { static: true }]
@@ -19597,7 +19676,7 @@ class CalendarComponent {
19597
19676
  useExisting: forwardRef(() => CalendarComponent),
19598
19677
  multi: true,
19599
19678
  },
19600
- ], queries: [{ propertyName: "footerRef", first: true, predicate: IusCalendarFooterDirective, descendants: true, isSignal: true }, { propertyName: "asideRef", first: true, predicate: IusCalendarAsideDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"ius-cal__body\">\n <div class=\"ius-cal__col\">\n <!-- encabezado: nav + t\u00EDtulos que suben de nivel (d\u00EDa \u2192 mes \u2192 d\u00E9cada) -->\n <div class=\"ius-cal__head\">\n <button\n type=\"button\"\n class=\"ius-cal__nav\"\n aria-label=\"Anterior\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"step(-1)\"\n >\n <span translate=\"no\" class=\"ius-icon\">chevron_left</span>\n </button>\n <div class=\"ius-cal__titles\">\n @for (t of headerTitles; track $index) {\n <button\n type=\"button\"\n class=\"ius-cal__title\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onTitleClick(t)\"\n >\n @if (t.text != null) {\n {{ t.text }}\n } @else {\n <span>{{ t.monthAbbr }}</span>\n <span>{{ t.year }}</span>\n }\n </button>\n }\n </div>\n <button\n type=\"button\"\n class=\"ius-cal__nav\"\n aria-label=\"Siguiente\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"step(1)\"\n >\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\n </button>\n </div>\n\n @if (level() === 'day') {\n <div class=\"ius-cal__months\" (mouseleave)=\"onMonthsLeave()\">\n @for (m of monthsView; track m.key) {\n <div class=\"ius-cal__month\">\n <div class=\"ius-cal__grid\">\n @for (w of weekdays; track w) {\n <div class=\"ius-cal__wd\">{{ w }}</div>\n }\n @for (d of m.days; track $index) {\n <button\n type=\"button\"\n class=\"ius-cal__day\"\n [attr.data-outside]=\"d.outside ? 'true' : null\"\n [attr.data-disabled]=\"d.disabled ? 'true' : null\"\n [attr.data-today]=\"d.today ? 'true' : null\"\n [attr.data-selected]=\"d.selected ? 'true' : null\"\n [attr.data-inrange]=\"d.inRange ? 'true' : null\"\n [attr.data-range-start]=\"d.rangeStart ? 'true' : null\"\n [attr.data-range-end]=\"d.rangeEnd ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (mouseenter)=\"onDayEnter(d)\"\n (click)=\"onDayClick(d)\"\n >\n <span class=\"ius-cal__day-inner\">{{ d.label }}</span>\n </button>\n }\n </div>\n </div>\n }\n </div>\n } @else if (level() === 'month') {\n <div class=\"ius-cal__cells\">\n @for (c of monthCells; track c.value) {\n <button\n type=\"button\"\n class=\"ius-cal__cell\"\n [attr.data-selected]=\"c.selected ? 'true' : null\"\n [attr.data-today]=\"c.today ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onMonthCell(c)\"\n >{{ c.label }}</button>\n }\n </div>\n } @else {\n <div class=\"ius-cal__cells\">\n @for (c of yearCells; track c.value) {\n <button\n type=\"button\"\n class=\"ius-cal__cell\"\n [attr.data-outside]=\"c.outside ? 'true' : null\"\n [attr.data-selected]=\"c.selected ? 'true' : null\"\n [attr.data-today]=\"c.today ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onYearCell(c)\"\n >{{ c.label }}</button>\n }\n </div>\n }\n </div>\n\n @if (hasAside) {\n <div class=\"ius-cal__aside\"><ng-content select=\"[iusCalendarAside]\" /></div>\n }\n</div>\n\n@if (hasFooterSlot) {\n <ng-content select=\"[iusCalendarFooter]\" />\n} @else if (showToday) {\n <div class=\"ius-cal__foot\">\n <button\n type=\"button\"\n class=\"ius-cal__today-btn\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onTodayBtn()\"\n >{{ todayLabel || 'Fecha actual' }}</button>\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;flex-direction:column;background:var(--ius-neutral-white);font-family:var(--ius-font-body);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-cal__body{display:flex;align-items:stretch}.ius-cal__col{display:flex;flex-direction:column}.ius-cal__aside{border-left:1px solid var(--ius-stroke);display:flex;min-height:0}.ius-cal__months{display:flex;align-items:stretch}.ius-cal__month{padding:var(--ius-space-xs) var(--ius-space-xs)}.ius-cal__month+.ius-cal__month{border-left:1px solid var(--ius-stroke)}.ius-cal__head{display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-sm) var(--ius-space-xs) var(--ius-space-xs)}.ius-cal__titles{flex:1 1 auto;display:flex;align-items:center;justify-content:space-around;gap:var(--ius-space-xxs)}.ius-cal__title{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-xs);border-radius:var(--ius-radius-sm);display:inline-flex;gap:var(--ius-space-xs)}.ius-cal__title[data-static=true]{cursor:default}.ius-cal__title:not([data-static=true]):hover{background:var(--ius-info-100)}.ius-cal__nav{appearance:none;border:0;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;border-radius:var(--ius-radius-pill);background:var(--ius-neutral-2);color:var(--ius-text-secondary);flex:0 0 auto;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__nav:hover{background:var(--ius-info-100);color:var(--ius-primary-500)}.ius-cal__nav .ius-icon{font-size:var(--ius-icon-md)}.ius-cal__grid{display:grid;grid-template-columns:repeat(7,32px)}.ius-cal__wd{height:28px;display:grid;place-items:center;font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary);font-family:var(--ius-font-display)}.ius-cal__day{appearance:none;border:0;background:transparent;cursor:pointer;height:32px;padding:var(--ius-space-xxs) 0;display:grid;place-items:center;font-size:var(--ius-fs-sm);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-cal__day-inner{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--ius-radius-pill);transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__day:hover:not([data-disabled=true]) .ius-cal__day-inner{background:var(--ius-info-100)}.ius-cal__day[data-outside=true]{color:var(--ius-text-disabled)}.ius-cal__day[data-disabled=true]{color:var(--ius-text-disabled);cursor:not-allowed}.ius-cal__day[data-today=true] .ius-cal__day-inner{background:var(--ius-success-100);color:var(--ius-success-700)}.ius-cal__day[data-inrange=true]{background:var(--ius-info-100)}.ius-cal__day[data-range-start=true]{background:linear-gradient(to right,transparent 50%,var(--ius-info-100) 50%)}.ius-cal__day[data-range-end=true]{background:linear-gradient(to left,transparent 50%,var(--ius-info-100) 50%)}.ius-cal__day[data-range-start=true][data-range-end=true]{background:transparent}.ius-cal__day[data-selected=true] .ius-cal__day-inner{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-cal__cells{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ius-space-xxs);padding:var(--ius-space-xxs) 0;min-width:224px}.ius-cal__cell{appearance:none;border:0;background:transparent;cursor:pointer;padding:var(--ius-space-sm) var(--ius-space-xs);border-radius:var(--ius-radius-md);font-size:var(--ius-fs-sm);color:var(--ius-text-primary);font-family:var(--ius-font-body);text-align:center;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__cell:hover{background:var(--ius-info-100)}.ius-cal__cell[data-outside=true]{color:var(--ius-text-disabled)}.ius-cal__cell[data-selected=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-cal__cell[data-today=true]:not([data-selected=true]){background:var(--ius-success-100);color:var(--ius-success-700)}.ius-cal__foot{border-top:1px solid var(--ius-stroke);padding:var(--ius-space-xs);text-align:center}.ius-cal__today-btn{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-sm);border-radius:var(--ius-radius-sm)}.ius-cal__today-btn:hover{color:var(--ius-primary-500)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19679
+ ], queries: [{ propertyName: "footerRef", first: true, predicate: IusCalendarFooterDirective, descendants: true, isSignal: true }, { propertyName: "asideRef", first: true, predicate: IusCalendarAsideDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"ius-cal__body\">\r\n <div class=\"ius-cal__col\">\r\n <!-- encabezado: nav + t\u00EDtulos que suben de nivel (d\u00EDa \u2192 mes \u2192 d\u00E9cada) -->\r\n <div class=\"ius-cal__head\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__nav\"\r\n aria-label=\"Anterior\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"step(-1)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">chevron_left</span>\r\n </button>\r\n <div class=\"ius-cal__titles\">\r\n @for (t of headerTitles; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__title\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onTitleClick(t)\"\r\n >\r\n @if (t.text != null) {\r\n {{ t.text }}\r\n } @else {\r\n <span>{{ t.monthAbbr }}</span>\r\n <span>{{ t.year }}</span>\r\n }\r\n </button>\r\n }\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__nav\"\r\n aria-label=\"Siguiente\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"step(1)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\r\n </button>\r\n </div>\r\n\r\n @if (level() === 'day') {\r\n <div class=\"ius-cal__months\" (mouseleave)=\"onMonthsLeave()\">\r\n @for (m of monthsView; track m.key) {\r\n <div class=\"ius-cal__month\">\r\n <div class=\"ius-cal__grid\">\r\n @for (w of weekdays; track w) {\r\n <div class=\"ius-cal__wd\">{{ w }}</div>\r\n }\r\n @for (d of m.days; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__day\"\r\n [attr.data-outside]=\"d.outside ? 'true' : null\"\r\n [attr.data-disabled]=\"d.disabled ? 'true' : null\"\r\n [attr.data-today]=\"d.today ? 'true' : null\"\r\n [attr.data-selected]=\"d.selected ? 'true' : null\"\r\n [attr.data-inrange]=\"d.inRange ? 'true' : null\"\r\n [attr.data-range-start]=\"d.rangeStart ? 'true' : null\"\r\n [attr.data-range-end]=\"d.rangeEnd ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (mouseenter)=\"onDayEnter(d)\"\r\n (click)=\"onDayClick(d)\"\r\n >\r\n <span class=\"ius-cal__day-inner\">{{ d.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n } @else if (level() === 'month') {\r\n <div class=\"ius-cal__cells\">\r\n @for (c of monthCells; track c.value) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__cell\"\r\n [attr.data-selected]=\"c.selected ? 'true' : null\"\r\n [attr.data-today]=\"c.today ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onMonthCell(c)\"\r\n >{{ c.label }}</button>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"ius-cal__cells\">\r\n @for (c of yearCells; track c.value) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__cell\"\r\n [attr.data-outside]=\"c.outside ? 'true' : null\"\r\n [attr.data-selected]=\"c.selected ? 'true' : null\"\r\n [attr.data-today]=\"c.today ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onYearCell(c)\"\r\n >{{ c.label }}</button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (hasAside) {\r\n <div class=\"ius-cal__aside\"><ng-content select=\"[iusCalendarAside]\" /></div>\r\n }\r\n</div>\r\n\r\n@if (hasFooterSlot) {\r\n <ng-content select=\"[iusCalendarFooter]\" />\r\n} @else if (showToday) {\r\n <div class=\"ius-cal__foot\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__today-btn\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onTodayBtn()\"\r\n >{{ todayLabel || 'Fecha actual' }}</button>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;flex-direction:column;background:var(--ius-neutral-white);font-family:var(--ius-font-body);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-cal__body{display:flex;align-items:stretch}.ius-cal__col{display:flex;flex-direction:column}.ius-cal__aside{border-left:1px solid var(--ius-stroke);display:flex;min-height:0}.ius-cal__months{display:flex;align-items:stretch}.ius-cal__month{padding:var(--ius-space-xs) var(--ius-space-xs)}.ius-cal__month+.ius-cal__month{border-left:1px solid var(--ius-stroke)}.ius-cal__head{display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-sm) var(--ius-space-xs) var(--ius-space-xs)}.ius-cal__titles{flex:1 1 auto;display:flex;align-items:center;justify-content:space-around;gap:var(--ius-space-xxs)}.ius-cal__title{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-xs);border-radius:var(--ius-radius-sm);display:inline-flex;gap:var(--ius-space-xs)}.ius-cal__title[data-static=true]{cursor:default}.ius-cal__title:not([data-static=true]):hover{background:var(--ius-info-100)}.ius-cal__nav{appearance:none;border:0;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;border-radius:var(--ius-radius-pill);background:var(--ius-neutral-2);color:var(--ius-text-secondary);flex:0 0 auto;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__nav:hover{background:var(--ius-info-100);color:var(--ius-primary-500)}.ius-cal__nav .ius-icon{font-size:var(--ius-icon-md)}.ius-cal__grid{display:grid;grid-template-columns:repeat(7,32px)}.ius-cal__wd{height:28px;display:grid;place-items:center;font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary);font-family:var(--ius-font-display)}.ius-cal__day{appearance:none;border:0;background:transparent;cursor:pointer;height:32px;padding:var(--ius-space-xxs) 0;display:grid;place-items:center;font-size:var(--ius-fs-sm);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-cal__day-inner{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--ius-radius-pill);transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__day:hover:not([data-disabled=true]) .ius-cal__day-inner{background:var(--ius-info-100)}.ius-cal__day[data-outside=true]{color:var(--ius-text-disabled)}.ius-cal__day[data-disabled=true]{color:var(--ius-text-disabled);cursor:not-allowed}.ius-cal__day[data-today=true] .ius-cal__day-inner{background:var(--ius-success-100);color:var(--ius-success-700)}.ius-cal__day[data-inrange=true]{background:var(--ius-info-100)}.ius-cal__day[data-range-start=true]{background:linear-gradient(to right,transparent 50%,var(--ius-info-100) 50%)}.ius-cal__day[data-range-end=true]{background:linear-gradient(to left,transparent 50%,var(--ius-info-100) 50%)}.ius-cal__day[data-range-start=true][data-range-end=true]{background:transparent}.ius-cal__day[data-selected=true] .ius-cal__day-inner{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-cal__cells{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ius-space-xxs);padding:var(--ius-space-xxs) 0;min-width:224px}.ius-cal__cell{appearance:none;border:0;background:transparent;cursor:pointer;padding:var(--ius-space-sm) var(--ius-space-xs);border-radius:var(--ius-radius-md);font-size:var(--ius-fs-sm);color:var(--ius-text-primary);font-family:var(--ius-font-body);text-align:center;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__cell:hover{background:var(--ius-info-100)}.ius-cal__cell[data-outside=true]{color:var(--ius-text-disabled)}.ius-cal__cell[data-selected=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-cal__cell[data-today=true]:not([data-selected=true]){background:var(--ius-success-100);color:var(--ius-success-700)}.ius-cal__foot{border-top:1px solid var(--ius-stroke);padding:var(--ius-space-xs);text-align:center}.ius-cal__today-btn{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-sm);border-radius:var(--ius-radius-sm)}.ius-cal__today-btn:hover{color:var(--ius-primary-500)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19601
19680
  }
19602
19681
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CalendarComponent, decorators: [{
19603
19682
  type: Component,
@@ -19607,7 +19686,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
19607
19686
  useExisting: forwardRef(() => CalendarComponent),
19608
19687
  multi: true,
19609
19688
  },
19610
- ], host: { class: 'ius-cal' }, template: "<div class=\"ius-cal__body\">\n <div class=\"ius-cal__col\">\n <!-- encabezado: nav + t\u00EDtulos que suben de nivel (d\u00EDa \u2192 mes \u2192 d\u00E9cada) -->\n <div class=\"ius-cal__head\">\n <button\n type=\"button\"\n class=\"ius-cal__nav\"\n aria-label=\"Anterior\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"step(-1)\"\n >\n <span translate=\"no\" class=\"ius-icon\">chevron_left</span>\n </button>\n <div class=\"ius-cal__titles\">\n @for (t of headerTitles; track $index) {\n <button\n type=\"button\"\n class=\"ius-cal__title\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onTitleClick(t)\"\n >\n @if (t.text != null) {\n {{ t.text }}\n } @else {\n <span>{{ t.monthAbbr }}</span>\n <span>{{ t.year }}</span>\n }\n </button>\n }\n </div>\n <button\n type=\"button\"\n class=\"ius-cal__nav\"\n aria-label=\"Siguiente\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"step(1)\"\n >\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\n </button>\n </div>\n\n @if (level() === 'day') {\n <div class=\"ius-cal__months\" (mouseleave)=\"onMonthsLeave()\">\n @for (m of monthsView; track m.key) {\n <div class=\"ius-cal__month\">\n <div class=\"ius-cal__grid\">\n @for (w of weekdays; track w) {\n <div class=\"ius-cal__wd\">{{ w }}</div>\n }\n @for (d of m.days; track $index) {\n <button\n type=\"button\"\n class=\"ius-cal__day\"\n [attr.data-outside]=\"d.outside ? 'true' : null\"\n [attr.data-disabled]=\"d.disabled ? 'true' : null\"\n [attr.data-today]=\"d.today ? 'true' : null\"\n [attr.data-selected]=\"d.selected ? 'true' : null\"\n [attr.data-inrange]=\"d.inRange ? 'true' : null\"\n [attr.data-range-start]=\"d.rangeStart ? 'true' : null\"\n [attr.data-range-end]=\"d.rangeEnd ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (mouseenter)=\"onDayEnter(d)\"\n (click)=\"onDayClick(d)\"\n >\n <span class=\"ius-cal__day-inner\">{{ d.label }}</span>\n </button>\n }\n </div>\n </div>\n }\n </div>\n } @else if (level() === 'month') {\n <div class=\"ius-cal__cells\">\n @for (c of monthCells; track c.value) {\n <button\n type=\"button\"\n class=\"ius-cal__cell\"\n [attr.data-selected]=\"c.selected ? 'true' : null\"\n [attr.data-today]=\"c.today ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onMonthCell(c)\"\n >{{ c.label }}</button>\n }\n </div>\n } @else {\n <div class=\"ius-cal__cells\">\n @for (c of yearCells; track c.value) {\n <button\n type=\"button\"\n class=\"ius-cal__cell\"\n [attr.data-outside]=\"c.outside ? 'true' : null\"\n [attr.data-selected]=\"c.selected ? 'true' : null\"\n [attr.data-today]=\"c.today ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onYearCell(c)\"\n >{{ c.label }}</button>\n }\n </div>\n }\n </div>\n\n @if (hasAside) {\n <div class=\"ius-cal__aside\"><ng-content select=\"[iusCalendarAside]\" /></div>\n }\n</div>\n\n@if (hasFooterSlot) {\n <ng-content select=\"[iusCalendarFooter]\" />\n} @else if (showToday) {\n <div class=\"ius-cal__foot\">\n <button\n type=\"button\"\n class=\"ius-cal__today-btn\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onTodayBtn()\"\n >{{ todayLabel || 'Fecha actual' }}</button>\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;flex-direction:column;background:var(--ius-neutral-white);font-family:var(--ius-font-body);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-cal__body{display:flex;align-items:stretch}.ius-cal__col{display:flex;flex-direction:column}.ius-cal__aside{border-left:1px solid var(--ius-stroke);display:flex;min-height:0}.ius-cal__months{display:flex;align-items:stretch}.ius-cal__month{padding:var(--ius-space-xs) var(--ius-space-xs)}.ius-cal__month+.ius-cal__month{border-left:1px solid var(--ius-stroke)}.ius-cal__head{display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-sm) var(--ius-space-xs) var(--ius-space-xs)}.ius-cal__titles{flex:1 1 auto;display:flex;align-items:center;justify-content:space-around;gap:var(--ius-space-xxs)}.ius-cal__title{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-xs);border-radius:var(--ius-radius-sm);display:inline-flex;gap:var(--ius-space-xs)}.ius-cal__title[data-static=true]{cursor:default}.ius-cal__title:not([data-static=true]):hover{background:var(--ius-info-100)}.ius-cal__nav{appearance:none;border:0;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;border-radius:var(--ius-radius-pill);background:var(--ius-neutral-2);color:var(--ius-text-secondary);flex:0 0 auto;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__nav:hover{background:var(--ius-info-100);color:var(--ius-primary-500)}.ius-cal__nav .ius-icon{font-size:var(--ius-icon-md)}.ius-cal__grid{display:grid;grid-template-columns:repeat(7,32px)}.ius-cal__wd{height:28px;display:grid;place-items:center;font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary);font-family:var(--ius-font-display)}.ius-cal__day{appearance:none;border:0;background:transparent;cursor:pointer;height:32px;padding:var(--ius-space-xxs) 0;display:grid;place-items:center;font-size:var(--ius-fs-sm);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-cal__day-inner{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--ius-radius-pill);transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__day:hover:not([data-disabled=true]) .ius-cal__day-inner{background:var(--ius-info-100)}.ius-cal__day[data-outside=true]{color:var(--ius-text-disabled)}.ius-cal__day[data-disabled=true]{color:var(--ius-text-disabled);cursor:not-allowed}.ius-cal__day[data-today=true] .ius-cal__day-inner{background:var(--ius-success-100);color:var(--ius-success-700)}.ius-cal__day[data-inrange=true]{background:var(--ius-info-100)}.ius-cal__day[data-range-start=true]{background:linear-gradient(to right,transparent 50%,var(--ius-info-100) 50%)}.ius-cal__day[data-range-end=true]{background:linear-gradient(to left,transparent 50%,var(--ius-info-100) 50%)}.ius-cal__day[data-range-start=true][data-range-end=true]{background:transparent}.ius-cal__day[data-selected=true] .ius-cal__day-inner{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-cal__cells{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ius-space-xxs);padding:var(--ius-space-xxs) 0;min-width:224px}.ius-cal__cell{appearance:none;border:0;background:transparent;cursor:pointer;padding:var(--ius-space-sm) var(--ius-space-xs);border-radius:var(--ius-radius-md);font-size:var(--ius-fs-sm);color:var(--ius-text-primary);font-family:var(--ius-font-body);text-align:center;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__cell:hover{background:var(--ius-info-100)}.ius-cal__cell[data-outside=true]{color:var(--ius-text-disabled)}.ius-cal__cell[data-selected=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-cal__cell[data-today=true]:not([data-selected=true]){background:var(--ius-success-100);color:var(--ius-success-700)}.ius-cal__foot{border-top:1px solid var(--ius-stroke);padding:var(--ius-space-xs);text-align:center}.ius-cal__today-btn{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-sm);border-radius:var(--ius-radius-sm)}.ius-cal__today-btn:hover{color:var(--ius-primary-500)}\n"] }]
19689
+ ], host: { class: 'ius-cal' }, template: "<div class=\"ius-cal__body\">\r\n <div class=\"ius-cal__col\">\r\n <!-- encabezado: nav + t\u00EDtulos que suben de nivel (d\u00EDa \u2192 mes \u2192 d\u00E9cada) -->\r\n <div class=\"ius-cal__head\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__nav\"\r\n aria-label=\"Anterior\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"step(-1)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">chevron_left</span>\r\n </button>\r\n <div class=\"ius-cal__titles\">\r\n @for (t of headerTitles; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__title\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onTitleClick(t)\"\r\n >\r\n @if (t.text != null) {\r\n {{ t.text }}\r\n } @else {\r\n <span>{{ t.monthAbbr }}</span>\r\n <span>{{ t.year }}</span>\r\n }\r\n </button>\r\n }\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__nav\"\r\n aria-label=\"Siguiente\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"step(1)\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">chevron_right</span>\r\n </button>\r\n </div>\r\n\r\n @if (level() === 'day') {\r\n <div class=\"ius-cal__months\" (mouseleave)=\"onMonthsLeave()\">\r\n @for (m of monthsView; track m.key) {\r\n <div class=\"ius-cal__month\">\r\n <div class=\"ius-cal__grid\">\r\n @for (w of weekdays; track w) {\r\n <div class=\"ius-cal__wd\">{{ w }}</div>\r\n }\r\n @for (d of m.days; track $index) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__day\"\r\n [attr.data-outside]=\"d.outside ? 'true' : null\"\r\n [attr.data-disabled]=\"d.disabled ? 'true' : null\"\r\n [attr.data-today]=\"d.today ? 'true' : null\"\r\n [attr.data-selected]=\"d.selected ? 'true' : null\"\r\n [attr.data-inrange]=\"d.inRange ? 'true' : null\"\r\n [attr.data-range-start]=\"d.rangeStart ? 'true' : null\"\r\n [attr.data-range-end]=\"d.rangeEnd ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (mouseenter)=\"onDayEnter(d)\"\r\n (click)=\"onDayClick(d)\"\r\n >\r\n <span class=\"ius-cal__day-inner\">{{ d.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n } @else if (level() === 'month') {\r\n <div class=\"ius-cal__cells\">\r\n @for (c of monthCells; track c.value) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__cell\"\r\n [attr.data-selected]=\"c.selected ? 'true' : null\"\r\n [attr.data-today]=\"c.today ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onMonthCell(c)\"\r\n >{{ c.label }}</button>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"ius-cal__cells\">\r\n @for (c of yearCells; track c.value) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__cell\"\r\n [attr.data-outside]=\"c.outside ? 'true' : null\"\r\n [attr.data-selected]=\"c.selected ? 'true' : null\"\r\n [attr.data-today]=\"c.today ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onYearCell(c)\"\r\n >{{ c.label }}</button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (hasAside) {\r\n <div class=\"ius-cal__aside\"><ng-content select=\"[iusCalendarAside]\" /></div>\r\n }\r\n</div>\r\n\r\n@if (hasFooterSlot) {\r\n <ng-content select=\"[iusCalendarFooter]\" />\r\n} @else if (showToday) {\r\n <div class=\"ius-cal__foot\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-cal__today-btn\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onTodayBtn()\"\r\n >{{ todayLabel || 'Fecha actual' }}</button>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;flex-direction:column;background:var(--ius-neutral-white);font-family:var(--ius-font-body);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-cal__body{display:flex;align-items:stretch}.ius-cal__col{display:flex;flex-direction:column}.ius-cal__aside{border-left:1px solid var(--ius-stroke);display:flex;min-height:0}.ius-cal__months{display:flex;align-items:stretch}.ius-cal__month{padding:var(--ius-space-xs) var(--ius-space-xs)}.ius-cal__month+.ius-cal__month{border-left:1px solid var(--ius-stroke)}.ius-cal__head{display:flex;align-items:center;gap:var(--ius-space-xs);padding:var(--ius-space-sm) var(--ius-space-xs) var(--ius-space-xs)}.ius-cal__titles{flex:1 1 auto;display:flex;align-items:center;justify-content:space-around;gap:var(--ius-space-xxs)}.ius-cal__title{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-xs);border-radius:var(--ius-radius-sm);display:inline-flex;gap:var(--ius-space-xs)}.ius-cal__title[data-static=true]{cursor:default}.ius-cal__title:not([data-static=true]):hover{background:var(--ius-info-100)}.ius-cal__nav{appearance:none;border:0;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;border-radius:var(--ius-radius-pill);background:var(--ius-neutral-2);color:var(--ius-text-secondary);flex:0 0 auto;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__nav:hover{background:var(--ius-info-100);color:var(--ius-primary-500)}.ius-cal__nav .ius-icon{font-size:var(--ius-icon-md)}.ius-cal__grid{display:grid;grid-template-columns:repeat(7,32px)}.ius-cal__wd{height:28px;display:grid;place-items:center;font-size:var(--ius-fs-sm);color:var(--ius-text-tertiary);font-family:var(--ius-font-display)}.ius-cal__day{appearance:none;border:0;background:transparent;cursor:pointer;height:32px;padding:var(--ius-space-xxs) 0;display:grid;place-items:center;font-size:var(--ius-fs-sm);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-cal__day-inner{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--ius-radius-pill);transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__day:hover:not([data-disabled=true]) .ius-cal__day-inner{background:var(--ius-info-100)}.ius-cal__day[data-outside=true]{color:var(--ius-text-disabled)}.ius-cal__day[data-disabled=true]{color:var(--ius-text-disabled);cursor:not-allowed}.ius-cal__day[data-today=true] .ius-cal__day-inner{background:var(--ius-success-100);color:var(--ius-success-700)}.ius-cal__day[data-inrange=true]{background:var(--ius-info-100)}.ius-cal__day[data-range-start=true]{background:linear-gradient(to right,transparent 50%,var(--ius-info-100) 50%)}.ius-cal__day[data-range-end=true]{background:linear-gradient(to left,transparent 50%,var(--ius-info-100) 50%)}.ius-cal__day[data-range-start=true][data-range-end=true]{background:transparent}.ius-cal__day[data-selected=true] .ius-cal__day-inner{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-cal__cells{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ius-space-xxs);padding:var(--ius-space-xxs) 0;min-width:224px}.ius-cal__cell{appearance:none;border:0;background:transparent;cursor:pointer;padding:var(--ius-space-sm) var(--ius-space-xs);border-radius:var(--ius-radius-md);font-size:var(--ius-fs-sm);color:var(--ius-text-primary);font-family:var(--ius-font-body);text-align:center;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-cal__cell:hover{background:var(--ius-info-100)}.ius-cal__cell[data-outside=true]{color:var(--ius-text-disabled)}.ius-cal__cell[data-selected=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-cal__cell[data-today=true]:not([data-selected=true]){background:var(--ius-success-100);color:var(--ius-success-700)}.ius-cal__foot{border-top:1px solid var(--ius-stroke);padding:var(--ius-space-xs);text-align:center}.ius-cal__today-btn{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-sm);border-radius:var(--ius-radius-sm)}.ius-cal__today-btn:hover{color:var(--ius-primary-500)}\n"] }]
19611
19690
  }], propDecorators: { mode: [{
19612
19691
  type: Input
19613
19692
  }], defaultValue: [{
@@ -19797,7 +19876,7 @@ class TimePanelComponent {
19797
19876
  useExisting: forwardRef(() => TimePanelComponent),
19798
19877
  multi: true,
19799
19878
  },
19800
- ], viewQueries: [{ propertyName: "colH", first: true, predicate: ["colH"], descendants: true }, { propertyName: "colM", first: true, predicate: ["colM"], descendants: true }], ngImport: i0, template: "@if (showHeader) {\n @if (editable) {\n <!-- encabezado editable: hh | mm (multi-text-field) + toggle AM/PM -->\n <div class=\"ius-time__head ius-time__head--edit\">\n <ius-multi-text-field size=\"small\" [showHelpText]=\"false\" [slots]=\"editSlots\" />\n <div class=\"ius-time__ampm\">\n @for (p of periods; track p) {\n <button\n type=\"button\"\n [attr.data-active]=\"current.ampm === p ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"commit({ ampm: p })\"\n >{{ p }}</button>\n }\n </div>\n </div>\n } @else {\n <div class=\"ius-time__head\">{{ headerText }}</div>\n }\n}\n\n<div class=\"ius-time__cols\">\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" #colH [style.maxHeight]=\"colMaxH\">\n @for (h of hours; track h) {\n <button\n type=\"button\"\n class=\"ius-time__cell\"\n [attr.data-selected]=\"current.hours === h ? 'true' : null\"\n [attr.data-now]=\"nowVal && nowVal.hours === h && current.hours !== h ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"commit({ hours: h })\"\n >{{ pad(h) }}</button>\n }\n </div>\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" #colM [style.maxHeight]=\"colMaxH\">\n @for (m of minutes; track m) {\n <button\n type=\"button\"\n class=\"ius-time__cell\"\n [attr.data-selected]=\"current.minutes === m ? 'true' : null\"\n [attr.data-now]=\"nowVal && nowVal.minutes === m && current.minutes !== m ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"commit({ minutes: m })\"\n >{{ pad(m) }}</button>\n }\n </div>\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" [style.maxHeight]=\"colMaxH\">\n @for (p of periods; track p) {\n <button\n type=\"button\"\n class=\"ius-time__cell\"\n [attr.data-selected]=\"current.ampm === p ? 'true' : null\"\n [attr.data-now]=\"nowVal && nowVal.ampm === p && current.ampm !== p ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"commit({ ampm: p })\"\n >{{ p }}</button>\n }\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;font-family:var(--ius-font-body);background:var(--ius-neutral-white)}.ius-time__head{text-align:center;font-family:var(--ius-font-display);font-size:var(--ius-fs-base);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);padding:var(--ius-space-xs) var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-time__head--edit{display:flex;align-items:center;justify-content:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs)}.ius-time__ampm{display:inline-flex;border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-sm);overflow:hidden}.ius-time__ampm button{appearance:none;border:0;background:transparent;cursor:pointer;padding:var(--ius-space-xxs) var(--ius-space-xs);font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);color:var(--ius-text-secondary)}.ius-time__ampm button[data-active=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-time__cols{display:flex;align-items:stretch}.ius-time__col{display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);overflow-y:auto;overflow-x:hidden}.ius-time__col+.ius-time__col{border-left:1px solid var(--ius-stroke)}:host([data-fill=true]){position:relative;width:160px}:host([data-fill=true]) .ius-time__cols{position:absolute;inset:0}:host([data-fill=true]) .ius-time__col{flex:1 1 0;overflow-y:auto;overflow-x:hidden}:host([data-fill=true]) .ius-time__cell{min-width:0;padding:0}.ius-time__cell{flex:0 0 auto;min-width:40px;height:32px;display:grid;place-items:center;padding:0 var(--ius-space-xs);border-radius:var(--ius-radius-md);cursor:pointer;font-size:var(--ius-fs-base);line-height:1;color:var(--ius-text-primary);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;border:0;background:transparent;appearance:none;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-time__cell:hover{background:var(--ius-info-100)}.ius-time__cell[data-now=true]{background:var(--ius-success-100);color:var(--ius-success-700)}.ius-time__cell[data-selected=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-time__cell[data-selected=true]:hover{background:var(--ius-primary-900)}\n"], dependencies: [{ kind: "component", type: MultiTextFieldComponent, selector: "ius-multi-text-field", inputs: ["slots", "label", "required", "showIconHelp", "iconHelpTitle", "iconHelpContent", "helpText", "errorText", "showHelpText", "showClear", "error", "disabled", "size", "state", "id"], outputs: ["valueChange", "cleared"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19879
+ ], viewQueries: [{ propertyName: "colH", first: true, predicate: ["colH"], descendants: true }, { propertyName: "colM", first: true, predicate: ["colM"], descendants: true }], ngImport: i0, template: "@if (showHeader) {\r\n @if (editable) {\r\n <!-- encabezado editable: hh | mm (multi-text-field) + toggle AM/PM -->\r\n <div class=\"ius-time__head ius-time__head--edit\">\r\n <ius-multi-text-field size=\"small\" [showHelpText]=\"false\" [slots]=\"editSlots\" />\r\n <div class=\"ius-time__ampm\">\r\n @for (p of periods; track p) {\r\n <button\r\n type=\"button\"\r\n [attr.data-active]=\"current.ampm === p ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"commit({ ampm: p })\"\r\n >{{ p }}</button>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"ius-time__head\">{{ headerText }}</div>\r\n }\r\n}\r\n\r\n<div class=\"ius-time__cols\">\r\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" #colH [style.maxHeight]=\"colMaxH\">\r\n @for (h of hours; track h) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-time__cell\"\r\n [attr.data-selected]=\"current.hours === h ? 'true' : null\"\r\n [attr.data-now]=\"nowVal && nowVal.hours === h && current.hours !== h ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"commit({ hours: h })\"\r\n >{{ pad(h) }}</button>\r\n }\r\n </div>\r\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" #colM [style.maxHeight]=\"colMaxH\">\r\n @for (m of minutes; track m) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-time__cell\"\r\n [attr.data-selected]=\"current.minutes === m ? 'true' : null\"\r\n [attr.data-now]=\"nowVal && nowVal.minutes === m && current.minutes !== m ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"commit({ minutes: m })\"\r\n >{{ pad(m) }}</button>\r\n }\r\n </div>\r\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" [style.maxHeight]=\"colMaxH\">\r\n @for (p of periods; track p) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-time__cell\"\r\n [attr.data-selected]=\"current.ampm === p ? 'true' : null\"\r\n [attr.data-now]=\"nowVal && nowVal.ampm === p && current.ampm !== p ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"commit({ ampm: p })\"\r\n >{{ p }}</button>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;font-family:var(--ius-font-body);background:var(--ius-neutral-white)}.ius-time__head{text-align:center;font-family:var(--ius-font-display);font-size:var(--ius-fs-base);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);padding:var(--ius-space-xs) var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-time__head--edit{display:flex;align-items:center;justify-content:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs)}.ius-time__ampm{display:inline-flex;border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-sm);overflow:hidden}.ius-time__ampm button{appearance:none;border:0;background:transparent;cursor:pointer;padding:var(--ius-space-xxs) var(--ius-space-xs);font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);color:var(--ius-text-secondary)}.ius-time__ampm button[data-active=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-time__cols{display:flex;align-items:stretch}.ius-time__col{display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);overflow-y:auto;overflow-x:hidden}.ius-time__col+.ius-time__col{border-left:1px solid var(--ius-stroke)}:host([data-fill=true]){position:relative;width:160px}:host([data-fill=true]) .ius-time__cols{position:absolute;inset:0}:host([data-fill=true]) .ius-time__col{flex:1 1 0;overflow-y:auto;overflow-x:hidden}:host([data-fill=true]) .ius-time__cell{min-width:0;padding:0}.ius-time__cell{flex:0 0 auto;min-width:40px;height:32px;display:grid;place-items:center;padding:0 var(--ius-space-xs);border-radius:var(--ius-radius-md);cursor:pointer;font-size:var(--ius-fs-base);line-height:1;color:var(--ius-text-primary);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;border:0;background:transparent;appearance:none;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-time__cell:hover{background:var(--ius-info-100)}.ius-time__cell[data-now=true]{background:var(--ius-success-100);color:var(--ius-success-700)}.ius-time__cell[data-selected=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-time__cell[data-selected=true]:hover{background:var(--ius-primary-900)}\n"], dependencies: [{ kind: "component", type: MultiTextFieldComponent, selector: "ius-multi-text-field", inputs: ["slots", "label", "required", "showIconHelp", "iconHelpTitle", "iconHelpContent", "helpText", "errorText", "showHelpText", "showClear", "error", "disabled", "size", "state", "id"], outputs: ["valueChange", "cleared"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19801
19880
  }
19802
19881
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TimePanelComponent, decorators: [{
19803
19882
  type: Component,
@@ -19810,7 +19889,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
19810
19889
  ], host: {
19811
19890
  class: 'ius-time',
19812
19891
  '[attr.data-fill]': "fillHeight ? 'true' : null",
19813
- }, template: "@if (showHeader) {\n @if (editable) {\n <!-- encabezado editable: hh | mm (multi-text-field) + toggle AM/PM -->\n <div class=\"ius-time__head ius-time__head--edit\">\n <ius-multi-text-field size=\"small\" [showHelpText]=\"false\" [slots]=\"editSlots\" />\n <div class=\"ius-time__ampm\">\n @for (p of periods; track p) {\n <button\n type=\"button\"\n [attr.data-active]=\"current.ampm === p ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"commit({ ampm: p })\"\n >{{ p }}</button>\n }\n </div>\n </div>\n } @else {\n <div class=\"ius-time__head\">{{ headerText }}</div>\n }\n}\n\n<div class=\"ius-time__cols\">\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" #colH [style.maxHeight]=\"colMaxH\">\n @for (h of hours; track h) {\n <button\n type=\"button\"\n class=\"ius-time__cell\"\n [attr.data-selected]=\"current.hours === h ? 'true' : null\"\n [attr.data-now]=\"nowVal && nowVal.hours === h && current.hours !== h ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"commit({ hours: h })\"\n >{{ pad(h) }}</button>\n }\n </div>\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" #colM [style.maxHeight]=\"colMaxH\">\n @for (m of minutes; track m) {\n <button\n type=\"button\"\n class=\"ius-time__cell\"\n [attr.data-selected]=\"current.minutes === m ? 'true' : null\"\n [attr.data-now]=\"nowVal && nowVal.minutes === m && current.minutes !== m ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"commit({ minutes: m })\"\n >{{ pad(m) }}</button>\n }\n </div>\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" [style.maxHeight]=\"colMaxH\">\n @for (p of periods; track p) {\n <button\n type=\"button\"\n class=\"ius-time__cell\"\n [attr.data-selected]=\"current.ampm === p ? 'true' : null\"\n [attr.data-now]=\"nowVal && nowVal.ampm === p && current.ampm !== p ? 'true' : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"commit({ ampm: p })\"\n >{{ p }}</button>\n }\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;font-family:var(--ius-font-body);background:var(--ius-neutral-white)}.ius-time__head{text-align:center;font-family:var(--ius-font-display);font-size:var(--ius-fs-base);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);padding:var(--ius-space-xs) var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-time__head--edit{display:flex;align-items:center;justify-content:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs)}.ius-time__ampm{display:inline-flex;border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-sm);overflow:hidden}.ius-time__ampm button{appearance:none;border:0;background:transparent;cursor:pointer;padding:var(--ius-space-xxs) var(--ius-space-xs);font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);color:var(--ius-text-secondary)}.ius-time__ampm button[data-active=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-time__cols{display:flex;align-items:stretch}.ius-time__col{display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);overflow-y:auto;overflow-x:hidden}.ius-time__col+.ius-time__col{border-left:1px solid var(--ius-stroke)}:host([data-fill=true]){position:relative;width:160px}:host([data-fill=true]) .ius-time__cols{position:absolute;inset:0}:host([data-fill=true]) .ius-time__col{flex:1 1 0;overflow-y:auto;overflow-x:hidden}:host([data-fill=true]) .ius-time__cell{min-width:0;padding:0}.ius-time__cell{flex:0 0 auto;min-width:40px;height:32px;display:grid;place-items:center;padding:0 var(--ius-space-xs);border-radius:var(--ius-radius-md);cursor:pointer;font-size:var(--ius-fs-base);line-height:1;color:var(--ius-text-primary);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;border:0;background:transparent;appearance:none;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-time__cell:hover{background:var(--ius-info-100)}.ius-time__cell[data-now=true]{background:var(--ius-success-100);color:var(--ius-success-700)}.ius-time__cell[data-selected=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-time__cell[data-selected=true]:hover{background:var(--ius-primary-900)}\n"] }]
19892
+ }, template: "@if (showHeader) {\r\n @if (editable) {\r\n <!-- encabezado editable: hh | mm (multi-text-field) + toggle AM/PM -->\r\n <div class=\"ius-time__head ius-time__head--edit\">\r\n <ius-multi-text-field size=\"small\" [showHelpText]=\"false\" [slots]=\"editSlots\" />\r\n <div class=\"ius-time__ampm\">\r\n @for (p of periods; track p) {\r\n <button\r\n type=\"button\"\r\n [attr.data-active]=\"current.ampm === p ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"commit({ ampm: p })\"\r\n >{{ p }}</button>\r\n }\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"ius-time__head\">{{ headerText }}</div>\r\n }\r\n}\r\n\r\n<div class=\"ius-time__cols\">\r\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" #colH [style.maxHeight]=\"colMaxH\">\r\n @for (h of hours; track h) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-time__cell\"\r\n [attr.data-selected]=\"current.hours === h ? 'true' : null\"\r\n [attr.data-now]=\"nowVal && nowVal.hours === h && current.hours !== h ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"commit({ hours: h })\"\r\n >{{ pad(h) }}</button>\r\n }\r\n </div>\r\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" #colM [style.maxHeight]=\"colMaxH\">\r\n @for (m of minutes; track m) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-time__cell\"\r\n [attr.data-selected]=\"current.minutes === m ? 'true' : null\"\r\n [attr.data-now]=\"nowVal && nowVal.minutes === m && current.minutes !== m ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"commit({ minutes: m })\"\r\n >{{ pad(m) }}</button>\r\n }\r\n </div>\r\n <div class=\"ius-time__col ius-scroll ius-scroll--sm\" [style.maxHeight]=\"colMaxH\">\r\n @for (p of periods; track p) {\r\n <button\r\n type=\"button\"\r\n class=\"ius-time__cell\"\r\n [attr.data-selected]=\"current.ampm === p ? 'true' : null\"\r\n [attr.data-now]=\"nowVal && nowVal.ampm === p && current.ampm !== p ? 'true' : null\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"commit({ ampm: p })\"\r\n >{{ p }}</button>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;font-family:var(--ius-font-body);background:var(--ius-neutral-white)}.ius-time__head{text-align:center;font-family:var(--ius-font-display);font-size:var(--ius-fs-base);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);padding:var(--ius-space-xs) var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-time__head--edit{display:flex;align-items:center;justify-content:center;gap:var(--ius-space-xs);padding:var(--ius-space-xs)}.ius-time__ampm{display:inline-flex;border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-sm);overflow:hidden}.ius-time__ampm button{appearance:none;border:0;background:transparent;cursor:pointer;padding:var(--ius-space-xxs) var(--ius-space-xs);font-family:var(--ius-font-body);font-size:var(--ius-fs-sm);color:var(--ius-text-secondary)}.ius-time__ampm button[data-active=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-time__cols{display:flex;align-items:stretch}.ius-time__col{display:flex;flex-direction:column;gap:var(--ius-space-xxs);padding:var(--ius-space-xxs);overflow-y:auto;overflow-x:hidden}.ius-time__col+.ius-time__col{border-left:1px solid var(--ius-stroke)}:host([data-fill=true]){position:relative;width:160px}:host([data-fill=true]) .ius-time__cols{position:absolute;inset:0}:host([data-fill=true]) .ius-time__col{flex:1 1 0;overflow-y:auto;overflow-x:hidden}:host([data-fill=true]) .ius-time__cell{min-width:0;padding:0}.ius-time__cell{flex:0 0 auto;min-width:40px;height:32px;display:grid;place-items:center;padding:0 var(--ius-space-xs);border-radius:var(--ius-radius-md);cursor:pointer;font-size:var(--ius-fs-base);line-height:1;color:var(--ius-text-primary);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;border:0;background:transparent;appearance:none;transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-time__cell:hover{background:var(--ius-info-100)}.ius-time__cell[data-now=true]{background:var(--ius-success-100);color:var(--ius-success-700)}.ius-time__cell[data-selected=true]{background:var(--ius-primary-900);color:var(--ius-neutral-white)}.ius-time__cell[data-selected=true]:hover{background:var(--ius-primary-900)}\n"] }]
19814
19893
  }], propDecorators: { defaultValue: [{
19815
19894
  type: Input
19816
19895
  }], value: [{
@@ -20247,7 +20326,7 @@ class DatePickerComponent {
20247
20326
  useExisting: forwardRef(() => DatePickerComponent),
20248
20327
  multi: true,
20249
20328
  },
20250
- ], viewQueries: [{ propertyName: "slotEls", predicate: ["slotEl"], descendants: true }], ngImport: i0, template: "@if (label != null) {\n <label [attr.for]=\"baseId\" class=\"ius-tf__label\">\n @if (required) {\n <span class=\"ius-tf__required\" aria-hidden=\"true\"></span>\n }\n <span>{{ label }}</span>\n @if (showIconHelp) {\n <ius-popover [title]=\"iconHelpTitle\" [content]=\"iconHelpContent\" placement=\"top\" trigger=\"hover\">\n <span class=\"ius-tf__help-icon\" aria-label=\"Ayuda\" tabindex=\"0\">\n <span translate=\"no\" class=\"ius-icon\">help</span>\n </span>\n </ius-popover>\n }\n <span class=\"ius-tf__colon\">:</span>\n </label>\n}\n\n<!-- El popover ancla el panel al campo (bottom-end, piel ius-datepicker-pop) -->\n<ius-popover\n trigger=\"manual\"\n [open]=\"isOpen\"\n placement=\"bottom-end\"\n [offset]=\"6\"\n [showArrow]=\"false\"\n padding=\"none\"\n dismissable\n panelClass=\"ius-datepicker-pop\"\n (openChange)=\"onPopoverOpenChange($event)\"\n>\n <div\n [id]=\"baseId\"\n class=\"ius-tf__field\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"isError || null\"\n >\n @for (t of tokens; track $index) {\n @switch (t.kind) {\n @case ('divider') {\n <span class=\"ius-tf__divider\" aria-hidden=\"true\"></span>\n }\n @case ('gap') {\n <span class=\"ius-dp__gap\"></span>\n }\n @case ('arrow') {\n <span translate=\"no\" class=\"ius-icon ius-dp__arrow\" aria-hidden=\"true\">arrow_right_alt</span>\n }\n @case ('ampm') {\n <span class=\"ius-dp__ampm\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"ius-dp__ampm-text\"\n aria-label=\"Cambiar AM/PM\"\n [disabled]=\"isDisabled\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"toggleAmpm()\"\n >{{ ampmVal }}</button>\n </span>\n }\n @default {\n <input\n #slotEl\n class=\"ius-dp__slot\"\n inputmode=\"numeric\"\n [value]=\"slotValue(t.id!)\"\n [placeholder]=\"t.ph!\"\n [disabled]=\"isDisabled\"\n [attr.maxlength]=\"t.max\"\n [attr.aria-label]=\"t.ph\"\n [style.width]=\"slotWidth(t)\"\n (input)=\"onSlotInput(t, $event)\"\n (keydown)=\"onSlotKeydown(t, $event)\"\n (focus)=\"onSlotFocus()\"\n (blur)=\"onSlotBlur()\"\n />\n }\n }\n }\n <button\n type=\"button\"\n class=\"ius-dp__cal\"\n tabindex=\"-1\"\n aria-label=\"Abrir calendario\"\n [attr.aria-expanded]=\"isOpen\"\n [disabled]=\"isDisabled\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"toggleOpen()\"\n >\n <span translate=\"no\" class=\"ius-icon\">calendar_month</span>\n </button>\n </div>\n\n <!-- Panel: Calendar (+ TimePanel en datetime) -->\n <ius-calendar\n iusPopoverContent\n [mode]=\"calMode\"\n [value]=\"calValue\"\n [viewDate]=\"view\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [isDateDisabled]=\"isDateDisabled\"\n [showToday]=\"false\"\n (valueChange)=\"onCalChange($event)\"\n (viewDateChange)=\"onViewChange($event)\"\n >\n @if (mode !== 'range') {\n <div iusCalendarFooter class=\"ius-dp__foot\">\n <button\n type=\"button\"\n class=\"ius-dp__today-btn\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onTodayFoot()\"\n >{{ todayFootLabel }}</button>\n </div>\n }\n @if (mode === 'datetime') {\n <ius-time-panel\n iusCalendarAside\n [value]=\"currentTime\"\n [minuteStep]=\"minuteStep\"\n [showHeader]=\"false\"\n fillHeight\n (valueChange)=\"onTimeChange($event)\"\n />\n }\n </ius-calendar>\n</ius-popover>\n\n@if (showHint) {\n <span class=\"ius-tf__hint\">{{ hint }}</span>\n}\n", styles: ["@charset \"UTF-8\";:host{--_tf-bg: var(--ius-neutral-2);--_tf-border: transparent;--_tf-fg: var(--ius-text-primary);--_tf-placeholder: var(--ius-text-tertiary);--_tf-icon: var(--ius-text-secondary);--_tf-py: 9px;--_tf-px: 12px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-md);display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body);width:fit-content;max-width:100%;min-width:0}:host([data-size=small]){--_tf-py: 6px;--_tf-px: 10px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-sm)}:host([data-size=large]){--_tf-py: 12px;--_tf-px: 14px;--_tf-fs: var(--ius-fs-lg);--_tf-lh: var(--ius-lh-lg);--_tf-icon-size: var(--ius-icon-lg)}@container style(--ius-control-size: small){:host(:not([data-size])){--_tf-py: 6px;--_tf-px: 10px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-sm)}}@container style(--ius-control-size: large){:host(:not([data-size])){--_tf-py: 12px;--_tf-px: 14px;--_tf-fs: var(--ius-fs-lg);--_tf-lh: var(--ius-lh-lg);--_tf-icon-size: var(--ius-icon-lg)}}.ius-tf__label{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-primary)}.ius-tf__required{width:5px;height:5px;border-radius:50%;background:var(--ius-danger-500);display:inline-block;margin-right:var(--ius-space-xxs)}.ius-tf__help-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ius-neutral-7);cursor:help}.ius-tf__help-icon .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-tf__colon{color:var(--ius-text-secondary)}.ius-tf__field{display:flex;align-items:center;gap:0;cursor:text;width:fit-content;padding:var(--_tf-py) var(--_tf-px);background:var(--_tf-bg);border:1px solid var(--_tf-border);border-radius:var(--ius-radius-md);transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),border-color var(--ius-duration-fast) var(--ius-ease-standard),box-shadow var(--ius-duration-fast) var(--ius-ease-standard)}.ius-tf__field:hover,:host([data-force=hover]) .ius-tf__field{--_tf-bg: var(--ius-info-100);--_tf-border: transparent}:host([data-focused=true]) .ius-tf__field,:host([data-force=focused]) .ius-tf__field,.ius-tf__field:focus-within{--_tf-bg: var(--ius-info-100);--_tf-border: var(--ius-primary-500);box-shadow:var(--ius-focus-ring)}:host([data-error=true]) .ius-tf__field,:host([data-force=error]) .ius-tf__field{--_tf-bg: var(--ius-danger-100);--_tf-border: var(--ius-danger-700);box-shadow:none}:host([data-error=true][data-focused=true]) .ius-tf__field,:host([data-force=error]) .ius-tf__field{box-shadow:0 0 0 3px var(--ius-danger-200)}:host([data-disabled=true]) .ius-tf__field,:host([data-force=disabled]) .ius-tf__field{--_tf-bg: var(--ius-neutral-2);--_tf-border: transparent;--_tf-fg: var(--ius-text-disabled);--_tf-placeholder: var(--ius-text-disabled);--_tf-icon: var(--ius-text-disabled);box-shadow:none;cursor:not-allowed}:host([data-disabled=true]) .ius-tf__label,:host([data-force=disabled]) .ius-tf__label{color:var(--ius-text-disabled)}:host([data-disabled=true]) .ius-tf__required,:host([data-force=disabled]) .ius-tf__required{background:var(--ius-neutral-5)}.ius-tf__divider{width:1px;align-self:stretch;background:var(--ius-neutral-5);flex:0 0 auto;margin:var(--ius-space-xxs) var(--ius-space-xs)}:host([data-focused=true]) .ius-tf__divider,:host([data-force=focused]) .ius-tf__divider{background:var(--ius-primary-500)}:host([data-error=true]) .ius-tf__divider,:host([data-force=error]) .ius-tf__divider{background:var(--ius-danger-700)}:host([data-disabled=true]) .ius-tf__divider,:host([data-force=disabled]) .ius-tf__divider{background:var(--ius-neutral-4)}.ius-dp__slot{flex:0 0 auto;appearance:none;border:0;outline:0;background:transparent;font:inherit;font-size:var(--_tf-fs);line-height:var(--_tf-lh);color:var(--_tf-fg);text-align:center;padding:0;min-width:0}.ius-dp__slot::placeholder{color:var(--_tf-placeholder)}.ius-dp__slot:disabled{color:var(--ius-text-disabled);cursor:not-allowed}.ius-dp__arrow{font-size:var(--_tf-icon-size);color:var(--ius-text-tertiary);flex:0 0 auto;margin:0 var(--ius-space-xxs)}.ius-dp__gap{width:8px;flex:0 0 auto}.ius-dp__ampm{display:inline-flex;align-items:center;align-self:center;flex:0 0 auto}.ius-dp__ampm-text{appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--_tf-fs);line-height:var(--_tf-lh);color:var(--ius-text-primary);padding:0 var(--ius-space-xxs);font-variant-numeric:tabular-nums}.ius-dp__ampm-text:hover{color:var(--ius-primary-500)}.ius-dp__ampm-text:disabled{color:var(--ius-text-disabled);cursor:not-allowed}.ius-dp__cal{appearance:none;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;align-self:center;color:var(--_tf-icon);flex:0 0 auto;margin-left:auto;padding:0}:host([data-disabled=true]) .ius-dp__cal{cursor:not-allowed}.ius-dp__cal .ius-icon{font-size:calc(var(--_tf-icon-size) + 2px)}.ius-dp__foot{border-top:1px solid var(--ius-stroke);padding:var(--ius-space-xs);text-align:center}.ius-dp__today-btn{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-sm);border-radius:var(--ius-radius-sm)}.ius-dp__today-btn:hover{color:var(--ius-primary-500)}.ius-tf__hint{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-medium);font-style:italic;color:var(--ius-text-secondary);letter-spacing:.02em}:host([data-error=true]) .ius-tf__hint,:host([data-force=error]) .ius-tf__hint{color:var(--ius-danger-700)}:host([data-disabled=true]) .ius-tf__hint,:host([data-force=disabled]) .ius-tf__hint{color:var(--ius-text-disabled)}\n"], dependencies: [{ kind: "component", type: CalendarComponent, selector: "ius-calendar", inputs: ["mode", "defaultValue", "value", "viewDate", "minDate", "maxDate", "isDateDisabled", "showToday", "todayLabel", "weekStartsOn"], outputs: ["valueChange", "viewDateChange", "todayClick"] }, { kind: "directive", type: IusCalendarAsideDirective, selector: "[iusCalendarAside]" }, { kind: "directive", type: IusCalendarFooterDirective, selector: "[iusCalendarFooter]" }, { kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }, { kind: "component", type: TimePanelComponent, selector: "ius-time-panel", inputs: ["defaultValue", "value", "minuteStep", "now", "showHeader", "editable", "fillHeight", "maxVisible"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20329
+ ], viewQueries: [{ propertyName: "slotEls", predicate: ["slotEl"], descendants: true }], ngImport: i0, template: "@if (label != null) {\r\n <label [attr.for]=\"baseId\" class=\"ius-tf__label\">\r\n @if (required) {\r\n <span class=\"ius-tf__required\" aria-hidden=\"true\"></span>\r\n }\r\n <span>{{ label }}</span>\r\n @if (showIconHelp) {\r\n <ius-popover [title]=\"iconHelpTitle\" [content]=\"iconHelpContent\" placement=\"top\" trigger=\"hover\">\r\n <span class=\"ius-tf__help-icon\" aria-label=\"Ayuda\" tabindex=\"0\">\r\n <span translate=\"no\" class=\"ius-icon\">help</span>\r\n </span>\r\n </ius-popover>\r\n }\r\n <span class=\"ius-tf__colon\">:</span>\r\n </label>\r\n}\r\n\r\n<!-- El popover ancla el panel al campo (bottom-end, piel ius-datepicker-pop) -->\r\n<ius-popover\r\n trigger=\"manual\"\r\n [open]=\"isOpen\"\r\n placement=\"bottom-end\"\r\n [offset]=\"6\"\r\n [showArrow]=\"false\"\r\n padding=\"none\"\r\n dismissable\r\n panelClass=\"ius-datepicker-pop\"\r\n (openChange)=\"onPopoverOpenChange($event)\"\r\n>\r\n <div\r\n [id]=\"baseId\"\r\n class=\"ius-tf__field\"\r\n [attr.aria-required]=\"required || null\"\r\n [attr.aria-invalid]=\"isError || null\"\r\n >\r\n @for (t of tokens; track $index) {\r\n @switch (t.kind) {\r\n @case ('divider') {\r\n <span class=\"ius-tf__divider\" aria-hidden=\"true\"></span>\r\n }\r\n @case ('gap') {\r\n <span class=\"ius-dp__gap\"></span>\r\n }\r\n @case ('arrow') {\r\n <span translate=\"no\" class=\"ius-icon ius-dp__arrow\" aria-hidden=\"true\">arrow_right_alt</span>\r\n }\r\n @case ('ampm') {\r\n <span class=\"ius-dp__ampm\">\r\n <button\r\n type=\"button\"\r\n tabindex=\"-1\"\r\n class=\"ius-dp__ampm-text\"\r\n aria-label=\"Cambiar AM/PM\"\r\n [disabled]=\"isDisabled\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"toggleAmpm()\"\r\n >{{ ampmVal }}</button>\r\n </span>\r\n }\r\n @default {\r\n <input\r\n #slotEl\r\n class=\"ius-dp__slot\"\r\n inputmode=\"numeric\"\r\n [value]=\"slotValue(t.id!)\"\r\n [placeholder]=\"t.ph!\"\r\n [disabled]=\"isDisabled\"\r\n [attr.maxlength]=\"t.max\"\r\n [attr.aria-label]=\"t.ph\"\r\n [style.width]=\"slotWidth(t)\"\r\n (input)=\"onSlotInput(t, $event)\"\r\n (keydown)=\"onSlotKeydown(t, $event)\"\r\n (focus)=\"onSlotFocus()\"\r\n (blur)=\"onSlotBlur()\"\r\n />\r\n }\r\n }\r\n }\r\n <button\r\n type=\"button\"\r\n class=\"ius-dp__cal\"\r\n tabindex=\"-1\"\r\n aria-label=\"Abrir calendario\"\r\n [attr.aria-expanded]=\"isOpen\"\r\n [disabled]=\"isDisabled\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"toggleOpen()\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">calendar_month</span>\r\n </button>\r\n </div>\r\n\r\n <!-- Panel: Calendar (+ TimePanel en datetime) -->\r\n <ius-calendar\r\n iusPopoverContent\r\n [mode]=\"calMode\"\r\n [value]=\"calValue\"\r\n [viewDate]=\"view\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [isDateDisabled]=\"isDateDisabled\"\r\n [showToday]=\"false\"\r\n (valueChange)=\"onCalChange($event)\"\r\n (viewDateChange)=\"onViewChange($event)\"\r\n >\r\n @if (mode !== 'range') {\r\n <div iusCalendarFooter class=\"ius-dp__foot\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-dp__today-btn\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onTodayFoot()\"\r\n >{{ todayFootLabel }}</button>\r\n </div>\r\n }\r\n @if (mode === 'datetime') {\r\n <ius-time-panel\r\n iusCalendarAside\r\n [value]=\"currentTime\"\r\n [minuteStep]=\"minuteStep\"\r\n [showHeader]=\"false\"\r\n fillHeight\r\n (valueChange)=\"onTimeChange($event)\"\r\n />\r\n }\r\n </ius-calendar>\r\n</ius-popover>\r\n\r\n@if (showHint) {\r\n <span class=\"ius-tf__hint\">{{ hint }}</span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{--_tf-bg: var(--ius-neutral-2);--_tf-border: transparent;--_tf-fg: var(--ius-text-primary);--_tf-placeholder: var(--ius-text-tertiary);--_tf-icon: var(--ius-text-secondary);--_tf-py: 9px;--_tf-px: 12px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-md);display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body);width:fit-content;max-width:100%;min-width:0}:host([data-size=small]){--_tf-py: 6px;--_tf-px: 10px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-sm)}:host([data-size=large]){--_tf-py: 12px;--_tf-px: 14px;--_tf-fs: var(--ius-fs-lg);--_tf-lh: var(--ius-lh-lg);--_tf-icon-size: var(--ius-icon-lg)}@container style(--ius-control-size: small){:host(:not([data-size])){--_tf-py: 6px;--_tf-px: 10px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-sm)}}@container style(--ius-control-size: large){:host(:not([data-size])){--_tf-py: 12px;--_tf-px: 14px;--_tf-fs: var(--ius-fs-lg);--_tf-lh: var(--ius-lh-lg);--_tf-icon-size: var(--ius-icon-lg)}}.ius-tf__label{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-primary)}.ius-tf__required{width:5px;height:5px;border-radius:50%;background:var(--ius-danger-500);display:inline-block;margin-right:var(--ius-space-xxs)}.ius-tf__help-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ius-neutral-7);cursor:help}.ius-tf__help-icon .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-tf__colon{color:var(--ius-text-secondary)}.ius-tf__field{display:flex;align-items:center;gap:0;cursor:text;width:fit-content;padding:var(--_tf-py) var(--_tf-px);background:var(--_tf-bg);border:1px solid var(--_tf-border);border-radius:var(--ius-radius-md);transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),border-color var(--ius-duration-fast) var(--ius-ease-standard),box-shadow var(--ius-duration-fast) var(--ius-ease-standard)}.ius-tf__field:hover,:host([data-force=hover]) .ius-tf__field{--_tf-bg: var(--ius-info-100);--_tf-border: transparent}:host([data-focused=true]) .ius-tf__field,:host([data-force=focused]) .ius-tf__field,.ius-tf__field:focus-within{--_tf-bg: var(--ius-info-100);--_tf-border: var(--ius-primary-500);box-shadow:var(--ius-focus-ring)}:host([data-error=true]) .ius-tf__field,:host([data-force=error]) .ius-tf__field{--_tf-bg: var(--ius-danger-100);--_tf-border: var(--ius-danger-700);box-shadow:none}:host([data-error=true][data-focused=true]) .ius-tf__field,:host([data-force=error]) .ius-tf__field{box-shadow:0 0 0 3px var(--ius-danger-200)}:host([data-disabled=true]) .ius-tf__field,:host([data-force=disabled]) .ius-tf__field{--_tf-bg: var(--ius-neutral-2);--_tf-border: transparent;--_tf-fg: var(--ius-text-disabled);--_tf-placeholder: var(--ius-text-disabled);--_tf-icon: var(--ius-text-disabled);box-shadow:none;cursor:not-allowed}:host([data-disabled=true]) .ius-tf__label,:host([data-force=disabled]) .ius-tf__label{color:var(--ius-text-disabled)}:host([data-disabled=true]) .ius-tf__required,:host([data-force=disabled]) .ius-tf__required{background:var(--ius-neutral-5)}.ius-tf__divider{width:1px;align-self:stretch;background:var(--ius-neutral-5);flex:0 0 auto;margin:var(--ius-space-xxs) var(--ius-space-xs)}:host([data-focused=true]) .ius-tf__divider,:host([data-force=focused]) .ius-tf__divider{background:var(--ius-primary-500)}:host([data-error=true]) .ius-tf__divider,:host([data-force=error]) .ius-tf__divider{background:var(--ius-danger-700)}:host([data-disabled=true]) .ius-tf__divider,:host([data-force=disabled]) .ius-tf__divider{background:var(--ius-neutral-4)}.ius-dp__slot{flex:0 0 auto;appearance:none;border:0;outline:0;background:transparent;font:inherit;font-size:var(--_tf-fs);line-height:var(--_tf-lh);color:var(--_tf-fg);text-align:center;padding:0;min-width:0}.ius-dp__slot::placeholder{color:var(--_tf-placeholder)}.ius-dp__slot:disabled{color:var(--ius-text-disabled);cursor:not-allowed}.ius-dp__arrow{font-size:var(--_tf-icon-size);color:var(--ius-text-tertiary);flex:0 0 auto;margin:0 var(--ius-space-xxs)}.ius-dp__gap{width:8px;flex:0 0 auto}.ius-dp__ampm{display:inline-flex;align-items:center;align-self:center;flex:0 0 auto}.ius-dp__ampm-text{appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--_tf-fs);line-height:var(--_tf-lh);color:var(--ius-text-primary);padding:0 var(--ius-space-xxs);font-variant-numeric:tabular-nums}.ius-dp__ampm-text:hover{color:var(--ius-primary-500)}.ius-dp__ampm-text:disabled{color:var(--ius-text-disabled);cursor:not-allowed}.ius-dp__cal{appearance:none;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;align-self:center;color:var(--_tf-icon);flex:0 0 auto;margin-left:auto;padding:0}:host([data-disabled=true]) .ius-dp__cal{cursor:not-allowed}.ius-dp__cal .ius-icon{font-size:calc(var(--_tf-icon-size) + 2px)}.ius-dp__foot{border-top:1px solid var(--ius-stroke);padding:var(--ius-space-xs);text-align:center}.ius-dp__today-btn{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-sm);border-radius:var(--ius-radius-sm)}.ius-dp__today-btn:hover{color:var(--ius-primary-500)}.ius-tf__hint{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-medium);font-style:italic;color:var(--ius-text-secondary);letter-spacing:.02em}:host([data-error=true]) .ius-tf__hint,:host([data-force=error]) .ius-tf__hint{color:var(--ius-danger-700)}:host([data-disabled=true]) .ius-tf__hint,:host([data-force=disabled]) .ius-tf__hint{color:var(--ius-text-disabled)}\n"], dependencies: [{ kind: "component", type: CalendarComponent, selector: "ius-calendar", inputs: ["mode", "defaultValue", "value", "viewDate", "minDate", "maxDate", "isDateDisabled", "showToday", "todayLabel", "weekStartsOn"], outputs: ["valueChange", "viewDateChange", "todayClick"] }, { kind: "directive", type: IusCalendarAsideDirective, selector: "[iusCalendarAside]" }, { kind: "directive", type: IusCalendarFooterDirective, selector: "[iusCalendarFooter]" }, { kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }, { kind: "component", type: TimePanelComponent, selector: "ius-time-panel", inputs: ["defaultValue", "value", "minuteStep", "now", "showHeader", "editable", "fillHeight", "maxVisible"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20251
20330
  }
20252
20331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DatePickerComponent, decorators: [{
20253
20332
  type: Component,
@@ -20271,7 +20350,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
20271
20350
  '[attr.data-disabled]': "isDisabled ? 'true' : null",
20272
20351
  '[attr.data-force]': 'state || null',
20273
20352
  '(keydown.escape)': 'onEscape()',
20274
- }, template: "@if (label != null) {\n <label [attr.for]=\"baseId\" class=\"ius-tf__label\">\n @if (required) {\n <span class=\"ius-tf__required\" aria-hidden=\"true\"></span>\n }\n <span>{{ label }}</span>\n @if (showIconHelp) {\n <ius-popover [title]=\"iconHelpTitle\" [content]=\"iconHelpContent\" placement=\"top\" trigger=\"hover\">\n <span class=\"ius-tf__help-icon\" aria-label=\"Ayuda\" tabindex=\"0\">\n <span translate=\"no\" class=\"ius-icon\">help</span>\n </span>\n </ius-popover>\n }\n <span class=\"ius-tf__colon\">:</span>\n </label>\n}\n\n<!-- El popover ancla el panel al campo (bottom-end, piel ius-datepicker-pop) -->\n<ius-popover\n trigger=\"manual\"\n [open]=\"isOpen\"\n placement=\"bottom-end\"\n [offset]=\"6\"\n [showArrow]=\"false\"\n padding=\"none\"\n dismissable\n panelClass=\"ius-datepicker-pop\"\n (openChange)=\"onPopoverOpenChange($event)\"\n>\n <div\n [id]=\"baseId\"\n class=\"ius-tf__field\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"isError || null\"\n >\n @for (t of tokens; track $index) {\n @switch (t.kind) {\n @case ('divider') {\n <span class=\"ius-tf__divider\" aria-hidden=\"true\"></span>\n }\n @case ('gap') {\n <span class=\"ius-dp__gap\"></span>\n }\n @case ('arrow') {\n <span translate=\"no\" class=\"ius-icon ius-dp__arrow\" aria-hidden=\"true\">arrow_right_alt</span>\n }\n @case ('ampm') {\n <span class=\"ius-dp__ampm\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n class=\"ius-dp__ampm-text\"\n aria-label=\"Cambiar AM/PM\"\n [disabled]=\"isDisabled\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"toggleAmpm()\"\n >{{ ampmVal }}</button>\n </span>\n }\n @default {\n <input\n #slotEl\n class=\"ius-dp__slot\"\n inputmode=\"numeric\"\n [value]=\"slotValue(t.id!)\"\n [placeholder]=\"t.ph!\"\n [disabled]=\"isDisabled\"\n [attr.maxlength]=\"t.max\"\n [attr.aria-label]=\"t.ph\"\n [style.width]=\"slotWidth(t)\"\n (input)=\"onSlotInput(t, $event)\"\n (keydown)=\"onSlotKeydown(t, $event)\"\n (focus)=\"onSlotFocus()\"\n (blur)=\"onSlotBlur()\"\n />\n }\n }\n }\n <button\n type=\"button\"\n class=\"ius-dp__cal\"\n tabindex=\"-1\"\n aria-label=\"Abrir calendario\"\n [attr.aria-expanded]=\"isOpen\"\n [disabled]=\"isDisabled\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"toggleOpen()\"\n >\n <span translate=\"no\" class=\"ius-icon\">calendar_month</span>\n </button>\n </div>\n\n <!-- Panel: Calendar (+ TimePanel en datetime) -->\n <ius-calendar\n iusPopoverContent\n [mode]=\"calMode\"\n [value]=\"calValue\"\n [viewDate]=\"view\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [isDateDisabled]=\"isDateDisabled\"\n [showToday]=\"false\"\n (valueChange)=\"onCalChange($event)\"\n (viewDateChange)=\"onViewChange($event)\"\n >\n @if (mode !== 'range') {\n <div iusCalendarFooter class=\"ius-dp__foot\">\n <button\n type=\"button\"\n class=\"ius-dp__today-btn\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"onTodayFoot()\"\n >{{ todayFootLabel }}</button>\n </div>\n }\n @if (mode === 'datetime') {\n <ius-time-panel\n iusCalendarAside\n [value]=\"currentTime\"\n [minuteStep]=\"minuteStep\"\n [showHeader]=\"false\"\n fillHeight\n (valueChange)=\"onTimeChange($event)\"\n />\n }\n </ius-calendar>\n</ius-popover>\n\n@if (showHint) {\n <span class=\"ius-tf__hint\">{{ hint }}</span>\n}\n", styles: ["@charset \"UTF-8\";:host{--_tf-bg: var(--ius-neutral-2);--_tf-border: transparent;--_tf-fg: var(--ius-text-primary);--_tf-placeholder: var(--ius-text-tertiary);--_tf-icon: var(--ius-text-secondary);--_tf-py: 9px;--_tf-px: 12px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-md);display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body);width:fit-content;max-width:100%;min-width:0}:host([data-size=small]){--_tf-py: 6px;--_tf-px: 10px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-sm)}:host([data-size=large]){--_tf-py: 12px;--_tf-px: 14px;--_tf-fs: var(--ius-fs-lg);--_tf-lh: var(--ius-lh-lg);--_tf-icon-size: var(--ius-icon-lg)}@container style(--ius-control-size: small){:host(:not([data-size])){--_tf-py: 6px;--_tf-px: 10px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-sm)}}@container style(--ius-control-size: large){:host(:not([data-size])){--_tf-py: 12px;--_tf-px: 14px;--_tf-fs: var(--ius-fs-lg);--_tf-lh: var(--ius-lh-lg);--_tf-icon-size: var(--ius-icon-lg)}}.ius-tf__label{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-primary)}.ius-tf__required{width:5px;height:5px;border-radius:50%;background:var(--ius-danger-500);display:inline-block;margin-right:var(--ius-space-xxs)}.ius-tf__help-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ius-neutral-7);cursor:help}.ius-tf__help-icon .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-tf__colon{color:var(--ius-text-secondary)}.ius-tf__field{display:flex;align-items:center;gap:0;cursor:text;width:fit-content;padding:var(--_tf-py) var(--_tf-px);background:var(--_tf-bg);border:1px solid var(--_tf-border);border-radius:var(--ius-radius-md);transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),border-color var(--ius-duration-fast) var(--ius-ease-standard),box-shadow var(--ius-duration-fast) var(--ius-ease-standard)}.ius-tf__field:hover,:host([data-force=hover]) .ius-tf__field{--_tf-bg: var(--ius-info-100);--_tf-border: transparent}:host([data-focused=true]) .ius-tf__field,:host([data-force=focused]) .ius-tf__field,.ius-tf__field:focus-within{--_tf-bg: var(--ius-info-100);--_tf-border: var(--ius-primary-500);box-shadow:var(--ius-focus-ring)}:host([data-error=true]) .ius-tf__field,:host([data-force=error]) .ius-tf__field{--_tf-bg: var(--ius-danger-100);--_tf-border: var(--ius-danger-700);box-shadow:none}:host([data-error=true][data-focused=true]) .ius-tf__field,:host([data-force=error]) .ius-tf__field{box-shadow:0 0 0 3px var(--ius-danger-200)}:host([data-disabled=true]) .ius-tf__field,:host([data-force=disabled]) .ius-tf__field{--_tf-bg: var(--ius-neutral-2);--_tf-border: transparent;--_tf-fg: var(--ius-text-disabled);--_tf-placeholder: var(--ius-text-disabled);--_tf-icon: var(--ius-text-disabled);box-shadow:none;cursor:not-allowed}:host([data-disabled=true]) .ius-tf__label,:host([data-force=disabled]) .ius-tf__label{color:var(--ius-text-disabled)}:host([data-disabled=true]) .ius-tf__required,:host([data-force=disabled]) .ius-tf__required{background:var(--ius-neutral-5)}.ius-tf__divider{width:1px;align-self:stretch;background:var(--ius-neutral-5);flex:0 0 auto;margin:var(--ius-space-xxs) var(--ius-space-xs)}:host([data-focused=true]) .ius-tf__divider,:host([data-force=focused]) .ius-tf__divider{background:var(--ius-primary-500)}:host([data-error=true]) .ius-tf__divider,:host([data-force=error]) .ius-tf__divider{background:var(--ius-danger-700)}:host([data-disabled=true]) .ius-tf__divider,:host([data-force=disabled]) .ius-tf__divider{background:var(--ius-neutral-4)}.ius-dp__slot{flex:0 0 auto;appearance:none;border:0;outline:0;background:transparent;font:inherit;font-size:var(--_tf-fs);line-height:var(--_tf-lh);color:var(--_tf-fg);text-align:center;padding:0;min-width:0}.ius-dp__slot::placeholder{color:var(--_tf-placeholder)}.ius-dp__slot:disabled{color:var(--ius-text-disabled);cursor:not-allowed}.ius-dp__arrow{font-size:var(--_tf-icon-size);color:var(--ius-text-tertiary);flex:0 0 auto;margin:0 var(--ius-space-xxs)}.ius-dp__gap{width:8px;flex:0 0 auto}.ius-dp__ampm{display:inline-flex;align-items:center;align-self:center;flex:0 0 auto}.ius-dp__ampm-text{appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--_tf-fs);line-height:var(--_tf-lh);color:var(--ius-text-primary);padding:0 var(--ius-space-xxs);font-variant-numeric:tabular-nums}.ius-dp__ampm-text:hover{color:var(--ius-primary-500)}.ius-dp__ampm-text:disabled{color:var(--ius-text-disabled);cursor:not-allowed}.ius-dp__cal{appearance:none;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;align-self:center;color:var(--_tf-icon);flex:0 0 auto;margin-left:auto;padding:0}:host([data-disabled=true]) .ius-dp__cal{cursor:not-allowed}.ius-dp__cal .ius-icon{font-size:calc(var(--_tf-icon-size) + 2px)}.ius-dp__foot{border-top:1px solid var(--ius-stroke);padding:var(--ius-space-xs);text-align:center}.ius-dp__today-btn{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-sm);border-radius:var(--ius-radius-sm)}.ius-dp__today-btn:hover{color:var(--ius-primary-500)}.ius-tf__hint{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-medium);font-style:italic;color:var(--ius-text-secondary);letter-spacing:.02em}:host([data-error=true]) .ius-tf__hint,:host([data-force=error]) .ius-tf__hint{color:var(--ius-danger-700)}:host([data-disabled=true]) .ius-tf__hint,:host([data-force=disabled]) .ius-tf__hint{color:var(--ius-text-disabled)}\n"] }]
20353
+ }, template: "@if (label != null) {\r\n <label [attr.for]=\"baseId\" class=\"ius-tf__label\">\r\n @if (required) {\r\n <span class=\"ius-tf__required\" aria-hidden=\"true\"></span>\r\n }\r\n <span>{{ label }}</span>\r\n @if (showIconHelp) {\r\n <ius-popover [title]=\"iconHelpTitle\" [content]=\"iconHelpContent\" placement=\"top\" trigger=\"hover\">\r\n <span class=\"ius-tf__help-icon\" aria-label=\"Ayuda\" tabindex=\"0\">\r\n <span translate=\"no\" class=\"ius-icon\">help</span>\r\n </span>\r\n </ius-popover>\r\n }\r\n <span class=\"ius-tf__colon\">:</span>\r\n </label>\r\n}\r\n\r\n<!-- El popover ancla el panel al campo (bottom-end, piel ius-datepicker-pop) -->\r\n<ius-popover\r\n trigger=\"manual\"\r\n [open]=\"isOpen\"\r\n placement=\"bottom-end\"\r\n [offset]=\"6\"\r\n [showArrow]=\"false\"\r\n padding=\"none\"\r\n dismissable\r\n panelClass=\"ius-datepicker-pop\"\r\n (openChange)=\"onPopoverOpenChange($event)\"\r\n>\r\n <div\r\n [id]=\"baseId\"\r\n class=\"ius-tf__field\"\r\n [attr.aria-required]=\"required || null\"\r\n [attr.aria-invalid]=\"isError || null\"\r\n >\r\n @for (t of tokens; track $index) {\r\n @switch (t.kind) {\r\n @case ('divider') {\r\n <span class=\"ius-tf__divider\" aria-hidden=\"true\"></span>\r\n }\r\n @case ('gap') {\r\n <span class=\"ius-dp__gap\"></span>\r\n }\r\n @case ('arrow') {\r\n <span translate=\"no\" class=\"ius-icon ius-dp__arrow\" aria-hidden=\"true\">arrow_right_alt</span>\r\n }\r\n @case ('ampm') {\r\n <span class=\"ius-dp__ampm\">\r\n <button\r\n type=\"button\"\r\n tabindex=\"-1\"\r\n class=\"ius-dp__ampm-text\"\r\n aria-label=\"Cambiar AM/PM\"\r\n [disabled]=\"isDisabled\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"toggleAmpm()\"\r\n >{{ ampmVal }}</button>\r\n </span>\r\n }\r\n @default {\r\n <input\r\n #slotEl\r\n class=\"ius-dp__slot\"\r\n inputmode=\"numeric\"\r\n [value]=\"slotValue(t.id!)\"\r\n [placeholder]=\"t.ph!\"\r\n [disabled]=\"isDisabled\"\r\n [attr.maxlength]=\"t.max\"\r\n [attr.aria-label]=\"t.ph\"\r\n [style.width]=\"slotWidth(t)\"\r\n (input)=\"onSlotInput(t, $event)\"\r\n (keydown)=\"onSlotKeydown(t, $event)\"\r\n (focus)=\"onSlotFocus()\"\r\n (blur)=\"onSlotBlur()\"\r\n />\r\n }\r\n }\r\n }\r\n <button\r\n type=\"button\"\r\n class=\"ius-dp__cal\"\r\n tabindex=\"-1\"\r\n aria-label=\"Abrir calendario\"\r\n [attr.aria-expanded]=\"isOpen\"\r\n [disabled]=\"isDisabled\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"toggleOpen()\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\">calendar_month</span>\r\n </button>\r\n </div>\r\n\r\n <!-- Panel: Calendar (+ TimePanel en datetime) -->\r\n <ius-calendar\r\n iusPopoverContent\r\n [mode]=\"calMode\"\r\n [value]=\"calValue\"\r\n [viewDate]=\"view\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [isDateDisabled]=\"isDateDisabled\"\r\n [showToday]=\"false\"\r\n (valueChange)=\"onCalChange($event)\"\r\n (viewDateChange)=\"onViewChange($event)\"\r\n >\r\n @if (mode !== 'range') {\r\n <div iusCalendarFooter class=\"ius-dp__foot\">\r\n <button\r\n type=\"button\"\r\n class=\"ius-dp__today-btn\"\r\n (mousedown)=\"$event.preventDefault()\"\r\n (click)=\"onTodayFoot()\"\r\n >{{ todayFootLabel }}</button>\r\n </div>\r\n }\r\n @if (mode === 'datetime') {\r\n <ius-time-panel\r\n iusCalendarAside\r\n [value]=\"currentTime\"\r\n [minuteStep]=\"minuteStep\"\r\n [showHeader]=\"false\"\r\n fillHeight\r\n (valueChange)=\"onTimeChange($event)\"\r\n />\r\n }\r\n </ius-calendar>\r\n</ius-popover>\r\n\r\n@if (showHint) {\r\n <span class=\"ius-tf__hint\">{{ hint }}</span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{--_tf-bg: var(--ius-neutral-2);--_tf-border: transparent;--_tf-fg: var(--ius-text-primary);--_tf-placeholder: var(--ius-text-tertiary);--_tf-icon: var(--ius-text-secondary);--_tf-py: 9px;--_tf-px: 12px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-md);display:flex;flex-direction:column;gap:var(--ius-space-xs);font-family:var(--ius-font-body);width:fit-content;max-width:100%;min-width:0}:host([data-size=small]){--_tf-py: 6px;--_tf-px: 10px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-sm)}:host([data-size=large]){--_tf-py: 12px;--_tf-px: 14px;--_tf-fs: var(--ius-fs-lg);--_tf-lh: var(--ius-lh-lg);--_tf-icon-size: var(--ius-icon-lg)}@container style(--ius-control-size: small){:host(:not([data-size])){--_tf-py: 6px;--_tf-px: 10px;--_tf-fs: var(--ius-fs-base);--_tf-lh: var(--ius-lh-base);--_tf-icon-size: var(--ius-icon-sm)}}@container style(--ius-control-size: large){:host(:not([data-size])){--_tf-py: 12px;--_tf-px: 14px;--_tf-fs: var(--ius-fs-lg);--_tf-lh: var(--ius-lh-lg);--_tf-icon-size: var(--ius-icon-lg)}}.ius-tf__label{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-primary)}.ius-tf__required{width:5px;height:5px;border-radius:50%;background:var(--ius-danger-500);display:inline-block;margin-right:var(--ius-space-xxs)}.ius-tf__help-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--ius-neutral-7);cursor:help}.ius-tf__help-icon .ius-icon{font-size:var(--ius-icon-md);line-height:1}.ius-tf__colon{color:var(--ius-text-secondary)}.ius-tf__field{display:flex;align-items:center;gap:0;cursor:text;width:fit-content;padding:var(--_tf-py) var(--_tf-px);background:var(--_tf-bg);border:1px solid var(--_tf-border);border-radius:var(--ius-radius-md);transition:background-color var(--ius-duration-fast) var(--ius-ease-standard),border-color var(--ius-duration-fast) var(--ius-ease-standard),box-shadow var(--ius-duration-fast) var(--ius-ease-standard)}.ius-tf__field:hover,:host([data-force=hover]) .ius-tf__field{--_tf-bg: var(--ius-info-100);--_tf-border: transparent}:host([data-focused=true]) .ius-tf__field,:host([data-force=focused]) .ius-tf__field,.ius-tf__field:focus-within{--_tf-bg: var(--ius-info-100);--_tf-border: var(--ius-primary-500);box-shadow:var(--ius-focus-ring)}:host([data-error=true]) .ius-tf__field,:host([data-force=error]) .ius-tf__field{--_tf-bg: var(--ius-danger-100);--_tf-border: var(--ius-danger-700);box-shadow:none}:host([data-error=true][data-focused=true]) .ius-tf__field,:host([data-force=error]) .ius-tf__field{box-shadow:0 0 0 3px var(--ius-danger-200)}:host([data-disabled=true]) .ius-tf__field,:host([data-force=disabled]) .ius-tf__field{--_tf-bg: var(--ius-neutral-2);--_tf-border: transparent;--_tf-fg: var(--ius-text-disabled);--_tf-placeholder: var(--ius-text-disabled);--_tf-icon: var(--ius-text-disabled);box-shadow:none;cursor:not-allowed}:host([data-disabled=true]) .ius-tf__label,:host([data-force=disabled]) .ius-tf__label{color:var(--ius-text-disabled)}:host([data-disabled=true]) .ius-tf__required,:host([data-force=disabled]) .ius-tf__required{background:var(--ius-neutral-5)}.ius-tf__divider{width:1px;align-self:stretch;background:var(--ius-neutral-5);flex:0 0 auto;margin:var(--ius-space-xxs) var(--ius-space-xs)}:host([data-focused=true]) .ius-tf__divider,:host([data-force=focused]) .ius-tf__divider{background:var(--ius-primary-500)}:host([data-error=true]) .ius-tf__divider,:host([data-force=error]) .ius-tf__divider{background:var(--ius-danger-700)}:host([data-disabled=true]) .ius-tf__divider,:host([data-force=disabled]) .ius-tf__divider{background:var(--ius-neutral-4)}.ius-dp__slot{flex:0 0 auto;appearance:none;border:0;outline:0;background:transparent;font:inherit;font-size:var(--_tf-fs);line-height:var(--_tf-lh);color:var(--_tf-fg);text-align:center;padding:0;min-width:0}.ius-dp__slot::placeholder{color:var(--_tf-placeholder)}.ius-dp__slot:disabled{color:var(--ius-text-disabled);cursor:not-allowed}.ius-dp__arrow{font-size:var(--_tf-icon-size);color:var(--ius-text-tertiary);flex:0 0 auto;margin:0 var(--ius-space-xxs)}.ius-dp__gap{width:8px;flex:0 0 auto}.ius-dp__ampm{display:inline-flex;align-items:center;align-self:center;flex:0 0 auto}.ius-dp__ampm-text{appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--_tf-fs);line-height:var(--_tf-lh);color:var(--ius-text-primary);padding:0 var(--ius-space-xxs);font-variant-numeric:tabular-nums}.ius-dp__ampm-text:hover{color:var(--ius-primary-500)}.ius-dp__ampm-text:disabled{color:var(--ius-text-disabled);cursor:not-allowed}.ius-dp__cal{appearance:none;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;align-self:center;color:var(--_tf-icon);flex:0 0 auto;margin-left:auto;padding:0}:host([data-disabled=true]) .ius-dp__cal{cursor:not-allowed}.ius-dp__cal .ius-icon{font-size:calc(var(--_tf-icon-size) + 2px)}.ius-dp__foot{border-top:1px solid var(--ius-stroke);padding:var(--ius-space-xs);text-align:center}.ius-dp__today-btn{appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);color:var(--ius-text-primary);padding:var(--ius-space-xxs) var(--ius-space-sm);border-radius:var(--ius-radius-sm)}.ius-dp__today-btn:hover{color:var(--ius-primary-500)}.ius-tf__hint{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-medium);font-style:italic;color:var(--ius-text-secondary);letter-spacing:.02em}:host([data-error=true]) .ius-tf__hint,:host([data-force=error]) .ius-tf__hint{color:var(--ius-danger-700)}:host([data-disabled=true]) .ius-tf__hint,:host([data-force=disabled]) .ius-tf__hint{color:var(--ius-text-disabled)}\n"] }]
20275
20354
  }], propDecorators: { mode: [{
20276
20355
  type: Input
20277
20356
  }], label: [{