{
  "$schema": "https://uipkge.dev/schema/registry-item.json",
  "name": "social-proof-stat-counter-stream",
  "title": "Social Proof Stat Counter Stream",
  "type": "registry:block",
  "files": [
    {
      "path": "packages/registry-angular/blocks/social-proof-stat-counter-stream/social-proof-stat-counter-stream.component.ts",
      "content": "// Live infrastructure telemetry and animated metric counter stream with real-time\n// global edge round-trip latency ticker. Port of the Vue/React block 1:1.\nimport { ChangeDetectionStrategy, Component, DestroyRef, Input, OnInit, inject, signal } from '@angular/core'\nimport { Activity, ArrowRight, CheckCircle2, Cpu, Globe2, LucideAngularModule, Radio, Server } from 'lucide-angular'\nimport { cn } from '@/lib/utils'\nimport { UiCardComponent, UiCardContentComponent } from '@/ui/card/card.component'\n\nexport interface RegionLatency {\n  city: string\n  latencyMs: number\n}\n\nconst initialLatencies: RegionLatency[] = [\n  { city: 'San Jose (SJC)', latencyMs: 8 },\n  { city: 'Frankfurt (FRA)', latencyMs: 11 },\n  { city: 'Tokyo (NRT)', latencyMs: 9 },\n  { city: 'Singapore (SIN)', latencyMs: 12 },\n  { city: 'London (LHR)', latencyMs: 10 },\n  { city: 'Sydney (SYD)', latencyMs: 14 },\n]\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.Eager,\n  selector: 'ui-social-proof-stat-counter-stream, [ui-social-proof-stat-counter-stream]',\n  standalone: true,\n  // React renders the root <section> itself: the host stays out of layout and `class` goes to the root.\n  host: { '[attr.class]': '\"contents\"' },\n  imports: [LucideAngularModule, UiCardComponent, UiCardContentComponent],\n  template: `\n    <section data-slot=\"social-proof-stat-counter-stream\" [class]=\"rootClass\">\n      <div class=\"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8\">\n        <!-- Section Header -->\n        <div class=\"mx-auto max-w-3xl space-y-4 text-center\">\n          <a\n            href=\"#telemetry-stream\"\n            class=\"group border-border/80 bg-secondary/60 hover:bg-secondary text-foreground inline-flex items-center gap-2 rounded-full border px-3.5 py-1 text-xs font-medium shadow-2xs transition-colors\"\n          >\n            <lucide-icon [img]=\"Radio\" class=\"text-primary size-3.5 animate-pulse\" />\n            <span>Live Infrastructure Telemetry</span>\n            <lucide-icon\n              [img]=\"ArrowRight\"\n              class=\"text-muted-foreground size-3 transition-transform group-hover:translate-x-0.5\"\n            />\n          </a>\n\n          <h2 class=\"text-foreground text-3xl font-bold tracking-tight sm:text-4xl\">{{ title }}</h2>\n\n          <p class=\"text-muted-foreground text-base sm:text-lg\">{{ description }}</p>\n        </div>\n\n        <!-- KPI Stat Counter Grid -->\n        <div class=\"mt-12 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n          <div ui-card class=\"border-border bg-card shadow-xs\">\n            <div ui-card-content class=\"space-y-2 p-6\">\n              <div class=\"text-muted-foreground flex items-center justify-between text-xs\">\n                <span class=\"font-medium\">Total Edge Invocations</span>\n                <lucide-icon [img]=\"Activity\" class=\"text-primary size-4\" />\n              </div>\n              <div class=\"text-foreground font-mono text-3xl font-bold tracking-tight\">\n                {{ invocations().toLocaleString() }}\n              </div>\n              <div class=\"text-success flex items-center gap-1 text-xs font-medium\">\n                <span class=\"bg-success size-1.5 rounded-full\"></span>\n                <span>Streaming live</span>\n              </div>\n            </div>\n          </div>\n\n          <div ui-card class=\"border-border bg-card shadow-xs\">\n            <div ui-card-content class=\"space-y-2 p-6\">\n              <div class=\"text-muted-foreground flex items-center justify-between text-xs\">\n                <span class=\"font-medium\">Direct Registry Pulls</span>\n                <lucide-icon [img]=\"Cpu\" class=\"text-primary size-4\" />\n              </div>\n              <div class=\"text-foreground font-mono text-3xl font-bold tracking-tight\">\n                {{ activeClones().toLocaleString() }}+\n              </div>\n              <div class=\"text-muted-foreground text-xs\">Across shadcn & shadcn-vue</div>\n            </div>\n          </div>\n\n          <div ui-card class=\"border-border bg-card shadow-xs\">\n            <div ui-card-content class=\"space-y-2 p-6\">\n              <div class=\"text-muted-foreground flex items-center justify-between text-xs\">\n                <span class=\"font-medium\">Dual-Framework Parity</span>\n                <lucide-icon [img]=\"CheckCircle2\" class=\"text-success size-4\" />\n              </div>\n              <div class=\"text-foreground font-mono text-3xl font-bold tracking-tight\">{{ parityPercentage() }}%</div>\n              <div class=\"text-success text-xs font-medium\">1:1 Vue & React token sync</div>\n            </div>\n          </div>\n\n          <div ui-card class=\"border-border bg-card shadow-xs\">\n            <div ui-card-content class=\"space-y-2 p-6\">\n              <div class=\"text-muted-foreground flex items-center justify-between text-xs\">\n                <span class=\"font-medium\">Global Edge Locations</span>\n                <lucide-icon [img]=\"Globe2\" class=\"text-primary size-4\" />\n              </div>\n              <div class=\"text-foreground font-mono text-3xl font-bold tracking-tight\">\n                {{ edgeRegionsCount() }} PoPs\n              </div>\n              <div class=\"text-muted-foreground text-xs\">Anycast routed worldwide</div>\n            </div>\n          </div>\n        </div>\n\n        <!-- Regional Latency Live Ticker Band -->\n        <div class=\"border-border bg-muted/30 mt-8 rounded-xl border p-4\">\n          <div class=\"flex flex-wrap items-center justify-between gap-4\">\n            <div class=\"text-muted-foreground flex items-center gap-2 text-xs font-bold tracking-wider uppercase\">\n              <lucide-icon [img]=\"Server\" class=\"text-primary size-4\" />\n              <span>Real-time Global Edge Round-Trip Latency</span>\n            </div>\n\n            <div class=\"flex flex-wrap items-center gap-3\">\n              @for (reg of latencies(); track reg.city) {\n                <div\n                  class=\"border-border bg-background inline-flex items-center gap-1.5 rounded-lg border px-2.5 py-1 font-mono text-xs\"\n                >\n                  <span class=\"text-muted-foreground\">{{ reg.city }}:</span>\n                  <span class=\"text-success font-bold\">{{ reg.latencyMs }}ms</span>\n                </div>\n              }\n            </div>\n          </div>\n        </div>\n      </div>\n    </section>\n  `,\n})\nexport class UiSocialProofStatCounterStreamComponent implements OnInit {\n  protected readonly Activity = Activity\n  protected readonly ArrowRight = ArrowRight\n  protected readonly CheckCircle2 = CheckCircle2\n  protected readonly Cpu = Cpu\n  protected readonly Globe2 = Globe2\n  protected readonly Radio = Radio\n  protected readonly Server = Server\n\n  @Input() title = 'Real-time telemetry stream across global edge infrastructure.'\n  @Input()\n  description =\n    'Continuously aggregated metrics verifying zero-latency invocation throughput and multi-region synchronization.'\n  @Input('class') className?: string\n\n  readonly invocations = signal(48291040)\n  readonly activeClones = signal(128450)\n  readonly parityPercentage = signal(100)\n  readonly edgeRegionsCount = signal(36)\n  readonly latencies = signal<RegionLatency[]>(initialLatencies.map((l) => ({ ...l })))\n\n  private timer: ReturnType<typeof setInterval> | undefined\n\n  constructor() {\n    inject(DestroyRef).onDestroy(() => clearInterval(this.timer))\n  }\n\n  ngOnInit(): void {\n    this.timer = setInterval(() => this.tick(), 1200)\n  }\n\n  tick(): void {\n    this.invocations.update((v) => v + Math.floor(Math.random() * 12) + 3)\n    this.latencies.update((prev) => {\n      const next = prev.map((l) => ({ ...l }))\n      const idx = Math.floor(Math.random() * next.length)\n      const current = next[idx]!.latencyMs\n      const delta = Math.random() > 0.5 ? 1 : -1\n      next[idx]!.latencyMs = Math.max(5, Math.min(22, current + delta))\n      return next\n    })\n  }\n\n  get rootClass(): string {\n    return cn('bg-background relative overflow-hidden py-16 sm:py-24', this.className)\n  }\n}\n",
      "type": "registry:block",
      "target": "~/src/app/components/blocks/social-proof-stat-counter-stream/social-proof-stat-counter-stream.component.ts"
    },
    {
      "path": "packages/registry-angular/blocks/social-proof-stat-counter-stream/index.ts",
      "content": "export {\n  UiSocialProofStatCounterStreamComponent,\n  type RegionLatency,\n} from './social-proof-stat-counter-stream.component'\n",
      "type": "registry:block",
      "target": "~/src/app/components/blocks/social-proof-stat-counter-stream/index.ts"
    }
  ],
  "dependencies": [
    "lucide-angular"
  ],
  "devDependencies": [],
  "registryDependencies": [
    "https://uipkge.dev/r/angular/card.json"
  ],
  "description": "Live infrastructure telemetry and animated metric counter stream with real-time global edge round-trip latency ticker.",
  "categories": [
    "marketing",
    "feature"
  ]
}