{"version":3,"file":"A2UIRenderer.cjs","names":["useA2UI","cn","Suspense","A2uiSurface"],"sources":["../../../src/react-renderer/core/A2UIRenderer.tsx"],"sourcesContent":["import { Suspense, memo, type ReactNode } from \"react\";\nimport { useA2UI } from \"../hooks/useA2UI\";\nimport { A2uiSurface } from \"../a2ui-react\";\nimport { cn } from \"../lib/utils\";\n\n/** Default loading fallback - memoized to prevent recreation */\nconst DefaultLoadingFallback = memo(function DefaultLoadingFallback() {\n  return (\n    <div className=\"a2ui-loading\" style={{ padding: \"16px\", opacity: 0.5 }}>\n      Loading...\n    </div>\n  );\n});\n\nexport interface A2UIRendererProps {\n  /** The surface ID to render */\n  surfaceId: string;\n  /** Additional CSS classes for the surface container */\n  className?: string;\n  /** Fallback content when surface is not yet available */\n  fallback?: ReactNode;\n  /** Loading fallback for lazy-loaded components */\n  loadingFallback?: ReactNode;\n  /** @deprecated - No longer needed in v0.9, components come from catalog */\n  registry?: any;\n}\n\n/**\n * A2UIRenderer - renders an A2UI surface using the v0.9 renderer.\n *\n * Uses A2uiSurface from a2ui-react which handles all component\n * rendering internally via the catalog system.\n */\nexport const A2UIRenderer = memo(function A2UIRenderer({\n  surfaceId,\n  className,\n  fallback = null,\n  loadingFallback,\n}: A2UIRendererProps) {\n  const { getSurface, version } = useA2UI();\n\n  // Get v0.9 SurfaceModel - this will re-render when version changes\n  const surface = getSurface(surfaceId);\n\n  // No surface yet\n  if (!surface) {\n    return <>{fallback}</>;\n  }\n\n  // Use provided fallback or default memoized component\n  const actualLoadingFallback = loadingFallback ?? <DefaultLoadingFallback />;\n\n  return (\n    <div\n      className={cn(\"a2ui-surface\", className)}\n      data-surface-id={surfaceId}\n      data-version={version}\n    >\n      <Suspense fallback={actualLoadingFallback}>\n        <A2uiSurface surface={surface} />\n      </Suspense>\n    </div>\n  );\n});\n\nexport default A2UIRenderer;\n"],"mappings":";;;;;;;;;;AAMA,MAAM,yCAA8B,SAAS,yBAAyB;AACpE,QACE,2CAAC;EAAI,WAAU;EAAe,OAAO;GAAE,SAAS;GAAQ,SAAS;GAAK;YAAE;GAElE;EAER;;;;;;;AAqBF,MAAa,+BAAoB,SAAS,aAAa,EACrD,WACA,WACA,WAAW,MACX,mBACoB;CACpB,MAAM,EAAE,YAAY,YAAYA,yBAAS;CAGzC,MAAM,UAAU,WAAW,UAAU;AAGrC,KAAI,CAAC,QACH,QAAO,mFAAG,WAAY;CAIxB,MAAM,wBAAwB,mBAAmB,2CAAC,2BAAyB;AAE3E,QACE,2CAAC;EACC,WAAWC,iBAAG,gBAAgB,UAAU;EACxC,mBAAiB;EACjB,gBAAc;YAEd,2CAACC;GAAS,UAAU;aAClB,2CAACC,mCAAqB,UAAW;IACxB;GACP;EAER"}