import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
import { CommonModule } from '@angular/common';
import { IassistIconComponent } from './iassist-icon.component';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
const COLOR_MAP = {
    primary: { base: 'var(--p-primary-500, #3b82f6)', light: 'var(--p-primary-300, #93c5fd)' },
    secondary: { base: 'var(--p-surface-500, #64748b)', light: 'var(--p-surface-300, #cbd5e1)' },
    success: { base: 'var(--p-green-500, #22c55e)', light: 'var(--p-green-300, #86efac)' },
    warn: { base: 'var(--p-yellow-500, #eab308)', light: 'var(--p-yellow-300, #fde047)' },
    danger: { base: 'var(--p-red-500, #ef4444)', light: 'var(--p-red-300, #fca5a5)' },
    info: { base: 'var(--p-blue-500, #3b82f6)', light: 'var(--p-blue-300, #93c5fd)' },
    senior: { base: '#0d9488', light: '#00c89a' },
};
const SENIOR_PATH_RIGHT = 'M174.719 518.932L258.161 439.782C264.546 433.762 269.614 426.603 273.072 418.719C276.53 410.834 278.31 402.378 278.31 393.838C278.31 385.298 276.53 376.843 273.072 368.958C269.614 361.073 264.546 353.915 258.161 347.895L174.719 269.199C168.45 263.304 163.474 256.289 160.077 248.56C156.681 240.83 154.933 232.539 154.933 224.165C154.933 215.792 156.681 207.501 160.077 199.771C163.474 192.042 168.45 185.027 174.719 179.132L303.718 301.496C329.517 326.089 344 359.371 344 394.066C344 428.76 329.517 462.043 303.718 486.635L174.719 609C168.45 603.105 163.474 596.09 160.077 588.36C156.681 580.631 154.933 572.34 154.933 563.966C154.933 555.592 156.681 547.301 160.077 539.572C163.474 531.842 168.45 524.828 174.719 518.932Z';
const SENIOR_PATH_LEFT = 'M173.76 94.0677L90.3189 173.218C83.9334 179.238 78.8659 186.397 75.408 194.281C71.95 202.166 70.1698 210.622 70.1698 219.162C70.1698 227.702 71.95 236.157 75.408 244.042C78.8659 251.927 83.9334 259.085 90.3189 265.105L173.76 344.256C180.03 350.151 185.006 357.166 188.402 364.895C191.798 372.625 193.547 380.916 193.547 389.289C193.547 397.663 191.798 405.954 188.402 413.684C185.006 421.413 180.03 428.428 173.76 434.323L44.2823 311.504C18.4832 286.911 4 253.629 4 218.934C4 184.24 18.4832 150.957 44.2823 126.365L173.76 4C186.213 16.0129 193.192 32.1861 193.192 49.0338C193.192 65.8815 186.213 82.0547 173.76 94.0677Z';
const SENIOR_PATH_FULL = SENIOR_PATH_RIGHT + ' ' + SENIOR_PATH_LEFT;
export class LoadingComponent {
    variant = 'senior-reveal';
    color = 'senior';
    size = 40;
    text = '';
    padding = '3rem 0';
    get colorBase() {
        return (COLOR_MAP[this.color] || COLOR_MAP['senior']).base;
    }
    get colorLight() {
        return (COLOR_MAP[this.color] || COLOR_MAP['senior']).light;
    }
    pathRight = SENIOR_PATH_RIGHT;
    pathLeft = SENIOR_PATH_LEFT;
    pathFull = SENIOR_PATH_FULL;
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LoadingComponent, isStandalone: true, selector: "sia-loading", inputs: { variant: "variant", color: "color", size: "size", text: "text", padding: "padding" }, ngImport: i0, template: `
    <div class="sia-loading" [style.padding]="padding"
      [class.sia-loading--skeleton]="variant === 'skeleton'"
      [style.--sia-c]="colorBase" [style.--sia-cl]="colorLight">

      <div class="sia-dots" *ngIf="variant === 'dots'">
        <span class="dot" *ngFor="let d of [0,1,2]" [style.--i]="d"></span>
      </div>

      <div class="sia-pulse" *ngIf="variant === 'pulse'" [style.--size]="size + 'px'">
        <span class="ring ring-1"></span>
        <span class="ring ring-2"></span>
        <span class="core"></span>
      </div>

      <div class="sia-bars" *ngIf="variant === 'bars'" [style.--h]="size + 'px'">
        <span class="bar" *ngFor="let b of [0,1,2,3,4]" [style.--i]="b"></span>
      </div>

      <div class="sia-orbit" *ngIf="variant === 'orbit'" [style.--size]="size + 'px'">
        <span class="orbit-track"></span>
        <span class="orbit-dot orbit-dot-1"></span>
        <span class="orbit-dot orbit-dot-2"></span>
      </div>

      <div class="sia-morph" *ngIf="variant === 'morph'" [style.--size]="size + 'px'">
        <span class="morph-shape"></span>
      </div>

      <div class="sia-wave" *ngIf="variant === 'wave'">
        <span class="wave-dot" *ngFor="let w of [0,1,2,3,4,5,6]" [style.--i]="w"></span>
      </div>

      <div class="sia-skeleton" *ngIf="variant === 'skeleton'">
        <div class="skel-row skel-row--header">
          <div class="skel-circle"></div>
          <div class="skel-lines">
            <div class="skel-line skel-line--md"></div>
            <div class="skel-line skel-line--sm"></div>
          </div>
        </div>
        <div class="skel-line skel-line--full"></div>
        <div class="skel-line skel-line--lg"></div>
        <div class="skel-line skel-line--md"></div>
      </div>

      <!-- ═══ SENIOR VARIANTS ═══ -->

      <!-- senior-draw: stroke draw animation -->
      <div class="sia-senior-draw" *ngIf="variant === 'senior-draw'" [style.--size]="size + 'px'">
        <svg [attr.width]="size" [attr.height]="size" viewBox="0 0 348 613" fill="none">
          <path class="sp sp-r" [attr.d]="pathRight"
            [attr.stroke]="colorBase" stroke-width="6" fill="none" stroke-linecap="round" stroke-linejoin="round" />
          <path class="sp sp-l" [attr.d]="pathLeft"
            [attr.stroke]="colorBase" stroke-width="6" fill="none" stroke-linecap="round" stroke-linejoin="round" />
        </svg>
      </div>

      <!-- senior-pulse: circle with logo, pulse + scale -->
      <div class="sia-senior-pulse" *ngIf="variant === 'senior-pulse'" [style.--size]="size + 'px'">
        <div class="sp-circle">
          <svg [attr.width]="size * 0.5" [attr.height]="size * 0.88" viewBox="0 0 348 613" fill="none">
            <path [attr.d]="pathFull" fill="white" />
          </svg>
        </div>
      </div>

      <!-- senior-glow: neon glow with breathing -->
      <div class="sia-senior-glow" *ngIf="variant === 'senior-glow'" [style.--size]="size + 'px'">
        <svg [attr.width]="size" [attr.height]="size" viewBox="0 0 348 613" fill="none">
          <path class="glow-shadow" [attr.d]="pathFull" [attr.stroke]="colorLight" stroke-width="12" fill="none" />
          <path class="glow-main" [attr.d]="pathFull" [attr.stroke]="colorBase" stroke-width="4" fill="none" />
        </svg>
      </div>

      <!-- senior-flip: 3D Y-axis flip -->
      <div class="sia-senior-flip" *ngIf="variant === 'senior-flip'" [style.--size]="size + 'px'">
        <svg [attr.width]="size" [attr.height]="size" viewBox="0 0 348 613" fill="none">
          <path [attr.d]="pathFull" [attr.fill]="colorBase" />
        </svg>
      </div>

      <!-- senior-bounce: alternating halves bounce -->
      <div class="sia-senior-bounce" *ngIf="variant === 'senior-bounce'" [style.--size]="size + 'px'">
        <svg [attr.width]="size" [attr.height]="size" viewBox="0 0 348 613" fill="none">
          <path class="bounce-r" [attr.d]="pathRight" [attr.fill]="colorBase" />
          <path class="bounce-l" [attr.d]="pathLeft" [attr.fill]="colorLight" />
        </svg>
      </div>

      <!-- senior-reveal: tennis ball bouncing with Senior logo inside -->
      <div class="sia-senior-reveal" *ngIf="variant === 'senior-reveal'" [style.--size]="size * 1.3 + 'px'">
        <!-- Tennis ball with Senior logo inside -->
        <svg class="sr-ball" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
          <defs>
            <clipPath id="sr-clip"><circle cx="50" cy="50" r="48" /></clipPath>
          </defs>
          <circle cx="50" cy="50" r="48" [attr.fill]="colorBase" />
          <g clip-path="url(#sr-clip)">
            <!-- top-right seam curve -->
            <path d="M38 -2 C58 18, 62 38, 102 48" stroke="white" stroke-width="9" fill="none" stroke-linecap="round" opacity="0.15" />
            <path d="M38 -2 C58 18, 62 38, 102 48" stroke="white" stroke-width="4" fill="none" stroke-linecap="round" opacity="0.8" />
            <!-- bottom-left seam curve -->
            <path d="M-2 52 C38 62, 42 82, 62 102" stroke="white" stroke-width="9" fill="none" stroke-linecap="round" opacity="0.15" />
            <path d="M-2 52 C38 62, 42 82, 62 102" stroke="white" stroke-width="4" fill="none" stroke-linecap="round" opacity="0.8" />
            <g transform="translate(32.6, 19.4) scale(0.10)">
              <path [attr.d]="pathFull" fill="white" opacity="0.8" />
            </g>
          </g>
        </svg>
        <div class="sr-shadow"></div>
      </div>

      <!-- ═══ IASSIST VARIANTS ═══ -->

      <!-- iassist: simple breathing scale -->
      <div class="sia-iassist" *ngIf="variant === 'iassist'" [style.--size]="size + 'px'">
        <sia-iassist-icon [size]="size"></sia-iassist-icon>
      </div>

      <!-- iassist-pulse: pulse rings + icon -->
      <div class="sia-iassist-pulse" *ngIf="variant === 'iassist-pulse'" [style.--size]="size + 'px'">
        <span class="ip-ring ip-ring-1"></span>
        <span class="ip-ring ip-ring-2"></span>
        <sia-iassist-icon [size]="size * 0.6" class="ip-icon"></sia-iassist-icon>
      </div>

      <!-- iassist-orbit: icon with orbiting dots -->
      <div class="sia-iassist-orbit" *ngIf="variant === 'iassist-orbit'" [style.--size]="size + 'px'">
        <sia-iassist-icon [size]="size * 0.5" class="io-icon"></sia-iassist-icon>
        <span class="io-dot io-dot-1"></span>
        <span class="io-dot io-dot-2"></span>
      </div>

      <span class="sia-loading-text" *ngIf="text && variant !== 'skeleton'">{{ text }}</span>
    </div>
  `, isInline: true, styles: [":host{display:block}.sia-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 0}.sia-loading--skeleton{align-items:stretch}.sia-loading-text{color:var(--p-text-muted-color, #94a3b8);font-size:.8rem;letter-spacing:.02em}.sia-dots{display:flex;gap:6px;align-items:center}.sia-dots .dot{width:10px;height:10px;border-radius:50%;background:var(--sia-c);animation:sia-dot-bounce 1.2s calc(var(--i) * .15s) ease-in-out infinite}@keyframes sia-dot-bounce{0%,60%,to{transform:translateY(0) scale(1);opacity:.4}30%{transform:translateY(-12px) scale(1.15);opacity:1}}.sia-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-pulse .ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-pulse .ring-1{animation:sia-ripple 1.8s 0s ease-out infinite}.sia-pulse .ring-2{animation:sia-ripple 1.8s .6s ease-out infinite}.sia-pulse .core{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--sia-c);animation:sia-core-pulse 1.8s ease-in-out infinite}@keyframes sia-ripple{0%{transform:scale(.3);opacity:.8}to{transform:scale(1);opacity:0}}@keyframes sia-core-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.sia-bars{display:flex;align-items:center;gap:3px;height:var(--h, 40px)}.sia-bars .bar{width:4px;height:40%;border-radius:2px;background:var(--sia-c);animation:sia-bar-wave 1s calc(var(--i) * .1s) ease-in-out infinite}@keyframes sia-bar-wave{0%,to{height:20%;opacity:.4}50%{height:100%;opacity:1}}.sia-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-orbit .orbit-track{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--p-surface-200, #e2e8f0)}.sia-orbit .orbit-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-orbit .orbit-dot-1{background:var(--sia-c);animation:sia-orbit-spin 1.4s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-orbit .orbit-dot-2{background:var(--sia-cl);animation:sia-orbit-spin 1.4s .7s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-orbit-spin{to{transform:rotate(360deg)}}.sia-morph{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-morph .morph-shape{width:70%;height:70%;background:var(--sia-c);animation:sia-morph 2.4s ease-in-out infinite}@keyframes sia-morph{0%{border-radius:50%;transform:rotate(0) scale(1)}25%{border-radius:30% 70% 50% 50%;transform:rotate(90deg) scale(.85)}50%{border-radius:50% 30% 70%;transform:rotate(180deg) scale(1)}75%{border-radius:70% 50% 30% 70%;transform:rotate(270deg) scale(.85)}to{border-radius:50%;transform:rotate(360deg) scale(1)}}.sia-wave{display:flex;align-items:center;gap:3px}.sia-wave .wave-dot{width:6px;height:6px;border-radius:50%;background:var(--sia-c);animation:sia-wave-flow 1.6s calc(var(--i) * .12s) ease-in-out infinite}@keyframes sia-wave-flow{0%,to{transform:translateY(0) scale(.6);opacity:.3}50%{transform:translateY(-10px) scale(1);opacity:1}}.sia-skeleton{display:flex;flex-direction:column;gap:.75rem;padding:0 1rem;width:100%}.skel-row{display:flex;align-items:center;gap:.75rem}.skel-row--header{margin-bottom:.25rem}.skel-circle{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-lines{flex:1;display:flex;flex-direction:column;gap:.4rem}.skel-line{height:10px;border-radius:4px;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-line--full{width:100%;animation-delay:.1s}.skel-line--lg{width:75%;animation-delay:.2s}.skel-line--md{width:55%;animation-delay:.3s}.skel-line--sm{width:35%;animation-delay:.15s}@keyframes sia-shimmer{0%,to{opacity:.4}50%{opacity:1}}.sia-senior-draw{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-draw .sp{stroke-dasharray:1200;stroke-dashoffset:1200}.sia-senior-draw .sp-r{animation:sia-sd-r 2s ease-in-out infinite}.sia-senior-draw .sp-l{animation:sia-sd-l 2s ease-in-out infinite}@keyframes sia-sd-r{0%{stroke-dashoffset:1200;opacity:.2}35%{stroke-dashoffset:0;opacity:1}60%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}@keyframes sia-sd-l{0%{stroke-dashoffset:1200;opacity:.2}15%{stroke-dashoffset:1200;opacity:.2}50%{stroke-dashoffset:0;opacity:1}65%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}.sia-senior-pulse{display:flex;align-items:center;justify-content:center}.sia-senior-pulse .sp-circle{width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;background-color:var(--sia-c);display:flex;align-items:center;justify-content:center;position:relative;animation:sia-sp-pulse 1.4s ease-out infinite,sia-sp-scale 1.4s ease-in-out infinite}@keyframes sia-sp-pulse{0%{box-shadow:0 0 0 0 var(--sia-cl)}70%{box-shadow:0 0 0 20px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes sia-sp-scale{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.sia-senior-glow{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-glow .glow-shadow{opacity:.3;filter:blur(4px);animation:sia-sg-breathe 2s ease-in-out infinite}.sia-senior-glow .glow-main{animation:sia-sg-breathe 2s ease-in-out infinite}@keyframes sia-sg-breathe{0%,to{opacity:.4;filter:drop-shadow(0 0 2px var(--sia-cl))}50%{opacity:1;filter:drop-shadow(0 0 10px var(--sia-cl)) drop-shadow(0 0 20px var(--sia-c))}}.sia-senior-flip{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;perspective:300px}.sia-senior-flip svg{animation:sia-sf-flip 2s ease-in-out infinite;transform-style:preserve-3d}@keyframes sia-sf-flip{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.sia-senior-bounce{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-bounce .bounce-r{animation:sia-sb-r 1.2s ease-in-out infinite;transform-origin:center center}.sia-senior-bounce .bounce-l{animation:sia-sb-l 1.2s ease-in-out infinite;transform-origin:center center}@keyframes sia-sb-r{0%,to{transform:translateY(0) scale(1);opacity:.7}50%{transform:translateY(-8px) scale(1.05);opacity:1}}@keyframes sia-sb-l{0%,to{transform:translateY(-8px) scale(1.05);opacity:1}50%{transform:translateY(0) scale(1);opacity:.7}}.sia-senior-reveal{width:var(--size, 64px);height:calc(var(--size, 64px) * 1.4);position:relative;display:flex;align-items:center;justify-content:center}.sia-senior-reveal .sr-ball{position:absolute;width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;overflow:hidden;animation:sia-sr-bounce 1.2s ease-in-out infinite}.sia-senior-reveal .sr-shadow{position:absolute;bottom:0;width:60%;height:6px;border-radius:50%;background:#0000001f;animation:sia-sr-shadow 1.2s ease-in-out infinite}@keyframes sia-sr-bounce{0%,to{transform:translateY(20%) scaleX(1.06) scaleY(.94)}50%{transform:translateY(-25%) scaleX(.96) scaleY(1.04)}}@keyframes sia-sr-shadow{0%,to{transform:scaleX(1);opacity:.12}50%{transform:scaleX(.6);opacity:.06}}.sia-iassist{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;animation:sia-ia-breathe 2s ease-in-out infinite}@keyframes sia-ia-breathe{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.1);opacity:1}}.sia-iassist-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-iassist-pulse .ip-ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-iassist-pulse .ip-ring-1{animation:sia-ip-ripple 2s 0s ease-out infinite}.sia-iassist-pulse .ip-ring-2{animation:sia-ip-ripple 2s .7s ease-out infinite}.sia-iassist-pulse .ip-icon{position:relative;z-index:1}@keyframes sia-ip-ripple{0%{transform:scale(.5);opacity:.8}to{transform:scale(1.2);opacity:0}}.sia-iassist-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-iassist-orbit .io-icon{position:relative;z-index:1}.sia-iassist-orbit .io-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-iassist-orbit .io-dot-1{background:var(--sia-c);animation:sia-io-spin 1.6s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-iassist-orbit .io-dot-2{background:var(--sia-cl);animation:sia-io-spin 1.6s .8s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-io-spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IassistIconComponent, selector: "sia-iassist-icon", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingComponent, decorators: [{
            type: Component,
            args: [{ selector: 'sia-loading', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, IassistIconComponent], template: `
    <div class="sia-loading" [style.padding]="padding"
      [class.sia-loading--skeleton]="variant === 'skeleton'"
      [style.--sia-c]="colorBase" [style.--sia-cl]="colorLight">

      <div class="sia-dots" *ngIf="variant === 'dots'">
        <span class="dot" *ngFor="let d of [0,1,2]" [style.--i]="d"></span>
      </div>

      <div class="sia-pulse" *ngIf="variant === 'pulse'" [style.--size]="size + 'px'">
        <span class="ring ring-1"></span>
        <span class="ring ring-2"></span>
        <span class="core"></span>
      </div>

      <div class="sia-bars" *ngIf="variant === 'bars'" [style.--h]="size + 'px'">
        <span class="bar" *ngFor="let b of [0,1,2,3,4]" [style.--i]="b"></span>
      </div>

      <div class="sia-orbit" *ngIf="variant === 'orbit'" [style.--size]="size + 'px'">
        <span class="orbit-track"></span>
        <span class="orbit-dot orbit-dot-1"></span>
        <span class="orbit-dot orbit-dot-2"></span>
      </div>

      <div class="sia-morph" *ngIf="variant === 'morph'" [style.--size]="size + 'px'">
        <span class="morph-shape"></span>
      </div>

      <div class="sia-wave" *ngIf="variant === 'wave'">
        <span class="wave-dot" *ngFor="let w of [0,1,2,3,4,5,6]" [style.--i]="w"></span>
      </div>

      <div class="sia-skeleton" *ngIf="variant === 'skeleton'">
        <div class="skel-row skel-row--header">
          <div class="skel-circle"></div>
          <div class="skel-lines">
            <div class="skel-line skel-line--md"></div>
            <div class="skel-line skel-line--sm"></div>
          </div>
        </div>
        <div class="skel-line skel-line--full"></div>
        <div class="skel-line skel-line--lg"></div>
        <div class="skel-line skel-line--md"></div>
      </div>

      <!-- ═══ SENIOR VARIANTS ═══ -->

      <!-- senior-draw: stroke draw animation -->
      <div class="sia-senior-draw" *ngIf="variant === 'senior-draw'" [style.--size]="size + 'px'">
        <svg [attr.width]="size" [attr.height]="size" viewBox="0 0 348 613" fill="none">
          <path class="sp sp-r" [attr.d]="pathRight"
            [attr.stroke]="colorBase" stroke-width="6" fill="none" stroke-linecap="round" stroke-linejoin="round" />
          <path class="sp sp-l" [attr.d]="pathLeft"
            [attr.stroke]="colorBase" stroke-width="6" fill="none" stroke-linecap="round" stroke-linejoin="round" />
        </svg>
      </div>

      <!-- senior-pulse: circle with logo, pulse + scale -->
      <div class="sia-senior-pulse" *ngIf="variant === 'senior-pulse'" [style.--size]="size + 'px'">
        <div class="sp-circle">
          <svg [attr.width]="size * 0.5" [attr.height]="size * 0.88" viewBox="0 0 348 613" fill="none">
            <path [attr.d]="pathFull" fill="white" />
          </svg>
        </div>
      </div>

      <!-- senior-glow: neon glow with breathing -->
      <div class="sia-senior-glow" *ngIf="variant === 'senior-glow'" [style.--size]="size + 'px'">
        <svg [attr.width]="size" [attr.height]="size" viewBox="0 0 348 613" fill="none">
          <path class="glow-shadow" [attr.d]="pathFull" [attr.stroke]="colorLight" stroke-width="12" fill="none" />
          <path class="glow-main" [attr.d]="pathFull" [attr.stroke]="colorBase" stroke-width="4" fill="none" />
        </svg>
      </div>

      <!-- senior-flip: 3D Y-axis flip -->
      <div class="sia-senior-flip" *ngIf="variant === 'senior-flip'" [style.--size]="size + 'px'">
        <svg [attr.width]="size" [attr.height]="size" viewBox="0 0 348 613" fill="none">
          <path [attr.d]="pathFull" [attr.fill]="colorBase" />
        </svg>
      </div>

      <!-- senior-bounce: alternating halves bounce -->
      <div class="sia-senior-bounce" *ngIf="variant === 'senior-bounce'" [style.--size]="size + 'px'">
        <svg [attr.width]="size" [attr.height]="size" viewBox="0 0 348 613" fill="none">
          <path class="bounce-r" [attr.d]="pathRight" [attr.fill]="colorBase" />
          <path class="bounce-l" [attr.d]="pathLeft" [attr.fill]="colorLight" />
        </svg>
      </div>

      <!-- senior-reveal: tennis ball bouncing with Senior logo inside -->
      <div class="sia-senior-reveal" *ngIf="variant === 'senior-reveal'" [style.--size]="size * 1.3 + 'px'">
        <!-- Tennis ball with Senior logo inside -->
        <svg class="sr-ball" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
          <defs>
            <clipPath id="sr-clip"><circle cx="50" cy="50" r="48" /></clipPath>
          </defs>
          <circle cx="50" cy="50" r="48" [attr.fill]="colorBase" />
          <g clip-path="url(#sr-clip)">
            <!-- top-right seam curve -->
            <path d="M38 -2 C58 18, 62 38, 102 48" stroke="white" stroke-width="9" fill="none" stroke-linecap="round" opacity="0.15" />
            <path d="M38 -2 C58 18, 62 38, 102 48" stroke="white" stroke-width="4" fill="none" stroke-linecap="round" opacity="0.8" />
            <!-- bottom-left seam curve -->
            <path d="M-2 52 C38 62, 42 82, 62 102" stroke="white" stroke-width="9" fill="none" stroke-linecap="round" opacity="0.15" />
            <path d="M-2 52 C38 62, 42 82, 62 102" stroke="white" stroke-width="4" fill="none" stroke-linecap="round" opacity="0.8" />
            <g transform="translate(32.6, 19.4) scale(0.10)">
              <path [attr.d]="pathFull" fill="white" opacity="0.8" />
            </g>
          </g>
        </svg>
        <div class="sr-shadow"></div>
      </div>

      <!-- ═══ IASSIST VARIANTS ═══ -->

      <!-- iassist: simple breathing scale -->
      <div class="sia-iassist" *ngIf="variant === 'iassist'" [style.--size]="size + 'px'">
        <sia-iassist-icon [size]="size"></sia-iassist-icon>
      </div>

      <!-- iassist-pulse: pulse rings + icon -->
      <div class="sia-iassist-pulse" *ngIf="variant === 'iassist-pulse'" [style.--size]="size + 'px'">
        <span class="ip-ring ip-ring-1"></span>
        <span class="ip-ring ip-ring-2"></span>
        <sia-iassist-icon [size]="size * 0.6" class="ip-icon"></sia-iassist-icon>
      </div>

      <!-- iassist-orbit: icon with orbiting dots -->
      <div class="sia-iassist-orbit" *ngIf="variant === 'iassist-orbit'" [style.--size]="size + 'px'">
        <sia-iassist-icon [size]="size * 0.5" class="io-icon"></sia-iassist-icon>
        <span class="io-dot io-dot-1"></span>
        <span class="io-dot io-dot-2"></span>
      </div>

      <span class="sia-loading-text" *ngIf="text && variant !== 'skeleton'">{{ text }}</span>
    </div>
  `, styles: [":host{display:block}.sia-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 0}.sia-loading--skeleton{align-items:stretch}.sia-loading-text{color:var(--p-text-muted-color, #94a3b8);font-size:.8rem;letter-spacing:.02em}.sia-dots{display:flex;gap:6px;align-items:center}.sia-dots .dot{width:10px;height:10px;border-radius:50%;background:var(--sia-c);animation:sia-dot-bounce 1.2s calc(var(--i) * .15s) ease-in-out infinite}@keyframes sia-dot-bounce{0%,60%,to{transform:translateY(0) scale(1);opacity:.4}30%{transform:translateY(-12px) scale(1.15);opacity:1}}.sia-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-pulse .ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-pulse .ring-1{animation:sia-ripple 1.8s 0s ease-out infinite}.sia-pulse .ring-2{animation:sia-ripple 1.8s .6s ease-out infinite}.sia-pulse .core{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--sia-c);animation:sia-core-pulse 1.8s ease-in-out infinite}@keyframes sia-ripple{0%{transform:scale(.3);opacity:.8}to{transform:scale(1);opacity:0}}@keyframes sia-core-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.sia-bars{display:flex;align-items:center;gap:3px;height:var(--h, 40px)}.sia-bars .bar{width:4px;height:40%;border-radius:2px;background:var(--sia-c);animation:sia-bar-wave 1s calc(var(--i) * .1s) ease-in-out infinite}@keyframes sia-bar-wave{0%,to{height:20%;opacity:.4}50%{height:100%;opacity:1}}.sia-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-orbit .orbit-track{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--p-surface-200, #e2e8f0)}.sia-orbit .orbit-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-orbit .orbit-dot-1{background:var(--sia-c);animation:sia-orbit-spin 1.4s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-orbit .orbit-dot-2{background:var(--sia-cl);animation:sia-orbit-spin 1.4s .7s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-orbit-spin{to{transform:rotate(360deg)}}.sia-morph{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-morph .morph-shape{width:70%;height:70%;background:var(--sia-c);animation:sia-morph 2.4s ease-in-out infinite}@keyframes sia-morph{0%{border-radius:50%;transform:rotate(0) scale(1)}25%{border-radius:30% 70% 50% 50%;transform:rotate(90deg) scale(.85)}50%{border-radius:50% 30% 70%;transform:rotate(180deg) scale(1)}75%{border-radius:70% 50% 30% 70%;transform:rotate(270deg) scale(.85)}to{border-radius:50%;transform:rotate(360deg) scale(1)}}.sia-wave{display:flex;align-items:center;gap:3px}.sia-wave .wave-dot{width:6px;height:6px;border-radius:50%;background:var(--sia-c);animation:sia-wave-flow 1.6s calc(var(--i) * .12s) ease-in-out infinite}@keyframes sia-wave-flow{0%,to{transform:translateY(0) scale(.6);opacity:.3}50%{transform:translateY(-10px) scale(1);opacity:1}}.sia-skeleton{display:flex;flex-direction:column;gap:.75rem;padding:0 1rem;width:100%}.skel-row{display:flex;align-items:center;gap:.75rem}.skel-row--header{margin-bottom:.25rem}.skel-circle{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-lines{flex:1;display:flex;flex-direction:column;gap:.4rem}.skel-line{height:10px;border-radius:4px;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-line--full{width:100%;animation-delay:.1s}.skel-line--lg{width:75%;animation-delay:.2s}.skel-line--md{width:55%;animation-delay:.3s}.skel-line--sm{width:35%;animation-delay:.15s}@keyframes sia-shimmer{0%,to{opacity:.4}50%{opacity:1}}.sia-senior-draw{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-draw .sp{stroke-dasharray:1200;stroke-dashoffset:1200}.sia-senior-draw .sp-r{animation:sia-sd-r 2s ease-in-out infinite}.sia-senior-draw .sp-l{animation:sia-sd-l 2s ease-in-out infinite}@keyframes sia-sd-r{0%{stroke-dashoffset:1200;opacity:.2}35%{stroke-dashoffset:0;opacity:1}60%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}@keyframes sia-sd-l{0%{stroke-dashoffset:1200;opacity:.2}15%{stroke-dashoffset:1200;opacity:.2}50%{stroke-dashoffset:0;opacity:1}65%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}.sia-senior-pulse{display:flex;align-items:center;justify-content:center}.sia-senior-pulse .sp-circle{width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;background-color:var(--sia-c);display:flex;align-items:center;justify-content:center;position:relative;animation:sia-sp-pulse 1.4s ease-out infinite,sia-sp-scale 1.4s ease-in-out infinite}@keyframes sia-sp-pulse{0%{box-shadow:0 0 0 0 var(--sia-cl)}70%{box-shadow:0 0 0 20px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes sia-sp-scale{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.sia-senior-glow{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-glow .glow-shadow{opacity:.3;filter:blur(4px);animation:sia-sg-breathe 2s ease-in-out infinite}.sia-senior-glow .glow-main{animation:sia-sg-breathe 2s ease-in-out infinite}@keyframes sia-sg-breathe{0%,to{opacity:.4;filter:drop-shadow(0 0 2px var(--sia-cl))}50%{opacity:1;filter:drop-shadow(0 0 10px var(--sia-cl)) drop-shadow(0 0 20px var(--sia-c))}}.sia-senior-flip{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;perspective:300px}.sia-senior-flip svg{animation:sia-sf-flip 2s ease-in-out infinite;transform-style:preserve-3d}@keyframes sia-sf-flip{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.sia-senior-bounce{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-bounce .bounce-r{animation:sia-sb-r 1.2s ease-in-out infinite;transform-origin:center center}.sia-senior-bounce .bounce-l{animation:sia-sb-l 1.2s ease-in-out infinite;transform-origin:center center}@keyframes sia-sb-r{0%,to{transform:translateY(0) scale(1);opacity:.7}50%{transform:translateY(-8px) scale(1.05);opacity:1}}@keyframes sia-sb-l{0%,to{transform:translateY(-8px) scale(1.05);opacity:1}50%{transform:translateY(0) scale(1);opacity:.7}}.sia-senior-reveal{width:var(--size, 64px);height:calc(var(--size, 64px) * 1.4);position:relative;display:flex;align-items:center;justify-content:center}.sia-senior-reveal .sr-ball{position:absolute;width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;overflow:hidden;animation:sia-sr-bounce 1.2s ease-in-out infinite}.sia-senior-reveal .sr-shadow{position:absolute;bottom:0;width:60%;height:6px;border-radius:50%;background:#0000001f;animation:sia-sr-shadow 1.2s ease-in-out infinite}@keyframes sia-sr-bounce{0%,to{transform:translateY(20%) scaleX(1.06) scaleY(.94)}50%{transform:translateY(-25%) scaleX(.96) scaleY(1.04)}}@keyframes sia-sr-shadow{0%,to{transform:scaleX(1);opacity:.12}50%{transform:scaleX(.6);opacity:.06}}.sia-iassist{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;animation:sia-ia-breathe 2s ease-in-out infinite}@keyframes sia-ia-breathe{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.1);opacity:1}}.sia-iassist-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-iassist-pulse .ip-ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-iassist-pulse .ip-ring-1{animation:sia-ip-ripple 2s 0s ease-out infinite}.sia-iassist-pulse .ip-ring-2{animation:sia-ip-ripple 2s .7s ease-out infinite}.sia-iassist-pulse .ip-icon{position:relative;z-index:1}@keyframes sia-ip-ripple{0%{transform:scale(.5);opacity:.8}to{transform:scale(1.2);opacity:0}}.sia-iassist-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-iassist-orbit .io-icon{position:relative;z-index:1}.sia-iassist-orbit .io-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-iassist-orbit .io-dot-1{background:var(--sia-c);animation:sia-io-spin 1.6s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-iassist-orbit .io-dot-2{background:var(--sia-cl);animation:sia-io-spin 1.6s .8s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-io-spin{to{transform:rotate(360deg)}}\n"] }]
        }], propDecorators: { variant: [{
                type: Input
            }], color: [{
                type: Input
            }], size: [{
                type: Input
            }], text: [{
                type: Input
            }], padding: [{
                type: Input
            }] } });
//# sourceMappingURL=data:application/json;base64, 