{
  "version": 3,
  "sources": ["../../src/registry/StyledComponentsRegistry.tsx", "../../src/server/registryGuard.ts", "../../src/registry/recipes.ts"],
  "sourcesContent": ["'use client';\n\nimport type { ReactNode } from 'react';\n\n/**\n * Deprecated compatibility component. Styling is now driven by\n * CSS variables generated from AuraGlass design tokens, so no runtime\n * registry is required. This component simply renders its children.\n */\nexport function StyledComponentsRegistry({\n  children,\n}: {\n  children: ReactNode;\n}) {\n  return <>{children}</>;\n}\n", "/**\n * Registry helpers are retained for backward compatibility. The design-token\n * architecture no longer requires a runtime stylesheet registry, so these\n * functions are implemented as innocuous no-ops that always report success.\n */\nexport const markStyledRegistryHealthy = (): void => {\n  /* noop */\n};\n\nexport const clearStyledRegistryHealth = (): void => {\n  /* noop */\n};\n\nexport const hasStyledComponentsRegistry = (): boolean => true;\n\nexport const ensureStyledComponentsRegistry = (): void => {\n  /* noop */\n};\n", "export type AuraGlassRecipeId =\n  | \"saas-dashboard\"\n  | \"ai-command-center\"\n  | \"media-player-surface\"\n  | \"analytics-overview\"\n  | \"settings-billing\"\n  | \"kanban-workspace\"\n  | \"calendar-schedule\"\n  | \"collaborative-workspace\"\n  | \"admin-data-table\"\n  | \"ecommerce-product-panel\"\n  | \"saas-admin-shell\"\n  | \"ai-product-console\"\n  | \"media-review-workspace\"\n  | \"commerce-operations-panel\"\n  | \"team-collaboration-hub\"\n  | \"settings-and-billing-suite\"\n  | \"analytics-command-center\"\n  | \"calendar-operations-board\"\n  | \"customer-support-console\"\n  | \"creator-studio-dashboard\"\n  | \"ai-ops-control-room\"\n  | \"semantic-search-console\"\n  | \"vision-review-workbench\"\n  | \"collaboration-room-console\"\n  | \"support-triage-workspace\"\n  | \"release-command-center\"\n  | \"developer-docs-portal\"\n  | \"marketing-launch-kit\";\n\nexport interface AuraGlassRecipeFile {\n  path: string;\n  content: string;\n}\n\nexport interface AuraGlassRecipe {\n  id: AuraGlassRecipeId;\n  title: string;\n  category:\n    | \"dashboard\"\n    | \"ai\"\n    | \"media\"\n    | \"settings\"\n    | \"collaboration\"\n    | \"data\"\n    | \"ecommerce\"\n    | \"support\"\n    | \"release\"\n    | \"docs\"\n    | \"marketing\";\n  description: string;\n  imports: string[];\n  peerDependencies: string[];\n  tokens: string[];\n  accessibility: string[];\n  performance: string[];\n  files: AuraGlassRecipeFile[];\n}\n\nconst cssImport = \"import 'aura-glass/styles';\";\n\nconst recipePolishStyle = `<style>{\\`\n  .recipe-polish {\n    --glass-text-primary: rgba(17, 24, 39, .96);\n    --glass-text-secondary: rgba(51, 65, 85, .92);\n    --glass-theme-text: rgba(17, 24, 39, .96);\n    --glass-theme-text-secondary: rgba(51, 65, 85, .92);\n    color: rgba(17, 24, 39, .96);\n  }\n  .recipe-polish .optimized-glass-surface,\n  .recipe-polish .glass-top-bar,\n  .recipe-polish .glass-sidebar-rail,\n  .recipe-polish .glass-main,\n  .recipe-polish .glass-status-bar,\n  .recipe-polish .glass-command-dock {\n    background: linear-gradient(145deg, rgba(255,255,255,.35), rgba(255,255,255,.22)) !important;\n    border-color: rgba(255,255,255,.86) !important;\n    color: rgba(17,24,39,.96) !important;\n    box-shadow: inset 0 1px 0 rgba(255,255,255,.28), inset 0 0 12px rgba(255,255,255,.12), 0 10px 28px rgba(71,85,105,.13) !important;\n    backdrop-filter: blur(24px) saturate(1.4) brightness(1.05) contrast(1.05) !important;\n    -webkit-backdrop-filter: blur(24px) saturate(1.4) brightness(1.05) contrast(1.05) !important;\n  }\n  .recipe-polish [class*=\"glass-text-secondary\"],\n  .recipe-polish [class*=\"glass-text-primary-opacity\"],\n  .recipe-polish [class*=\"glass-text-primary-glass-opacity\"] { color: rgba(51,65,85,.92) !important; }\n  .recipe-polish [class*=\"text-amber\"],\n  .recipe-polish [class*=\"text-emerald\"],\n  .recipe-polish [class*=\"glass-text-success\"] { color: rgba(30,41,59,.96) !important; }\n  .recipe-polish :where(h1, h2, h3, h4, strong) { color: rgba(17,24,39,.96) !important; }\n  .recipe-polish :where(p, li, label, small) { color: rgba(51,65,85,.94) !important; }\n  .recipe-polish .recipe-section-title { margin: 0; color: rgba(17,24,39,.96) !important; font-size: 1rem; font-weight: 650; letter-spacing: -.01em; }\n  .recipe-polish .recipe-copy { margin: 0; color: rgba(51,65,85,.9); font-size: .875rem; line-height: 1.5; }\n  .recipe-polish .recipe-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }\n  .recipe-polish .recipe-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-width: 0; padding: 12px 14px; border: 1px solid rgba(148,163,184,.25); border-radius: 14px; background: rgba(255,255,255,.30); }\n  .recipe-polish .recipe-row > span:first-child { min-width: 0; font-weight: 600; }\n  .recipe-polish .recipe-row small { color: rgba(51,65,85,.82); text-align: right; }\n  .recipe-polish .recipe-code { display: block; max-width: 100%; overflow-wrap: anywhere; padding: 10px 12px; border: 1px solid rgba(148,163,184,.28); border-radius: 12px; background: rgba(255,255,255,.30); color: rgba(30,41,59,.94); font-size: .78rem; line-height: 1.45; }\n  .recipe-polish .recipe-docs-nav { margin-top: 12px !important; }\n  .recipe-polish .recipe-note { color: rgba(30,41,59,.94) !important; }\n  .recipe-polish .recipe-metrics > * { min-width: 0; }\n  @media (max-width: 600px) {\n    .recipe-polish { width: calc(100% + 32px) !important; margin-left: -16px !important; gap: 14px !important; }\n    .recipe-polish .glass-page-header { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 10px !important; }\n    .recipe-polish .glass-page-header > div:last-child { justify-self: start; max-width: 100%; }\n    .recipe-polish .glass-page-header h1 { font-size: 1.65rem !important; line-height: 1.08 !important; }\n    .recipe-polish .glass-page-header p { font-size: .875rem !important; line-height: 1.45 !important; }\n    .recipe-polish .recipe-metrics { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 10px !important; }\n    .recipe-polish .recipe-metrics > :last-child:nth-child(odd) { grid-column: 1 / -1; }\n    .recipe-polish .recipe-row { align-items: flex-start; padding: 11px 12px; }\n    .recipe-polish .recipe-row small { max-width: 48%; }\n  }\n  @media (max-width: 350px) {\n    .recipe-polish .recipe-metrics { grid-template-columns: minmax(0,1fr) !important; }\n    .recipe-polish .recipe-metrics > * { grid-column: 1 / -1 !important; width: 100%; }\n  }\n\\`}</style>`;\n\nconst lightRecipeCss = `\n.ag-light-recipe {\n  --glass-theme-text: #172033;\n  --glass-text-primary: #172033;\n  --typography-text-primary: #172033;\n  --aura-color-global-text-primary: #172033;\n  --aura-color-global-text-secondary: #4b5a70;\n  color: #172033;\n  display: grid;\n  gap: 16px;\n  min-width: 0;\n}\n.ag-light-recipe :where(h1, h2, h3, h4, p, span, label) { color: inherit; }\n.ag-light-recipe :where(.optimized-glass-surface, .glass-workspace-panel, .glass-action-bar, .glass-canvas-area, .glass-timeline-rail, .glass-command-dock, .glass-music-visualizer) {\n  background: linear-gradient(145deg, rgba(255,255,255,.35), rgba(255,255,255,.18)) !important;\n  border-color: rgba(255,255,255,.92) !important;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), inset 0 0 12px rgba(255,255,255,.12), 0 14px 36px rgba(86,107,135,.14) !important;\n  color: #172033 !important;\n}\n.ag-light-recipe :where(.optimized-glass-surface, .glass-music-visualizer) { max-width: 100%; min-width: 0; }\n.ag-light-recipe :where(.glass-music-visualizer) { overflow: hidden !important; }\n.ag-light-recipe :where(.glass-music-visualizer canvas) {\n  background: linear-gradient(145deg, rgba(255,255,255,.32), rgba(255,255,255,.16)) !important;\n  border-color: rgba(109,132,160,.22) !important;\n  max-width: 100%;\n}\n.ag-light-recipe :where(.liquid-glass-media-controls) {\n  background: linear-gradient(145deg, rgba(255,255,255,.35), rgba(255,255,255,.18)) !important;\n  border: 1px solid rgba(255,255,255,.94) !important;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), inset 0 0 12px rgba(255,255,255,.12), 0 12px 30px rgba(86,107,135,.14) !important;\n  color: #172033 !important;\n  max-width: 100%;\n}\n.ag-light-recipe :where(.liquid-glass-media-controls span) { color: #334155 !important; text-shadow: none !important; }\n.ag-light-recipe :where(input[type=\"range\"]) { height: 12px !important; min-height: 12px; }\n.ag-light-recipe :where(canvas, svg) { max-width: 100%; }\n.ag-light-recipe :where([class*=\"emptyState\"], [class*=\"empty-state\"]) {\n  background: linear-gradient(145deg, rgba(255,255,255,.35), rgba(255,255,255,.2)) !important;\n  color: #172033 !important;\n}\n.ag-light-recipe :where([class*=\"emptyState\"], [class*=\"empty-state\"]) * { color: #4b5a70 !important; }\n.ag-light-recipe :where([class*=\"emptyState\"], [class*=\"empty-state\"]) :where(h1,h2,h3,strong) { color: #172033 !important; }\n.ag-recipe-chart, .ag-recipe-chart * { box-sizing: border-box; min-width: 0; }\n.ag-recipe-chart :where(.optimized-glass-surface) { width: 100%; max-width: 100%; overflow: hidden !important; }\n.ag-recipe-chart :where(.optimized-glass-surface > *) { max-width: 100%; }\n.ag-recipe-chart :where(canvas) { width: 100% !important; }\n.ag-recipe-calendar :where(header) { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }\n.ag-recipe-calendar :where([aria-label^=\"Select date\"]) {\n  box-sizing: border-box;\n  min-width: 0 !important;\n  min-height: 0 !important;\n  width: 100% !important;\n  height: 100% !important;\n  border: 1px solid rgba(93,112,136,.2) !important;\n  border-radius: 12px !important;\n  color: #243149 !important;\n  transform: none !important;\n}\n.ag-recipe-calendar :where([aria-label^=\"Select date\"]:hover, [aria-label^=\"Select date\"]:focus-visible) {\n  transform: none !important;\n  background: rgba(255,255,255,.35) !important;\n}\n.ag-recipe-calendar :where(.glass-calendar-shell [aria-hidden=\"true\"]) {\n  color: #243149 !important;\n  text-shadow: none !important;\n}\n.ag-recipe-calendar :where(.glass-calendar-shell .glass-grid) { row-gap: 8px !important; }\n.ag-recipe-calendar :where(.glass-touch-target) { min-width: 0; }\n.ag-recipe-calendar :where(.overflow-hidden) { overflow: hidden !important; }\n.ag-media-review .glass-canvas-area { min-height: clamp(210px, 36vw, 360px); }\n.ag-media-player .ag-media-visualizer,\n.ag-media-review .ag-media-visualizer {\n  max-height: none !important;\n  overflow: visible !important;\n}\n.ag-collab-recipe .truncate,\n.ag-collab-recipe .glass-truncate {\n  white-space: normal !important;\n  overflow: visible !important;\n  text-overflow: clip !important;\n  overflow-wrap: anywhere;\n}\n.ag-creator-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }\n.ag-creator-grid > * { min-width: 0; }\n.ag-creator-studio .ag-media-visualizer { max-height: none !important; }\n.ag-creator-studio .glass-truncate { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; }\n@media (max-width: 640px) {\n  .ag-light-recipe { gap: 12px; }\n  .ag-creator-grid { grid-template-columns: minmax(0, 1fr); }\n  .ag-recipe-calendar :where(.glass-p-4) { padding: 10px; }\n  .ag-recipe-calendar :where(.glass-gap-2) { gap: 8px; }\n  .ag-recipe-calendar :where(.glass-aspect-square) { min-width: 0; }\n  .ag-recipe-calendar :where([aria-label^=\"Select date\"]) { min-width: 0 !important; min-height: 0 !important; }\n  .ag-recipe-calendar :where([aria-label^=\"Select date\"] .glass-touch-target) { min-width: 0 !important; min-height: 0 !important; }\n}\n`;\n\nconst lightRecipeCssSource = `const lightRecipeCss = ${JSON.stringify(lightRecipeCss)};`;\n\nexport const auraGlassRecipes: AuraGlassRecipe[] = [\n  {\n    id: \"saas-dashboard\",\n    title: \"SaaS Dashboard Shell\",\n    category: \"dashboard\",\n    description:\n      \"A compact premium dashboard shell with sidebar navigation, KPI cards, and a chart-ready analytics panel.\",\n    imports: [\"GlassBadge\", \"GlassButton\", \"GlassCard\"],\n    peerDependencies: [\"react\", \"react-dom\", \"chart.js\", \"react-chartjs-2\"],\n    tokens: [\n      \"--glass-bg-default\",\n      \"--glass-border-default\",\n      \"--glass-text-primary\",\n    ],\n    accessibility: [\n      \"Use semantic page headings before dashboard metrics.\",\n      \"Keep sidebar labels visible unless an icon-only mode has accessible labels.\",\n      \"Verify chart text contrast against dark glass surfaces.\",\n    ],\n    performance: [\n      \"Lazy-load chart-heavy panels when they are below the fold.\",\n      \"Use compact dashboard widgets in constrained cards.\",\n    ],\n    files: [\n      {\n        path: \"SaasDashboardShell.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard } from 'aura-glass';\n${lightRecipeCssSource}\n\nconst metrics = [\n  ['Monthly revenue', '$184,240', '+12.8%'],\n  ['Active accounts', '2,846', '+8.2%'],\n  ['Net retention', '118.4%', '+3.1%'],\n];\n\nconst activity = [\n  ['Northstar Labs', 'Expansion', '$18,400'],\n  ['Lumen Systems', 'Renewal', '$12,800'],\n  ['Fieldwork AI', 'New business', '$9,600'],\n];\n\nexport function SaasDashboardShell() {\n  return (\n    <section className=\"ag-light-recipe\" aria-labelledby=\"revenue-command\" style={{ gap: 18 }}><style>{lightRecipeCss}</style>\n      <header style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'center', justifyContent: 'space-between', gap: 12 }}>\n        <div><GlassBadge variant=\"primary\">Revenue workspace</GlassBadge><h1 id=\"revenue-command\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px, 4vw, 40px)', letterSpacing: '-0.04em' }}>Revenue command</h1><p style={{ margin: 0, color: '#526071' }}>A clear view of growth, retention, and the deals moving this week.</p></div>\n        <GlassButton size=\"sm\">Open forecast</GlassButton>\n      </header>\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 190px), 1fr))', gap: 12 }}>\n        {metrics.map(([label, value, delta]) => <GlassCard key={label} depth=\"medium\" tint=\"neutral\"><p style={{ margin: 0, color: '#526071', fontSize: 13 }}>{label}</p><strong style={{ display: 'block', marginTop: 8, fontSize: 28, letterSpacing: '-0.03em' }}>{value}</strong><span style={{ color: '#176b4d', fontSize: 13 }}>{delta} this month</span></GlassCard>)}\n      </div>\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 260px), 1fr))', gap: 12 }}>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><div style={{ display: 'flex', justifyContent: 'space-between', gap: 12 }}><div><h2 style={{ margin: 0, fontSize: 18 }}>Revenue momentum</h2><p style={{ margin: '4px 0 0', color: '#526071', fontSize: 13 }}>Trailing six months</p></div><strong>$1.02M</strong></div><div aria-label=\"Revenue grew steadily from March to August\" style={{ display: 'flex', alignItems: 'end', gap: 8, height: 128, marginTop: 18 }}>{[38, 52, 47, 68, 76, 92].map((height, index) => <div key={index} style={{ flex: 1, height: height + '%', minWidth: 12, borderRadius: '8px 8px 4px 4px', background: 'linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,255,255,.16))', border: '1px solid rgba(62,101,190,.5)' }} />)}</div></GlassCard>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><h2 style={{ margin: '0 0 12px', fontSize: 18 }}>Pipeline activity</h2>{activity.map(([name, stage, value]) => <div key={name} style={{ display: 'grid', gridTemplateColumns: 'minmax(0,1fr) auto', gap: 8, padding: '10px 0', borderTop: '1px solid rgba(86,104,126,.16)' }}><span><strong style={{ display: 'block' }}>{name}</strong><small style={{ color: '#526071' }}>{stage}</small></span><strong>{value}</strong></div>)}</GlassCard>\n      </div>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"ai-command-center\",\n    title: \"AI Command Center\",\n    category: \"ai\",\n    description:\n      \"A focused AI operations surface with command search, telemetry cards, and model activity lanes.\",\n    imports: [\"GlassBadge\", \"GlassButton\", \"GlassCard\"],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-accent-info-fg\", \"--glass-bg-strong\"],\n    accessibility: [\n      \"Keep command labels descriptive.\",\n      \"Preserve keyboard focus inside command-palette interactions.\",\n      \"Do not stream status updates into assertive live regions unless user action requires it.\",\n    ],\n    performance: [\n      \"Render model telemetry as static cards unless real-time updates are required.\",\n      \"Keep canvas/WebGL effects out of the command surface.\",\n    ],\n    files: [\n      {\n        path: \"AiCommandCenter.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard } from 'aura-glass';\n${lightRecipeCssSource}\n\nconst models = [\n  ['Atlas Reasoning', 'Healthy', '842 ms'],\n  ['Prism Search', 'Healthy', '216 ms'],\n  ['Canvas Vision', 'Review', '1.4 s'],\n];\n\nexport function AiCommandCenter() {\n  return (\n    <section className=\"ag-light-recipe\" aria-labelledby=\"ai-operations\"><style>{lightRecipeCss}</style>\n      <header><GlassBadge variant=\"primary\">AI operations</GlassBadge><h1 id=\"ai-operations\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px, 4vw, 38px)', letterSpacing: '-0.04em' }}>Model command center</h1><p style={{ margin: 0, color: '#526071' }}>Monitor quality, latency, and every production workflow from one surface.</p></header>\n      <GlassCard depth=\"strong\" tint=\"neutral\"><label htmlFor=\"ai-command\" style={{ display: 'block', marginBottom: 8, fontWeight: 650 }}>Run a workspace command</label><div style={{ display: 'flex', flexWrap: 'wrap', gap: 10 }}><input id=\"ai-command\" placeholder=\"Ask about latency, quality, or spend\" style={{ flex: '1 1 230px', minWidth: 0, boxSizing: 'border-box', padding: '12px 14px', color: '#172033', background: 'rgba(255,255,255,.3)', border: '1px solid rgba(80,102,130,.28)', borderRadius: 12, font: 'inherit', outlineColor: '#3269d8' }} /><GlassButton size=\"sm\">Run command</GlassButton></div></GlassCard>\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 190px), 1fr))', gap: 12 }}>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Grounded answers</small><strong style={{ display: 'block', fontSize: 28, marginTop: 8 }}>98.4%</strong><span style={{ color: '#176b4d' }}>+1.8% this week</span></GlassCard>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Requests today</small><strong style={{ display: 'block', fontSize: 28, marginTop: 8 }}>24,892</strong><span style={{ color: '#526071' }}>71% of daily budget</span></GlassCard>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Median latency</small><strong style={{ display: 'block', fontSize: 28, marginTop: 8 }}>684 ms</strong><span style={{ color: '#176b4d' }}>Within target</span></GlassCard>\n      </div>\n      <GlassCard depth=\"medium\" tint=\"neutral\"><h2 style={{ margin: '0 0 8px', fontSize: 18 }}>Model fleet</h2>{models.map(([name, state, latency]) => <div key={name} style={{ display: 'grid', gridTemplateColumns: 'minmax(0,1fr) auto auto', alignItems: 'center', gap: 12, padding: '12px 0', borderTop: '1px solid rgba(86,104,126,.16)' }}><strong>{name}</strong><span style={{ color: state === 'Healthy' ? '#176b4d' : '#8a5611' }}>{state}</span><span style={{ color: '#526071' }}>{latency}</span></div>)}</GlassCard>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"media-player-surface\",\n    title: \"Media Player Surface\",\n    category: \"media\",\n    description:\n      \"A cinematic media surface with Liquid Glass controls, image viewing, and reduced-motion-safe visualizer usage.\",\n    imports: [\n      \"LiquidGlassMediaControls\",\n      \"GlassImageViewer\",\n      \"GlassMusicVisualizer\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-backdrop-blur\", \"--glass-overlay-bg\"],\n    accessibility: [\n      \"Expose play, pause, volume, and scrub controls with labels.\",\n      \"Provide static media context for reduced-motion users.\",\n    ],\n    performance: [\n      \"Disable analyzer loops when the player is paused.\",\n      \"Use compact visualizer mode in cards and route previews.\",\n    ],\n    files: [\n      {\n        path: \"MediaPlayerSurface.tsx\",\n        content: `${cssImport}\n${lightRecipeCssSource}\nimport { GlassImageViewer, GlassMusicVisualizer, LiquidGlassMediaControls } from 'aura-glass';\n\nexport function MediaPlayerSurface() {\n  return (\n    <section className=\"ag-light-recipe ag-media-player\" aria-label=\"Media player\">\n      <style>{lightRecipeCss}</style>\n      <GlassImageViewer className=\"ag-media-preview\" contained compact height={280} />\n      <LiquidGlassMediaControls compact playing currentTime={42} duration={180} />\n      <GlassMusicVisualizer className=\"ag-media-visualizer\" compact contained realTimeAnalysis={false} />\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"analytics-overview\",\n    title: \"Analytics Overview\",\n    category: \"dashboard\",\n    description:\n      \"A polished analytics landing surface with KPI cards, chart panels, and compact executive summary layout.\",\n    imports: [\"GlassCard\", \"GlassDataChart\", \"GlassHeatmap\", \"GlassButton\"],\n    peerDependencies: [\"react\", \"react-dom\", \"chart.js\", \"react-chartjs-2\"],\n    tokens: [\n      \"--glass-bg-default\",\n      \"--glass-accent-info-fg\",\n      \"--glass-border-default\",\n    ],\n    accessibility: [\n      \"Provide text summaries for chart panels.\",\n      \"Keep metric deltas readable without relying only on color.\",\n    ],\n    performance: [\n      \"Render static chart snapshots for non-interactive summaries.\",\n      \"Lazy-load dense heatmap panels below the fold.\",\n    ],\n    files: [\n      {\n        path: \"AnalyticsOverview.tsx\",\n        content: `${cssImport}\n${lightRecipeCssSource}\nimport { GlassButton, GlassCard, GlassDataChart, GlassHeatmap } from 'aura-glass';\n\nconst growthSeries = [\n  {\n    id: 'monthly-recurring-revenue',\n    label: 'Monthly recurring revenue',\n    formatType: 'currency',\n    data: [\n      { x: 'Mar', y: 184000 },\n      { x: 'Apr', y: 196000 },\n      { x: 'May', y: 211000 },\n      { x: 'Jun', y: 228000 },\n      { x: 'Jul', y: 247000 },\n      { x: 'Aug', y: 263000 },\n    ],\n  },\n];\n\nconst cohortHealth = [\n  [68, 72, 76, 79, 82, 84],\n  [64, 69, 73, 77, 80, 83],\n  [61, 66, 71, 75, 79, 81],\n  [58, 63, 68, 72, 76, 79],\n];\n\nexport function AnalyticsOverview() {\n  return (\n    <section className=\"ag-light-recipe ag-recipe-chart\" aria-label=\"Analytics overview\">\n      <style>{lightRecipeCss}</style>\n      <header style={{ display: 'flex', alignItems: 'flex-end', justifyContent: 'space-between', flexWrap: 'wrap', gap: 14 }}>\n        <div><p style={{ margin: '0 0 5px', color: '#526071', fontSize: 13, fontWeight: 700, letterSpacing: '.08em', textTransform: 'uppercase' }}>Executive pulse \u00B7 August</p><h1 style={{ margin: 0, padding: '2px 0 3px', fontSize: 'clamp(28px, 4vw, 42px)', letterSpacing: '-.045em', lineHeight: 1.08, overflow: 'visible' }}>Growth overview</h1><p style={{ margin: '5px 0 0', color: '#526071' }}>Revenue, retention, and product adoption across 1,284 active accounts.</p></div>\n        <GlassButton size=\"sm\">Export report</GlassButton>\n      </header>\n      <div className=\"recipe-analytics-metrics\" style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 170px), 1fr))', gap: 12 }}>\n        {[\n          ['Monthly revenue', '$263k', '+18.6% YoY'],\n          ['Net retention', '112.4%', '+3.8 pts'],\n          ['Active accounts', '1,284', '+74 this month'],\n          ['Expansion pipeline', '$481k', '63% qualified'],\n        ].map(([label, value, note]) => <GlassCard key={label} depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071', fontWeight: 650 }}>{label}</small><strong style={{ display: 'block', margin: '8px 0 5px', fontSize: 'clamp(24px, 3vw, 32px)', letterSpacing: '-.035em' }}>{value}</strong><span style={{ color: '#526071', fontSize: 13 }}>{note}</span></GlassCard>)}\n      </div>\n      <GlassCard depth=\"medium\" tint=\"neutral\">\n        <GlassDataChart title=\"Revenue trajectory\" subtitle=\"Recognized monthly recurring revenue \u00B7 Mar\u2013Aug\" datasets={growthSeries} variant=\"area\" width=\"100%\" height={300} glassVariant=\"clear\" palette={['#53657d']} showToolbar={false} allowDownload={false} legend={{ show: false, position: 'top', align: 'start', style: 'compact', glassEffect: false }} />\n      </GlassCard>\n      <GlassCard depth=\"medium\" tint=\"neutral\">\n        <div style={{ marginBottom: 14 }}><h2 style={{ margin: 0, fontSize: 19, letterSpacing: '-.02em' }}>Cohort activation</h2><p style={{ margin: '5px 0 0', color: '#526071', fontSize: 14 }}>Weekly activation rate by signup cohort and lifecycle week.</p></div>\n        <GlassHeatmap data={cohortHealth} xAxis={{ title: 'Lifecycle week', labels: ['1', '2', '3', '4', '5', '6'] }} yAxis={{ title: 'Signup cohort', labels: ['May 6', 'May 13', 'May 20', 'May 27'] }} colorScale={{ min: '#f1f5f9', mid: '#cbd5e1', max: '#94a3b8', steps: 6 }} cellSize={20} cellGap={8} contained maxHeight={290} showValues showLegend legendPosition=\"bottom\" animated={false} />\n      </GlassCard>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"settings-billing\",\n    title: \"Settings and Billing Page\",\n    category: \"settings\",\n    description:\n      \"A billing/settings recipe with tabs, form surfaces, visible validation space, and low-motion defaults.\",\n    imports: [\"GlassBadge\", \"GlassButton\", \"GlassCard\"],\n    peerDependencies: [\"react\", \"react-dom\", \"react-hook-form\"],\n    tokens: [\"--glass-radius-lg\", \"--glass-border-focus\"],\n    accessibility: [\n      \"Use visible labels for billing fields.\",\n      \"Keep validation text adjacent to each input.\",\n      \"Preserve focus-visible rings on tab and form controls.\",\n    ],\n    performance: [\n      \"Keep settings pages mostly static.\",\n      \"Avoid continuous animation in form-heavy flows.\",\n    ],\n    files: [\n      {\n        path: \"SettingsBillingPage.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard } from 'aura-glass';\n${lightRecipeCssSource}\n\nexport function SettingsBillingPage() {\n  return (\n    <section className=\"ag-light-recipe\" aria-labelledby=\"billing-settings\"><style>{lightRecipeCss}</style>\n      <header><GlassBadge variant=\"primary\">Account settings</GlassBadge><h1 id=\"billing-settings\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px, 4vw, 38px)', letterSpacing: '-0.04em' }}>Billing &amp; plan</h1><p style={{ margin: 0, color: '#526071' }}>Manage your workspace plan, payment details, and invoices.</p></header>\n      <nav aria-label=\"Settings sections\" style={{ display: 'flex', flexWrap: 'wrap', gap: 8 }}>{['Profile', 'Team', 'Billing', 'Security'].map(label => <button key={label} type=\"button\" aria-current={label === 'Billing' ? 'page' : undefined} style={{ padding: '9px 14px', color: '#172033', background: label === 'Billing' ? 'rgba(255,255,255,.35)' : 'rgba(255,255,255,.16)', border: '1px solid rgba(80,102,130,.22)', borderRadius: 999, font: 'inherit', fontWeight: 650 }}>{label}</button>)}</nav>\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 270px), 1fr))', gap: 12 }}>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><div style={{ display: 'flex', justifyContent: 'space-between', gap: 12 }}><div><small style={{ color: '#526071' }}>Current plan</small><h2 style={{ margin: '6px 0 2px', fontSize: 22 }}>Studio</h2><p style={{ margin: 0, color: '#526071' }}>$48 / member / month</p></div><GlassBadge variant=\"primary\">Active</GlassBadge></div><p style={{ margin: '18px 0 8px' }}>18 of 25 seats in use</p><div style={{ height: 8, overflow: 'hidden', borderRadius: 99, background: 'rgba(70,91,117,.16)' }}><div style={{ width: '72%', height: '100%', background: '#4677d8', borderRadius: 99 }} /></div></GlassCard>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Next invoice</small><strong style={{ display: 'block', marginTop: 6, fontSize: 26 }}>$864.00</strong><p style={{ color: '#526071' }}>Due September 12 \u00B7 Visa ending 4242</p><GlassButton size=\"sm\">View invoices</GlassButton></GlassCard>\n      </div>\n      <GlassCard depth=\"medium\" tint=\"neutral\"><h2 style={{ margin: '0 0 14px', fontSize: 20 }}>Payment method</h2><form style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 210px), 1fr))', gap: 12 }}><label style={{ fontWeight: 650 }}>Name on card<input defaultValue=\"Morgan Chen\" style={{ display: 'block', width: '100%', boxSizing: 'border-box', marginTop: 7, padding: '12px 14px', color: '#172033', background: 'rgba(255,255,255,.3)', border: '1px solid rgba(80,102,130,.28)', borderRadius: 12, font: 'inherit' }} /></label><label style={{ fontWeight: 650 }}>Billing email<input type=\"email\" defaultValue=\"billing@northstar.co\" style={{ display: 'block', width: '100%', boxSizing: 'border-box', marginTop: 7, padding: '12px 14px', color: '#172033', background: 'rgba(255,255,255,.3)', border: '1px solid rgba(80,102,130,.28)', borderRadius: 12, font: 'inherit' }} /></label></form><div style={{ marginTop: 16 }}><GlassButton>Save billing details</GlassButton></div></GlassCard>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"kanban-workspace\",\n    title: \"Kanban Workspace\",\n    category: \"data\",\n    description:\n      \"A contained workflow board with seeded columns, compact cards, and action controls suitable for app panels.\",\n    imports: [\"GlassCard\", \"GlassKanbanBoard\"],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-bg-default\", \"--glass-border-default\"],\n    accessibility: [\n      \"Keep column names visible.\",\n      \"Use card click handlers with keyboard-accessible details.\",\n    ],\n    performance: [\n      \"Use compact cards in constrained panels.\",\n      \"Disable drag interactions in read-only preview contexts.\",\n    ],\n    files: [\n      {\n        path: \"KanbanWorkspace.tsx\",\n        content: `${cssImport}\nimport { GlassCard, GlassKanbanBoard } from 'aura-glass';\n\nconst columns = [\n  {\n    id: 'planned',\n    title: 'Planned',\n    color: '#38bdf8',\n    cards: [{ id: 'brief', title: 'Brief launch page', priority: 'medium' as const, tags: ['docs'] }],\n  },\n  {\n    id: 'active',\n    title: 'Active',\n    color: '#a3e635',\n    cards: [{ id: 'qa', title: 'Run visual QA', priority: 'high' as const, tags: ['qa'] }],\n  },\n  {\n    id: 'done',\n    title: 'Done',\n    color: '#f59e0b',\n    cards: [{ id: 'tokens', title: 'Token audit', priority: 'low' as const, tags: ['tokens'] }],\n  },\n];\n\nexport function KanbanWorkspace() {\n  return (\n    <GlassCard depth=\"medium\" tint=\"neutral\" className=\"ag-recipe-surface ag-recipe-kanban\">\n      <GlassKanbanBoard\n        columns={columns}\n        compact\n        contained\n        enableDrag={false}\n        showActions={false}\n        maxHeight={360}\n      />\n    </GlassCard>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"calendar-schedule\",\n    title: \"Calendar Schedule Page\",\n    category: \"dashboard\",\n    description:\n      \"A schedule surface for bookings, launches, and operations reviews with a glass calendar centerpiece.\",\n    imports: [\"GlassCalendar\", \"GlassCard\", \"GlassButton\"],\n    peerDependencies: [\"react\", \"react-dom\", \"date-fns\"],\n    tokens: [\"--glass-bg-default\", \"--glass-radius-lg\", \"--glass-border-focus\"],\n    accessibility: [\n      \"Expose selected dates and events as text.\",\n      \"Keep keyboard focus visible when navigating dates.\",\n    ],\n    performance: [\n      \"Keep calendar event counts bounded in month views.\",\n      \"Avoid animating every date cell during route transitions.\",\n    ],\n    files: [\n      {\n        path: \"CalendarSchedulePage.tsx\",\n        content: `${cssImport}\n${lightRecipeCssSource}\nimport { GlassButton, GlassCalendar, GlassCard } from 'aura-glass';\n\nexport function CalendarSchedulePage() {\n  return (\n    <section className=\"ag-light-recipe ag-recipe-calendar\" aria-label=\"Calendar schedule\">\n      <style>{lightRecipeCss}</style>\n      <GlassCard depth=\"medium\" tint=\"neutral\">\n      <header>\n        <h2>Launch schedule</h2>\n        <GlassButton size=\"sm\">Create event</GlassButton>\n      </header>\n        <GlassCalendar compact contained maxRows={4} maxHeight={420} />\n      </GlassCard>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"collaborative-workspace\",\n    title: \"Collaborative Workspace\",\n    category: \"collaboration\",\n    description:\n      \"A realtime-ready workspace recipe with contained collaboration UI and inert static-preview defaults.\",\n    imports: [\n      \"CollaborativeGlassWorkspace\",\n      \"GlassBadge\",\n      \"GlassButton\",\n      \"GlassCard\",\n      \"GlassMetricChip\",\n      \"GlassUserPresence\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\", \"socket.io-client\"],\n    tokens: [\"--glass-accent-success-fg\", \"--glass-surface\"],\n    accessibility: [\n      \"Announce collaboration activity without interrupting editing.\",\n      \"Keep presence labels available to assistive tech.\",\n    ],\n    performance: [\n      \"Throttle cursor and presence updates.\",\n      \"Keep previews inert when disconnected from realtime services.\",\n    ],\n    files: [\n      {\n        path: \"CollaborativeWorkspace.tsx\",\n        content: `${cssImport}\nimport { CollaborativeGlassWorkspace, GlassBadge, GlassButton, GlassCard, GlassMetricChip, GlassUserPresence } from 'aura-glass';\n${lightRecipeCssSource}\n\nconst collaborators = [\n  { id: 'maya', name: 'Maya Chen', status: 'online' as const, role: 'admin' as const, activity: 'Refining launch narrative' },\n  { id: 'jon', name: 'Jon Bell', status: 'online' as const, role: 'member' as const, activity: 'Reviewing prototype notes' },\n  { id: 'priya', name: 'Priya Shah', status: 'away' as const, role: 'member' as const, activity: 'Back at 2:30 PM' },\n];\n\nconst activity = [\n  ['Launch brief', 'Maya edited 4 min ago'],\n  ['Prototype review', '12 comments resolved'],\n  ['Research synthesis', 'Jon added 3 insights'],\n];\n\nexport function CollaborativeWorkspace() {\n  return (\n    <section className=\"ag-light-recipe ag-collab-recipe\" aria-labelledby=\"collaborative-workspace-title\">\n      <style>{lightRecipeCss}</style>\n      <header style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'end', justifyContent: 'space-between', gap: 12 }}>\n        <div>\n          <GlassBadge variant=\"secondary\">Product studio</GlassBadge>\n          <h1 id=\"collaborative-workspace-title\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px, 4vw, 40px)', letterSpacing: '-0.04em', lineHeight: 1.08 }}>Launch workspace</h1>\n          <p style={{ margin: 0, color: '#526071' }}>A shared room for the brief, prototype decisions, and today\u2019s review.</p>\n        </div>\n        <GlassButton size=\"sm\">Share workspace</GlassButton>\n      </header>\n\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 150px), 1fr))', gap: 12 }}>\n        <GlassMetricChip label=\"Teammates\" value=\"3 online\" delta=\"1 away\" intent=\"default\" />\n        <GlassMetricChip label=\"Decisions\" value=\"8\" delta=\"2 need review\" intent=\"default\" />\n        <GlassMetricChip label=\"Comments\" value=\"12 resolved\" delta=\"4 open\" intent=\"default\" />\n      </div>\n\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 280px), 1fr))', gap: 16, alignItems: 'start' }}>\n        <GlassCard depth=\"medium\" tint=\"neutral\" className=\"ag-recipe-surface\" style={{ padding: 16 }}>\n          <h2 style={{ margin: '0 0 4px', fontSize: 18 }}>Today\u2019s activity</h2>\n          <p style={{ margin: '0 0 14px', color: '#526071', fontSize: 14 }}>The latest changes, collected in one calm view.</p>\n          <div style={{ display: 'grid', gap: 10 }}>\n            {activity.map(([title, detail]) => (\n              <div key={title} style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'space-between', gap: '4px 12px', padding: '11px 12px', border: '1px solid rgba(255,255,255,.32)', borderRadius: 14, background: 'rgba(255,255,255,.18)' }}>\n                <strong>{title}</strong><small style={{ color: '#526071' }}>{detail}</small>\n              </div>\n            ))}\n          </div>\n        </GlassCard>\n        <GlassUserPresence users={collaborators} compact showRoles showActivities maxUsers={3} />\n      </div>\n\n      <GlassCard depth=\"medium\" tint=\"neutral\" className=\"ag-recipe-surface ag-recipe-collaboration\" style={{ padding: 12, overflow: 'hidden' }}>\n        <CollaborativeGlassWorkspace\n          workspaceId=\"launch-workspace\"\n          userId=\"maya\"\n          userName=\"Maya Chen\"\n          userEmail=\"maya@example.com\"\n          userRole=\"admin\"\n          aria-label=\"Collaborative launch canvas\"\n          compact\n          contained\n          maxHeight={300}\n          theme=\"light\"\n          enableRealTimeSync={false}\n          enableVoiceChat={false}\n          enableVersionControl={false}\n          showMiniMap={false}\n          showOnlineUsers={false}\n          showCursors={false}\n        />\n      </GlassCard>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"admin-data-table\",\n    title: \"Admin Data Table\",\n    category: \"data\",\n    description:\n      \"A data-heavy admin surface with table/grid primitives, action cards, and compact responsive layout guidance.\",\n    imports: [\"GlassBadge\", \"GlassButton\", \"GlassCard\"],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-bg-default\", \"--glass-border-default\"],\n    accessibility: [\n      \"Preserve column headers and row labels.\",\n      \"Use buttons with clear accessible names for row actions.\",\n    ],\n    performance: [\n      \"Use virtualization for large data sets.\",\n      \"Keep filters and summaries outside continuously animated containers.\",\n    ],\n    files: [\n      {\n        path: \"AdminDataTable.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard } from 'aura-glass';\n${lightRecipeCssSource}\n\nconst users = [\n  ['Avery Stone', 'avery@northstar.co', 'Admin', 'Active'],\n  ['Nina Patel', 'nina@northstar.co', 'Analyst', 'Active'],\n  ['Theo Grant', 'theo@northstar.co', 'Viewer', 'Invited'],\n  ['Maya Lin', 'maya@northstar.co', 'Manager', 'Active'],\n];\n\nexport function AdminDataTable() {\n  return (\n    <section className=\"ag-light-recipe\" aria-labelledby=\"team-directory\"><style>{lightRecipeCss}</style>\n      <header style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'end', justifyContent: 'space-between', gap: 12 }}><div><GlassBadge variant=\"primary\">Workspace admin</GlassBadge><h1 id=\"team-directory\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px, 4vw, 38px)', letterSpacing: '-0.04em' }}>Team directory</h1><p style={{ margin: 0, color: '#526071' }}>Review access, roles, and pending invitations.</p></div><GlassButton size=\"sm\">Invite user</GlassButton></header>\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 170px), 1fr))', gap: 12 }}><GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Active members</small><strong style={{ display: 'block', fontSize: 26, marginTop: 6 }}>128</strong></GlassCard><GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Pending invites</small><strong style={{ display: 'block', fontSize: 26, marginTop: 6 }}>6</strong></GlassCard><GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Admin seats</small><strong style={{ display: 'block', fontSize: 26, marginTop: 6 }}>8</strong></GlassCard></div>\n      <GlassCard depth=\"medium\" tint=\"neutral\"><label htmlFor=\"user-search\" style={{ fontWeight: 650 }}>Search directory</label><input id=\"user-search\" type=\"search\" placeholder=\"Name, email, or role\" style={{ display: 'block', width: '100%', boxSizing: 'border-box', margin: '8px 0 14px', padding: '12px 14px', color: '#172033', background: 'rgba(255,255,255,.3)', border: '1px solid rgba(80,102,130,.28)', borderRadius: 12, font: 'inherit' }} /><div role=\"table\" aria-label=\"Workspace members\" style={{ minWidth: 0 }}>{users.map(([name, email, role, state]) => <div role=\"row\" key={email} style={{ display: 'grid', gridTemplateColumns: 'minmax(0,1.3fr) minmax(0,.65fr) minmax(0,.55fr)', gap: 8, alignItems: 'center', padding: '12px 0', borderTop: '1px solid rgba(86,104,126,.16)', fontSize: 14 }}><span role=\"cell\" style={{ minWidth: 0 }}><strong style={{ display: 'block' }}>{name}</strong><small style={{ display: 'block', overflowWrap: 'anywhere', color: '#526071' }}>{email}</small></span><span role=\"cell\" style={{ overflowWrap: 'anywhere' }}>{role}</span><span role=\"cell\" style={{ overflowWrap: 'anywhere', color: state === 'Active' ? '#176b4d' : '#8a5611' }}>{state}</span></div>)}</div></GlassCard>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"ecommerce-product-panel\",\n    title: \"Ecommerce Product Panel\",\n    category: \"ecommerce\",\n    description:\n      \"A polished product recommendation and cart surface for premium commerce experiences.\",\n    imports: [\"GlassBadge\", \"GlassButton\", \"GlassCard\"],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-accent-success-fg\", \"--glass-radius-lg\"],\n    accessibility: [\n      \"Expose product names, prices, quantities, and cart actions as text.\",\n      \"Keep recommendation cards keyboard reachable.\",\n    ],\n    performance: [\n      \"Defer recommendation refreshes while users interact with the cart.\",\n      \"Use stable image dimensions for product media.\",\n    ],\n    files: [\n      {\n        path: \"EcommerceProductPanel.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard } from 'aura-glass';\n${lightRecipeCssSource}\n\nconst products = [\n  { id: 'studio-headphones', name: 'Studio headphones', detail: 'Spatial audio \u00B7 32-hour battery', price: '$249', mark: 'SH' },\n  { id: 'travel-case', name: 'Travel case', detail: 'Recycled shell \u00B7 Magnetic close', price: '$49', mark: 'TC' },\n  { id: 'charging-stand', name: 'Charging stand', detail: 'Fast wireless charging', price: '$89', mark: 'CS' },\n];\n\nconst commerceCss = \\`\n  .ag-commerce-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(270px,.75fr); gap: 16px; align-items: start; }\n  .ag-commerce-products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }\n  .ag-commerce-product { display: grid; gap: 10px; min-width: 0; padding: 12px; }\n  .ag-commerce-visual { display: grid; place-items: center; aspect-ratio: 4 / 3; min-height: 112px; border: 1px solid rgba(255,255,255,.9); border-radius: 18px; background: linear-gradient(145deg,rgba(255,255,255,.35),rgba(255,255,255,.18)); box-shadow: inset 0 1px 0 rgba(255,255,255,.28), inset 0 0 12px rgba(255,255,255,.12); color: rgba(30,41,59,.92); font-size: 1.15rem; font-weight: 700; letter-spacing: -.02em; }\n  .ag-commerce-product h3 { margin: 0; font-size: .94rem; line-height: 1.3; }\n  .ag-commerce-product p { margin: 0; min-height: 2.7em; color: #4b5a70; font-size: .78rem; line-height: 1.35; overflow-wrap: anywhere; }\n  .ag-commerce-price { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }\n  .ag-commerce-price > * { min-width: 0; }\n  .ag-commerce-cart { display: grid; gap: 14px; position: sticky; top: 12px; }\n  .ag-commerce-cart-line { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: start; padding: 11px 0; border-bottom: 1px solid rgba(100,116,139,.18); }\n  .ag-commerce-cart-line strong, .ag-commerce-cart-line small { display: block; overflow-wrap: anywhere; }\n  .ag-commerce-cart-line small { margin-top: 3px; color: #4b5a70; }\n  .ag-commerce-total { display: flex; justify-content: space-between; gap: 12px; font-size: 1.05rem; }\n  @media (max-width: 820px) { .ag-commerce-layout { grid-template-columns: minmax(0,1fr); } .ag-commerce-cart { position: static; } }\n  @media (max-width: 560px) { .ag-commerce-products { grid-template-columns: minmax(0,1fr); } .ag-commerce-visual { aspect-ratio: 16 / 7; min-height: 94px; } .ag-commerce-product p { min-height: 0; } .ag-commerce-price { flex-wrap: wrap; } .ag-commerce-price button { flex: 0 0 auto; max-width: 100%; } }\n  @media (max-width: 350px) { .ag-commerce-price { display: grid; align-items: stretch; } .ag-commerce-price > [data-glass-component=\"true\"] { display: block; width: 100%; } .ag-commerce-price button { width: 100%; } }\n\\`;\n\nexport function EcommerceProductPanel() {\n  return (\n    <section className=\"ag-light-recipe ag-recipe-commerce\" aria-labelledby=\"featured-essentials\"><style>{lightRecipeCss + commerceCss}</style>\n      <header style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'end', justifyContent: 'space-between', gap: 12 }}>\n        <div style={{ minWidth: 0 }}><GlassBadge variant=\"primary\">Studio collection</GlassBadge><h1 id=\"featured-essentials\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px,4vw,40px)', lineHeight: 1.08, letterSpacing: '-.045em' }}>Featured essentials</h1><p style={{ margin: 0, color: '#4b5a70', lineHeight: 1.5 }}>Purposeful accessories for a focused, beautifully organized workspace.</p></div>\n        <GlassButton size=\"sm\">View collection</GlassButton>\n      </header>\n      <div className=\"ag-commerce-layout\">\n        <div className=\"ag-commerce-products\" aria-label=\"Featured products\">\n          {products.map((product) => <GlassCard key={product.id} depth=\"medium\" tint=\"neutral\" className=\"ag-commerce-product\"><div className=\"ag-commerce-visual\" aria-hidden=\"true\">{product.mark}</div><div><h3>{product.name}</h3><p>{product.detail}</p></div><div className=\"ag-commerce-price\"><strong>{product.price}</strong><GlassButton size=\"sm\" aria-label={'Add ' + product.name + ' to cart'}>Add</GlassButton></div></GlassCard>)}\n        </div>\n        <GlassCard depth=\"medium\" tint=\"neutral\" className=\"ag-commerce-cart\" aria-labelledby=\"cart-summary\">\n          <div><GlassBadge variant=\"secondary\">2 items</GlassBadge><h2 id=\"cart-summary\" style={{ margin: '9px 0 3px', fontSize: '1.25rem', letterSpacing: '-.025em' }}>Cart summary</h2><p style={{ margin: 0, color: '#4b5a70', fontSize: '.86rem', lineHeight: 1.45 }}>Complimentary delivery and returns.</p></div>\n          <div><div className=\"ag-commerce-cart-line\"><span><strong>Studio headphones</strong><small>Graphite \u00B7 Qty 1</small></span><strong>$249</strong></div><div className=\"ag-commerce-cart-line\"><span><strong>Travel case</strong><small>Stone \u00B7 Qty 1</small></span><strong>$49</strong></div></div>\n          <div className=\"ag-commerce-total\"><strong>Total</strong><strong>$298</strong></div>\n          <GlassButton style={{ width: '100%' }}>Secure checkout</GlassButton>\n          <small style={{ color: '#4b5a70', textAlign: 'center', lineHeight: 1.4 }}>Taxes calculated at checkout.</small>\n        </GlassCard>\n      </div>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"saas-admin-shell\",\n    title: \"SaaS Admin Shell\",\n    category: \"dashboard\",\n    description:\n      \"A 3.2 app-shell recipe with native top bar, sidebar rail, page header, status bar, cards, and first-party icons.\",\n    imports: [\n      \"GlassAppShell\",\n      \"GlassTopBar\",\n      \"GlassSidebarRail\",\n      \"GlassMain\",\n      \"GlassPage\",\n      \"GlassPageHeader\",\n      \"GlassStatusBar\",\n      \"GlassCard\",\n      \"GlassButton\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\n      \"--glass-theme-brand\",\n      \"--glass-theme-surface\",\n      \"--glass-theme-focus\",\n    ],\n    accessibility: [\n      \"Keep app navigation inside labelled landmarks.\",\n      \"Use accessible labels for icon-only rail controls.\",\n    ],\n    performance: [\n      \"Keep app shell navigation static across route transitions.\",\n      \"Lazy-load analytics panels below the first viewport.\",\n    ],\n    files: [\n      {\n        path: \"SaasAdminShell.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard } from 'aura-glass';\nimport { GlassAppShell, GlassMain, GlassPage, GlassPageHeader, GlassSidebarRail, GlassStatusBar, GlassTopBar } from 'aura-glass/app-shell';\nimport { DashboardIcon, SettingsIcon, UsersIcon } from 'aura-glass/icons/navigation';\n\nexport function SaasAdminShell() {\n  const nav = [\n    { id: 'dash', label: 'Dashboard', icon: <DashboardIcon />, active: true },\n    { id: 'users', label: 'Users', icon: <UsersIcon /> },\n    { id: 'settings', label: 'Settings', icon: <SettingsIcon /> },\n  ];\n\n  return (\n    <GlassAppShell className=\"recipe-polish saas-admin-shell\" density=\"compact\"\n      topBar={<GlassTopBar brand={<span><strong style={{ display: 'block', lineHeight: 1.2 }}>Northstar</strong><small style={{ display: 'block', color: 'rgba(51,65,85,.92)', lineHeight: 1.3 }}>Growth workspace</small></span>} actions={<GlassButton size=\"sm\">Invite member</GlassButton>} />}\n      sidebar={<GlassSidebarRail items={nav} />}\n      statusBar={<div style={{ padding: 4, minWidth: 0 }}><GlassStatusBar className=\"glass-flex-wrap glass-py-1 glass-leading-5\"><span>Production workspace ready</span><span>Synced moments ago</span></GlassStatusBar></div>}\n    >\n      ${recipePolishStyle}\n      <style>{\\`\n        .saas-admin-shell { min-height: 0 !important; width: 100%; max-width: 100%; overflow: hidden; }\n        .saas-admin-shell .glass-top-bar__brand { min-width: 0; }\n        .saas-admin-shell .glass-sidebar-rail button { background: rgba(255,255,255,.18) !important; border-color: rgba(255,255,255,.72) !important; color: rgba(30,41,59,.94) !important; }\n        .saas-admin-shell .admin-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }\n        .saas-admin-shell .admin-metric { min-width: 0; }\n        .saas-admin-shell .admin-metric small, .saas-admin-shell .admin-account small { display: block; color: rgba(51,65,85,.92); line-height: 1.4; }\n        .saas-admin-shell .admin-metric strong { display: block; margin-top: 6px; font-size: clamp(1.35rem,3vw,1.8rem); letter-spacing: -.04em; overflow-wrap: anywhere; }\n        .saas-admin-shell .admin-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(250px,.7fr); gap: 12px; align-items: start; }\n        .saas-admin-shell .admin-chart { display: flex; align-items: end; gap: 8px; height: 148px; margin-top: 16px; padding: 12px; border: 1px solid rgba(255,255,255,.82); border-radius: 16px; background: rgba(255,255,255,.18); }\n        .saas-admin-shell .admin-chart span { flex: 1; min-width: 8px; border-radius: 8px 8px 4px 4px; background: linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,255,255,.18)); border: 1px solid rgba(255,255,255,.88); box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 5px 14px rgba(71,85,105,.11); }\n        .saas-admin-shell .admin-account { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 11px 0; border-top: 1px solid rgba(100,116,139,.18); }\n        .saas-admin-shell .admin-account strong { display: block; overflow-wrap: anywhere; }\n        @media (max-width: 760px) { .saas-admin-shell .admin-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } .saas-admin-shell .admin-grid { grid-template-columns: minmax(0,1fr); } }\n        @media (max-width: 600px) { .saas-admin-shell { width: 100% !important; margin-left: 0 !important; } .saas-admin-shell .glass-app-shell__body { grid-template-columns: minmax(0,1fr) !important; } .saas-admin-shell .glass-sidebar-rail { width: 100% !important; flex-direction: row !important; justify-content: center; } .saas-admin-shell .glass-status-bar { align-items: flex-start; flex-direction: column; gap: 2px; padding-top: 8px; padding-bottom: 8px; } .saas-admin-shell .glass-top-bar { align-items: center; } .saas-admin-shell .glass-top-bar__actions { flex-shrink: 0; } }\n        @media (max-width: 360px) { .saas-admin-shell .admin-metrics { grid-template-columns: minmax(0,1fr); } .saas-admin-shell .glass-top-bar { flex-wrap: wrap; } .saas-admin-shell .glass-top-bar__actions { width: 100%; margin-left: 0; } }\n      \\`}</style>\n      <GlassMain>\n        <GlassPage>\n          <GlassPageHeader eyebrow=\"Revenue operations\" title=\"Good morning, Maya\" description=\"Monitor account health, expansion, and activation from one calm operating view.\" actions={<GlassButton size=\"sm\">Export report</GlassButton>} />\n          <div className=\"admin-metrics\">\n            {[['Monthly revenue','$428K','+12.4% this quarter'],['Active accounts','1,284','38 added this month'],['Net retention','118%','4 points above plan'],['Open pipeline','$2.4M','128 qualified accounts']].map(([label,value,note]) => <GlassCard key={label} depth=\"medium\" tint=\"neutral\" className=\"admin-metric\"><small>{label}</small><strong>{value}</strong><small>{note}</small></GlassCard>)}\n          </div>\n          <div className=\"admin-grid\">\n            <GlassCard depth=\"medium\" tint=\"neutral\"><div style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'start', justifyContent: 'space-between', gap: 10 }}><div><h2 className=\"recipe-section-title\">Pipeline health</h2><p className=\"recipe-copy\" style={{ marginTop: 5 }}>$2.4M weighted pipeline across 128 accounts.</p></div><GlassBadge variant=\"secondary\">Last 8 weeks</GlassBadge></div><div className=\"admin-chart\" role=\"img\" aria-label=\"Pipeline increased steadily over the last eight weeks\">{[38,49,44,62,58,76,72,88].map((height,index) => <span key={index} style={{ height: height + '%' }} />)}</div></GlassCard>\n            <GlassCard depth=\"medium\" tint=\"neutral\"><div><h2 className=\"recipe-section-title\">Accounts to watch</h2><p className=\"recipe-copy\" style={{ marginTop: 5 }}>Signals requiring a focused follow-up.</p></div><div style={{ marginTop: 10 }}>{[['Acme Studio','Renewal in 12 days','At plan'],['Orbital Labs','Usage up 24%','Expansion'],['River & Co.','2 seats inactive','Review']].map(([name,note,state]) => <div key={name} className=\"admin-account\"><span><strong>{name}</strong><small>{note}</small></span><GlassBadge variant=\"secondary\">{state}</GlassBadge></div>)}</div></GlassCard>\n          </div>\n        </GlassPage>\n      </GlassMain>\n    </GlassAppShell>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"ai-product-console\",\n    title: \"AI Product Console\",\n    category: \"ai\",\n    description:\n      \"A command-centered AI console using AuraGlass app shell, command dock, telemetry cards, and first-party AI icons.\",\n    imports: [\"GlassBadge\", \"GlassButton\", \"GlassCard\"],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-theme-brand\", \"--glass-accent-info-fg\"],\n    accessibility: [\n      \"Use a visible label or aria-label for the command input.\",\n      \"Keep live model updates polite unless user-triggered.\",\n    ],\n    performance: [\n      \"Render model telemetry as static cards until realtime updates are needed.\",\n      \"Avoid continuous canvas effects in the command path.\",\n    ],\n    files: [\n      {\n        path: \"AiProductConsole.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard } from 'aura-glass';\n${lightRecipeCssSource}\n\nexport function AiProductConsole() {\n  return (\n    <section className=\"ag-light-recipe\" aria-labelledby=\"ai-product\"><style>{lightRecipeCss}</style>\n      <header style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'space-between', alignItems: 'start', gap: 12 }}><div><GlassBadge variant=\"primary\">Production \u00B7 Live</GlassBadge><h1 id=\"ai-product\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px, 4vw, 38px)', letterSpacing: '-0.04em' }}>AI product console</h1><p style={{ margin: 0, color: '#526071' }}>Inspect response quality, knowledge coverage, and recent evaluations.</p></div><GlassButton size=\"sm\">New evaluation</GlassButton></header>\n      <GlassCard depth=\"strong\" tint=\"neutral\"><label htmlFor=\"product-prompt\" style={{ fontWeight: 650 }}>Test a production prompt</label><div style={{ display: 'flex', flexWrap: 'wrap', gap: 10, marginTop: 8 }}><input id=\"product-prompt\" placeholder=\"Summarize workspace telemetry\" style={{ flex: '1 1 220px', minWidth: 0, boxSizing: 'border-box', padding: '12px 14px', color: '#172033', background: 'rgba(255,255,255,.3)', border: '1px solid rgba(80,102,130,.28)', borderRadius: 12, font: 'inherit' }} /><GlassButton size=\"sm\">Generate</GlassButton></div></GlassCard>\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 190px), 1fr))', gap: 12 }}><GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Grounded responses</small><strong style={{ display: 'block', fontSize: 28, marginTop: 7 }}>98.0%</strong><span style={{ color: '#176b4d' }}>42 sources indexed</span></GlassCard><GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Evaluation pass rate</small><strong style={{ display: 'block', fontSize: 28, marginTop: 7 }}>94.6%</strong><span style={{ color: '#176b4d' }}>+2.4% this release</span></GlassCard><GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Cost per answer</small><strong style={{ display: 'block', fontSize: 28, marginTop: 7 }}>$0.018</strong><span style={{ color: '#526071' }}>Within budget</span></GlassCard></div>\n      <GlassCard depth=\"medium\" tint=\"neutral\"><div style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'space-between', gap: 8 }}><div><h2 style={{ margin: 0, fontSize: 18 }}>Latest evaluation</h2><p style={{ margin: '4px 0 0', color: '#526071' }}>Workspace assistant \u00B7 120 test cases</p></div><strong style={{ color: '#176b4d' }}>Passed</strong></div><div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 8, marginTop: 16 }}>{[['Accuracy','96%'],['Safety','100%'],['Tone','92%']].map(([label,value]) => <div key={label} style={{ padding: 12, textAlign: 'center', borderRadius: 14, background: 'rgba(255,255,255,.24)', border: '1px solid rgba(80,102,130,.16)' }}><strong style={{ display: 'block', fontSize: 20 }}>{value}</strong><small style={{ color: '#526071' }}>{label}</small></div>)}</div></GlassCard>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"media-review-workspace\",\n    title: \"Media Review Workspace\",\n    category: \"media\",\n    description:\n      \"A creator/media review surface with workspace panels, timeline rail, media controls, and first-party media icons.\",\n    imports: [\n      \"GlassWorkspace\",\n      \"GlassWorkspaceHeader\",\n      \"GlassCanvasArea\",\n      \"GlassTimelineRail\",\n      \"LiquidGlassMediaControls\",\n      \"GlassMusicVisualizer\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-theme-surface\", \"--glass-backdrop-blur\"],\n    accessibility: [\n      \"Expose play state, clip names, and timeline positions as text.\",\n      \"Keep review actions reachable by keyboard.\",\n    ],\n    performance: [\n      \"Pause analyzers when preview playback is stopped.\",\n      \"Use stable media frame dimensions to avoid layout shift.\",\n    ],\n    files: [\n      {\n        path: \"MediaReviewWorkspace.tsx\",\n        content: `${cssImport}\n${lightRecipeCssSource}\nimport { LiquidGlassMediaControls, GlassMusicVisualizer } from 'aura-glass';\nimport { GlassCanvasArea, GlassTimelineRail, GlassWorkspace, GlassWorkspaceHeader } from 'aura-glass/workspace';\nimport { PlayIcon, VideoIcon } from 'aura-glass/icons/media';\n\nexport function MediaReviewWorkspace() {\n  return (\n    <section className=\"ag-light-recipe ag-media-review\" aria-label=\"Media review workspace\">\n      <style>{lightRecipeCss}</style>\n      <GlassWorkspace header={<GlassWorkspaceHeader title=\"Media review\" description=\"Review clips, notes, and audio intensity from one glass workspace.\" />}>\n        <GlassCanvasArea><VideoIcon size={48} /><p>Hero cut preview</p></GlassCanvasArea>\n        <LiquidGlassMediaControls compact playing currentTime={42} duration={180} />\n        <GlassTimelineRail label=\"Timeline\"><span><PlayIcon /> Intro sequence</span><GlassMusicVisualizer className=\"ag-media-visualizer\" compact contained realTimeAnalysis={false} /></GlassTimelineRail>\n      </GlassWorkspace>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"commerce-operations-panel\",\n    title: \"Commerce Operations Panel\",\n    category: \"ecommerce\",\n    description:\n      \"An ecommerce operations shell with native cards, product recommendations, cart state, and first-party status icons.\",\n    imports: [\n      \"GlassCard\",\n      \"GlassSmartShoppingCart\",\n      \"GlassProductRecommendations\",\n      \"GlassButton\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-theme-brand\", \"--glass-accent-success-fg\"],\n    accessibility: [\n      \"Expose prices, inventory state, and cart quantity as text.\",\n      \"Do not rely on color alone for fulfillment status.\",\n    ],\n    performance: [\n      \"Debounce cart recalculation during quantity changes.\",\n      \"Lazy-load recommendation imagery below the operation summary.\",\n    ],\n    files: [\n      {\n        path: \"CommerceOperationsPanel.tsx\",\n        content: `${cssImport}\nimport { GlassButton, GlassCard, GlassProductRecommendations, GlassSmartShoppingCart } from 'aura-glass';\nimport { SuccessIcon, WarningIcon } from 'aura-glass/icons/status';\n${lightRecipeCssSource}\n\nconst commerceOperationsCss = \\`\n  .ag-recipe-commerce-ops { box-sizing: border-box; min-width: 0; width: 100%; overflow: hidden; }\n  .ag-recipe-commerce-ops > header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }\n  .ag-recipe-commerce-ops > p { display: flex; align-items: flex-start; gap: 6px; margin: 6px 0; }\n  .ag-recipe-commerce-ops :where(.optimized-glass-surface, [class*=\"product\"], [class*=\"recommend\"], [class*=\"cart\"]) { min-width: 0 !important; max-width: 100% !important; }\n  .ag-recipe-commerce-ops :where(h1,h2,h3,p,span,strong,small) { overflow-wrap: anywhere; }\n  @media (max-width: 350px) {\n    .ag-recipe-commerce-ops { padding: 12px !important; }\n    .ag-recipe-commerce-ops > header { display: grid; justify-items: start; }\n    .ag-recipe-commerce-ops :where([class*=\"grid\"], [class*=\"products\"], [class*=\"recommend\"]) { grid-template-columns: minmax(0,1fr) !important; }\n    .ag-recipe-commerce-ops :where(.glass-flex, [class*=\"flex\"]) { flex-wrap: wrap !important; }\n    .ag-recipe-commerce-ops .glass-foundation-basic { padding: 12px !important; }\n    .ag-recipe-commerce-ops .glass-foundation-basic img { display: none !important; }\n    .ag-recipe-commerce-ops .glass-foundation-basic :where(.glass-flex-1, .glass-min-glass-w-0) { width: 100% !important; min-width: 0 !important; }\n    .ag-recipe-commerce-ops .glass-foundation-basic :where(.glass-truncate, h3, p) { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere !important; }\n    .ag-recipe-commerce-ops .glass-mt-6 > .glass-flex { display: grid !important; grid-template-columns: minmax(0,1fr) !important; }\n  }\n\\`;\n\nexport function CommerceOperationsPanel() {\n  return (\n    <GlassCard depth=\"medium\" tint=\"neutral\" className=\"ag-light-recipe ag-recipe-surface ag-recipe-commerce ag-recipe-commerce-ops\">\n      <style>{lightRecipeCss + commerceOperationsCss}</style>\n      <header><h2>Commerce operations</h2><GlassButton size=\"sm\">Review orders</GlassButton></header>\n      <p><SuccessIcon /> 94 orders cleared fulfillment.</p>\n      <p><WarningIcon /> 6 carts need payment follow-up.</p>\n      <GlassProductRecommendations title=\"Inventory watch\" variant=\"compact\" showQuickActions={false} products={[\n        { id: 'studio-headphones', name: 'Studio headphones', price: 249, rating: 4.8, reviewCount: 128, stock: 12, availability: 'in-stock', images: [] },\n        { id: 'travel-case', name: 'Travel case', price: 49, rating: 4.7, reviewCount: 64, stock: 24, availability: 'in-stock', images: [] },\n      ]} />\n      <GlassSmartShoppingCart compact contained />\n    </GlassCard>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"team-collaboration-hub\",\n    title: \"Team Collaboration Hub\",\n    category: \"collaboration\",\n    description:\n      \"A collaboration hub with workspace shell, inspector panel, realtime-ready collaboration surface, and first-party collaboration icons.\",\n    imports: [\n      \"GlassWorkspace\",\n      \"GlassInspectorPanel\",\n      \"CollaborativeGlassWorkspace\",\n      \"GlassBadge\",\n      \"GlassButton\",\n      \"GlassCard\",\n      \"GlassMetricChip\",\n      \"GlassUserPresence\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\", \"socket.io-client\"],\n    tokens: [\"--glass-theme-surface\", \"--glass-accent-success-fg\"],\n    accessibility: [\n      \"Announce presence changes politely.\",\n      \"Keep participant names visible and not only represented by avatars.\",\n    ],\n    performance: [\n      \"Throttle presence updates in dense workspaces.\",\n      \"Disconnect realtime transport when the route is hidden.\",\n    ],\n    files: [\n      {\n        path: \"TeamCollaborationHub.tsx\",\n        content: `${cssImport}\nimport { CollaborativeGlassWorkspace, GlassBadge, GlassButton, GlassCard, GlassMetricChip, GlassUserPresence } from 'aura-glass';\nimport { GlassInspectorPanel, GlassWorkspace } from 'aura-glass/workspace';\nimport { UsersIcon } from 'aura-glass/icons/collaboration';\n${lightRecipeCssSource}\n\nconst teammates = [\n  { id: 'elena', name: 'Elena Park', status: 'online' as const, role: 'admin' as const, activity: 'Facilitating weekly review' },\n  { id: 'marcus', name: 'Marcus Reed', status: 'online' as const, role: 'member' as const, activity: 'Updating mobile handoff' },\n  { id: 'noor', name: 'Noor Ali', status: 'busy' as const, role: 'member' as const, activity: 'Finalizing research summary' },\n  { id: 'sam', name: 'Sam Rivera', status: 'away' as const, role: 'guest' as const, activity: 'Back at 3:00 PM' },\n];\n\nconst priorities = [\n  ['Mobile handoff', 'Owner \u00B7 Marcus', 'Due today'],\n  ['Research synthesis', 'Owner \u00B7 Noor', 'Review tomorrow'],\n  ['Launch readiness', 'Owner \u00B7 Elena', '8 of 10 complete'],\n];\n\nexport function TeamCollaborationHub() {\n  return (\n    <section className=\"ag-light-recipe ag-collab-recipe\" aria-labelledby=\"team-hub-title\">\n      <style>{lightRecipeCss}</style>\n      <header style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'end', justifyContent: 'space-between', gap: 12 }}>\n        <div>\n          <GlassBadge variant=\"secondary\">Weekly team room</GlassBadge>\n          <h1 id=\"team-hub-title\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px, 4vw, 40px)', letterSpacing: '-0.04em', lineHeight: 1.08 }}>Collaboration hub</h1>\n          <p style={{ margin: 0, color: '#526071' }}>Presence, priorities, and shared work for the launch team.</p>\n        </div>\n        <GlassButton size=\"sm\">Invite teammate</GlassButton>\n      </header>\n\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 150px), 1fr))', gap: 12 }}>\n        <GlassMetricChip label=\"Online now\" value=\"3\" delta=\"1 away\" intent=\"default\" icon={<UsersIcon />} />\n        <GlassMetricChip label=\"Open tasks\" value=\"7\" delta=\"3 due today\" intent=\"default\" />\n        <GlassMetricChip label=\"Review queue\" value=\"4\" delta=\"2 assigned\" intent=\"default\" />\n      </div>\n\n      <GlassWorkspace\n        className=\"ag-recipe-workspace\"\n        inspector={\n          <GlassInspectorPanel title=\"Team presence\">\n            <p style={{ margin: '0 0 12px', color: '#526071', fontSize: 14 }}><UsersIcon /> Four teammates are in this room.</p>\n            <GlassUserPresence users={teammates} compact showRoles showActivities maxUsers={4} />\n          </GlassInspectorPanel>\n        }\n      >\n        <div style={{ display: 'grid', gap: 16 }}>\n          <GlassCard depth=\"medium\" tint=\"neutral\" className=\"ag-recipe-surface\" style={{ padding: 16 }}>\n            <div style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'space-between', gap: 10, marginBottom: 14 }}>\n              <div><h2 style={{ margin: 0, fontSize: 18 }}>Priority board</h2><p style={{ margin: '4px 0 0', color: '#526071', fontSize: 14 }}>The work that needs a decision next.</p></div>\n              <GlassButton size=\"sm\" variant=\"secondary\">View all tasks</GlassButton>\n            </div>\n            <div style={{ display: 'grid', gap: 10 }}>\n              {priorities.map(([title, owner, state]) => (\n                <div key={title} style={{ display: 'grid', gridTemplateColumns: 'minmax(0, 1.2fr) minmax(0, 1fr)', gap: 10, padding: '11px 12px', border: '1px solid rgba(255,255,255,.32)', borderRadius: 14, background: 'rgba(255,255,255,.18)' }}>\n                  <strong>{title}</strong><small style={{ color: '#526071', textAlign: 'right' }}>{owner}<br />{state}</small>\n                </div>\n              ))}\n            </div>\n          </GlassCard>\n          <GlassCard depth=\"medium\" tint=\"neutral\" className=\"ag-recipe-surface ag-recipe-collaboration\" style={{ padding: 12, overflow: 'hidden' }}>\n            <CollaborativeGlassWorkspace\n              workspaceId=\"team-collaboration-hub\"\n              userId=\"elena\"\n              userName=\"Elena Park\"\n              userEmail=\"elena@example.com\"\n              userRole=\"admin\"\n              aria-label=\"Team collaboration canvas\"\n              compact\n              contained\n              maxHeight={300}\n              theme=\"light\"\n              enableRealTimeSync={false}\n              enableVoiceChat={false}\n              enableVersionControl={false}\n              showMiniMap={false}\n              showOnlineUsers={false}\n              showCursors={false}\n            />\n          </GlassCard>\n        </div>\n      </GlassWorkspace>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"settings-and-billing-suite\",\n    title: \"Settings and Billing Suite\",\n    category: \"settings\",\n    description:\n      \"A complete settings suite with app-shell layout, form surfaces, billing actions, validation space, and native icons.\",\n    imports: [\"GlassBadge\", \"GlassButton\", \"GlassCard\"],\n    peerDependencies: [\"react\", \"react-dom\", \"react-hook-form\"],\n    tokens: [\"--glass-theme-focus\", \"--glass-border-focus\"],\n    accessibility: [\n      \"Use labels and validation messages for every billing field.\",\n      \"Keep destructive billing actions explicitly labelled.\",\n    ],\n    performance: [\n      \"Keep settings views mostly static while users type.\",\n      \"Debounce validation and avoid continuous animation in forms.\",\n    ],\n    files: [\n      {\n        path: \"SettingsAndBillingSuite.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard } from 'aura-glass';\n${lightRecipeCssSource}\n\nexport function SettingsAndBillingSuite() {\n  return (\n    <section className=\"ag-light-recipe\" aria-labelledby=\"settings-suite\"><style>{lightRecipeCss}</style>\n      <header><GlassBadge variant=\"primary\">Workspace controls</GlassBadge><h1 id=\"settings-suite\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px, 4vw, 38px)', letterSpacing: '-0.04em' }}>Settings and billing</h1><p style={{ margin: 0, color: '#526071' }}>Account controls, plan state, and billing workflow in one calm workspace.</p></header>\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 280px), 1fr))', gap: 12 }}>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><h2 style={{ margin: '0 0 4px', fontSize: 20 }}>Workspace identity</h2><p style={{ margin: '0 0 14px', color: '#526071' }}>Shown to everyone in Northstar.</p><label style={{ display: 'block', fontWeight: 650 }}>Workspace name<input defaultValue=\"Northstar Studio\" style={{ display: 'block', width: '100%', boxSizing: 'border-box', marginTop: 7, padding: '12px 14px', color: '#172033', background: 'rgba(255,255,255,.3)', border: '1px solid rgba(80,102,130,.28)', borderRadius: 12, font: 'inherit' }} /></label><label style={{ display: 'block', marginTop: 12, fontWeight: 650 }}>Billing email<input type=\"email\" defaultValue=\"finance@northstar.co\" style={{ display: 'block', width: '100%', boxSizing: 'border-box', marginTop: 7, padding: '12px 14px', color: '#172033', background: 'rgba(255,255,255,.3)', border: '1px solid rgba(80,102,130,.28)', borderRadius: 12, font: 'inherit' }} /></label></GlassCard>\n        <GlassCard depth=\"strong\" tint=\"neutral\"><div style={{ display: 'flex', justifyContent: 'space-between', gap: 10 }}><div><small style={{ color: '#526071' }}>Studio annual</small><h2 style={{ margin: '6px 0 2px', fontSize: 24 }}>$10,368 / year</h2></div><GlassBadge variant=\"primary\">Active</GlassBadge></div><p style={{ color: '#526071' }}>Renews September 12, 2027 \u00B7 18 seats</p><div style={{ display: 'grid', gap: 10, margin: '18px 0' }}>{[['Payment method','Visa \u00B7\u00B7\u00B7\u00B7 4242'],['Next invoice','$864.00'],['Usage','18 of 25 seats']].map(([label,value]) => <div key={label} style={{ display: 'flex', justifyContent: 'space-between', gap: 12, paddingTop: 10, borderTop: '1px solid rgba(86,104,126,.16)' }}><span style={{ color: '#526071' }}>{label}</span><strong>{value}</strong></div>)}</div><GlassButton size=\"sm\">Manage plan</GlassButton></GlassCard>\n      </div>\n      <GlassCard depth=\"medium\" tint=\"neutral\"><h2 style={{ margin: '0 0 12px', fontSize: 20 }}>Invoice delivery</h2><div style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'center', justifyContent: 'space-between', gap: 12 }}><p style={{ margin: 0, color: '#526071' }}>Monthly invoices and renewal reminders go to finance@northstar.co.</p><GlassButton>Save settings</GlassButton></div></GlassCard>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"analytics-command-center\",\n    title: \"Analytics Command Center\",\n    category: \"dashboard\",\n    description:\n      \"An executive analytics command center with dashboard shell, KPI card, chart panel, command dock, and first-party data icons.\",\n    imports: [\n      \"GlassCard\",\n      \"GlassDataChart\",\n      \"GlassHeatmap\",\n      \"GlassCommandDock\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\", \"chart.js\", \"react-chartjs-2\"],\n    tokens: [\"--glass-theme-brand\", \"--glass-accent-info-fg\"],\n    accessibility: [\n      \"Provide text summaries for chart-heavy panels.\",\n      \"Use readable metric deltas that do not rely only on color.\",\n    ],\n    performance: [\n      \"Lazy-load heatmaps and dense analytics panels below the fold.\",\n      \"Cache chart data while filters are idle.\",\n    ],\n    files: [\n      {\n        path: \"AnalyticsCommandCenter.tsx\",\n        content: `${cssImport}\n${lightRecipeCssSource}\nimport { GlassCard, GlassDataChart, GlassHeatmap } from 'aura-glass';\nimport { GlassCommandDock, GlassPage, GlassPageHeader } from 'aura-glass/app-shell';\nimport { DatabaseIcon, SearchIcon } from 'aura-glass/icons/data';\n\nconst revenueAndRetention = [\n  { id: 'revenue', label: 'Revenue index', formatType: 'number', data: [{ x: 'Mar', y: 71 }, { x: 'Apr', y: 76 }, { x: 'May', y: 82 }, { x: 'Jun', y: 88 }, { x: 'Jul', y: 94 }, { x: 'Aug', y: 100 }] },\n  { id: 'retention', label: 'Retention index', formatType: 'number', data: [{ x: 'Mar', y: 78 }, { x: 'Apr', y: 80 }, { x: 'May', y: 83 }, { x: 'Jun', y: 86 }, { x: 'Jul', y: 89 }, { x: 'Aug', y: 92 }] },\n];\n\nconst usageByDay = [\n  [42, 56, 63, 69, 73, 58, 46],\n  [49, 61, 68, 74, 78, 64, 51],\n  [53, 66, 72, 79, 84, 70, 57],\n  [57, 70, 77, 83, 88, 74, 61],\n];\n\nexport function AnalyticsCommandCenter() {\n  return (\n    <section className=\"ag-light-recipe ag-recipe-chart\" aria-label=\"Analytics command center\">\n      <style>{lightRecipeCss}</style>\n      <GlassPage>\n      <GlassPageHeader title=\"Analytics command center\" description=\"Filter revenue, retention, and usage from one command surface.\" actions={<DatabaseIcon />} />\n      <GlassCommandDock input={<span><SearchIcon /> Ask for cohort performance</span>} />\n        <div className=\"recipe-metrics\" style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 170px), 1fr))', gap: 12 }}>\n          {[\n            ['Revenue', '$263k', '+18.6%'],\n            ['Net retention', '112.4%', '+3.8 pts'],\n            ['Weekly active', '18,420', '+9.2%'],\n            ['Risked revenue', '$38k', '14 accounts'],\n          ].map(([label, value, note]) => <GlassCard key={label} depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071', fontWeight: 650 }}>{label}</small><strong style={{ display: 'block', margin: '7px 0 4px', fontSize: 'clamp(22px, 3vw, 30px)', letterSpacing: '-.035em' }}>{value}</strong><span style={{ color: '#526071', fontSize: 13 }}>{note}</span></GlassCard>)}\n        </div>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><GlassDataChart title=\"Momentum index\" subtitle=\"Normalized revenue and retention \u00B7 Mar\u2013Aug\" datasets={revenueAndRetention} variant=\"line\" width=\"100%\" height={300} glassVariant=\"clear\" palette={['#42546d', '#91a0b2']} showToolbar={false} allowDownload={false} legend={{ show: true, position: 'top', align: 'start', style: 'compact', glassEffect: false }} /></GlassCard>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><div style={{ marginBottom: 14 }}><h2 style={{ margin: 0, fontSize: 19, letterSpacing: '-.02em' }}>Workspace engagement</h2><p style={{ margin: '5px 0 0', color: '#526071', fontSize: 14 }}>Active-session intensity for the last four operating weeks.</p></div><GlassHeatmap data={usageByDay} xAxis={{ title: 'Day', labels: ['M', 'T', 'W', 'T', 'F', 'S', 'S'] }} yAxis={{ title: 'Week', labels: ['Jul 15', 'Jul 22', 'Jul 29', 'Aug 5'] }} colorScale={{ min: '#f1f5f9', mid: '#cbd5e1', max: '#94a3b8', steps: 7 }} cellSize={18} cellGap={8} contained maxHeight={290} showValues showLegend legendPosition=\"bottom\" animated={false} /></GlassCard>\n      </GlassPage>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"calendar-operations-board\",\n    title: \"Calendar Operations Board\",\n    category: \"dashboard\",\n    description:\n      \"A schedule operations board with native workspace layout, calendar component, event summary, and navigation icons.\",\n    imports: [\n      \"GlassCalendar\",\n      \"GlassCard\",\n      \"GlassButton\",\n      \"GlassWorkspacePanel\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-theme-surface\", \"--glass-theme-focus\"],\n    accessibility: [\n      \"Expose selected dates and event times as text.\",\n      \"Keep date navigation keyboard reachable.\",\n    ],\n    performance: [\n      \"Load one visible date range at a time.\",\n      \"Avoid re-rendering all event chips during filter updates.\",\n    ],\n    files: [\n      {\n        path: \"CalendarOperationsBoard.tsx\",\n        content: `${cssImport}\n${lightRecipeCssSource}\nimport { GlassButton, GlassCalendar, GlassCard } from 'aura-glass';\nimport { GlassWorkspacePanel } from 'aura-glass/workspace';\nimport { CalendarIcon } from 'aura-glass/icons/navigation';\n\nexport function CalendarOperationsBoard() {\n  return (\n    <section className=\"ag-light-recipe ag-recipe-calendar\" aria-label=\"Calendar operations board\">\n      <style>{lightRecipeCss}</style>\n      <GlassWorkspacePanel title=\"Launch calendar\" actions={<GlassButton size=\"sm\">New event</GlassButton>}>\n        <p><CalendarIcon /> May launch sequence</p>\n        <GlassCard depth=\"medium\" tint=\"neutral\"><GlassCalendar compact contained maxRows={4} maxHeight={420} /></GlassCard>\n      </GlassWorkspacePanel>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"customer-support-console\",\n    title: \"Customer Support Console\",\n    category: \"data\",\n    description:\n      \"A support operations console with app shell, table/grid surfaces, notifications, and first-party status icons.\",\n    imports: [\"GlassBadge\", \"GlassButton\", \"GlassCard\"],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-theme-focus\", \"--glass-accent-warning-fg\"],\n    accessibility: [\n      \"Preserve ticket IDs, status, priority, and assigned agent as text.\",\n      \"Use polite live-region semantics for notifications.\",\n    ],\n    performance: [\n      \"Virtualize large ticket queues.\",\n      \"Batch notification updates during import bursts.\",\n    ],\n    files: [\n      {\n        path: \"CustomerSupportConsole.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard } from 'aura-glass';\n${lightRecipeCssSource}\n\nconst tickets = [\n  ['#8421', 'Onboarding import failed', 'Urgent', 'Maya Lin'],\n  ['#8418', 'Invoice total looks incorrect', 'High', 'Noah Kim'],\n  ['#8412', 'Add SSO domain', 'Normal', 'Avery Stone'],\n];\n\nexport function CustomerSupportConsole() {\n  return (\n    <section className=\"ag-light-recipe\" aria-labelledby=\"support-queue\"><style>{lightRecipeCss}</style>\n      <header style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'space-between', alignItems: 'end', gap: 12 }}><div><GlassBadge variant=\"primary\">Support operations</GlassBadge><h1 id=\"support-queue\" style={{ margin: '10px 0 4px', fontSize: 'clamp(26px, 4vw, 38px)', letterSpacing: '-0.04em' }}>Customer support queue</h1><p style={{ margin: 0, color: '#526071' }}>Prioritize escalations and keep response times on target.</p></div><GlassButton size=\"sm\">Create ticket</GlassButton></header>\n      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 175px), 1fr))', gap: 12 }}><GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Open tickets</small><strong style={{ display: 'block', marginTop: 6, fontSize: 28 }}>64</strong><span style={{ color: '#8a5611' }}>12 escalated</span></GlassCard><GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>Resolved today</small><strong style={{ display: 'block', marginTop: 6, fontSize: 28 }}>48</strong><span style={{ color: '#176b4d' }}>+14% vs average</span></GlassCard><GlassCard depth=\"medium\" tint=\"neutral\"><small style={{ color: '#526071' }}>First response</small><strong style={{ display: 'block', marginTop: 6, fontSize: 28 }}>7m 42s</strong><span style={{ color: '#176b4d' }}>Within SLA</span></GlassCard></div>\n      <GlassCard depth=\"medium\" tint=\"neutral\"><div style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'space-between', gap: 10, marginBottom: 12 }}><div><h2 style={{ margin: 0, fontSize: 20 }}>Priority tickets</h2><p style={{ margin: '4px 0 0', color: '#526071' }}>Sorted by urgency and customer impact.</p></div><input type=\"search\" aria-label=\"Search tickets\" placeholder=\"Search tickets\" style={{ flex: '0 1 230px', minWidth: 0, boxSizing: 'border-box', padding: '10px 12px', color: '#172033', background: 'rgba(255,255,255,.3)', border: '1px solid rgba(80,102,130,.28)', borderRadius: 12, font: 'inherit' }} /></div>{tickets.map(([id, subject, priority, owner]) => <div key={id} style={{ display: 'grid', gridTemplateColumns: 'minmax(0,1fr) auto', gap: 10, padding: '12px 0', borderTop: '1px solid rgba(86,104,126,.16)' }}><span style={{ minWidth: 0 }}><strong style={{ display: 'block', overflowWrap: 'anywhere' }}>{id} \u00B7 {subject}</strong><small style={{ color: '#526071' }}>Assigned to {owner}</small></span><strong style={{ color: priority === 'Urgent' ? '#9b3137' : priority === 'High' ? '#8a5611' : '#526071' }}>{priority}</strong></div>)}</GlassCard>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"creator-studio-dashboard\",\n    title: \"Creator Studio Dashboard\",\n    category: \"media\",\n    description:\n      \"A creator studio dashboard with workspace shell, media widgets, upload surface, and first-party media/data icons.\",\n    imports: [\n      \"GlassFileUpload\",\n      \"GlassImageViewer\",\n      \"GlassMusicVisualizer\",\n      \"GlassCard\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\"--glass-theme-brand\", \"--glass-backdrop-blur\"],\n    accessibility: [\n      \"Expose upload status and media metadata as text.\",\n      \"Keep media actions reachable by keyboard.\",\n    ],\n    performance: [\n      \"Use stable preview dimensions for uploaded media.\",\n      \"Disable analyzer loops under reduced motion.\",\n    ],\n    files: [\n      {\n        path: \"CreatorStudioDashboard.tsx\",\n        content: `${cssImport}\n${lightRecipeCssSource}\nimport { GlassCard, GlassFileUpload, GlassImageViewer, GlassMusicVisualizer } from 'aura-glass';\nimport { GlassWorkflowShell } from 'aura-glass/workspace';\nimport { ImageIcon, VideoIcon } from 'aura-glass/icons/media';\n\nexport function CreatorStudioDashboard() {\n  return (\n    <section className=\"ag-light-recipe ag-creator-studio\" aria-label=\"Creator studio dashboard\">\n      <style>{lightRecipeCss}</style>\n      <GlassWorkflowShell title=\"Creator studio\" description=\"Plan, upload, preview, and review media in one glass-native studio.\">\n        <GlassCard depth=\"medium\" tint=\"neutral\">\n          <p><ImageIcon /> Asset library</p>\n          <p><VideoIcon /> Review queue</p>\n          <GlassFileUpload compact contained showActions={false} />\n          <div className=\"ag-creator-grid\">\n            <GlassImageViewer className=\"ag-media-preview\" contained compact height={260} />\n            <GlassMusicVisualizer className=\"ag-media-visualizer\" compact contained maxHeight={280} realTimeAnalysis={false} />\n          </div>\n        </GlassCard>\n      </GlassWorkflowShell>\n    </section>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"ai-ops-control-room\",\n    title: \"AI Ops Control Room\",\n    category: \"ai\",\n    description:\n      \"A 3.3 AI operations room for provider readiness, usage budgets, rate limits, and prompt-safety review that defaults to provider-unconfigured status.\",\n    imports: [\n      \"GlassBadge\",\n      \"GlassButton\",\n      \"GlassCard\",\n      \"GlassErrorState\",\n      \"GlassMetricChip\",\n      \"GlassProgress\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\n      \"--glass-theme-brand\",\n      \"--glass-accent-warning-fg\",\n      \"--glass-accent-info-fg\",\n    ],\n    accessibility: [\n      \"Use warning severity for provider-unconfigured states without interrupting page navigation.\",\n      \"Expose budget, rate-limit, and review states as text in addition to color.\",\n      \"Keep prompt-safety review actions keyboard reachable.\",\n    ],\n    performance: [\n      \"Poll provider readiness on an interval only after credentials are configured.\",\n      \"Render usage and cost panels as static summaries until realtime telemetry is enabled.\",\n    ],\n    files: [\n      {\n        path: \"AiOpsControlRoom.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard, GlassErrorState, GlassMetricChip, GlassProgress } from 'aura-glass';\nimport { GlassCommandDock, GlassPage, GlassPageHeader } from 'aura-glass/app-shell';\nimport { CommandIcon, SparkIcon, ZapIcon } from 'aura-glass/icons/ai';\nimport { AlertTriangleIcon, InfoIcon } from 'aura-glass/icons/status';\n\nconst safetyReviews = ['PII redaction', 'Prompt injection scan', 'Grounding evidence'];\n\nexport function AiOpsControlRoom() {\n  return (\n    <GlassPage className=\"recipe-polish\">\n      ${recipePolishStyle}\n      <GlassPageHeader\n        title=\"AI ops control room\"\n        description=\"Track provider readiness, spend, rate limits, and prompt-safety review without assuming hosted credentials are present.\"\n        actions={<GlassBadge variant=\"warning\"><AlertTriangleIcon /> Provider unconfigured</GlassBadge>}\n      />\n      <GlassCommandDock input={<span><CommandIcon /> Review usage policy</span>} actions={<SparkIcon />} />\n      <section className=\"recipe-metrics glass-grid glass-gap-4 md:glass-grid-cols-3\" aria-label=\"AI operations metrics\">\n        <GlassMetricChip label=\"Daily spend\" value=\"$0.00\" delta=\"No provider key\" intent=\"warning\" icon={<InfoIcon />} />\n        <GlassMetricChip label=\"Rate limit\" value=\"Paused\" delta=\"Fail-closed\" intent=\"warning\" icon={<ZapIcon />} />\n        <GlassMetricChip label=\"Prompt reviews\" value={safetyReviews.length} delta=\"Manual queue\" intent=\"success\" icon={<SparkIcon />} />\n      </section>\n      <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-4 glass-p-4\">\n        <h2>Cost budget</h2>\n        <GlassProgress value={18} variant=\"warning\" label=\"Monthly AI budget reserved\" showValue animated={false} />\n        <ul className=\"recipe-list\" aria-label=\"Provider telemetry readiness\">\n          <li className=\"recipe-row\"><span>Credentials</span><small>Not connected</small></li>\n          <li className=\"recipe-row\"><span>Usage polling</span><small>Paused safely</small></li>\n        </ul>\n      </GlassCard>\n      <GlassErrorState\n        severity=\"warning\"\n        title=\"AI provider is not configured\"\n        description=\"Set provider credentials and hosted-runtime auth before enabling generation, semantic search, or vision actions.\"\n        details={<code>OPENAI_API_KEY and provider feature flags are unset.</code>}\n      />\n      <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-3 glass-p-4\">\n        <h2>Prompt safety review</h2>\n        {safetyReviews.map((item) => <p key={item}><SparkIcon /> {item}</p>)}\n        <GlassButton size=\"sm\" disabled>Run review after provider setup</GlassButton>\n      </GlassCard>\n    </GlassPage>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"semantic-search-console\",\n    title: \"Semantic Search Console\",\n    category: \"ai\",\n    description:\n      \"A 3.3 search console with indexed-document status, query testing, relevance tuning, loading/empty panels, and provider-unconfigured messaging.\",\n    imports: [\n      \"GlassBadge\",\n      \"GlassButton\",\n      \"GlassCard\",\n      \"GlassEmptyState\",\n      \"GlassErrorState\",\n      \"GlassLoadingState\",\n      \"GlassSearchField\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\n      \"--glass-theme-surface\",\n      \"--glass-border-focus\",\n      \"--glass-accent-info-fg\",\n    ],\n    accessibility: [\n      \"Label search input and relevance controls clearly.\",\n      \"Keep empty search results announced as polite status text.\",\n      \"Do not expose semantic scores through color alone.\",\n    ],\n    performance: [\n      \"Debounce query previews and cancel stale provider requests.\",\n      \"Load document chunks in pages instead of rendering the full index.\",\n    ],\n    files: [\n      {\n        path: \"SemanticSearchConsole.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard, GlassEmptyState, GlassErrorState, GlassLoadingState, GlassSearchField } from 'aura-glass';\nimport { GlassPage, GlassPageHeader } from 'aura-glass/app-shell';\nimport { DatabaseIcon, FileIcon, SearchIcon } from 'aura-glass/icons/data';\n\nexport function SemanticSearchConsole() {\n  return (\n    <GlassPage className=\"recipe-polish\">\n      ${recipePolishStyle}\n      <GlassPageHeader\n        title=\"Semantic search console\"\n        description=\"Inspect indexed documents, run safe query tests, and tune relevance once provider-backed search is configured.\"\n        actions={<GlassBadge variant=\"secondary\"><DatabaseIcon /> 0 indexed docs</GlassBadge>}\n      />\n      <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-4 glass-p-4\">\n        <GlassSearchField label=\"Test query\" placeholder=\"Search indexed documentation\" value=\"\" onChange={() => undefined} />\n        <GlassErrorState\n          severity=\"warning\"\n          title=\"Search provider unconfigured\"\n          description=\"Connect embeddings and vector index credentials before query execution. The UI stays fail-closed until then.\"\n          details={<code>Embeddings and vector index are disabled.</code>}\n        />\n      </GlassCard>\n      <section className=\"glass-grid glass-gap-4 md:glass-grid-cols-2\" aria-label=\"Search readiness\">\n        <GlassLoadingState label=\"Index readiness\" description=\"Waiting for a configured indexing provider.\" variant=\"progress\" progress={0} />\n        <GlassEmptyState\n          variant=\"search\"\n          title=\"No indexed documents\"\n          description=\"Upload or index documents after the provider route returns ready.\"\n          icon={<FileIcon />}\n        />\n      </section>\n      <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-3 glass-p-4\">\n        <h2><SearchIcon /> Relevance tuning</h2>\n        <p>Score threshold, chunk size, and source weighting controls should connect only to authenticated hosted routes.</p>\n        <GlassButton size=\"sm\" disabled>Run query after setup</GlassButton>\n        <ul className=\"recipe-list\" aria-label=\"Relevance defaults\">\n          <li className=\"recipe-row\"><span>Score threshold</span><small>0.78 recommended</small></li>\n          <li className=\"recipe-row\"><span>Chunk window</span><small>800 tokens</small></li>\n          <li className=\"recipe-row\"><span>Source weighting</span><small>Balanced</small></li>\n        </ul>\n      </GlassCard>\n    </GlassPage>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"vision-review-workbench\",\n    title: \"Vision Review Workbench\",\n    category: \"ai\",\n    description:\n      \"A 3.3 image-analysis workbench for upload review, OCR/object/safe-search panels, and explicit missing-provider state.\",\n    imports: [\n      \"GlassBadge\",\n      \"GlassCard\",\n      \"GlassEmptyState\",\n      \"GlassErrorState\",\n      \"GlassFileUpload\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\n      \"--glass-theme-brand\",\n      \"--glass-backdrop-blur\",\n      \"--glass-accent-warning-fg\",\n    ],\n    accessibility: [\n      \"Provide text alternatives for uploaded images before automated analysis.\",\n      \"Keep OCR and object-detection results available as plain text.\",\n      \"Use polite status updates for analysis progress.\",\n    ],\n    performance: [\n      \"Use stable preview dimensions for image review panels.\",\n      \"Defer OCR/object detection until the user explicitly starts analysis.\",\n    ],\n    files: [\n      {\n        path: \"VisionReviewWorkbench.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassCard, GlassEmptyState, GlassErrorState, GlassFileUpload } from 'aura-glass';\nimport { GlassPage, GlassPageHeader } from 'aura-glass/app-shell';\nimport { ImageIcon } from 'aura-glass/icons/media';\nimport { AlertCircleIcon, InfoIcon } from 'aura-glass/icons/status';\n\nexport function VisionReviewWorkbench() {\n  return (\n    <GlassPage className=\"recipe-polish\">\n      ${recipePolishStyle}\n      <GlassPageHeader\n        title=\"Vision review workbench\"\n        description=\"Review images, OCR, object labels, and safe-search output after provider-backed vision routes are configured.\"\n        actions={<GlassBadge variant=\"warning\"><AlertCircleIcon /> Vision offline</GlassBadge>}\n      />\n      <section className=\"glass-grid glass-gap-4 lg:glass-grid-cols-[minmax(0,1.2fr)_minmax(320px,0.8fr)]\">\n        <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-4 glass-p-4\">\n          <GlassFileUpload\n            accept=\"image/*\"\n            compact\n            contained\n            disabled\n            instruction=\"Image upload is disabled until the hosted vision provider is configured.\"\n            showActions={false}\n          />\n          <div className=\"recipe-row\" role=\"status\"><span>No image selected</span><small>PNG, JPG, or WebP</small></div>\n        </GlassCard>\n        <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-4 glass-p-4\">\n          <GlassErrorState\n            severity=\"warning\"\n            title=\"Vision provider not configured\"\n            description=\"OCR, object detection, and safe-search analysis remain unavailable until credentials are connected.\"\n            details={<code>VISION_PROVIDER_READY=false</code>}\n          />\n          <ul className=\"recipe-list\" aria-label=\"Analysis queue\">\n            <li className=\"recipe-row\"><span>OCR extraction</span><small>Waiting</small></li>\n            <li className=\"recipe-row\"><span>Object labels</span><small>Waiting</small></li>\n            <li className=\"recipe-row\"><span>Safety review</span><small>Waiting</small></li>\n          </ul>\n          <GlassEmptyState variant=\"compact\" title=\"No OCR results\" description=\"Run analysis after provider setup.\" icon={<ImageIcon />} />\n          <p className=\"recipe-note\"><InfoIcon /> Keep manual review available for images that cannot be sent to provider APIs.</p>\n        </GlassCard>\n      </section>\n    </GlassPage>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"collaboration-room-console\",\n    title: \"Collaboration Room Console\",\n    category: \"collaboration\",\n    description:\n      \"A 3.3 collaboration console with room presence, cursor/activity state, selection summary, and unsupported editing fallback.\",\n    imports: [\n      \"GlassBadge\",\n      \"GlassButton\",\n      \"GlassCard\",\n      \"GlassEmptyState\",\n      \"GlassErrorState\",\n      \"GlassMetricChip\",\n      \"GlassUserPresence\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\", \"socket.io-client\"],\n    tokens: [\n      \"--glass-theme-surface\",\n      \"--glass-accent-success-fg\",\n      \"--glass-accent-warning-fg\",\n    ],\n    accessibility: [\n      \"Expose participant names and room status as text, not avatar-only UI.\",\n      \"Announce presence changes politely.\",\n      \"Clearly label unsupported editing states before users enter content.\",\n    ],\n    performance: [\n      \"Throttle cursor, selection, and presence updates.\",\n      \"Disconnect room transport when the route is hidden or unsupported.\",\n    ],\n    files: [\n      {\n        path: \"CollaborationRoomConsole.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard, GlassEmptyState, GlassErrorState, GlassMetricChip, GlassUserPresence } from 'aura-glass';\nimport { GlassInspectorPanel, GlassWorkspace } from 'aura-glass/workspace';\nimport { BellIcon, UsersIcon } from 'aura-glass/icons/collaboration';\n\nconst participants = [\n  { id: 'design', name: 'Design lead', status: 'online' as const },\n  { id: 'frontend', name: 'Frontend engineer', status: 'away' as const },\n  { id: 'release', name: 'Release owner', status: 'busy' as const },\n];\n\nexport function CollaborationRoomConsole() {\n  return (\n    <GlassWorkspace className=\"ag-recipe-workspace ag-recipe-room\" inspector={<GlassInspectorPanel title=\"Room presence\"><UsersIcon /> {participants.length} observers</GlassInspectorPanel>}>\n      <style>{\\`\n        .ag-recipe-room { min-width: 0; }\n        .ag-recipe-room .ag-room-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }\n        .ag-recipe-room .ag-room-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }\n        .ag-recipe-room .ag-room-metrics > * { min-width: 0; width: 100%; }\n        .ag-recipe-room .ag-room-status { padding: 10px 12px; }\n        .ag-recipe-room .ag-room-status-content { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 12px; align-items: baseline; min-width: 0; }\n        .ag-recipe-room .ag-room-status-content > span { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; }\n        .ag-recipe-room .ag-room-status-content > strong { grid-column: 1; }\n        .ag-recipe-room .ag-room-status-content > small { grid-column: 2; text-align: right; }\n        .ag-recipe-room .ag-room-status small { overflow-wrap: anywhere; }\n        .ag-recipe-room :where(.truncate, .glass-truncate) { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; }\n        @media (max-width: 350px) {\n          .ag-recipe-room .ag-room-header { display: grid; justify-items: start; }\n          .ag-recipe-room .ag-room-metrics { grid-template-columns: minmax(0,1fr); }\n          .ag-recipe-room .ag-room-metrics > * { grid-column: 1 / -1; }\n        }\n      \\`}</style>\n      <section className=\"glass-grid glass-gap-4\">\n        <GlassCard depth=\"medium\" tint=\"neutral\" className=\"ag-recipe-surface glass-space-y-4 glass-p-4\">\n          <header className=\"ag-room-header\">\n            <h2>Collaboration room</h2>\n            <GlassBadge variant=\"warning\"><BellIcon /> Editing unsupported</GlassBadge>\n          </header>\n          <div className=\"ag-room-metrics\">\n            <GlassCard depth=\"low\" tint=\"neutral\" className=\"ag-room-status\"><div className=\"ag-room-status-content\"><span><UsersIcon /> Presence</span><strong>Static</strong><small>No WebSocket</small></div></GlassCard>\n            <GlassCard depth=\"low\" tint=\"neutral\" className=\"ag-room-status\"><div className=\"ag-room-status-content\"><span>Selections</span><strong>Read-only</strong><small>3 watchers</small></div></GlassCard>\n          </div>\n          <GlassUserPresence users={participants} compact showRoles={false} />\n          <GlassErrorState\n            severity=\"warning\"\n            title=\"Realtime editing is not enabled\"\n            description=\"This recipe displays room and selection state, but document editing must stay read-only until the hosted collaboration runtime ships CRDT/OT support.\"\n            details={<code>Collaboration transport is disconnected by default.</code>}\n          />\n          <GlassButton size=\"sm\" disabled>Start editing after runtime setup</GlassButton>\n        </GlassCard>\n        <GlassEmptyState\n          variant=\"compact\"\n          title=\"No live cursor stream\"\n          description=\"Cursor and selection events appear here after authenticated WebSocket support is enabled.\"\n          icon={<UsersIcon />}\n        />\n      </section>\n    </GlassWorkspace>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"support-triage-workspace\",\n    title: \"Support Triage Workspace\",\n    category: \"support\",\n    description:\n      \"A 3.3 support queue with SLA status, ticket grids, notifications, and a fail-closed AI summary action.\",\n    imports: [\n      \"GlassBadge\",\n      \"GlassButton\",\n      \"GlassCard\",\n      \"GlassErrorState\",\n      \"GlassMetricChip\",\n      \"GlassNotificationCenter\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\n      \"--glass-theme-focus\",\n      \"--glass-accent-warning-fg\",\n      \"--glass-accent-success-fg\",\n    ],\n    accessibility: [\n      \"Preserve ticket IDs, priority, owner, and SLA state as readable text.\",\n      \"Use polite notification semantics for queue changes.\",\n      \"Disable AI summary actions with an explanation when providers are missing.\",\n    ],\n    performance: [\n      \"Virtualize large ticket queues.\",\n      \"Batch SLA and notification updates during imports.\",\n    ],\n    files: [\n      {\n        path: \"SupportTriageWorkspace.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard, GlassErrorState, GlassMetricChip, GlassNotificationCenter } from 'aura-glass';\nimport { GlassPage, GlassPageHeader } from 'aura-glass/app-shell';\nimport { SearchIcon } from 'aura-glass/icons/data';\nimport { AlertCircleIcon, SuccessIcon } from 'aura-glass/icons/status';\n\nexport function SupportTriageWorkspace() {\n  return (\n    <GlassPage className=\"recipe-polish\">\n      ${recipePolishStyle}\n      <GlassPageHeader\n        title=\"Support triage workspace\"\n        description=\"Prioritize escalations, SLA risk, and account context with AI summaries disabled until providers are configured.\"\n        actions={<GlassBadge variant=\"warning\"><AlertCircleIcon /> 4 SLA risks</GlassBadge>}\n      />\n      <section className=\"recipe-metrics glass-grid glass-gap-4 md:glass-grid-cols-3\" aria-label=\"Support queue summary\">\n        <GlassMetricChip label=\"Open tickets\" value=\"128\" delta=\"+9 today\" intent=\"warning\" icon={<AlertCircleIcon />} />\n        <GlassMetricChip label=\"Resolved\" value=\"47\" delta=\"24h\" intent=\"success\" icon={<SuccessIcon />} />\n        <GlassMetricChip label=\"AI summaries\" value=\"Off\" delta=\"Provider missing\" intent=\"warning\" icon={<SearchIcon />} />\n      </section>\n      <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-4 glass-p-4\">\n        <GlassErrorState\n          severity=\"warning\"\n          title=\"AI summary action is fail-closed\"\n          description=\"Agents can triage manually. Summaries become available only after authenticated provider-backed routes are ready.\"\n          details={<code>POST /api/ai/summarize returns provider-unconfigured.</code>}\n        />\n        <GlassButton size=\"sm\" disabled>Generate summary after setup</GlassButton>\n        <ul className=\"recipe-list\" aria-label=\"Priority support queue\">\n          <li className=\"recipe-row\"><span>AG-1842 \u00B7 Login recovery</span><small>12 min to SLA</small></li>\n          <li className=\"recipe-row\"><span>AG-1839 \u00B7 Billing mismatch</span><small>Enterprise \u00B7 High</small></li>\n          <li className=\"recipe-row\"><span>AG-1835 \u00B7 Export delayed</span><small>Assigned \u00B7 Maya</small></li>\n        </ul>\n      </GlassCard>\n      <GlassNotificationCenter />\n    </GlassPage>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"release-command-center\",\n    title: \"Release Command Center\",\n    category: \"release\",\n    description:\n      \"A 3.3 release operations surface with launch checklist, rollout status, changelog preview, evidence links, and rollback actions.\",\n    imports: [\n      \"GlassBadge\",\n      \"GlassButton\",\n      \"GlassCard\",\n      \"GlassEmptyState\",\n      \"GlassMetricChip\",\n      \"GlassProgress\",\n      \"GlassTimeline\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\n      \"--glass-theme-brand\",\n      \"--glass-accent-success-fg\",\n      \"--glass-accent-warning-fg\",\n    ],\n    accessibility: [\n      \"Keep checklist state textual and visible without color dependency.\",\n      \"Expose rollout progress with a labelled progressbar.\",\n      \"Label rollback and publish actions with explicit risk language.\",\n    ],\n    performance: [\n      \"Load evidence reports as links instead of embedding large artifacts.\",\n      \"Avoid continuous animation in release monitoring panels.\",\n    ],\n    files: [\n      {\n        path: \"ReleaseCommandCenter.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard, GlassEmptyState, GlassMetricChip, GlassProgress, GlassTimeline } from 'aura-glass';\nimport { GlassPage, GlassPageHeader } from 'aura-glass/app-shell';\nimport { CheckIcon, DownloadIcon, RefreshIcon } from 'aura-glass/icons/action';\nimport { AlertTriangleIcon, SuccessIcon } from 'aura-glass/icons/status';\n\nconst checklist = ['Package dry run', 'Recipe render evidence', 'A11y signoff', 'Rollback note'];\nconst releaseEvents = [\n  { id: 'pack', title: 'Package dry run', subtitle: 'npm pack evidence attached', time: '09:00' },\n  { id: 'recipes', title: 'Recipe render gate', subtitle: 'Screenshots captured for 3.3 recipes', time: '10:30' },\n  { id: 'rollout', title: 'Canary rollout', subtitle: '25% staged publish window', time: '12:00' },\n];\n\nexport function ReleaseCommandCenter() {\n  return (\n    <GlassPage className=\"recipe-polish\">\n      ${recipePolishStyle}\n      <GlassPageHeader\n        title=\"Release command center\"\n        description=\"Coordinate launch readiness, staged rollout, changelog review, evidence links, and rollback controls.\"\n        actions={<GlassBadge variant=\"success\"><SuccessIcon /> 3.3 candidate</GlassBadge>}\n      />\n      <section className=\"recipe-metrics glass-grid glass-gap-4 md:glass-grid-cols-3\" aria-label=\"Release metrics\">\n        <GlassMetricChip label=\"Checklist\" value=\"3/4\" delta=\"Manual QA left\" intent=\"warning\" icon={<CheckIcon />} />\n        <GlassMetricChip label=\"Rollout\" value=\"25%\" delta=\"Canary\" intent=\"success\" icon={<RefreshIcon />} />\n        <GlassMetricChip label=\"Evidence\" value=\"Linked\" delta=\"3.3 reports\" intent=\"default\" icon={<DownloadIcon />} />\n      </section>\n      <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-4 glass-p-4\">\n        <h2>Rollout status</h2>\n        <GlassProgress value={25} variant=\"success\" label=\"Canary rollout\" showValue animated={false} />\n        <ul className=\"recipe-list\" aria-label=\"Release checklist\">\n          {checklist.map((item, index) => <li className=\"recipe-row\" key={item}><span><CheckIcon /> {item}</span><small>{index === 2 ? 'In review' : 'Complete'}</small></li>)}\n        </ul>\n        <GlassTimeline items={releaseEvents} />\n      </GlassCard>\n      <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-3 glass-p-4\">\n        <h2>Changelog preview</h2>\n        <p>3.3 adds provider-safe recipes, theme preset guidance, and marketing launch surfaces.</p>\n        <GlassButton size=\"sm\">Open evidence</GlassButton>\n        <GlassButton size=\"sm\" variant=\"secondary\"><AlertTriangleIcon /> Prepare rollback</GlassButton>\n      </GlassCard>\n      <GlassEmptyState variant=\"compact\" title=\"No rollout incidents\" description=\"Incident links appear here if release monitoring reports failures.\" />\n    </GlassPage>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"developer-docs-portal\",\n    title: \"Developer Docs Portal\",\n    category: \"docs\",\n    description:\n      \"A 3.3 documentation portal starter with docs navigation, code examples, package entrypoint selector, and release evidence links.\",\n    imports: [\n      \"GlassBadge\",\n      \"GlassButton\",\n      \"GlassCard\",\n      \"GlassEmptyState\",\n      \"GlassSearchField\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\n      \"--glass-theme-surface\",\n      \"--glass-theme-focus\",\n      \"--glass-border-default\",\n    ],\n    accessibility: [\n      \"Keep docs navigation in labelled landmarks.\",\n      \"Use copyable code blocks with visible text labels.\",\n      \"Expose package entrypoints as text, not icon-only controls.\",\n    ],\n    performance: [\n      \"Static-render high-traffic docs pages where possible.\",\n      \"Lazy-load playgrounds and heavy examples below the fold.\",\n    ],\n    files: [\n      {\n        path: \"DeveloperDocsPortal.tsx\",\n        content: `${cssImport}\nimport { GlassBadge, GlassButton, GlassCard, GlassEmptyState, GlassSearchField } from 'aura-glass';\nimport { GlassPage, GlassPageHeader } from 'aura-glass/app-shell';\nimport { FileIcon, SearchIcon } from 'aura-glass/icons/data';\n\nconst entrypoints = ['aura-glass', 'aura-glass/theme', 'aura-glass/app-shell', 'aura-glass/registry'];\n\nexport function DeveloperDocsPortal() {\n  return (\n    <GlassPage className=\"recipe-polish\">\n      ${recipePolishStyle}\n      <GlassPageHeader\n        title=\"Developer docs portal\"\n        description=\"Document stable package entrypoints, recipes, examples, and release evidence from one glass-native docs shell.\"\n        actions={<GlassBadge variant=\"primary\"><FileIcon /> 3.3 docs</GlassBadge>}\n      />\n      <GlassCard depth=\"medium\" tint=\"neutral\" className=\"glass-space-y-4 glass-p-4\">\n        <GlassSearchField label=\"Search docs\" placeholder=\"Find components, recipes, or entrypoints\" value=\"\" onChange={() => undefined} />\n        <nav className=\"recipe-docs-nav glass-flex glass-flex-wrap glass-gap-2\" aria-label=\"Documentation sections\">\n          <GlassButton size=\"sm\">Install</GlassButton>\n          <GlassButton size=\"sm\" variant=\"secondary\">Components</GlassButton>\n          <GlassButton size=\"sm\" variant=\"secondary\">Recipes</GlassButton>\n        </nav>\n        <div className=\"glass-grid glass-gap-3 md:glass-grid-cols-2\">\n          {entrypoints.map((entrypoint) => (\n            <GlassCard key={entrypoint} depth=\"subtle\" tint=\"neutral\" className=\"glass-p-3\">\n              <h3>{entrypoint}</h3>\n              <code className=\"recipe-code\">import &#123; GlassButton &#125; from '{entrypoint}';</code>\n            </GlassCard>\n          ))}\n        </div>\n        <GlassButton size=\"sm\"><SearchIcon /> Browse examples</GlassButton>\n      </GlassCard>\n      <GlassEmptyState\n        variant=\"compact\"\n        title=\"No private imports required\"\n        description=\"3.3 docs should show public root and subpath imports only.\"\n        icon={<FileIcon />}\n      />\n    </GlassPage>\n  );\n}\n`,\n      },\n    ],\n  },\n  {\n    id: \"marketing-launch-kit\",\n    title: \"Marketing Launch Kit\",\n    category: \"marketing\",\n    description:\n      \"A 3.3 marketing launch page with production-ready hero, install command, feature grid, changelog, social proof, and visual evidence section.\",\n    imports: [\n      \"AuroraBackground\",\n      \"DisplayText\",\n      \"FeatureTile\",\n      \"GlassButton\",\n      \"InstallCommand\",\n      \"LogoMark\",\n      \"ShowcaseCard\",\n    ],\n    peerDependencies: [\"react\", \"react-dom\"],\n    tokens: [\n      \"--aura-marketing-button-aurora-background\",\n      \"--aura-marketing-display-text-gradient-aurora\",\n      \"--aura-marketing-surface-showcase-background\",\n    ],\n    accessibility: [\n      \"Keep hero copy semantic and avoid placing primary page content inside decorative backgrounds.\",\n      \"Use reduced-motion-safe aurora settings for default launch surfaces.\",\n      \"Ensure install commands and proof points remain readable without animation.\",\n    ],\n    performance: [\n      \"Use deterministic particles and reduced-motion defaults for marketing previews.\",\n      \"Keep visual proof media dimensions stable to avoid layout shift.\",\n    ],\n    files: [\n      {\n        path: \"MarketingLaunchKit.tsx\",\n        content: `${cssImport}\nimport { AuroraBackground, DisplayText, FeatureTile, GlassButton, InstallCommand, LogoMark, ShowcaseCard } from 'aura-glass';\n\nconst features = [\n  ['App UI', 'Production shell, workflow, and data surfaces for real product screens.'],\n  ['Theme presets', 'Documented density, motion, and contrast policy starters.'],\n  ['Safe AI recipes', 'Provider-unconfigured UI states before hosted credentials are wired.'],\n];\n\nexport function MarketingLaunchKit() {\n  return (\n    <main className=\"ag-marketing-launch-kit glass-min-h-screen glass-text-primary\">\n      <section className=\"glass-relative glass-overflow-hidden glass-p-8 md:glass-p-12\">\n        <AuroraBackground className=\"ag-aurora-background--light\" particles={12} grain vignette reducedMotion seed=\"auraglass-33-launch\" />\n        <div className=\"glass-relative glass-mx-auto glass-grid glass-max-w-6xl glass-gap-8\">\n          <LogoMark label=\"AuraGlass\" animated={false} />\n          <DisplayText as=\"h1\" size=\"hero\" gradient=\"aurora\" balance>\n            AuraGlass 3.3 launch kit\n          </DisplayText>\n          <p className=\"glass-max-w-2xl glass-text-lg glass-text-secondary\">\n            Build launch pages that pair premium Liquid Glass marketing surfaces with production package evidence.\n          </p>\n          <div className=\"glass-flex glass-flex-wrap glass-gap-3\">\n            <GlassButton variant=\"aurora\">Start building</GlassButton>\n            <InstallCommand packageManager=\"npm\" />\n          </div>\n          <div className=\"glass-grid glass-gap-4 md:glass-grid-cols-3\">\n            {features.map(([title, description], index) => (\n              <FeatureTile key={title} index={index + 1} title={title} description={description} tone=\"aurora\" />\n            ))}\n          </div>\n          <ShowcaseCard intensity=\"strong\" glow=\"aurora\" floating={false}>\n            <h2>Launch proof</h2>\n            <p>Link visual baselines, recipe render evidence, changelog notes, and accessibility signoff before publishing.</p>\n          </ShowcaseCard>\n        </div>\n      </section>\n    </main>\n  );\n}\n`,\n      },\n    ],\n  },\n];\n\nexport const getAuraGlassRecipe = (id: string): AuraGlassRecipe | undefined =>\n  auraGlassRecipes.find((recipe) => recipe.id === id);\n"],
  "mappings": "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",
  "names": []
}
