{
  "$schema": "https://uipkge.dev/schema/registry-item.json",
  "name": "bento-01",
  "title": "Telemetry Bento",
  "type": "registry:block",
  "description": "High-density bento grid featuring an interactive AI query copilot workbench, real-time edge network telemetry feed, live latency radar, and SOC 2 compliance vault status.",
  "categories": [
    "marketing"
  ],
  "files": [
    {
      "path": "packages/elements-lit/src/blocks/bento-01/bento-01.ts",
      "content": "import { LitElement, css, html } from 'lit'\nimport { Activity, ArrowRight, Bot, CheckCircle2, Globe2, Layers, ShieldCheck, Terminal, Zap } from 'lucide'\nimport { cn } from '../../lib/utils'\nimport { tailwind } from '../../lib/styles'\nimport { ThemeController } from '../../lib/theme'\nimport { icon } from '../../lib/icon'\n// Side-effect imports: register the composed elements for standalone use\n// (consumers who install only this block still get working primitives).\nimport '../../components/badge/badge'\nimport '../../components/button/button'\n\nconst liveTelemetryEvents = [\n  {\n    id: 1,\n    type: 'deploy',\n    title: 'Edge worker edge-us-east-1 deployed',\n    latency: '18ms',\n    time: '12s ago',\n    status: 'healthy',\n  },\n  {\n    id: 2,\n    type: 'database',\n    title: 'CDC stream synced 42,800 records',\n    latency: '4ms',\n    time: '34s ago',\n    status: 'healthy',\n  },\n  {\n    id: 3,\n    type: 'security',\n    title: 'Automated mTLS key rotation complete',\n    latency: '120ms',\n    time: '1m ago',\n    status: 'healthy',\n  },\n  {\n    id: 4,\n    type: 'deploy',\n    title: 'Static asset bundle cached in 32 edge PoPs',\n    latency: '8ms',\n    time: '2m ago',\n    status: 'healthy',\n  },\n]\n\nconst edgeRegions = [\n  { code: 'iad1', name: 'US East (N. Virginia)', status: 'Active', latency: '12ms' },\n  { code: 'fra1', name: 'EU Central (Frankfurt)', status: 'Active', latency: '18ms' },\n  { code: 'hnd1', name: 'AP East (Tokyo)', status: 'Active', latency: '24ms' },\n]\n\n// Card chrome follows the registry Card verbatim (see the login-01 block:\n// surfaces stay plain divs so per-tile classes like the hover border apply\n// to the painted box; the nested uip-* hosts carry only their own API).\nconst tileClass =\n  'bg-card text-card-foreground rounded-xl border shadow-sm transition-colors duration-150 overflow-hidden border-border hover:border-primary/40 relative shadow-xs duration-200'\n\n/**\n * <uip-bento-01> — the registry Bento01 block as a web component.\n *\n * Class strings are React's Bento01 verbatim. React state (useState) becomes\n * @state fields; the AI-optimization timeout is cleared in\n * `disconnectedCallback`. The prompt field is a native input like React's\n * (not <uip-input>); progress tracks are plain divs carrying React's\n * Progress root/indicator classes so the per-tile heights apply.\n */\nexport class UipBento01 extends LitElement {\n  static shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true }\n  // :host display can't be a utility class (the host has no template of its own).\n  static styles = [tailwind, css`:host { display: block; }`]\n\n  static properties = {\n    activeEventFilter: { state: true },\n    isSimulatingPrompt: { state: true },\n    aiPromptInput: { state: true },\n    aiDraftOutput: { state: true },\n  }\n\n  private activeEventFilter: 'all' | 'deploy' | 'security' | 'database' = 'all'\n  private isSimulatingPrompt = false\n  private aiPromptInput = 'Optimize database indexing for high concurrency tenant reads'\n  private aiDraftOutput =\n    'Generated compound B-Tree index on `(tenant_id, created_at DESC)` reducing p99 latency from 142ms to 6ms.'\n  private timer?: number\n\n  constructor() {\n    super()\n    new ThemeController(this)\n  }\n\n  connectedCallback() {\n    super.connectedCallback()\n    this.setAttribute('data-uipkge', '')\n    this.setAttribute('data-slot', 'bento-01')\n  }\n\n  disconnectedCallback() {\n    super.disconnectedCallback()\n    if (this.timer) window.clearTimeout(this.timer)\n  }\n\n  private get filteredEvents() {\n    if (this.activeEventFilter === 'all') return liveTelemetryEvents\n    return liveTelemetryEvents.filter((e) => e.type === this.activeEventFilter)\n  }\n\n  private runAiOptimization() {\n    this.isSimulatingPrompt = true\n    this.aiDraftOutput = 'Analyzing query AST and cache hit rates...'\n    if (this.timer) window.clearTimeout(this.timer)\n    this.timer = window.setTimeout(() => {\n      this.aiDraftOutput = 'Applied index pushdown & partitioned query plan. Estimated cache hit rate: 98.4%.'\n      this.isSimulatingPrompt = false\n    }, 900)\n  }\n\n  private filterTab(\n    id: 'all' | 'deploy' | 'database' | 'security',\n    label: string,\n  ) {\n    return html`<button\n      type=\"button\"\n      class=${cn(\n        'rounded-md px-2.5 py-1 text-xs font-medium transition-colors',\n        this.activeEventFilter === id\n          ? 'bg-card text-foreground font-semibold shadow-2xs'\n          : 'text-muted-foreground hover:text-foreground',\n      )}\n      @click=${() => {\n        this.activeEventFilter = id\n      }}\n    >\n      ${label}\n    </button>`\n  }\n\n  render() {\n    return html`\n      <section data-slot=\"bento-01\" class=${cn('bg-background w-full py-16 sm:py-24')}>\n        <div class=\"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8\">\n          <div class=\"mb-12 max-w-2xl space-y-3\">\n            <div\n              class=\"border-primary/20 bg-primary/5 text-primary inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs font-medium shadow-2xs\"\n            >\n              ${icon(Layers, 'layers', 'size-3.5')}\n              <span>Unified Enterprise Architecture</span>\n            </div>\n            <h2 class=\"text-foreground text-3xl font-bold tracking-tight sm:text-4xl\">\n              Everything your engineering team needs to move at velocity\n            </h2>\n            <p class=\"text-muted-foreground text-base sm:text-lg\">\n              Engineered for extreme performance, continuous security governance, and multi-cloud resilience from day\n              one.\n            </p>\n          </div>\n\n          <div class=\"grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3\">\n            <div data-uipkge=\"\" data-slot=\"card\" class=${cn(tileClass, 'md:col-span-2')}>\n              <div data-uipkge=\"\" data-slot=\"card-content\" class=\"flex h-full flex-col justify-between space-y-6 p-6 pt-0 sm:p-8 sm:pt-0\">\n                <div class=\"flex flex-wrap items-center justify-between gap-4\">\n                  <div class=\"flex items-center gap-3\">\n                    <div class=\"bg-primary/10 text-primary flex size-10 items-center justify-center rounded-lg\">\n                      ${icon(Bot, 'bot', 'size-5')}\n                    </div>\n                    <div>\n                      <h3 class=\"text-foreground text-lg font-bold tracking-tight sm:text-xl\">\n                        Autonomous AI Query & Performance Copilot\n                      </h3>\n                      <p class=\"text-muted-foreground text-xs\">\n                        Analyzes production query patterns in real-time and recommends zero-downtime optimizations.\n                      </p>\n                    </div>\n                  </div>\n                  <uip-badge variant=\"secondary\" class=\"bg-primary/10 text-primary border-primary/20 font-mono text-xs\">\n                    LLM Grounded · v4.8\n                  </uip-badge>\n                </div>\n\n                <div class=\"border-border bg-muted/30 space-y-4 rounded-xl border p-4 sm:p-5\">\n                  <div class=\"flex flex-wrap items-center justify-between gap-2 text-xs\">\n                    <span class=\"text-muted-foreground font-mono\">Input Prompt Context:</span>\n                    <span class=\"text-success inline-flex items-center gap-1 font-medium\">\n                      ${icon(CheckCircle2, 'circle-check-big', 'size-3.5')}\n                      <span>AST Validated</span>\n                    </span>\n                  </div>\n                  <div class=\"flex items-center gap-2\">\n                    <div class=\"relative flex-1\">\n                      <input\n                        .value=${this.aiPromptInput}\n                        @input=${(e: Event) => {\n                          this.aiPromptInput = (e.target as HTMLInputElement).value\n                        }}\n                        type=\"text\"\n                        class=\"border-border bg-card text-foreground focus:border-primary w-full rounded-md border px-3 py-2 font-mono text-xs focus:outline-hidden\"\n                      />\n                    </div>\n                    <uip-button\n                      size=\"sm\"\n                      class=\"h-9 gap-1.5 text-xs font-medium\"\n                      ?disabled=${this.isSimulatingPrompt}\n                      @click=${this.runAiOptimization}\n                    >\n                      ${icon(Zap, 'zap', 'size-3.5 fill-current')}\n                      <span>${this.isSimulatingPrompt ? 'Running...' : 'Optimize'}</span>\n                    </uip-button>\n                  </div>\n\n                  <div class=\"border-border/80 bg-card text-foreground space-y-2 rounded-lg border p-3.5 font-mono text-xs\">\n                    <div class=\"text-muted-foreground flex items-center justify-between text-xs\">\n                      <span class=\"flex items-center gap-1.5\">\n                        ${icon(Terminal, 'terminal', 'text-primary size-3')}\n                        <span>Optimization Plan Output</span>\n                      </span>\n                      <span class=\"text-success font-semibold\">98.4% Efficiency Gain</span>\n                    </div>\n                    <p class=\"text-foreground leading-relaxed\">${this.aiDraftOutput}</p>\n                  </div>\n                </div>\n\n                <div class=\"border-border grid grid-cols-3 gap-4 border-t pt-2 text-center text-xs\">\n                  <div>\n                    <p class=\"text-foreground font-mono text-base font-bold\">0.4ms</p>\n                    <p class=\"text-muted-foreground\">Inference Overhead</p>\n                  </div>\n                  <div>\n                    <p class=\"text-foreground font-mono text-base font-bold\">99.8%</p>\n                    <p class=\"text-muted-foreground\">Syntactic Accuracy</p>\n                  </div>\n                  <div>\n                    <p class=\"text-foreground font-mono text-base font-bold\">3.4M</p>\n                    <p class=\"text-muted-foreground\">Queries Analyzed</p>\n                  </div>\n                </div>\n              </div>\n            </div>\n\n            <div data-uipkge=\"\" data-slot=\"card\" class=${cn(tileClass)}>\n              <div data-uipkge=\"\" data-slot=\"card-content\" class=\"flex h-full flex-col justify-between space-y-6 p-6 pt-0\">\n                <div class=\"space-y-3\">\n                  <div class=\"flex items-center justify-between\">\n                    <div class=\"bg-primary/10 text-primary flex size-10 items-center justify-center rounded-lg\">\n                      ${icon(Globe2, 'globe-2', 'size-5')}\n                    </div>\n                    <span\n                      class=\"bg-success/10 text-success border-success/20 inline-flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 font-mono text-xs font-semibold\"\n                    >\n                      <span class=\"bg-success size-1.5 rounded-full\"></span>\n                      <span>32 Edge PoPs</span>\n                    </span>\n                  </div>\n                  <div>\n                    <h3 class=\"text-foreground text-lg font-bold tracking-tight\">Global Edge Mesh</h3>\n                    <p class=\"text-muted-foreground text-xs\">\n                      Sub-20ms p99 execution worldwide with automatic zero-downtime failover routing.\n                    </p>\n                  </div>\n                </div>\n\n                <div class=\"border-border bg-muted/20 space-y-2.5 rounded-lg border p-3\">\n                  ${edgeRegions.map(\n                    (region) => html`<div\n                      class=\"border-border/50 flex items-center justify-between border-b py-1 text-xs last:border-0\"\n                    >\n                      <div class=\"flex items-center gap-2\">\n                        <span class=\"text-foreground font-mono text-xs font-bold uppercase\">${region.code}</span>\n                        <span class=\"text-muted-foreground max-w-[120px] truncate\">${region.name}</span>\n                      </div>\n                      <span class=\"text-primary font-mono text-xs font-semibold\">${region.latency}</span>\n                    </div>`,\n                  )}\n                </div>\n\n                <div class=\"space-y-2\">\n                  <div class=\"text-muted-foreground flex justify-between font-mono text-xs\">\n                    <span>Global Route SLA</span>\n                    <span class=\"text-foreground font-bold\">99.995%</span>\n                  </div>\n                  <div\n                    data-uipkge=\"\"\n                    data-slot=\"progress\"\n                    role=\"progressbar\"\n                    aria-valuemin=\"0\"\n                    aria-valuemax=\"100\"\n                    aria-valuenow=\"99.9\"\n                    data-state=\"loading\"\n                    data-value=\"99.9\"\n                    data-max=\"100\"\n                    class=\"bg-primary/20 relative h-1.5 w-full overflow-hidden rounded-full\"\n                  >\n                    <div\n                      data-uipkge=\"\"\n                      data-slot=\"progress-indicator\"\n                      data-state=\"loading\"\n                      data-value=\"99.9\"\n                      data-max=\"100\"\n                      class=\"bg-primary h-full w-full flex-1 transition-transform duration-500 ease-out motion-reduce:transition-none\"\n                      style=${`transform: translateX(-${100 - 99.9}%)`}\n                    ></div>\n                  </div>\n                </div>\n              </div>\n            </div>\n\n            <div data-uipkge=\"\" data-slot=\"card\" class=${cn(tileClass, 'lg:col-span-2')}>\n              <div data-uipkge=\"\" data-slot=\"card-content\" class=\"flex h-full flex-col justify-between space-y-6 p-6 pt-0 sm:p-8 sm:pt-0\">\n                <div class=\"flex flex-wrap items-center justify-between gap-4\">\n                  <div class=\"flex items-center gap-3\">\n                    <div class=\"bg-primary/10 text-primary flex size-10 items-center justify-center rounded-lg\">\n                      ${icon(Activity, 'activity', 'size-5')}\n                    </div>\n                    <div>\n                      <h3 class=\"text-foreground text-lg font-bold tracking-tight\">Real-Time Event Stream</h3>\n                      <p class=\"text-muted-foreground text-xs\">\n                        Deterministic audit feed capturing deployments, schema migrations, and security operations.\n                      </p>\n                    </div>\n                  </div>\n\n                  <div class=\"border-border bg-muted/40 flex items-center gap-1 rounded-lg border p-1\">\n                    ${this.filterTab('all', 'All')} ${this.filterTab('deploy', 'Deploy')}\n                    ${this.filterTab('database', 'Data')} ${this.filterTab('security', 'Security')}\n                  </div>\n                </div>\n\n                <div class=\"divide-border border-border bg-muted/20 divide-y rounded-xl border\">\n                  ${this.filteredEvents.map(\n                    (ev) => html`<div\n                      class=\"hover:bg-muted/40 flex flex-wrap items-center justify-between gap-3 p-3.5 text-xs transition-colors\"\n                    >\n                      <div class=\"flex items-center gap-2.5\">\n                        <span class=\"bg-success size-2 rounded-full\"></span>\n                        <span class=\"text-foreground font-medium\">${ev.title}</span>\n                      </div>\n                      <div class=\"text-muted-foreground flex items-center gap-3 font-mono\">\n                        <span class=\"bg-muted text-foreground rounded px-1.5 py-0.5\">${ev.latency}</span>\n                        <span>${ev.time}</span>\n                      </div>\n                    </div>`,\n                  )}\n                </div>\n\n                <div\n                  class=\"text-muted-foreground border-border flex flex-wrap items-center justify-between gap-2 border-t pt-2 text-xs\"\n                >\n                  <span class=\"flex items-center gap-1.5\">\n                    ${icon(ShieldCheck, 'shield-check', 'text-success size-4')}\n                    <span>Zero message loss guaranteed via Raft consensus</span>\n                  </span>\n                  <span class=\"font-mono\">Throughput: ~14,200 ev/sec</span>\n                </div>\n              </div>\n            </div>\n\n            <div data-uipkge=\"\" data-slot=\"card\" class=${cn(tileClass)}>\n              <div data-uipkge=\"\" data-slot=\"card-content\" class=\"flex h-full flex-col justify-between space-y-6 p-6 pt-0\">\n                <div class=\"space-y-3\">\n                  <div class=\"flex items-center justify-between\">\n                    <div class=\"bg-primary/10 text-primary flex size-10 items-center justify-center rounded-lg\">\n                      ${icon(ShieldCheck, 'shield-check', 'size-5')}\n                    </div>\n                    <uip-badge variant=\"outline\" class=\"font-mono text-xs\">SOC 2 Type II</uip-badge>\n                  </div>\n                  <div>\n                    <h3 class=\"text-foreground text-lg font-bold tracking-tight\">Compliance & Vault</h3>\n                    <p class=\"text-muted-foreground text-xs\">\n                      Continuous cryptographic verification, automated KMS key rotation, and granular RBAC.\n                    </p>\n                  </div>\n                </div>\n\n                <div class=\"border-border bg-muted/20 space-y-3 rounded-lg border p-3.5 text-xs\">\n                  <div class=\"flex items-center justify-between\">\n                    <span class=\"text-muted-foreground\">AES-256 GCM at rest</span>\n                    <span class=\"text-success flex items-center gap-1 font-semibold\">\n                      ${icon(CheckCircle2, 'circle-check-big', 'size-3.5')} Enforced\n                    </span>\n                  </div>\n                  <div class=\"flex items-center justify-between\">\n                    <span class=\"text-muted-foreground\">mTLS v1.3 in transit</span>\n                    <span class=\"text-success flex items-center gap-1 font-semibold\">\n                      ${icon(CheckCircle2, 'circle-check-big', 'size-3.5')} Enforced\n                    </span>\n                  </div>\n                  <div class=\"flex items-center justify-between\">\n                    <span class=\"text-muted-foreground\">SCIM v2 Directory Sync</span>\n                    <span class=\"text-foreground font-semibold\">Active</span>\n                  </div>\n                </div>\n\n                <uip-button variant=\"outline\" class=\"h-9 w-full gap-1.5 text-xs font-semibold\">\n                  <span>View Trust Center</span>\n                  ${icon(ArrowRight, 'arrow-right', 'size-3.5')}\n                </uip-button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </section>\n    `\n  }\n}\n\ncustomElements.get('uip-bento-01') || customElements.define('uip-bento-01', UipBento01)\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'uip-bento-01': UipBento01\n  }\n}\n",
      "type": "registry:file",
      "target": "src/uip/blocks/bento-01/bento-01.ts"
    }
  ],
  "dependencies": [
    "lit",
    "lucide"
  ],
  "registryDependencies": [
    "https://uipkge.dev/r/lit/badge.json",
    "https://uipkge.dev/r/lit/button.json",
    "https://uipkge.dev/r/lit/lit-core.json"
  ]
}
