a2ui-react 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +190 -0
- package/dist/index.d.mts +541 -0
- package/dist/index.d.ts +541 -0
- package/dist/index.js +9205 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +9059 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../core/src/builders/index.ts","../../core/src/parser/message-parser.ts","../../core/src/parser/stream-parser.ts","../../core/src/types/data.ts","../../core/src/store/create-store.ts","../../core/src/types/messages.ts","../../react/src/context/A2UIContext.tsx","../../react/src/hooks/useA2UI.ts","../../react/src/hooks/useSurface.ts","../../react/src/components/ComponentRenderer.tsx","../../react/src/components/A2UISurface.tsx","../../react/src/registry/component-registry.ts","../../react/src/context/A2UIProvider.tsx","../../react/src/hooks/useAction.ts","../../react/src/hooks/useDataBinding.ts","../../react/src/utils/buildActionPayload.ts","../src/lib/utils.ts","../src/components/ui/button.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/dialog.tsx","../src/components/ui/input.tsx","../src/components/ui/label.tsx","../src/components/ui/tabs.tsx","../src/components/ui/textarea.tsx","../src/hooks/useContainerDimensions.ts","../src/hooks/useReducedMotion.ts","../src/renderers/a11y/AlertRenderer.tsx","../src/renderers/a11y/LandmarkRenderers.tsx","../src/renderers/a11y/LiveRegionRenderer.tsx","../src/renderers/a11y/ProgressRenderer.tsx","../src/renderers/a11y/SkipLinkRenderer.tsx","../src/renderers/animated/backgrounds/AuroraBackgroundRenderer.tsx","../src/renderers/animated/backgrounds/BubbleBackgroundRenderer.tsx","../src/renderers/animated/backgrounds/FireworksBackgroundRenderer.tsx","../src/renderers/animated/backgrounds/GradientBackgroundRenderer.tsx","../src/renderers/animated/backgrounds/GravityStarsBackgroundRenderer.tsx","../src/renderers/animated/backgrounds/HexagonBackgroundRenderer.tsx","../src/renderers/animated/backgrounds/HoleBackgroundRenderer.tsx","../src/renderers/animated/backgrounds/ParticlesBackgroundRenderer.tsx","../src/renderers/animated/backgrounds/StarsBackgroundRenderer.tsx","../src/renderers/animated/buttons/CopyButtonRenderer.tsx","../src/utils/buttonStyles.ts","../src/renderers/animated/buttons/FlipButtonRenderer.tsx","../src/renderers/animated/buttons/GlowButtonRenderer.tsx","../src/renderers/animated/buttons/IconButtonRenderer.tsx","../src/renderers/animated/buttons/LiquidButtonRenderer.tsx","../src/renderers/animated/buttons/MagneticButtonRenderer.tsx","../src/renderers/animated/buttons/RippleButtonRenderer.tsx","../src/renderers/animated/buttons/ShimmerButtonRenderer.tsx","../src/renderers/animated/buttons/ThemeTogglerButtonRenderer.tsx","../src/renderers/animated/containers/AnimatedAccordionRenderer.tsx","../src/renderers/animated/containers/AnimatedCardRenderer.tsx","../src/renderers/animated/containers/AnimatedDialogRenderer.tsx","../src/renderers/animated/containers/AnimatedTabsRenderer.tsx","../src/renderers/animated/containers/FlipCardRenderer.tsx","../src/renderers/animated/text/BlurRevealTextRenderer.tsx","../src/renderers/animated/text/CountUpRenderer.tsx","../src/renderers/animated/text/GradientTextRenderer.tsx","../src/renderers/animated/text/TextScrambleRenderer.tsx","../src/renderers/animated/text/TypewriterTextRenderer.tsx","../src/renderers/animated/utility/AnimatedAvatarGroupRenderer.tsx","../src/renderers/animated/utility/AnimatedTooltipRenderer.tsx","../src/renderers/animated/utility/CursorRenderer.tsx","../src/renderers/animated/utility/MorphingIconRenderer.tsx","../src/renderers/animated/utility/SpotlightRenderer.tsx","../src/renderers/animated/overrides/ButtonOverride.tsx","../src/components/ui/card.tsx","../src/renderers/animated/overrides/CardOverride.tsx","../src/renderers/animated/overrides/CheckboxOverride.tsx","../src/renderers/animated/overrides/ModalOverride.tsx","../src/components/ui/select.tsx","../src/renderers/animated/overrides/SelectOverride.tsx","../src/renderers/animated/overrides/TabsOverride.tsx","../src/renderers/animated/overrides/TextOverride.tsx","../src/components/ui/chart.tsx","../src/renderers/charts/chartUtils.ts","../src/renderers/charts/AreaChartRenderer.tsx","../src/renderers/charts/BarChartRenderer.tsx","../src/renderers/charts/LineChartRenderer.tsx","../src/renderers/charts/PieChartRenderer.tsx","../src/renderers/container/CardRenderer.tsx","../src/components/ui/scroll-area.tsx","../src/renderers/container/ListRenderer.tsx","../src/renderers/container/ModalRenderer.tsx","../src/renderers/container/TabsRenderer.tsx","../src/renderers/display/AudioPlayerRenderer.tsx","../src/components/ui/separator.tsx","../src/renderers/display/DividerRenderer.tsx","../src/renderers/display/IconRenderer.tsx","../src/renderers/display/ImageRenderer.tsx","../src/renderers/display/TextRenderer.tsx","../src/renderers/display/VideoRenderer.tsx","../src/renderers/interactive/AnimatedButtonRenderer.tsx","../src/renderers/interactive/ButtonRenderer.tsx","../src/renderers/interactive/CheckboxRenderer.tsx","../src/renderers/interactive/DateTimeInputRenderer.tsx","../src/renderers/interactive/MultipleChoiceRenderer.tsx","../src/renderers/interactive/SelectRenderer.tsx","../src/components/ui/slider.tsx","../src/renderers/interactive/SliderRenderer.tsx","../src/renderers/interactive/TextFieldRenderer.tsx","../src/renderers/layout/ColumnRenderer.tsx","../src/renderers/layout/RowRenderer.tsx","../src/renderers/index.ts","../src/index.ts"],"names":["jsxs","jsx","useMemo","useCallback","useSyncExternalStore","React","React2","React3","React4","React5","useState","useEffect","motion","useRef","Check","X","Icon","sizeStyles","AnimatePresence","styleClasses","useMotionValue","animations","useSpring","iconMap","Sun","Moon","Heart","Star","HelpCircle","Plus","Minus","ChevronDown","Settings","Search","Menu","icons","React6","ChevronUp","React8","config","Fragment","CartesianGrid","YAxis","XAxis","Cell","React9","useId","c","Separator","React10","React11","distributionMap","alignmentMap"],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * A2UI message builders\n * Helpers for creating A2UI messages from nested component trees\n */\n\nimport type {\n ComponentUpdate,\n CreateSurfaceMessage,\n UpdateComponentsMessage,\n UpdateDataModelMessage,\n} from '../types/index.js'\n\n/**\n * A component node in a nested tree structure.\n * Unlike A2UIComponent, children are inline objects rather than ID references.\n */\nexport interface ComponentNode {\n type: string\n /** Inline children for container components (Row, Column, Card, etc.) */\n children?: ComponentNode[]\n /** Inline child for Button */\n child?: ComponentNode\n /** Inline content child for Modal */\n content?: ComponentNode | string\n /** Inline trigger child for Modal */\n trigger?: ComponentNode | string\n /** Inline template for List */\n template?: ComponentNode | string\n /** Tab items with inline content */\n tabs?: Array<{ label: string; content: ComponentNode | string }>\n /** All other component properties */\n [key: string]: unknown\n}\n\n/**\n * Build A2UI messages from a nested component tree.\n *\n * Takes a nested component structure where children are inline objects,\n * and produces the flat A2UI message format with auto-generated IDs.\n *\n * @param surfaceId - Unique identifier for the surface\n * @param root - Root component node with nested children\n * @param initialData - Optional initial data model values to set\n * @returns Array of A2UI messages ready for A2UISurface\n *\n * @example\n * ```ts\n * const messages = buildMessages('my-surface', {\n * type: 'Column',\n * alignment: 'center',\n * children: [\n * { type: 'Text', content: 'Hello World', style: 'h1' },\n * { type: 'Row', distribution: 'spaceBetween', children: [\n * { type: 'Button', primary: true, child: { type: 'Text', content: 'Click me' } },\n * { type: 'Icon', name: 'Settings' }\n * ]}\n * ]\n * }, { count: 0 })\n * ```\n */\nexport function buildMessages(\n surfaceId: string,\n root: ComponentNode,\n initialData?: Record<string, unknown>,\n): Array<CreateSurfaceMessage | UpdateComponentsMessage | UpdateDataModelMessage> {\n const components: ComponentUpdate[] = []\n let idCounter = 0\n\n function generateId(type: string): string {\n return `${type.toLowerCase()}-${++idCounter}`\n }\n\n function processNode(node: ComponentNode): string {\n const id = generateId(node.type)\n const component: Record<string, unknown> = { type: node.type, id }\n\n // Copy all properties except nested ones we handle specially\n for (const [key, value] of Object.entries(node)) {\n if (['children', 'child', 'content', 'trigger', 'template', 'tabs'].includes(key)) {\n continue\n }\n component[key] = value\n }\n\n // Process inline children array (Row, Column, Card)\n if (node.children) {\n component.children = node.children.map((child) => processNode(child))\n }\n\n // Process inline child (Button)\n if (node.child) {\n component.child = processNode(node.child)\n }\n\n // Process Modal content/trigger\n if (node.type === 'Modal') {\n if (node.trigger) {\n component.trigger =\n typeof node.trigger === 'string' ? node.trigger : processNode(node.trigger)\n }\n if (node.content) {\n component.content =\n typeof node.content === 'string' ? node.content : processNode(node.content)\n }\n }\n\n // Process List template\n if (node.type === 'List' && node.template) {\n component.template =\n typeof node.template === 'string' ? node.template : processNode(node.template)\n }\n\n // Process Tabs\n if (node.type === 'Tabs' && node.tabs) {\n component.tabs = node.tabs.map((tab) => ({\n label: tab.label,\n content: typeof tab.content === 'string' ? tab.content : processNode(tab.content),\n }))\n }\n\n components.push({ id, component })\n return id\n }\n\n const rootId = processNode(root)\n\n const result: Array<CreateSurfaceMessage | UpdateComponentsMessage | UpdateDataModelMessage> = [\n { createSurface: { surfaceId, root: rootId } },\n { updateComponents: { surfaceId, components } },\n ]\n\n // Add updateDataModel messages if initialData provided (one per key)\n if (initialData && Object.keys(initialData).length > 0) {\n for (const [path, value] of Object.entries(initialData)) {\n result.push({ updateDataModel: { surfaceId, path, op: 'add', value } })\n }\n }\n\n return result\n}\n\n/**\n * Shorthand component node creators for cleaner syntax.\n *\n * @example\n * ```ts\n * import { c, buildMessages } from 'a2ui-react-core'\n *\n * const messages = buildMessages('ui', c.column({ alignment: 'center' }, [\n * c.text('Hello', { style: 'h1' }),\n * c.row({ distribution: 'spaceBetween' }, [\n * c.button(c.text('Click'), { primary: true }),\n * c.icon('Settings')\n * ])\n * ]))\n * ```\n */\nexport const c = {\n // Layout\n row: (props: Omit<ComponentNode, 'type' | 'children'>, children: ComponentNode[] = []) => ({\n type: 'Row' as const,\n ...props,\n children,\n }),\n column: (props: Omit<ComponentNode, 'type' | 'children'>, children: ComponentNode[] = []) => ({\n type: 'Column' as const,\n ...props,\n children,\n }),\n\n // Display\n text: (content: string, props: Omit<ComponentNode, 'type' | 'content'> = {}) => ({\n type: 'Text' as const,\n content,\n ...props,\n }),\n image: (url: string, props: Omit<ComponentNode, 'type' | 'url'> = {}) => ({\n type: 'Image' as const,\n url,\n ...props,\n }),\n icon: (name: string, props: Omit<ComponentNode, 'type' | 'name'> = {}) => ({\n type: 'Icon' as const,\n name,\n ...props,\n }),\n divider: (props: Omit<ComponentNode, 'type'> = {}) => ({\n type: 'Divider' as const,\n ...props,\n }),\n\n // Interactive\n button: (child: ComponentNode, props: Omit<ComponentNode, 'type' | 'child'> = {}) => ({\n type: 'Button' as const,\n child,\n ...props,\n }),\n textField: (props: Omit<ComponentNode, 'type'> = {}) => ({\n type: 'TextField' as const,\n ...props,\n }),\n checkbox: (props: Omit<ComponentNode, 'type'> = {}) => ({\n type: 'Checkbox' as const,\n ...props,\n }),\n select: (\n options: Array<{ value: string; label: string }>,\n props: Omit<ComponentNode, 'type' | 'options'> = {},\n ) => ({\n type: 'Select' as const,\n options,\n ...props,\n }),\n slider: (props: Omit<ComponentNode, 'type'> = {}) => ({\n type: 'Slider' as const,\n ...props,\n }),\n\n // Container\n card: (props: Omit<ComponentNode, 'type' | 'children'>, children: ComponentNode[] = []) => ({\n type: 'Card' as const,\n ...props,\n children,\n }),\n tabs: (\n tabs: Array<{ label: string; content: ComponentNode }>,\n props: Omit<ComponentNode, 'type' | 'tabs'> = {},\n ) => ({\n type: 'Tabs' as const,\n tabs,\n ...props,\n }),\n}\n","/**\n * A2UI Message Parser\n * Parses and validates A2UI protocol messages\n */\n\nimport type { A2UIMessage } from '../types/messages.js'\n\n/**\n * Error thrown when a message fails validation\n */\nexport class MessageParseError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'MessageParseError'\n }\n}\n\n/**\n * Validates that a value is a non-empty string\n */\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.length > 0\n}\n\n/**\n * Validates that a value is an array\n */\nfunction isArray(value: unknown): value is unknown[] {\n return Array.isArray(value)\n}\n\n/**\n * Validates that a value is an object\n */\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\n/**\n * Validates a beginRendering message\n */\nfunction validateBeginRendering(msg: unknown): void {\n if (!isObject(msg)) {\n throw new MessageParseError('beginRendering must be an object')\n }\n\n if (!isNonEmptyString(msg.surfaceId)) {\n throw new MessageParseError('beginRendering.surfaceId must be a non-empty string')\n }\n\n if (!isNonEmptyString(msg.root)) {\n throw new MessageParseError('beginRendering.root must be a non-empty string')\n }\n\n if (msg.catalogId !== undefined && !isNonEmptyString(msg.catalogId)) {\n throw new MessageParseError('beginRendering.catalogId must be a string if provided')\n }\n\n if (msg.style !== undefined && !isObject(msg.style)) {\n throw new MessageParseError('beginRendering.style must be an object if provided')\n }\n}\n\n/**\n * Validates a surfaceUpdate message\n */\nfunction validateSurfaceUpdate(msg: unknown): void {\n if (!isObject(msg)) {\n throw new MessageParseError('surfaceUpdate must be an object')\n }\n\n if (!isNonEmptyString(msg.surfaceId)) {\n throw new MessageParseError('surfaceUpdate.surfaceId must be a non-empty string')\n }\n\n if (!isArray(msg.updates)) {\n throw new MessageParseError('surfaceUpdate.updates must be an array')\n }\n\n for (const update of msg.updates) {\n if (!isObject(update)) {\n throw new MessageParseError('surfaceUpdate.updates[] must be objects')\n }\n if (!isNonEmptyString(update.id)) {\n throw new MessageParseError('surfaceUpdate.updates[].id must be a non-empty string')\n }\n if (!isObject(update.component)) {\n throw new MessageParseError('surfaceUpdate.updates[].component must be an object')\n }\n }\n}\n\n/**\n * Validates a dataModelUpdate message\n */\nfunction validateDataModelUpdate(msg: unknown): void {\n if (!isObject(msg)) {\n throw new MessageParseError('dataModelUpdate must be an object')\n }\n\n if (!isNonEmptyString(msg.surfaceId)) {\n throw new MessageParseError('dataModelUpdate.surfaceId must be a non-empty string')\n }\n\n if (msg.path !== undefined && !isNonEmptyString(msg.path)) {\n throw new MessageParseError('dataModelUpdate.path must be a string if provided')\n }\n\n if (!isArray(msg.values)) {\n throw new MessageParseError('dataModelUpdate.values must be an array')\n }\n\n for (const value of msg.values) {\n if (!isObject(value)) {\n throw new MessageParseError('dataModelUpdate.values[] must be objects')\n }\n if (!isNonEmptyString(value.path)) {\n throw new MessageParseError('dataModelUpdate.values[].path must be a non-empty string')\n }\n if (!('value' in value)) {\n throw new MessageParseError('dataModelUpdate.values[].value is required')\n }\n }\n}\n\n/**\n * Validates a deleteSurface message\n */\nfunction validateDeleteSurface(msg: unknown): void {\n if (!isObject(msg)) {\n throw new MessageParseError('deleteSurface must be an object')\n }\n\n if (!isNonEmptyString(msg.surfaceId)) {\n throw new MessageParseError('deleteSurface.surfaceId must be a non-empty string')\n }\n}\n\n/**\n * Validates a createSurface message (v0.9)\n */\nfunction validateCreateSurface(msg: unknown): void {\n if (!isObject(msg)) {\n throw new MessageParseError('createSurface must be an object')\n }\n\n if (!isNonEmptyString(msg.surfaceId)) {\n throw new MessageParseError('createSurface.surfaceId must be a non-empty string')\n }\n\n if (!isNonEmptyString(msg.root)) {\n throw new MessageParseError('createSurface.root must be a non-empty string')\n }\n\n if (msg.catalogId !== undefined && !isNonEmptyString(msg.catalogId)) {\n throw new MessageParseError('createSurface.catalogId must be a string if provided')\n }\n\n if (msg.style !== undefined && !isObject(msg.style)) {\n throw new MessageParseError('createSurface.style must be an object if provided')\n }\n}\n\n/**\n * Validates an updateComponents message (v0.9)\n */\nfunction validateUpdateComponents(msg: unknown): void {\n if (!isObject(msg)) {\n throw new MessageParseError('updateComponents must be an object')\n }\n\n if (!isNonEmptyString(msg.surfaceId)) {\n throw new MessageParseError('updateComponents.surfaceId must be a non-empty string')\n }\n\n if (!isArray(msg.components)) {\n throw new MessageParseError('updateComponents.components must be an array')\n }\n\n for (const component of msg.components) {\n if (!isObject(component)) {\n throw new MessageParseError('updateComponents.components[] must be objects')\n }\n if (!isNonEmptyString(component.id)) {\n throw new MessageParseError('updateComponents.components[].id must be a non-empty string')\n }\n if (!isObject(component.component)) {\n throw new MessageParseError('updateComponents.components[].component must be an object')\n }\n }\n}\n\n/**\n * Validates an updateDataModel message (v0.9)\n */\nfunction validateUpdateDataModel(msg: unknown): void {\n if (!isObject(msg)) {\n throw new MessageParseError('updateDataModel must be an object')\n }\n\n if (!isNonEmptyString(msg.surfaceId)) {\n throw new MessageParseError('updateDataModel.surfaceId must be a non-empty string')\n }\n\n if (msg.path !== undefined && !isNonEmptyString(msg.path)) {\n throw new MessageParseError('updateDataModel.path must be a string if provided')\n }\n\n if (msg.op !== undefined) {\n if (typeof msg.op !== 'string' || !['add', 'replace', 'remove'].includes(msg.op)) {\n throw new MessageParseError('updateDataModel.op must be one of: add, replace, remove')\n }\n }\n\n // value can be any type, no validation needed\n}\n\n/**\n * Parse and validate an A2UI message from JSON string\n * @param json - JSON string to parse\n * @returns Validated A2UI message\n * @throws MessageParseError if the message is invalid\n */\nexport function parseMessage(json: string): A2UIMessage {\n let parsed: unknown\n\n try {\n parsed = JSON.parse(json)\n } catch (error) {\n throw new MessageParseError(\n `Invalid JSON: ${error instanceof Error ? error.message : String(error)}`,\n )\n }\n\n if (!isObject(parsed)) {\n throw new MessageParseError('Message must be a JSON object')\n }\n\n // Check which message type this is\n // v0.9 messages take precedence over v0.8\n if ('createSurface' in parsed) {\n validateCreateSurface(parsed.createSurface)\n return parsed as unknown as A2UIMessage\n }\n\n if ('beginRendering' in parsed) {\n validateBeginRendering(parsed.beginRendering)\n return parsed as unknown as A2UIMessage\n }\n\n if ('updateComponents' in parsed) {\n validateUpdateComponents(parsed.updateComponents)\n return parsed as unknown as A2UIMessage\n }\n\n if ('surfaceUpdate' in parsed) {\n validateSurfaceUpdate(parsed.surfaceUpdate)\n return parsed as unknown as A2UIMessage\n }\n\n if ('updateDataModel' in parsed) {\n validateUpdateDataModel(parsed.updateDataModel)\n return parsed as unknown as A2UIMessage\n }\n\n if ('dataModelUpdate' in parsed) {\n validateDataModelUpdate(parsed.dataModelUpdate)\n return parsed as unknown as A2UIMessage\n }\n\n if ('deleteSurface' in parsed) {\n validateDeleteSurface(parsed.deleteSurface)\n return parsed as unknown as A2UIMessage\n }\n\n throw new MessageParseError(\n 'Unknown message type. Expected one of: createSurface, beginRendering, updateComponents, surfaceUpdate, updateDataModel, dataModelUpdate, deleteSurface',\n )\n}\n","/**\n * A2UI Stream Parser\n * Parses JSONL (JSON Lines) streams of A2UI messages\n */\n\nimport type { A2UIMessage } from '../types/messages.js'\nimport { MessageParseError, parseMessage } from './message-parser.js'\n\n/**\n * Callback function for parsed messages\n */\nexport type MessageCallback = (_message: A2UIMessage) => void\n\n/**\n * Callback function for parse errors\n */\nexport type ErrorCallback = (_error: MessageParseError, _line: string) => void\n\n/**\n * Stream parser for A2UI JSONL messages\n */\nexport interface StreamParser {\n /**\n * Push a line of JSON to parse\n * @param line - A single line of JSON\n */\n push(_line: string): void\n\n /**\n * Set the callback for successfully parsed messages\n */\n onMessage(_callback: MessageCallback): void\n\n /**\n * Set the callback for parse errors\n */\n onError(_callback: ErrorCallback): void\n\n /**\n * Reset the parser state\n */\n reset(): void\n}\n\n/**\n * Create a new JSONL stream parser\n * @returns A new StreamParser instance\n */\nexport function createStreamParser(): StreamParser {\n let messageCallback: MessageCallback | undefined\n let errorCallback: ErrorCallback | undefined\n\n return {\n push(line: string): void {\n // Skip empty lines\n const trimmed = line.trim()\n if (trimmed === '') {\n return\n }\n\n try {\n const message = parseMessage(trimmed)\n if (messageCallback) {\n messageCallback(message)\n }\n } catch (error) {\n if (error instanceof MessageParseError && errorCallback) {\n errorCallback(error, trimmed)\n } else if (error instanceof MessageParseError) {\n // If no error callback, throw the error\n throw error\n } else {\n // Unexpected error type\n throw error\n }\n }\n },\n\n onMessage(callback: MessageCallback): void {\n messageCallback = callback\n },\n\n onError(callback: ErrorCallback): void {\n errorCallback = callback\n },\n\n reset(): void {\n messageCallback = undefined\n errorCallback = undefined\n },\n }\n}\n\n/**\n * Parse a complete JSONL string synchronously\n * @param jsonl - JSONL string (multiple JSON objects separated by newlines)\n * @returns Array of parsed messages\n * @throws MessageParseError if any line fails to parse\n */\nexport function parseJSONL(jsonl: string): A2UIMessage[] {\n const messages: A2UIMessage[] = []\n const lines = jsonl.split('\\n')\n\n for (const line of lines) {\n const trimmed = line.trim()\n if (trimmed === '') {\n continue\n }\n\n messages.push(parseMessage(trimmed))\n }\n\n return messages\n}\n","/**\n * Data model types for A2UI protocol\n */\n\n/**\n * Data value type for dataModelUpdate messages\n */\nexport interface DataValue {\n /** Path to the data value in the data model */\n path: string\n /** The value to set at the given path */\n value: unknown\n}\n\n/**\n * Data model for a surface\n * Stores arbitrary data that can be referenced by components\n */\nexport type DataModel = Record<string, unknown>\n\n/**\n * Get a value from a data model by path\n * Path uses dot notation: \"user.name\" or \"items.0.title\"\n */\nexport function getDataByPath(data: DataModel, path: string): unknown | undefined {\n const parts = path.split('.')\n let current: unknown = data\n\n for (const part of parts) {\n if (current === null || current === undefined) {\n return undefined\n }\n if (typeof current !== 'object') {\n return undefined\n }\n current = (current as Record<string, unknown>)[part]\n }\n\n return current\n}\n\n/**\n * Set a value in a data model by path\n * Path uses dot notation: \"user.name\" or \"items.0.title\"\n * Creates intermediate objects/arrays as needed\n */\nexport function setDataByPath(data: DataModel, path: string, value: unknown): void {\n const parts = path.split('.')\n let current: Record<string, unknown> = data\n\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i]\n if (!part) continue\n\n if (!(part in current)) {\n // Create intermediate object or array based on next key\n const nextPart = parts[i + 1]\n current[part] = /^\\d+$/.test(nextPart ?? '') ? [] : {}\n }\n\n const next = current[part]\n if (typeof next !== 'object' || next === null) {\n // Overwrite non-object values with object/array\n const nextPart = parts[i + 1]\n current[part] = /^\\d+$/.test(nextPart ?? '') ? [] : {}\n }\n\n current = current[part] as Record<string, unknown>\n }\n\n const lastPart = parts[parts.length - 1]\n if (lastPart) {\n current[lastPart] = value\n }\n}\n","/**\n * A2UI Store Implementation\n * Default in-memory implementation of the A2UIStore interface\n */\n\nimport { getDataByPath, setDataByPath } from '../types/data.js'\nimport type { A2UIStore, StoreSnapshot, Surface } from './types.js'\n\n/**\n * Create a new in-memory A2UI store\n * @returns A new A2UIStore instance\n */\nexport function createStore(): A2UIStore {\n const surfaces = new Map<string, Surface>()\n const listeners = new Set<() => void>()\n\n /**\n * Notify all listeners of a change\n */\n function notify(): void {\n for (const listener of listeners) {\n listener()\n }\n }\n\n return {\n getSurface(id: string): Surface | undefined {\n return surfaces.get(id)\n },\n\n setSurface(id: string, surface: Surface): void {\n surfaces.set(id, surface)\n notify()\n },\n\n deleteSurface(id: string): void {\n const existed = surfaces.delete(id)\n if (existed) {\n notify()\n }\n },\n\n getData(surfaceId: string, path?: string): unknown {\n const surface = surfaces.get(surfaceId)\n if (!surface) {\n return undefined\n }\n\n if (!path) {\n return surface.data\n }\n\n return getDataByPath(surface.data, path)\n },\n\n setData(surfaceId: string, path: string, value: unknown): void {\n const surface = surfaces.get(surfaceId)\n if (!surface) {\n throw new Error(`Surface not found: ${surfaceId}`)\n }\n\n // Create new data object to trigger React reactivity\n const newData = { ...surface.data }\n setDataByPath(newData, path, value)\n\n // Create new surface object with new data reference\n surfaces.set(surfaceId, { ...surface, data: newData })\n notify()\n },\n\n subscribe(listener: () => void): () => void {\n listeners.add(listener)\n return () => {\n listeners.delete(listener)\n }\n },\n\n getSnapshot(): StoreSnapshot {\n const surfaceMap: Record<string, Surface> = {}\n for (const [id, surface] of surfaces) {\n surfaceMap[id] = surface\n }\n\n return {\n surfaces: surfaceMap,\n timestamp: Date.now(),\n }\n },\n }\n}\n","/**\n * A2UI protocol message types\n */\n\nimport type { ComponentUpdate } from './components.js'\nimport type { DataValue } from './data.js'\n\n/**\n * Begin rendering message - initializes a new surface\n */\nexport interface BeginRenderingMessage {\n beginRendering: {\n /** Unique identifier for the surface */\n surfaceId: string\n /** Root component ID */\n root: string\n /** Optional catalog ID for component definitions */\n catalogId?: string\n /** Optional style overrides */\n style?: Record<string, string>\n }\n}\n\n/**\n * Surface update message - updates components in an existing surface\n */\nexport interface SurfaceUpdateMessage {\n surfaceUpdate: {\n /** Surface ID to update */\n surfaceId: string\n /** Array of component updates to apply */\n updates: ComponentUpdate[]\n }\n}\n\n/**\n * Data model update message - updates data values\n */\nexport interface DataModelUpdateMessage {\n dataModelUpdate: {\n /** Surface ID whose data model to update */\n surfaceId: string\n /** Optional base path for the updates */\n path?: string\n /** Array of data values to set */\n values: DataValue[]\n }\n}\n\n/**\n * Delete surface message - removes a surface\n */\nexport interface DeleteSurfaceMessage {\n deleteSurface: {\n /** Surface ID to delete */\n surfaceId: string\n }\n}\n\n/**\n * v0.9 Message Types\n */\n\n/**\n * Create surface message (v0.9) - initializes a new surface\n */\nexport interface CreateSurfaceMessage {\n createSurface: {\n surfaceId: string\n root: string\n catalogId?: string\n style?: Record<string, string>\n }\n}\n\n/**\n * Update components message (v0.9) - updates components in an existing surface\n */\nexport interface UpdateComponentsMessage {\n updateComponents: {\n surfaceId: string\n components: ComponentUpdate[]\n }\n}\n\n/**\n * Update data model message (v0.9) - updates data values\n */\nexport interface UpdateDataModelMessage {\n updateDataModel: {\n surfaceId: string\n path?: string\n op?: 'add' | 'replace' | 'remove'\n value?: unknown\n }\n}\n\n/**\n * Union type of all A2UI messages\n */\nexport type A2UIMessage =\n // v0.8 (legacy)\n | BeginRenderingMessage\n | SurfaceUpdateMessage\n | DataModelUpdateMessage\n | DeleteSurfaceMessage\n // v0.9\n | CreateSurfaceMessage\n | UpdateComponentsMessage\n | UpdateDataModelMessage\n\n/**\n * Type guard to check if a message is BeginRenderingMessage\n */\nexport function isBeginRenderingMessage(msg: A2UIMessage): msg is BeginRenderingMessage {\n return 'beginRendering' in msg\n}\n\n/**\n * Type guard to check if a message is SurfaceUpdateMessage\n */\nexport function isSurfaceUpdateMessage(msg: A2UIMessage): msg is SurfaceUpdateMessage {\n return 'surfaceUpdate' in msg\n}\n\n/**\n * Type guard to check if a message is DataModelUpdateMessage\n */\nexport function isDataModelUpdateMessage(msg: A2UIMessage): msg is DataModelUpdateMessage {\n return 'dataModelUpdate' in msg\n}\n\n/**\n * Type guard to check if a message is DeleteSurfaceMessage\n */\nexport function isDeleteSurfaceMessage(msg: A2UIMessage): msg is DeleteSurfaceMessage {\n return 'deleteSurface' in msg\n}\n\n/**\n * Type guard to check if a message is CreateSurfaceMessage (v0.9)\n */\nexport function isCreateSurfaceMessage(msg: A2UIMessage): msg is CreateSurfaceMessage {\n return 'createSurface' in msg\n}\n\n/**\n * Type guard to check if a message is UpdateComponentsMessage (v0.9)\n */\nexport function isUpdateComponentsMessage(msg: A2UIMessage): msg is UpdateComponentsMessage {\n return 'updateComponents' in msg\n}\n\n/**\n * Type guard to check if a message is UpdateDataModelMessage (v0.9)\n */\nexport function isUpdateDataModelMessage(msg: A2UIMessage): msg is UpdateDataModelMessage {\n return 'updateDataModel' in msg\n}\n","/**\n * A2UI React Context\n * Provides access to the A2UI store, registry, and action dispatcher\n */\n\nimport type { A2UIStore } from 'a2ui-react-core'\nimport { createContext } from 'react'\nimport type { A2UIAction, ComponentRegistry } from '../registry/types.js'\n\n/**\n * Context value provided to all A2UI components\n */\nexport interface A2UIContextValue {\n /** A2UI store for managing surfaces and data */\n store: A2UIStore\n /** Component registry for looking up renderers */\n registry: ComponentRegistry\n /** Action dispatcher for handling user interactions */\n onAction: (action: A2UIAction) => void\n}\n\n/**\n * A2UI React Context\n * Use useA2UI() hook to access this context\n */\nexport const A2UIContext = createContext<A2UIContextValue | null>(null)\n\n// Set display name for debugging\nA2UIContext.displayName = 'A2UIContext'\n","/**\n * useA2UI Hook\n * Access the full A2UI context (store, registry, onAction)\n */\n\nimport { useContext } from 'react'\nimport type { A2UIContextValue } from '../context/A2UIContext.js'\nimport { A2UIContext } from '../context/A2UIContext.js'\n\n/**\n * Access the A2UI context\n * Must be used within an A2UIProvider\n *\n * @returns A2UIContextValue with store, registry, and onAction\n * @throws Error if used outside A2UIProvider\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { store, registry, onAction } = useA2UI()\n * // Use store, registry, or onAction\n * }\n * ```\n */\nexport function useA2UI(): A2UIContextValue {\n const context = useContext(A2UIContext)\n\n if (!context) {\n throw new Error('useA2UI must be used within an A2UIProvider')\n }\n\n return context\n}\n","/**\n * useSurface Hook\n * Subscribe to a surface and get its current state\n */\n\nimport type { Surface } from 'a2ui-react-core'\nimport { useCallback, useSyncExternalStore } from 'react'\nimport { useA2UI } from './useA2UI.js'\n\n/**\n * Subscribe to a surface and reactively update when it changes\n * Uses React 19's useSyncExternalStore for optimal performance\n *\n * @param surfaceId - ID of the surface to subscribe to\n * @returns Surface object or undefined if not found\n *\n * @example\n * ```tsx\n * function SurfaceDebugger({ surfaceId }: { surfaceId: string }) {\n * const surface = useSurface(surfaceId)\n *\n * if (!surface) {\n * return <div>Surface not found</div>\n * }\n *\n * return (\n * <div>\n * <h3>Surface: {surface.id}</h3>\n * <p>Root: {surface.root}</p>\n * <p>Components: {Object.keys(surface.components).length}</p>\n * </div>\n * )\n * }\n * ```\n */\nexport function useSurface(surfaceId: string): Surface | undefined {\n const { store } = useA2UI()\n\n // Subscribe to store changes\n const subscribe = useCallback(\n (callback: () => void) => {\n return store.subscribe(callback)\n },\n [store],\n )\n\n // Get current surface snapshot\n const getSnapshot = useCallback(() => {\n return store.getSurface(surfaceId)\n }, [store, surfaceId])\n\n // Get server snapshot (same as client for this use case)\n const getServerSnapshot = getSnapshot\n\n // Subscribe to the surface using useSyncExternalStore\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/**\n * ComponentRenderer\n * Recursively renders A2UI components using registered renderers\n */\n\nimport type { A2UIComponent, Surface } from 'a2ui-react-core'\nimport type { ReactNode } from 'react'\nimport { useMemo } from 'react'\nimport { useA2UI } from '../hooks/useA2UI.js'\nimport type { A2UIAction, DataAccessor } from '../registry/types.js'\n\n/**\n * Props for ComponentRenderer\n */\nexport interface ComponentRendererProps {\n /** Component ID to render */\n componentId: string\n /** Surface containing the component */\n surface: Surface\n /** Optional surface-scoped action handler override */\n onAction?: (action: A2UIAction) => void\n}\n\n/**\n * Get child component IDs from a component\n */\nfunction getChildIds(component: A2UIComponent): string[] {\n // Components with children arrays\n if ('children' in component && Array.isArray(component.children)) {\n return component.children\n }\n\n // Components with single 'child' property (Button, AnimatedButton, RippleButton, etc.)\n if ('child' in component && typeof component.child === 'string') {\n return [component.child]\n }\n\n // FlipButton has frontChild and backChild\n if ('frontChild' in component && 'backChild' in component) {\n const fc = component.frontChild as string\n const bc = component.backChild as string\n return [fc, bc]\n }\n\n // Modal has trigger and content\n if (component.type === 'Modal') {\n return [component.trigger, component.content]\n }\n\n // Tabs have content in each tab\n if (component.type === 'Tabs') {\n return component.tabs.map((tab) => tab.content)\n }\n\n // List has a template\n if (component.type === 'List' && 'template' in component) {\n return [component.template]\n }\n\n // AnimatedAccordion has items with trigger and content\n if ('items' in component && Array.isArray(component.items)) {\n const items = component.items as Array<{ trigger?: string; content?: string }>\n const ids: string[] = []\n for (const item of items) {\n if (item.trigger) ids.push(item.trigger)\n if (item.content) ids.push(item.content)\n }\n if (ids.length > 0) return ids\n }\n\n return []\n}\n\n/**\n * ComponentRenderer - Recursively renders A2UI components\n *\n * Looks up the appropriate renderer from the registry and renders the component.\n * Recursively renders child components and passes them as children prop.\n *\n * @example\n * ```tsx\n * <ComponentRenderer componentId=\"root\" surface={surface} />\n * ```\n */\nexport function ComponentRenderer({\n componentId,\n surface,\n onAction: propOnAction,\n}: ComponentRendererProps): ReactNode {\n const { registry, onAction: contextOnAction, store } = useA2UI()\n const onAction = propOnAction ?? contextOnAction\n\n // Create data accessor for this surface (moved to top for hooks rule)\n const dataAccessor: DataAccessor = useMemo(\n () => ({\n get: <V,>(path: string) => store.getData(surface.id, path) as V | undefined,\n set: (path: string, value: unknown) => store.setData(surface.id, path, value),\n }),\n [store, surface.id],\n )\n\n // Get the component from the surface\n const component = surface.components[componentId]\n\n if (!component) {\n return null\n }\n\n // Get the renderer for this component type\n const renderer = registry.get(component.type)\n\n if (!renderer) {\n return (\n <div style={{ color: 'red', border: '1px solid red', padding: '8px' }}>\n No renderer for type: {component.type}\n </div>\n )\n }\n\n // Render child components recursively\n const childIds = getChildIds(component)\n const children = childIds.map((childId) => (\n <ComponentRenderer key={childId} componentId={childId} surface={surface} onAction={onAction} />\n ))\n\n // Render using the registered renderer\n return renderer.render({\n component,\n id: componentId,\n children,\n data: dataAccessor,\n onAction,\n })\n}\n","/**\n * A2UISurface Component\n * Main component for rendering an A2UI surface from messages or streams\n */\n\nimport type { A2UIComponent, A2UIMessage } from 'a2ui-react-core'\nimport {\n createStreamParser,\n isBeginRenderingMessage,\n isCreateSurfaceMessage,\n isDataModelUpdateMessage,\n isDeleteSurfaceMessage,\n isSurfaceUpdateMessage,\n isUpdateComponentsMessage,\n isUpdateDataModelMessage,\n} from 'a2ui-react-core'\nimport { useEffect, useState } from 'react'\nimport { useA2UI } from '../hooks/useA2UI.js'\nimport { useSurface } from '../hooks/useSurface.js'\nimport type { A2UIAction } from '../registry/types.js'\nimport { ComponentRenderer } from './ComponentRenderer.js'\n\n/**\n * Props for A2UISurface\n */\nexport interface A2UISurfaceProps {\n /** ID of the surface to render */\n surfaceId: string\n /** Optional JSONL stream (async iterable or array of strings) */\n stream?: AsyncIterable<string> | string[]\n /** Optional pre-parsed messages */\n messages?: A2UIMessage[]\n /** Optional className for the root element */\n className?: string\n /** Optional surface-scoped action handler. If provided, intercepts actions before global handler. */\n onAction?: (action: A2UIAction) => void\n}\n\n/**\n * Process a single A2UI message and update the store\n */\nfunction processMessage(message: A2UIMessage, store: ReturnType<typeof useA2UI>['store']): void {\n // Handle create surface (v0.9) or begin rendering (v0.8)\n if (isCreateSurfaceMessage(message) || isBeginRenderingMessage(message)) {\n const payload = isCreateSurfaceMessage(message) ? message.createSurface : message.beginRendering\n const { surfaceId, root, catalogId, style } = payload\n store.setSurface(surfaceId, {\n id: surfaceId,\n root,\n catalogId,\n style,\n components: {},\n data: {},\n })\n }\n // Handle update components (v0.9) or surface update (v0.8)\n else if (isUpdateComponentsMessage(message) || isSurfaceUpdateMessage(message)) {\n let surfaceId: string\n let componentUpdates: Array<{ id: string; component: unknown }>\n\n if (isUpdateComponentsMessage(message)) {\n surfaceId = message.updateComponents.surfaceId\n componentUpdates = message.updateComponents.components\n } else {\n surfaceId = message.surfaceUpdate.surfaceId\n componentUpdates = message.surfaceUpdate.updates\n }\n\n const surface = store.getSurface(surfaceId)\n if (!surface) {\n console.warn(`Surface not found for update: ${surfaceId}`)\n return\n }\n\n // Apply component updates\n const updatedComponents = { ...surface.components }\n for (const update of componentUpdates) {\n // Store the component directly - types are validated at parse time\n updatedComponents[update.id] = update.component as unknown as A2UIComponent\n }\n surface.components = updatedComponents\n\n store.setSurface(surfaceId, { ...surface })\n }\n // Handle update data model (v0.9) or data model update (v0.8)\n else if (isUpdateDataModelMessage(message) || isDataModelUpdateMessage(message)) {\n if (isUpdateDataModelMessage(message)) {\n // v0.9 format - single value update with op\n const { surfaceId, path, value, op } = message.updateDataModel\n\n if (path) {\n if (op === 'remove') {\n // For remove operation, delete the data\n store.setData(surfaceId, path, undefined)\n } else {\n // For add/replace or no op, set the value\n store.setData(surfaceId, path, value)\n }\n }\n } else {\n // v0.8 format - array of values\n const { surfaceId, path, values } = message.dataModelUpdate\n const basePath = path ?? ''\n\n for (const { path: valuePath, value } of values) {\n const fullPath = basePath ? `${basePath}.${valuePath}` : valuePath\n store.setData(surfaceId, fullPath, value)\n }\n }\n } else if (isDeleteSurfaceMessage(message)) {\n store.deleteSurface(message.deleteSurface.surfaceId)\n }\n}\n\n/**\n * A2UISurface - Renders an A2UI surface\n *\n * Accepts either:\n * - Pre-parsed messages (messages prop)\n * - JSONL stream (stream prop) - can be AsyncIterable or array of strings\n *\n * Processes messages to build the surface in the store, then renders it\n * using registered component renderers.\n *\n * @example\n * ```tsx\n * // With pre-parsed messages\n * <A2UISurface\n * surfaceId=\"main\"\n * messages={messages}\n * />\n *\n * // With JSONL stream\n * <A2UISurface\n * surfaceId=\"main\"\n * stream={jsonlStream}\n * />\n * ```\n */\nexport function A2UISurface({\n surfaceId,\n stream,\n messages,\n className,\n onAction,\n}: A2UISurfaceProps) {\n const { store } = useA2UI()\n const surface = useSurface(surfaceId)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<Error | null>(null)\n\n // Process messages or stream\n useEffect(() => {\n // Process pre-parsed messages\n if (messages) {\n try {\n for (const message of messages) {\n processMessage(message, store)\n }\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)))\n }\n return\n }\n\n // Process JSONL stream\n if (stream) {\n setLoading(true)\n setError(null)\n\n const parser = createStreamParser()\n\n parser.onMessage((message: A2UIMessage) => {\n try {\n processMessage(message, store)\n } catch (err: unknown) {\n setError(err instanceof Error ? err : new Error(String(err)))\n }\n })\n\n parser.onError((err: Error) => {\n setError(err)\n })\n\n // Handle both AsyncIterable and array\n const processStream = async () => {\n try {\n if (Symbol.asyncIterator in stream) {\n // AsyncIterable\n for await (const chunk of stream as AsyncIterable<string>) {\n parser.push(chunk)\n }\n } else {\n // Array\n for (const chunk of stream as string[]) {\n parser.push(chunk)\n }\n }\n } catch (err: unknown) {\n setError(err instanceof Error ? err : new Error(String(err)))\n } finally {\n setLoading(false)\n }\n }\n\n processStream()\n }\n }, [stream, messages, store])\n\n // Error state\n if (error) {\n return (\n <div className={className} style={{ color: 'red', padding: '16px' }}>\n <strong>Error rendering surface:</strong>\n <pre>{error.message}</pre>\n </div>\n )\n }\n\n // Loading state\n if (loading && !surface) {\n return <div className={className}>Loading surface...</div>\n }\n\n // Surface not found\n if (!surface) {\n return null\n }\n\n // Render the root component\n return (\n <div className={className}>\n <ComponentRenderer componentId={surface.root} surface={surface} onAction={onAction} />\n </div>\n )\n}\n","/**\n * Component Registry Implementation\n * Provides registration and lookup for component renderers\n */\n\nimport type { A2UIRenderer, ComponentRegistry } from './types.js'\n\n/**\n * Create a new component registry\n * @returns ComponentRegistry instance\n */\nexport function createRegistry(): ComponentRegistry {\n const renderers = new Map<string, A2UIRenderer>()\n\n return {\n /**\n * Register a renderer for a component type\n * @param renderer - Renderer to register\n */\n register(renderer: A2UIRenderer): void {\n renderers.set(renderer.type, renderer)\n },\n\n /**\n * Get a renderer by component type\n * @param type - Component type (e.g., \"Button\", \"Text\")\n * @returns Renderer or undefined if not found\n */\n get(type: string): A2UIRenderer | undefined {\n return renderers.get(type)\n },\n\n /**\n * Get all registered renderers\n * Useful for building showcases and documentation\n * @returns Array of all renderers\n */\n getAll(): A2UIRenderer[] {\n return Array.from(renderers.values())\n },\n }\n}\n","/**\n * A2UI Provider Component\n * Sets up the A2UI context for child components\n */\n\nimport type { A2UIStore } from 'a2ui-react-core'\nimport { createStore } from 'a2ui-react-core'\nimport type { ReactNode } from 'react'\nimport { useMemo } from 'react'\nimport { createRegistry } from '../registry/component-registry.js'\nimport type { A2UIAction, A2UIRenderer } from '../registry/types.js'\nimport { A2UIContext } from './A2UIContext.js'\n\n/**\n * Props for A2UIProvider\n */\nexport interface A2UIProviderProps {\n /** Child components that will have access to A2UI context */\n children: ReactNode\n /** Optional A2UI store instance. If not provided, a default store will be created */\n store?: A2UIStore\n /** Optional array of renderers to pre-register */\n renderers?: A2UIRenderer[]\n /** Optional action handler. Defaults to console.log */\n onAction?: (action: A2UIAction) => void\n}\n\n/**\n * Default action handler - logs actions to console\n */\nconst defaultActionHandler = (action: A2UIAction): void => {\n console.log('[A2UI Action]', action)\n}\n\n/**\n * A2UIProvider - Sets up the A2UI context\n *\n * @example\n * ```tsx\n * import { A2UIProvider } from 'a2ui-react-react'\n *\n * function App() {\n * return (\n * <A2UIProvider\n * renderers={[buttonRenderer, textRenderer]}\n * onAction={(action) => console.log('Action:', action)}\n * >\n * <YourApp />\n * </A2UIProvider>\n * )\n * }\n * ```\n */\nexport function A2UIProvider({\n children,\n store,\n renderers = [],\n onAction = defaultActionHandler,\n}: A2UIProviderProps) {\n // Create context value - memoized to prevent unnecessary re-renders\n const contextValue = useMemo(() => {\n // Use provided store or create a new one\n const storeInstance = store ?? createStore()\n\n // Create registry and register provided renderers\n const registry = createRegistry()\n for (const renderer of renderers) {\n registry.register(renderer)\n }\n\n return {\n store: storeInstance,\n registry,\n onAction,\n }\n }, [store, renderers, onAction])\n\n return <A2UIContext.Provider value={contextValue}>{children}</A2UIContext.Provider>\n}\n","/**\n * useAction Hook\n * Get the action dispatcher function\n */\n\nimport type { A2UIAction } from '../registry/types.js'\nimport { useA2UI } from './useA2UI.js'\n\n/**\n * Get the action dispatcher function\n * Convenience hook for accessing just the onAction handler\n *\n * @returns Action dispatcher function\n *\n * @example\n * ```tsx\n * function MyButton() {\n * const onAction = useAction()\n *\n * const handleClick = () => {\n * onAction({ type: 'button.click', payload: { id: 'my-button' } })\n * }\n *\n * return <button onClick={handleClick}>Click me</button>\n * }\n * ```\n */\nexport function useAction(): (action: A2UIAction) => void {\n const { onAction } = useA2UI()\n return onAction\n}\n","/**\n * useDataBinding Hook\n * Bind to a data path in the surface's data model\n */\n\nimport { useCallback, useSyncExternalStore } from 'react'\nimport { useA2UI } from './useA2UI.js'\n\n/**\n * Data binding result\n */\nexport interface DataBinding<T = unknown> {\n /** Current value at the data path */\n value: T | undefined\n /** Set a new value at the data path */\n setValue: (value: T) => void\n}\n\n/**\n * Bind to a data path in a surface's data model\n * Uses React 19's useSyncExternalStore for optimal performance\n *\n * @param surfaceId - ID of the surface containing the data\n * @param path - Dot-notation path to the data (e.g., \"user.name\")\n * @returns Data binding with value and setValue\n *\n * @example\n * ```tsx\n * function UserName() {\n * const { value, setValue } = useDataBinding<string>('main', 'user.name')\n *\n * return (\n * <input\n * value={value ?? ''}\n * onChange={(e) => setValue(e.target.value)}\n * />\n * )\n * }\n * ```\n */\nexport function useDataBinding<T = unknown>(surfaceId: string, path: string): DataBinding<T> {\n const { store } = useA2UI()\n\n // Subscribe to store changes\n const subscribe = useCallback(\n (callback: () => void) => {\n return store.subscribe(callback)\n },\n [store],\n )\n\n // Get current value snapshot\n const getSnapshot = useCallback(() => {\n return store.getData(surfaceId, path) as T | undefined\n }, [store, surfaceId, path])\n\n // Get server snapshot (same as client for this use case)\n const getServerSnapshot = getSnapshot\n\n // Subscribe to the data using useSyncExternalStore\n const value = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n\n // Create setValue callback\n const setValue = useCallback(\n (newValue: T) => {\n store.setData(surfaceId, path, newValue)\n },\n [store, surfaceId, path],\n )\n\n return { value, setValue }\n}\n","/**\n * Utility for building action payloads from component data\n * Eliminates duplication across interactive component renderers\n */\n\nimport type { A2UIAction, DataAccessor } from '../registry/types.js'\n\n/**\n * Component with action properties\n */\nexport interface ActionableComponent {\n action?: string\n actionPayload?: Record<string, unknown>\n submitDataPaths?: string[]\n}\n\n/**\n * Builds an action payload from component configuration and data model\n *\n * @param component - Component with action configuration\n * @param data - Data accessor for reading values from data model\n * @returns A2UIAction if component has an action configured, undefined otherwise\n *\n * @example\n * ```tsx\n * const handleClick = () => {\n * const action = buildActionPayload(component, data)\n * if (action) {\n * onAction(action)\n * }\n * }\n * ```\n */\nexport function buildActionPayload(\n component: ActionableComponent,\n data: DataAccessor,\n): A2UIAction | undefined {\n if (!component.action) {\n return undefined\n }\n\n const payload: Record<string, unknown> = component.actionPayload\n ? { ...component.actionPayload }\n : {}\n\n if (component.submitDataPaths) {\n for (const path of component.submitDataPaths) {\n const value = data.get(path)\n if (value !== undefined) {\n payload[path] = value\n }\n }\n }\n\n return {\n type: component.action,\n payload: Object.keys(payload).length > 0 ? payload : undefined,\n }\n}\n\n/**\n * Creates a click handler that dispatches an action\n *\n * @param component - Component with action configuration\n * @param data - Data accessor for reading values\n * @param onAction - Action dispatcher\n * @returns Click handler function\n *\n * @example\n * ```tsx\n * const handleClick = createActionHandler(component, data, onAction)\n * return <button onClick={handleClick}>Click me</button>\n * ```\n */\nexport function createActionHandler(\n component: ActionableComponent,\n data: DataAccessor,\n onAction: (action: A2UIAction) => void,\n): () => void {\n return () => {\n const action = buildActionPayload(component, data)\n if (action) {\n onAction(action)\n }\n }\n}\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*=size-])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n return (\n <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />\n )\n },\n)\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n","'use client'\n\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { Check } from 'lucide-react'\nimport type * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\n// Exact shadcn/ui v4 Checkbox - https://ui.shadcn.com/docs/components/checkbox\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer size-4 shrink-0 rounded-[4px] border border-input bg-transparent shadow-xs transition-shadow outline-none',\n 'data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary',\n 'dark:bg-input/30 dark:data-[state=checked]:bg-primary',\n 'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current\"\n >\n <Check className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","import * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { X } from 'lucide-react'\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPrimitive.Portal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg leading-none font-semibold', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","import * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n },\n)\nInput.displayName = 'Input'\n\nexport { Input }\n","'use client'\n\nimport * as LabelPrimitive from '@radix-ui/react-label'\nimport type * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","import * as TabsPrimitive from '@radix-ui/react-tabs'\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]',\n className,\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4',\n className,\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n className,\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","import * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n },\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n","import { type RefObject, useEffect, useState } from 'react'\n\nexport interface Dimensions {\n width: number\n height: number\n}\n\n/**\n * Hook to track container dimensions using ResizeObserver.\n * Automatically updates when the container is resized.\n *\n * @param containerRef - React ref to the container element\n * @param initialDimensions - Initial dimensions before first measurement\n * @returns Current dimensions of the container\n */\nexport function useContainerDimensions(\n containerRef: RefObject<HTMLElement | null>,\n initialDimensions: Dimensions = { width: 400, height: 300 },\n): Dimensions {\n const [dimensions, setDimensions] = useState<Dimensions>(initialDimensions)\n\n useEffect(() => {\n const updateDimensions = () => {\n if (containerRef.current) {\n setDimensions({\n width: containerRef.current.offsetWidth,\n height: containerRef.current.offsetHeight,\n })\n }\n }\n\n updateDimensions()\n\n const observer = new ResizeObserver(updateDimensions)\n if (containerRef.current) {\n observer.observe(containerRef.current)\n }\n\n return () => observer.disconnect()\n }, [containerRef])\n\n return dimensions\n}\n","import { useEffect, useState } from 'react'\n\n/**\n * Hook to detect if the user prefers reduced motion\n * Respects the prefers-reduced-motion media query\n *\n * @returns boolean - true if the user prefers reduced motion\n *\n * @example\n * ```tsx\n * const prefersReducedMotion = useReducedMotion()\n * const duration = prefersReducedMotion ? 0 : 0.3\n * ```\n */\nexport function useReducedMotion(): boolean {\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(false)\n\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)')\n setPrefersReducedMotion(mediaQuery.matches)\n\n const handler = (event: MediaQueryListEvent) => {\n setPrefersReducedMotion(event.matches)\n }\n mediaQuery.addEventListener('change', handler)\n return () => mediaQuery.removeEventListener('change', handler)\n }, [])\n\n return prefersReducedMotion\n}\n","/**\n * @extension a2ui-react-shadcn\n * Alert Component Renderer\n * Renders accessible alert messages with role=\"alert\" for screen readers.\n */\n\nimport type { AlertComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ReactNode } from 'react'\nimport { cn } from '../../lib/utils.js'\n\nconst variantStyles = {\n info: 'bg-blue-50 border-blue-200 text-blue-900 dark:bg-blue-950 dark:border-blue-800 dark:text-blue-100',\n warning:\n 'bg-yellow-50 border-yellow-200 text-yellow-900 dark:bg-yellow-950 dark:border-yellow-800 dark:text-yellow-100',\n error:\n 'bg-red-50 border-red-200 text-red-900 dark:bg-red-950 dark:border-red-800 dark:text-red-100',\n success:\n 'bg-green-50 border-green-200 text-green-900 dark:bg-green-950 dark:border-green-800 dark:text-green-100',\n}\n\nconst variantIcons = {\n info: '💡',\n warning: '⚠️',\n error: '❌',\n success: '✓',\n}\n\nexport const AlertRenderer: A2UIRenderer<AlertComponent> = {\n type: 'Alert',\n render: ({ component, children, id }: RendererProps<AlertComponent>) => {\n const variant = component.variant || 'info'\n\n return (\n <div\n id={id}\n role=\"alert\"\n className={cn('relative rounded-lg border p-4', variantStyles[variant])}\n >\n <div className=\"flex gap-3\">\n <span className=\"flex-shrink-0\" aria-hidden=\"true\">\n {variantIcons[variant]}\n </span>\n <div className=\"flex-1\">\n {component.title && <h5 className=\"font-medium mb-1\">{component.title}</h5>}\n <div className=\"text-sm\">{children as ReactNode}</div>\n </div>\n </div>\n </div>\n )\n },\n example: {\n name: 'Alert',\n description: 'Accessible alert component with screen reader announcement',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'alert-example', root: 'col-1' } },\n {\n updateComponents: {\n surfaceId: 'alert-example',\n components: [\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n children: ['alert-1', 'alert-2', 'alert-3', 'alert-4'],\n },\n },\n {\n id: 'alert-1',\n component: {\n type: 'Alert',\n id: 'alert-1',\n variant: 'info',\n title: 'Information',\n children: ['msg-1'],\n },\n },\n {\n id: 'msg-1',\n component: {\n type: 'Text',\n id: 'msg-1',\n content: 'This is an informational message.',\n },\n },\n {\n id: 'alert-2',\n component: {\n type: 'Alert',\n id: 'alert-2',\n variant: 'success',\n title: 'Success',\n children: ['msg-2'],\n },\n },\n {\n id: 'msg-2',\n component: {\n type: 'Text',\n id: 'msg-2',\n content: 'Operation completed successfully!',\n },\n },\n {\n id: 'alert-3',\n component: {\n type: 'Alert',\n id: 'alert-3',\n variant: 'warning',\n title: 'Warning',\n children: ['msg-3'],\n },\n },\n {\n id: 'msg-3',\n component: { type: 'Text', id: 'msg-3', content: 'Please review before continuing.' },\n },\n {\n id: 'alert-4',\n component: {\n type: 'Alert',\n id: 'alert-4',\n variant: 'error',\n title: 'Error',\n children: ['msg-4'],\n },\n },\n {\n id: 'msg-4',\n component: { type: 'Text', id: 'msg-4', content: 'Something went wrong.' },\n },\n ],\n },\n },\n ],\n },\n}\n","/**\n * @extension a2ui-react-shadcn\n * Semantic HTML Landmark Renderers\n * These components provide proper page structure for screen reader navigation.\n */\n\nimport type {\n ArticleComponent,\n AsideComponent,\n FooterComponent,\n HeaderComponent,\n MainComponent,\n NavComponent,\n SectionComponent,\n} from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ReactNode } from 'react'\n\nexport const MainRenderer: A2UIRenderer<MainComponent> = {\n type: 'Main',\n render: ({ children, id }: RendererProps<MainComponent>) => {\n return (\n <main id={id} className=\"flex-1\">\n {children as ReactNode}\n </main>\n )\n },\n example: {\n name: 'Main',\n description: 'Main content landmark - full page layout example',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'page-layout', root: 'page' } },\n {\n updateComponents: {\n surfaceId: 'page-layout',\n components: [\n // Page wrapper\n {\n id: 'page',\n component: {\n type: 'Column',\n id: 'page',\n distribution: 'packed',\n children: ['header', 'main', 'footer'],\n },\n },\n // Header with navigation\n {\n id: 'header',\n component: { type: 'Header', id: 'header', children: ['nav'] },\n },\n {\n id: 'nav',\n component: {\n type: 'Nav',\n id: 'nav',\n label: 'Hauptnavigation',\n children: ['nav-links'],\n },\n },\n {\n id: 'nav-links',\n component: {\n type: 'Row',\n id: 'nav-links',\n distribution: 'packed',\n children: ['home-btn', 'products-btn'],\n },\n },\n {\n id: 'home-btn',\n component: { type: 'Button', id: 'home-btn', child: 'btn-home-text' },\n },\n {\n id: 'btn-home-text',\n component: { type: 'Text', id: 'btn-home-text', content: 'Home' },\n },\n {\n id: 'products-btn',\n component: { type: 'Button', id: 'products-btn', child: 'btn-products-text' },\n },\n {\n id: 'btn-products-text',\n component: { type: 'Text', id: 'btn-products-text', content: 'Produkte' },\n },\n // Main content area\n {\n id: 'main',\n component: { type: 'Main', id: 'main', children: ['content-row'] },\n },\n {\n id: 'content-row',\n component: {\n type: 'Row',\n id: 'content-row',\n distribution: 'packed',\n children: ['features-section', 'sidebar'],\n },\n },\n // Section with title\n {\n id: 'features-section',\n component: {\n type: 'Section',\n id: 'features-section',\n title: 'Unsere Features',\n children: ['feature-text'],\n },\n },\n {\n id: 'feature-text',\n component: {\n type: 'Text',\n id: 'feature-text',\n content: 'Entdecken Sie unsere Funktionen...',\n },\n },\n // Sidebar\n {\n id: 'sidebar',\n component: {\n type: 'Aside',\n id: 'sidebar',\n title: 'Weitere Infos',\n children: ['sidebar-text'],\n },\n },\n {\n id: 'sidebar-text',\n component: {\n type: 'Text',\n id: 'sidebar-text',\n content: 'Hilfreiche Links und Ressourcen',\n },\n },\n // Footer\n {\n id: 'footer',\n component: { type: 'Footer', id: 'footer', children: ['copyright'] },\n },\n {\n id: 'copyright',\n component: {\n type: 'Text',\n id: 'copyright',\n content: '© 2024 Firma GmbH',\n style: 'caption',\n },\n },\n ],\n },\n },\n ],\n },\n}\n\nexport const NavRenderer: A2UIRenderer<NavComponent> = {\n type: 'Nav',\n render: ({ component, children, id }: RendererProps<NavComponent>) => {\n return (\n <nav id={id} aria-label={component.label}>\n {children as ReactNode}\n </nav>\n )\n },\n example: {\n name: 'Nav',\n description: 'Navigation landmark for navigation links',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'nav-example', root: 'nav-1' } },\n {\n updateComponents: {\n surfaceId: 'nav-example',\n components: [\n {\n id: 'nav-1',\n component: {\n type: 'Nav',\n id: 'nav-1',\n label: 'Main navigation',\n children: ['link-text'],\n },\n },\n {\n id: 'link-text',\n component: { type: 'Text', id: 'link-text', content: 'Navigation items here' },\n },\n ],\n },\n },\n ],\n },\n}\n\nexport const SectionRenderer: A2UIRenderer<SectionComponent> = {\n type: 'Section',\n render: ({ component, children, id }: RendererProps<SectionComponent>) => {\n const titleId = component.title ? `${id}-title` : undefined\n const HeadingTag = component.headingLevel || 'h2'\n\n return (\n <section\n id={id}\n aria-labelledby={titleId}\n aria-label={!component.title ? component.label : undefined}\n >\n {component.title && (\n <HeadingTag id={titleId} className=\"text-xl font-semibold mb-4\">\n {component.title}\n </HeadingTag>\n )}\n {children as ReactNode}\n </section>\n )\n },\n example: {\n name: 'Section',\n description: 'Section landmark for thematic content grouping',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'section-example', root: 'section-1' } },\n {\n updateComponents: {\n surfaceId: 'section-example',\n components: [\n {\n id: 'section-1',\n component: {\n type: 'Section',\n id: 'section-1',\n title: 'Features',\n headingLevel: 'h2',\n children: ['content'],\n },\n },\n {\n id: 'content',\n component: { type: 'Text', id: 'content', content: 'Section content goes here...' },\n },\n ],\n },\n },\n ],\n },\n}\n\nexport const AsideRenderer: A2UIRenderer<AsideComponent> = {\n type: 'Aside',\n render: ({ component, children, id }: RendererProps<AsideComponent>) => {\n const titleId = component.title ? `${id}-title` : undefined\n const HeadingTag = component.headingLevel || 'h3'\n\n return (\n <aside\n id={id}\n aria-labelledby={titleId}\n aria-label={!component.title ? component.label : undefined}\n className=\"p-4 border-l-2 border-muted\"\n >\n {component.title && (\n <HeadingTag id={titleId} className=\"text-lg font-medium mb-3\">\n {component.title}\n </HeadingTag>\n )}\n {children as ReactNode}\n </aside>\n )\n },\n example: {\n name: 'Aside',\n description: 'Aside landmark for tangentially related content',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'aside-example', root: 'aside-1' } },\n {\n updateComponents: {\n surfaceId: 'aside-example',\n components: [\n {\n id: 'aside-1',\n component: {\n type: 'Aside',\n id: 'aside-1',\n title: 'Related Links',\n children: ['content'],\n },\n },\n {\n id: 'content',\n component: { type: 'Text', id: 'content', content: 'Sidebar content here...' },\n },\n ],\n },\n },\n ],\n },\n}\n\nexport const HeaderRenderer: A2UIRenderer<HeaderComponent> = {\n type: 'Header',\n render: ({ children, id }: RendererProps<HeaderComponent>) => {\n return <header id={id}>{children as ReactNode}</header>\n },\n example: {\n name: 'Header',\n description: 'Header landmark for introductory content',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'header-example', root: 'header-1' } },\n {\n updateComponents: {\n surfaceId: 'header-example',\n components: [\n { id: 'header-1', component: { type: 'Header', id: 'header-1', children: ['title'] } },\n {\n id: 'title',\n component: { type: 'Text', id: 'title', content: 'Page Title', style: 'h1' },\n },\n ],\n },\n },\n ],\n },\n}\n\nexport const FooterRenderer: A2UIRenderer<FooterComponent> = {\n type: 'Footer',\n render: ({ children, id }: RendererProps<FooterComponent>) => {\n return <footer id={id}>{children as ReactNode}</footer>\n },\n example: {\n name: 'Footer',\n description: 'Footer landmark for footer content',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'footer-example', root: 'footer-1' } },\n {\n updateComponents: {\n surfaceId: 'footer-example',\n components: [\n {\n id: 'footer-1',\n component: { type: 'Footer', id: 'footer-1', children: ['copyright'] },\n },\n {\n id: 'copyright',\n component: {\n type: 'Text',\n id: 'copyright',\n content: '© 2024 Company',\n style: 'caption',\n },\n },\n ],\n },\n },\n ],\n },\n}\n\nexport const ArticleRenderer: A2UIRenderer<ArticleComponent> = {\n type: 'Article',\n render: ({ component, children, id }: RendererProps<ArticleComponent>) => {\n const titleId = component.title ? `${id}-title` : undefined\n const HeadingTag = component.headingLevel || 'h2'\n\n return (\n <article id={id} aria-labelledby={titleId} className=\"prose\">\n {component.title && (\n <HeadingTag id={titleId} className=\"text-2xl font-bold mb-4\">\n {component.title}\n </HeadingTag>\n )}\n {children as ReactNode}\n </article>\n )\n },\n example: {\n name: 'Article',\n description: 'Article element for self-contained content',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'article-example', root: 'article-1' } },\n {\n updateComponents: {\n surfaceId: 'article-example',\n components: [\n {\n id: 'article-1',\n component: {\n type: 'Article',\n id: 'article-1',\n title: 'Getting Started with A2UI',\n children: ['body'],\n },\n },\n {\n id: 'body',\n component: { type: 'Text', id: 'body', content: 'Article content goes here...' },\n },\n ],\n },\n },\n ],\n },\n}\n","/**\n * @extension a2ui-react-shadcn\n * LiveRegion Component Renderer\n * Renders ARIA live regions for dynamic content announcements.\n */\n\nimport type { LiveRegionComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ReactNode } from 'react'\n\nexport const LiveRegionRenderer: A2UIRenderer<LiveRegionComponent> = {\n type: 'LiveRegion',\n render: ({ component, children, id }: RendererProps<LiveRegionComponent>) => {\n const politeness = component.politeness || 'polite'\n\n return (\n <div id={id} aria-live={politeness} aria-atomic={component.atomic}>\n {children as ReactNode}\n </div>\n )\n },\n example: {\n name: 'LiveRegion',\n description: 'ARIA live region for dynamic content announcements',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'live-example', root: 'live-1' } },\n {\n updateComponents: {\n surfaceId: 'live-example',\n components: [\n {\n id: 'live-1',\n component: {\n type: 'LiveRegion',\n id: 'live-1',\n politeness: 'polite',\n atomic: true,\n children: ['status'],\n },\n },\n {\n id: 'status',\n component: {\n type: 'Text',\n id: 'status',\n content: 'Status updates will be announced here',\n dataPath: 'status.message',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","/**\n * @extension a2ui-react-shadcn\n * Progress Component Renderer\n * Renders an accessible progress indicator.\n */\n\nimport type { ProgressComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { cn } from '../../lib/utils.js'\n\nexport const ProgressRenderer: A2UIRenderer<ProgressComponent> = {\n type: 'Progress',\n render: ({ component, id }: RendererProps<ProgressComponent>) => {\n const max = component.max ?? 100\n const value = component.value\n const isIndeterminate = value === undefined\n const percentage = isIndeterminate ? 0 : Math.min(100, Math.max(0, (value / max) * 100))\n\n return (\n <div className=\"w-full space-y-1\">\n {component.label && (\n <div className=\"flex justify-between text-sm\">\n <span>{component.label}</span>\n {!isIndeterminate && <span>{Math.round(percentage)}%</span>}\n </div>\n )}\n <div\n id={id}\n role=\"progressbar\"\n aria-valuenow={isIndeterminate ? undefined : value}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-label={component.label}\n aria-busy={isIndeterminate}\n className=\"h-2 w-full overflow-hidden rounded-full bg-muted\"\n >\n <div\n className={cn(\n 'h-full bg-primary transition-all duration-300',\n isIndeterminate && 'animate-progress-indeterminate w-1/3',\n )}\n style={isIndeterminate ? undefined : { width: `${percentage}%` }}\n />\n </div>\n </div>\n )\n },\n example: {\n name: 'Progress',\n description: 'Accessible progress indicator with determinate and indeterminate states',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'progress-example', root: 'col-1' } },\n {\n updateComponents: {\n surfaceId: 'progress-example',\n components: [\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n children: ['progress-1', 'progress-2', 'progress-3'],\n },\n },\n {\n id: 'progress-1',\n component: {\n type: 'Progress',\n id: 'progress-1',\n label: 'Upload progress',\n value: 65,\n },\n },\n {\n id: 'progress-2',\n component: { type: 'Progress', id: 'progress-2', label: 'Almost done', value: 90 },\n },\n {\n id: 'progress-3',\n component: { type: 'Progress', id: 'progress-3', label: 'Loading...' },\n },\n ],\n },\n },\n ],\n },\n}\n","/**\n * @extension a2ui-react-shadcn\n * SkipLink Component Renderer\n * Renders a skip navigation link for keyboard users.\n */\n\nimport type { SkipLinkComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\n\nexport const SkipLinkRenderer: A2UIRenderer<SkipLinkComponent> = {\n type: 'SkipLink',\n render: ({ component, id }: RendererProps<SkipLinkComponent>) => {\n const label = component.label || 'Skip to main content'\n\n return (\n <a\n id={id}\n href={`#${component.targetId}`}\n className=\"sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2 focus:bg-primary focus:text-primary-foreground focus:rounded-md focus:outline-none focus:ring-2 focus:ring-ring\"\n >\n {label}\n </a>\n )\n },\n example: {\n name: 'SkipLink',\n description: 'Skip navigation link for keyboard accessibility',\n category: 'a11y',\n messages: [\n { createSurface: { surfaceId: 'skiplink-example', root: 'col-1' } },\n {\n updateComponents: {\n surfaceId: 'skiplink-example',\n components: [\n {\n id: 'col-1',\n component: { type: 'Column', id: 'col-1', children: ['skip', 'nav', 'main'] },\n },\n {\n id: 'skip',\n component: {\n type: 'SkipLink',\n id: 'skip',\n targetId: 'main',\n label: 'Skip to main content',\n },\n },\n {\n id: 'nav',\n component: {\n type: 'Text',\n id: 'nav',\n content: 'Navigation area (press Tab to reveal skip link)',\n },\n },\n { id: 'main', component: { type: 'Main', id: 'main', children: ['content'] } },\n {\n id: 'content',\n component: { type: 'Text', id: 'content', content: 'Main content area' },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport type { ReactNode } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface AuroraBackgroundComponent {\n type: 'AuroraBackground'\n id: string\n children?: string[]\n colors?: string[]\n speed?: number\n blur?: number\n}\n\nexport const AuroraBackgroundRenderer: A2UIRenderer<AuroraBackgroundComponent> = {\n type: 'AuroraBackground',\n render: ({ component, children }: RendererProps<AuroraBackgroundComponent>) => {\n const prefersReducedMotion = useReducedMotion()\n const colors = component.colors || ['#00d4ff', '#7c3aed', '#f472b6', '#34d399']\n const speed = component.speed || 15\n const blur = component.blur || 80\n\n return (\n <div\n style={{\n position: 'relative',\n width: '100%',\n minHeight: '300px',\n overflow: 'hidden',\n borderRadius: '0.75rem',\n backgroundColor: 'hsl(var(--background))',\n }}\n >\n {/* Aurora blobs */}\n {colors.map((color, index) => {\n const offset = (index / colors.length) * 360\n return (\n <motion.div\n key={`aurora-${color}-${offset}`}\n animate={\n prefersReducedMotion\n ? {}\n : {\n x: [\n `${20 + index * 15}%`,\n `${50 + Math.sin(offset) * 30}%`,\n `${80 - index * 10}%`,\n `${20 + index * 15}%`,\n ],\n y: [\n `${20 + index * 10}%`,\n `${60 - index * 15}%`,\n `${30 + index * 10}%`,\n `${20 + index * 10}%`,\n ],\n scale: [1, 1.2, 0.8, 1],\n }\n }\n transition={\n prefersReducedMotion\n ? { duration: 0 }\n : {\n duration: speed + index * 2,\n repeat: Number.POSITIVE_INFINITY,\n ease: 'easeInOut',\n }\n }\n style={{\n position: 'absolute',\n width: '40%',\n height: '40%',\n borderRadius: '50%',\n background: `radial-gradient(circle, ${color} 0%, transparent 70%)`,\n filter: `blur(${blur}px)`,\n opacity: 0.6,\n zIndex: 0,\n }}\n />\n )\n })}\n\n {/* Overlay for better text readability */}\n <div\n style={{\n position: 'absolute',\n inset: 0,\n backgroundColor: 'hsl(var(--background) / 0.3)',\n zIndex: 1,\n }}\n />\n\n {/* Content */}\n <div\n style={{\n position: 'relative',\n zIndex: 2,\n padding: '2rem',\n }}\n >\n {children as ReactNode}\n </div>\n </div>\n )\n },\n example: {\n name: 'Aurora Background',\n description: 'Beautiful aurora borealis-style animated background',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'aurora-example', root: 'aurora-1' } },\n {\n updateComponents: {\n surfaceId: 'aurora-example',\n components: [\n {\n id: 'aurora-1',\n component: {\n type: 'AuroraBackground',\n id: 'aurora-1',\n children: ['col-1'],\n colors: ['#00d4ff', '#7c3aed', '#f472b6'],\n },\n },\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n alignment: 'center',\n children: ['text-1', 'text-2'],\n },\n },\n {\n id: 'text-1',\n component: { type: 'Text', id: 'text-1', content: 'Aurora Effect', style: 'h1' },\n },\n {\n id: 'text-2',\n component: {\n type: 'Text',\n id: 'text-2',\n content: 'Beautiful animated northern lights',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { BubbleBackgroundComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useMemo, useRef } from 'react'\nimport { useContainerDimensions } from '../../../hooks/useContainerDimensions.js'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface Bubble {\n id: number\n size: number\n x: number\n delay: number\n duration: number\n opacity: number\n}\n\nexport const BubbleBackgroundRenderer: A2UIRenderer<BubbleBackgroundComponent> = {\n type: 'bubble-background',\n render: ({ component, children }) => {\n const prefersReducedMotion = useReducedMotion()\n const {\n bubbleCount = 20,\n minSize = 10,\n maxSize = 60,\n color = 'hsl(var(--primary))',\n speed = 1,\n } = component\n\n const containerRef = useRef<HTMLDivElement>(null)\n const { height: containerHeight } = useContainerDimensions(containerRef)\n\n const bubbles = useMemo<Bubble[]>(() => {\n return Array.from({ length: bubbleCount }, (_, i) => ({\n id: i,\n size: Math.random() * (maxSize - minSize) + minSize,\n x: Math.random() * 100,\n delay: Math.random() * 5,\n duration: (Math.random() * 10 + 10) / speed,\n opacity: Math.random() * 0.3 + 0.1,\n }))\n }, [bubbleCount, minSize, maxSize, speed])\n\n return (\n <div\n ref={containerRef}\n className=\"relative w-full h-full min-h-[300px] overflow-hidden bg-[hsl(var(--background))]\"\n >\n {/* Bubbles */}\n {!prefersReducedMotion &&\n bubbles.map((bubble) => (\n <motion.div\n key={bubble.id}\n className=\"absolute rounded-full pointer-events-none\"\n style={{\n width: bubble.size,\n height: bubble.size,\n left: `${bubble.x}%`,\n bottom: -bubble.size,\n background: `radial-gradient(circle at 30% 30%, ${color}40, ${color}20)`,\n border: `1px solid ${color}30`,\n opacity: bubble.opacity,\n }}\n animate={{\n y: [0, -(containerHeight + bubble.size * 2)],\n x: [0, Math.sin(bubble.id) * 50],\n }}\n transition={{\n duration: bubble.duration,\n delay: bubble.delay,\n repeat: Infinity,\n ease: 'linear',\n }}\n />\n ))}\n\n {/* Content */}\n <div className=\"relative z-10 w-full h-full\">{children}</div>\n </div>\n )\n },\n example: {\n name: 'Bubble Background',\n description: 'Animated rising bubbles background effect',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'bubble-bg-example', root: 'bg-1' } },\n {\n updateComponents: {\n surfaceId: 'bubble-bg-example',\n components: [\n {\n id: 'bg-1',\n component: {\n type: 'bubble-background',\n id: 'bg-1',\n bubbleCount: 15,\n minSize: 10,\n maxSize: 40,\n speed: 1,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { FireworksBackgroundComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useEffect, useMemo, useState } from 'react'\n\ninterface Particle {\n id: string\n x: number\n y: number\n color: string\n angle: number\n speed: number\n size: number\n}\n\ninterface Firework {\n id: string\n x: number\n y: number\n particles: Particle[]\n startTime: number\n}\n\nexport const FireworksBackgroundRenderer: A2UIRenderer<FireworksBackgroundComponent> = {\n type: 'fireworks-background',\n render: ({ component, children }) => {\n const [fireworks, setFireworks] = useState<Firework[]>([])\n\n const {\n frequency = 2000,\n particleCount = 30,\n colors = ['#ff0000', '#00ff00', '#0000ff', '#ffff00', '#ff00ff', '#00ffff'],\n autoPlay = true,\n } = component\n\n const createFirework = useMemo(() => {\n return () => {\n const x = 20 + Math.random() * 60\n const y = 20 + Math.random() * 40\n const color = colors[Math.floor(Math.random() * colors.length)] || '#ffffff'\n\n const particles: Particle[] = Array.from({ length: particleCount }, (_, i) => ({\n id: `p-${i}`,\n x: 0,\n y: 0,\n color,\n angle: (360 / particleCount) * i + Math.random() * 10,\n speed: 50 + Math.random() * 100,\n size: 2 + Math.random() * 4,\n }))\n\n return {\n id: `fw-${Date.now()}-${Math.random()}`,\n x,\n y,\n particles,\n startTime: Date.now(),\n }\n }\n }, [colors, particleCount])\n\n useEffect(() => {\n if (!autoPlay) return\n\n const interval = setInterval(() => {\n setFireworks((prev) => {\n const now = Date.now()\n const filtered = prev.filter((fw) => now - fw.startTime < 2000)\n return [...filtered, createFirework()]\n })\n }, frequency)\n\n return () => clearInterval(interval)\n }, [autoPlay, frequency, createFirework])\n\n return (\n <div className=\"relative w-full h-full min-h-[300px] overflow-hidden bg-[hsl(var(--background))]\">\n {/* Fireworks */}\n {fireworks.map((firework) => (\n <div\n key={firework.id}\n className=\"absolute pointer-events-none\"\n style={{\n left: `${firework.x}%`,\n top: `${firework.y}%`,\n }}\n >\n {firework.particles.map((particle) => (\n <motion.div\n key={particle.id}\n className=\"absolute rounded-full\"\n style={{\n width: particle.size,\n height: particle.size,\n backgroundColor: particle.color,\n boxShadow: `0 0 ${particle.size * 2}px ${particle.color}`,\n }}\n initial={{ x: 0, y: 0, opacity: 1, scale: 1 }}\n animate={{\n x: Math.cos((particle.angle * Math.PI) / 180) * particle.speed,\n y: Math.sin((particle.angle * Math.PI) / 180) * particle.speed,\n opacity: 0,\n scale: 0.5,\n }}\n transition={{\n duration: 1.5,\n ease: 'easeOut',\n }}\n />\n ))}\n </div>\n ))}\n\n {/* Content */}\n <div className=\"relative z-10 w-full h-full\">{children}</div>\n </div>\n )\n },\n example: {\n name: 'Fireworks Background',\n description: 'Animated fireworks explosion effect',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'fireworks-bg-example', root: 'bg-1' } },\n {\n updateComponents: {\n surfaceId: 'fireworks-bg-example',\n components: [\n {\n id: 'bg-1',\n component: {\n type: 'fireworks-background',\n id: 'bg-1',\n frequency: 1500,\n particleCount: 25,\n autoPlay: true,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport type { ReactNode } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface GradientBackgroundComponent {\n type: 'GradientBackground'\n id: string\n children?: string[]\n colors?: string[]\n speed?: number\n direction?: 'horizontal' | 'vertical' | 'diagonal' | 'radial'\n blur?: number\n}\n\nexport const GradientBackgroundRenderer: A2UIRenderer<GradientBackgroundComponent> = {\n type: 'GradientBackground',\n render: ({ component, children }: RendererProps<GradientBackgroundComponent>) => {\n const prefersReducedMotion = useReducedMotion()\n const colors = component.colors || ['#667eea', '#764ba2', '#f093fb', '#f5576c']\n const speed = component.speed || 10\n const direction = component.direction || 'diagonal'\n const blur = component.blur || 0\n\n const getGradientAngle = () => {\n switch (direction) {\n case 'horizontal':\n return '90deg'\n case 'vertical':\n return '180deg'\n case 'diagonal':\n return '45deg'\n case 'radial':\n return 'circle'\n default:\n return '45deg'\n }\n }\n\n const gradientAngle = getGradientAngle()\n const isRadial = direction === 'radial'\n const colorString = colors.join(', ')\n\n return (\n <div\n style={{\n position: 'relative',\n width: '100%',\n minHeight: '200px',\n overflow: 'hidden',\n borderRadius: '0.75rem',\n }}\n >\n <motion.div\n animate={\n prefersReducedMotion\n ? {}\n : {\n backgroundPosition: isRadial ? undefined : ['0% 0%', '100% 100%', '0% 0%'],\n scale: isRadial ? [1, 1.1, 1] : undefined,\n }\n }\n transition={\n prefersReducedMotion\n ? { duration: 0 }\n : {\n duration: speed,\n repeat: Number.POSITIVE_INFINITY,\n ease: 'linear',\n }\n }\n style={{\n position: 'absolute',\n inset: blur ? -blur : 0,\n background: isRadial\n ? `radial-gradient(${gradientAngle}, ${colorString})`\n : `linear-gradient(${gradientAngle}, ${colorString})`,\n backgroundSize: isRadial ? '100% 100%' : '400% 400%',\n filter: blur ? `blur(${blur}px)` : undefined,\n zIndex: 0,\n }}\n />\n <div\n style={{\n position: 'relative',\n zIndex: 1,\n padding: '2rem',\n }}\n >\n {children as ReactNode}\n </div>\n </div>\n )\n },\n example: {\n name: 'Gradient Background',\n description: 'Animated gradient background with customizable colors',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'gradient-bg-example', root: 'gradient-1' } },\n {\n updateComponents: {\n surfaceId: 'gradient-bg-example',\n components: [\n {\n id: 'gradient-1',\n component: {\n type: 'GradientBackground',\n id: 'gradient-1',\n children: ['text-1'],\n colors: ['#667eea', '#764ba2', '#f093fb'],\n speed: 8,\n },\n },\n {\n id: 'text-1',\n component: {\n type: 'Text',\n id: 'text-1',\n content: 'Beautiful animated gradient!',\n style: 'h2',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { GravityStarsBackgroundComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { useContainerDimensions } from '../../../hooks/useContainerDimensions.js'\n\ninterface Star {\n id: number\n x: number\n y: number\n size: number\n vx: number\n vy: number\n}\n\nexport const GravityStarsBackgroundRenderer: A2UIRenderer<GravityStarsBackgroundComponent> = {\n type: 'gravity-stars-background',\n render: ({ component, children }) => {\n const {\n starCount = 50,\n minSize = 2,\n maxSize = 5,\n color = '#ffffff',\n gravity = 0.02,\n interactive = true,\n } = component\n\n const [mousePos, setMousePos] = useState({ x: 0, y: 0 })\n const containerRef = useRef<HTMLDivElement>(null)\n const dimensions = useContainerDimensions(containerRef)\n\n const initialStars = useMemo<Star[]>(() => {\n return Array.from({ length: starCount }, (_, i) => ({\n id: i,\n x: Math.random() * 100,\n y: Math.random() * 100,\n size: Math.random() * (maxSize - minSize) + minSize,\n vx: (Math.random() - 0.5) * 0.5,\n vy: (Math.random() - 0.5) * 0.5,\n }))\n }, [starCount, minSize, maxSize])\n\n const [stars, setStars] = useState(initialStars)\n\n useEffect(() => {\n if (!interactive) return\n\n const interval = setInterval(() => {\n setStars((prevStars) =>\n prevStars.map((star) => {\n const starX = (star.x / 100) * dimensions.width\n const starY = (star.y / 100) * dimensions.height\n\n const dx = mousePos.x - starX\n const dy = mousePos.y - starY\n const distance = Math.sqrt(dx * dx + dy * dy) || 1\n\n const force = Math.min((gravity * 1000) / distance, 0.5)\n const ax = (dx / distance) * force\n const ay = (dy / distance) * force\n\n let newVx = star.vx + ax\n let newVy = star.vy + ay\n\n // Damping\n newVx *= 0.98\n newVy *= 0.98\n\n let newX = star.x + newVx\n let newY = star.y + newVy\n\n // Wrap around edges\n if (newX < 0) newX = 100\n if (newX > 100) newX = 0\n if (newY < 0) newY = 100\n if (newY > 100) newY = 0\n\n return {\n ...star,\n x: newX,\n y: newY,\n vx: newVx,\n vy: newVy,\n }\n }),\n )\n }, 16)\n\n return () => clearInterval(interval)\n }, [interactive, mousePos, gravity, dimensions])\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (!interactive) return\n const rect = e.currentTarget.getBoundingClientRect()\n setMousePos({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top,\n })\n }\n\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: Decorative background with mouse tracking for visual effect only, not interactive functionality\n <div\n ref={containerRef}\n className=\"relative w-full h-full min-h-[300px] overflow-hidden bg-slate-950\"\n onMouseMove={handleMouseMove}\n >\n {/* Stars */}\n {stars.map((star) => (\n <motion.div\n key={star.id}\n className=\"absolute rounded-full pointer-events-none\"\n style={{\n width: star.size,\n height: star.size,\n left: `${star.x}%`,\n top: `${star.y}%`,\n backgroundColor: color,\n boxShadow: `0 0 ${star.size * 3}px ${color}`,\n }}\n animate={{\n opacity: [0.6, 1, 0.6],\n }}\n transition={{\n duration: 2,\n repeat: Infinity,\n ease: 'easeInOut',\n delay: star.id * 0.02,\n }}\n />\n ))}\n\n {/* Mouse glow effect */}\n {interactive && (\n <motion.div\n className=\"absolute rounded-full pointer-events-none\"\n style={{\n width: 100,\n height: 100,\n left: mousePos.x - 50,\n top: mousePos.y - 50,\n background: `radial-gradient(circle, ${color}20 0%, transparent 70%)`,\n }}\n animate={{\n scale: [1, 1.2, 1],\n }}\n transition={{\n duration: 1.5,\n repeat: Infinity,\n ease: 'easeInOut',\n }}\n />\n )}\n\n {/* Content */}\n <div className=\"relative z-10 w-full h-full\">{children}</div>\n </div>\n )\n },\n example: {\n name: 'Gravity Stars',\n description: 'Stars attracted to cursor with gravity effect',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'gravity-stars-example', root: 'bg-1' } },\n {\n updateComponents: {\n surfaceId: 'gravity-stars-example',\n components: [\n {\n id: 'bg-1',\n component: {\n type: 'gravity-stars-background',\n id: 'bg-1',\n starCount: 40,\n interactive: true,\n gravity: 0.02,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { HexagonBackgroundComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useMemo } from 'react'\n\ninterface Hexagon {\n id: number\n row: number\n col: number\n delay: number\n}\n\nexport const HexagonBackgroundRenderer: A2UIRenderer<HexagonBackgroundComponent> = {\n type: 'hexagon-background',\n render: ({ component, children }) => {\n const {\n rows = 8,\n cols = 12,\n color = 'hsl(var(--primary))',\n hoverEffect = true,\n animated = true,\n gap = 4,\n } = component\n\n const hexagons = useMemo<Hexagon[]>(() => {\n const result: Hexagon[] = []\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n result.push({\n id: row * cols + col,\n row,\n col,\n delay: (row + col) * 0.05,\n })\n }\n }\n return result\n }, [rows, cols])\n\n const hexSize = 40\n const hexHeight = hexSize * 0.866\n\n // Calculate total SVG dimensions\n const svgWidth = cols * (hexSize + gap) + (hexSize + gap) / 2\n const svgHeight = rows * (hexHeight * 0.75 + gap) + hexHeight / 2\n\n return (\n <div className=\"relative w-full h-full min-h-[300px] overflow-hidden bg-[hsl(var(--background))]\">\n {/* Hexagon grid */}\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <svg\n className=\"w-full h-full\"\n viewBox={`0 0 ${svgWidth} ${svgHeight}`}\n preserveAspectRatio=\"xMidYMid meet\"\n aria-hidden=\"true\"\n >\n <title>Hexagonal grid pattern background</title>\n {hexagons.map((hex) => {\n const xOffset = hex.row % 2 === 0 ? 0 : (hexSize + gap) / 2\n const x = hex.col * (hexSize + gap) + xOffset + hexSize / 2\n const y = hex.row * (hexHeight * 0.75 + gap) + hexHeight / 2\n\n const points = Array.from({ length: 6 }, (_, i) => {\n const angle = (60 * i - 30) * (Math.PI / 180)\n const px = x + (hexSize / 2) * Math.cos(angle)\n const py = y + (hexSize / 2) * Math.sin(angle)\n return `${px},${py}`\n }).join(' ')\n\n return (\n <motion.polygon\n key={hex.id}\n points={points}\n fill=\"transparent\"\n stroke={color}\n strokeWidth=\"1\"\n style={{ opacity: 0.3 }}\n initial={animated ? { opacity: 0, scale: 0 } : {}}\n animate={\n animated\n ? {\n opacity: [0.2, 0.4, 0.2],\n scale: 1,\n }\n : {}\n }\n transition={{\n delay: hex.delay,\n duration: 2,\n repeat: Infinity,\n ease: 'easeInOut',\n }}\n whileHover={\n hoverEffect\n ? {\n fill: `${color}40`,\n opacity: 1,\n transition: { duration: 0.2 },\n }\n : {}\n }\n className={hoverEffect ? 'cursor-pointer' : ''}\n />\n )\n })}\n </svg>\n </div>\n\n {/* Content */}\n <div className=\"relative z-10 w-full h-full\">{children}</div>\n </div>\n )\n },\n example: {\n name: 'Hexagon Background',\n description: 'Animated hexagonal grid pattern',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'hexagon-bg-example', root: 'bg-1' } },\n {\n updateComponents: {\n surfaceId: 'hexagon-bg-example',\n components: [\n {\n id: 'bg-1',\n component: {\n type: 'hexagon-background',\n id: 'bg-1',\n rows: 6,\n cols: 10,\n hoverEffect: true,\n animated: true,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { HoleBackgroundComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\n\nexport const HoleBackgroundRenderer: A2UIRenderer<HoleBackgroundComponent> = {\n type: 'hole-background',\n render: ({ component, children }) => {\n const {\n holeSize = 200,\n color = 'hsl(var(--primary))',\n rings = 5,\n animated = true,\n pulseSpeed = 2,\n } = component\n\n return (\n <div className=\"relative w-full h-full min-h-[300px] overflow-hidden bg-[hsl(var(--background))]\">\n {/* Concentric rings */}\n <div className=\"absolute inset-0 flex items-center justify-center\">\n {Array.from({ length: rings }, (_, i) => {\n const size = holeSize + i * 60\n const delay = i * 0.2\n\n return (\n <motion.div\n key={`ring-${i}-${size}`}\n className=\"absolute rounded-full pointer-events-none\"\n style={{\n width: size,\n height: size,\n border: `2px solid ${color}`,\n opacity: 0.3 - i * 0.05,\n }}\n animate={\n animated\n ? {\n scale: [1, 1.1, 1],\n opacity: [0.3 - i * 0.05, 0.5 - i * 0.05, 0.3 - i * 0.05],\n }\n : {}\n }\n transition={{\n duration: pulseSpeed,\n delay,\n repeat: Infinity,\n ease: 'easeInOut',\n }}\n />\n )\n })}\n\n {/* Central hole with glow */}\n <motion.div\n className=\"absolute rounded-full\"\n style={{\n width: holeSize,\n height: holeSize,\n background: `radial-gradient(circle, transparent 30%, ${color}10 70%, ${color}30 100%)`,\n boxShadow: `0 0 60px ${color}40, inset 0 0 60px ${color}20`,\n }}\n animate={\n animated\n ? {\n boxShadow: [\n `0 0 60px ${color}40, inset 0 0 60px ${color}20`,\n `0 0 80px ${color}60, inset 0 0 80px ${color}30`,\n `0 0 60px ${color}40, inset 0 0 60px ${color}20`,\n ],\n }\n : {}\n }\n transition={{\n duration: pulseSpeed * 1.5,\n repeat: Infinity,\n ease: 'easeInOut',\n }}\n />\n </div>\n\n {/* Content */}\n <div className=\"relative z-10 w-full h-full\">{children}</div>\n </div>\n )\n },\n example: {\n name: 'Hole Background',\n description: 'Pulsing circular portal effect',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'hole-bg-example', root: 'bg-1' } },\n {\n updateComponents: {\n surfaceId: 'hole-bg-example',\n components: [\n {\n id: 'bg-1',\n component: {\n type: 'hole-background',\n id: 'bg-1',\n holeSize: 150,\n rings: 4,\n animated: true,\n pulseSpeed: 2,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { type ReactNode, useMemo } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface ParticlesBackgroundComponent {\n type: 'ParticlesBackground'\n id: string\n children?: string[]\n particleCount?: number\n particleColor?: string\n particleSize?: number\n speed?: number\n connected?: boolean\n}\n\ninterface Particle {\n id: number\n x: number\n y: number\n size: number\n duration: number\n delay: number\n}\n\nexport const ParticlesBackgroundRenderer: A2UIRenderer<ParticlesBackgroundComponent> = {\n type: 'ParticlesBackground',\n render: ({ component, children }: RendererProps<ParticlesBackgroundComponent>) => {\n const prefersReducedMotion = useReducedMotion()\n const count = component.particleCount || 30\n const color = component.particleColor || 'hsl(var(--primary))'\n const size = component.particleSize || 4\n const speed = component.speed || 20\n\n const particles: Particle[] = useMemo(() => {\n return Array.from({ length: count }, (_, i) => ({\n id: i,\n x: Math.random() * 100,\n y: Math.random() * 100,\n size: size * (0.5 + Math.random() * 0.5),\n duration: speed * (0.5 + Math.random()),\n delay: Math.random() * speed,\n }))\n }, [count, size, speed])\n\n return (\n <div\n style={{\n position: 'relative',\n width: '100%',\n minHeight: '200px',\n overflow: 'hidden',\n borderRadius: '0.75rem',\n backgroundColor: 'hsl(var(--background))',\n }}\n >\n {/* Particles */}\n {!prefersReducedMotion &&\n particles.map((particle) => (\n <motion.div\n key={particle.id}\n initial={{\n x: `${particle.x}%`,\n y: `${particle.y}%`,\n opacity: 0,\n }}\n animate={{\n y: [`${particle.y}%`, `${particle.y - 30}%`, `${particle.y}%`],\n x: [\n `${particle.x}%`,\n `${particle.x + (Math.random() - 0.5) * 20}%`,\n `${particle.x}%`,\n ],\n opacity: [0, 0.8, 0],\n scale: [0, 1, 0],\n }}\n transition={{\n duration: particle.duration,\n repeat: Number.POSITIVE_INFINITY,\n delay: particle.delay,\n ease: 'easeInOut',\n }}\n style={{\n position: 'absolute',\n width: particle.size,\n height: particle.size,\n borderRadius: '50%',\n backgroundColor: color,\n boxShadow: `0 0 ${particle.size * 2}px ${color}`,\n zIndex: 0,\n }}\n />\n ))}\n\n {/* Content */}\n <div\n style={{\n position: 'relative',\n zIndex: 1,\n padding: '2rem',\n }}\n >\n {children as ReactNode}\n </div>\n </div>\n )\n },\n example: {\n name: 'Particles Background',\n description: 'Animated floating particles background',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'particles-example', root: 'particles-1' } },\n {\n updateComponents: {\n surfaceId: 'particles-example',\n components: [\n {\n id: 'particles-1',\n component: {\n type: 'ParticlesBackground',\n id: 'particles-1',\n children: ['text-1'],\n particleCount: 40,\n particleColor: '#667eea',\n },\n },\n {\n id: 'text-1',\n component: {\n type: 'Text',\n id: 'text-1',\n content: 'Floating particles!',\n style: 'h2',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { StarsBackgroundComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useMemo } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface Star {\n id: number\n x: number\n y: number\n size: number\n opacity: number\n duration: number\n delay: number\n}\n\nexport const StarsBackgroundRenderer: A2UIRenderer<StarsBackgroundComponent> = {\n type: 'stars-background',\n render: ({ component, children }) => {\n const prefersReducedMotion = useReducedMotion()\n const {\n starCount = 100,\n minSize = 1,\n maxSize = 3,\n color = '#ffffff',\n twinkle = true,\n speed = 1,\n } = component\n\n const stars = useMemo<Star[]>(() => {\n return Array.from({ length: starCount }, (_, i) => ({\n id: i,\n x: Math.random() * 100,\n y: Math.random() * 100,\n size: Math.random() * (maxSize - minSize) + minSize,\n opacity: Math.random() * 0.5 + 0.5,\n duration: (Math.random() * 2 + 1) / speed,\n delay: Math.random() * 2,\n }))\n }, [starCount, minSize, maxSize, speed])\n\n return (\n <div className=\"relative w-full h-full min-h-[300px] overflow-hidden bg-slate-950\">\n {/* Stars */}\n {stars.map((star) => (\n <motion.div\n key={star.id}\n className=\"absolute rounded-full pointer-events-none\"\n style={{\n width: star.size,\n height: star.size,\n left: `${star.x}%`,\n top: `${star.y}%`,\n backgroundColor: color,\n boxShadow: `0 0 ${star.size * 2}px ${color}`,\n }}\n animate={\n prefersReducedMotion || !twinkle\n ? {}\n : {\n opacity: [star.opacity, star.opacity * 0.3, star.opacity],\n scale: [1, 0.8, 1],\n }\n }\n transition={\n prefersReducedMotion\n ? { duration: 0 }\n : {\n duration: star.duration,\n delay: star.delay,\n repeat: Infinity,\n ease: 'easeInOut',\n }\n }\n />\n ))}\n\n {/* Content */}\n <div className=\"relative z-10 w-full h-full\">{children}</div>\n </div>\n )\n },\n example: {\n name: 'Stars Background',\n description: 'Twinkling stars night sky effect',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'stars-bg-example', root: 'bg-1' } },\n {\n updateComponents: {\n surfaceId: 'stars-bg-example',\n components: [\n {\n id: 'bg-1',\n component: {\n type: 'stars-background',\n id: 'bg-1',\n starCount: 80,\n twinkle: true,\n speed: 1,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { CopyButtonComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { Check, Copy } from 'lucide-react'\nimport { useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\nexport const CopyButtonRenderer: A2UIRenderer<CopyButtonComponent> = {\n type: 'copy-button',\n render: ({ component, onAction }) => {\n const [copied, setCopied] = useState(false)\n const prefersReducedMotion = useReducedMotion()\n\n const {\n text,\n label = 'Copy',\n copiedLabel = 'Copied!',\n variant = 'default',\n showIcon = true,\n duration = 2000,\n } = component\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(text)\n setCopied(true)\n onAction?.({ type: 'copy', payload: { text } })\n setTimeout(() => setCopied(false), duration)\n } catch {\n onAction?.({ type: 'error', payload: { message: 'Failed to copy' } })\n }\n }\n\n const getVariantStyles = () => {\n switch (variant) {\n case 'outline':\n return 'border border-[hsl(var(--border))] bg-transparent hover:bg-[hsl(var(--accent))]'\n case 'ghost':\n return 'bg-transparent hover:bg-[hsl(var(--accent))]'\n case 'secondary':\n return 'bg-[hsl(var(--secondary))] text-[hsl(var(--secondary-foreground))] hover:bg-[hsl(var(--secondary))]/80'\n default:\n return 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] hover:bg-[hsl(var(--primary))]/90'\n }\n }\n\n return (\n <motion.button\n className={`inline-flex items-center gap-2 rounded-lg px-4 py-2 font-medium transition-colors ${getVariantStyles()}`}\n onClick={handleCopy}\n whileTap={prefersReducedMotion ? undefined : { scale: 0.95 }}\n >\n <AnimatePresence mode=\"wait\">\n {showIcon && (\n <motion.span\n key={copied ? 'check' : 'copy'}\n initial={prefersReducedMotion ? {} : { scale: 0, opacity: 0 }}\n animate={prefersReducedMotion ? {} : { scale: 1, opacity: 1 }}\n exit={prefersReducedMotion ? {} : { scale: 0, opacity: 0 }}\n transition={prefersReducedMotion ? { duration: 0 } : { duration: 0.15 }}\n >\n {copied ? <Check className=\"h-4 w-4 text-green-500\" /> : <Copy className=\"h-4 w-4\" />}\n </motion.span>\n )}\n </AnimatePresence>\n\n <AnimatePresence mode=\"wait\">\n <motion.span\n key={copied ? 'copied' : 'copy'}\n initial={prefersReducedMotion ? {} : { y: 10, opacity: 0 }}\n animate={prefersReducedMotion ? {} : { y: 0, opacity: 1 }}\n exit={prefersReducedMotion ? {} : { y: -10, opacity: 0 }}\n transition={prefersReducedMotion ? { duration: 0 } : { duration: 0.15 }}\n >\n {copied ? copiedLabel : label}\n </motion.span>\n </AnimatePresence>\n </motion.button>\n )\n },\n example: {\n name: 'Copy Button',\n description: 'Button that copies text with animated feedback',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'copy-btn-example', root: 'btn-1' } },\n {\n updateComponents: {\n surfaceId: 'copy-btn-example',\n components: [\n {\n id: 'btn-1',\n component: {\n type: 'copy-button',\n id: 'btn-1',\n text: 'npm install a2ui-react-shadcn',\n label: 'Copy',\n copiedLabel: 'Copied!',\n variant: 'outline',\n showIcon: true,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","/**\n * Shared button style constants\n * Eliminates duplication across animated button renderers\n */\n\nimport type { CSSProperties } from 'react'\n\n/**\n * Primary button inline styles for framer-motion buttons\n */\nexport const primaryButtonStyle: CSSProperties = {\n backgroundColor: 'hsl(var(--primary))',\n color: 'hsl(var(--primary-foreground))',\n}\n\n/**\n * Secondary/outline button inline styles for framer-motion buttons\n */\nexport const secondaryButtonStyle: CSSProperties = {\n backgroundColor: 'hsl(var(--background))',\n color: 'hsl(var(--foreground))',\n borderColor: 'hsl(var(--input))',\n}\n\n/**\n * Get button style based on primary flag\n */\nexport function getButtonStyle(primary?: boolean): CSSProperties {\n return primary ? primaryButtonStyle : secondaryButtonStyle\n}\n\n/**\n * Base button class names (shared across animated buttons)\n */\nexport const baseButtonClassName =\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium h-9 px-4 py-2'\n\n/**\n * Primary button class names\n */\nexport const primaryButtonClassName = `bg-primary text-primary-foreground shadow hover:bg-primary/90 ${baseButtonClassName}`\n\n/**\n * Secondary button class names\n */\nexport const secondaryButtonClassName = `border border-input bg-background hover:bg-accent hover:text-accent-foreground ${baseButtonClassName}`\n\n/**\n * Get button class name based on primary flag\n */\nexport function getButtonClassName(primary?: boolean, additionalClasses?: string): string {\n const base = primary ? primaryButtonClassName : secondaryButtonClassName\n return additionalClasses ? `${additionalClasses} ${base}` : base\n}\n","import type { FlipButtonComponent } from 'a2ui-react-core'\nimport { type A2UIRenderer, buildActionPayload, type RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { type ReactNode, useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\nimport { getButtonClassName, getButtonStyle } from '../../../utils/index.js'\n\nexport const FlipButtonRenderer: A2UIRenderer<FlipButtonComponent> = {\n type: 'FlipButton',\n render: ({ component, children, data, onAction }: RendererProps<FlipButtonComponent>) => {\n const [isFlipped, setIsFlipped] = useState(false)\n const prefersReducedMotion = useReducedMotion()\n const childArray = Array.isArray(children) ? children : [children]\n const frontContent = childArray[0]\n const backContent = childArray[1]\n\n const handleClick = () => {\n setIsFlipped((prev) => !prev)\n const action = buildActionPayload(component, data)\n if (action) {\n onAction(action)\n }\n }\n\n return (\n <div style={{ perspective: 1000 }}>\n <motion.button\n onClick={handleClick}\n animate={prefersReducedMotion ? {} : { rotateX: isFlipped ? 180 : 0 }}\n transition={\n prefersReducedMotion ? { duration: 0 } : { type: 'spring', stiffness: 300, damping: 20 }\n }\n className={getButtonClassName(component.primary)}\n style={{\n ...getButtonStyle(component.primary),\n transformStyle: 'preserve-3d',\n }}\n >\n <motion.span\n style={{\n backfaceVisibility: 'hidden',\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n animate={{ opacity: isFlipped ? 0 : 1 }}\n transition={prefersReducedMotion ? { duration: 0 } : undefined}\n >\n {frontContent as ReactNode}\n </motion.span>\n <motion.span\n style={{\n backfaceVisibility: 'hidden',\n transform: 'rotateX(180deg)',\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n animate={{ opacity: isFlipped ? 1 : 0 }}\n transition={prefersReducedMotion ? { duration: 0 } : undefined}\n >\n {backContent as ReactNode}\n </motion.span>\n {/* Invisible content for sizing */}\n <span style={{ visibility: 'hidden' }}>{frontContent as ReactNode}</span>\n </motion.button>\n </div>\n )\n },\n example: {\n name: 'Flip Button',\n description: 'Button that flips to reveal different content',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'flip-btn-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'flip-btn-example',\n components: [\n {\n id: 'row-1',\n component: { type: 'Row', id: 'row-1', distribution: 'packed', children: ['btn-1'] },\n },\n {\n id: 'btn-1',\n component: {\n type: 'FlipButton',\n id: 'btn-1',\n frontChild: 'front-text',\n backChild: 'back-text',\n primary: true,\n action: 'flip',\n },\n },\n {\n id: 'front-text',\n component: { type: 'Text', id: 'front-text', content: 'Click to Flip' },\n },\n { id: 'back-text', component: { type: 'Text', id: 'back-text', content: 'Flipped!' } },\n ],\n },\n },\n ],\n },\n}\n","import type { GlowButtonComponent } from 'a2ui-react-core'\nimport { type A2UIRenderer, createActionHandler, type RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { type ReactNode, useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\nimport { getButtonClassName, getButtonStyle } from '../../../utils/index.js'\n\nexport const GlowButtonRenderer: A2UIRenderer<GlowButtonComponent> = {\n type: 'GlowButton',\n render: ({ component, children, data, onAction }: RendererProps<GlowButtonComponent>) => {\n const [isHovered, setIsHovered] = useState(false)\n const prefersReducedMotion = useReducedMotion()\n const handleClick = createActionHandler(component, data, onAction)\n\n const glowColor =\n component.glowColor || (component.primary ? 'hsl(var(--primary))' : 'hsl(var(--accent))')\n const glowIntensity = component.glowIntensity || 20\n\n return (\n <motion.button\n onHoverStart={() => setIsHovered(true)}\n onHoverEnd={() => setIsHovered(false)}\n onClick={handleClick}\n whileHover={prefersReducedMotion ? undefined : { scale: 1.02 }}\n whileTap={prefersReducedMotion ? undefined : { scale: 0.98 }}\n animate={\n prefersReducedMotion\n ? {}\n : {\n boxShadow: isHovered\n ? `0 0 ${glowIntensity}px ${glowColor}, 0 0 ${glowIntensity * 2}px ${glowColor}, 0 0 ${glowIntensity * 3}px ${glowColor}`\n : `0 0 0px transparent`,\n }\n }\n transition={prefersReducedMotion ? { duration: 0 } : { duration: 0.3 }}\n className={getButtonClassName(component.primary)}\n style={getButtonStyle(component.primary)}\n >\n {children as ReactNode}\n </motion.button>\n )\n },\n example: {\n name: 'Glow Button',\n description: 'Button with a glowing aura effect on hover',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'glow-btn-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'glow-btn-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'packed',\n children: ['btn-1', 'btn-2'],\n },\n },\n {\n id: 'btn-1',\n component: {\n type: 'GlowButton',\n id: 'btn-1',\n child: 'text-1',\n primary: true,\n action: 'glow',\n },\n },\n { id: 'text-1', component: { type: 'Text', id: 'text-1', content: 'Glow Primary' } },\n {\n id: 'btn-2',\n component: {\n type: 'GlowButton',\n id: 'btn-2',\n child: 'text-2',\n primary: false,\n glowColor: '#ff6b6b',\n glowIntensity: 15,\n action: 'glow',\n },\n },\n { id: 'text-2', component: { type: 'Text', id: 'text-2', content: 'Red Glow' } },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { IconButtonComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport type { LucideIcon } from 'lucide-react'\nimport {\n Bookmark,\n Download,\n Edit,\n Heart,\n HelpCircle,\n Menu,\n Minus,\n Plus,\n Search,\n Settings,\n Share,\n Star,\n ThumbsUp,\n Trash,\n X,\n} from 'lucide-react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\nconst iconMap: Record<string, LucideIcon> = {\n heart: Heart,\n star: Star,\n share: Share,\n bookmark: Bookmark,\n 'thumbs-up': ThumbsUp,\n download: Download,\n settings: Settings,\n search: Search,\n menu: Menu,\n x: X,\n plus: Plus,\n minus: Minus,\n edit: Edit,\n trash: Trash,\n}\n\nexport const IconButtonRenderer: A2UIRenderer<IconButtonComponent> = {\n type: 'icon-button',\n render: ({ component, onAction }) => {\n const prefersReducedMotion = useReducedMotion()\n const {\n icon = 'heart',\n variant = 'default',\n size = 'md',\n animation = 'scale',\n tooltip,\n } = component\n\n const Icon = iconMap[icon] || HelpCircle\n\n const sizeStyles = {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12',\n }\n\n const iconSizes = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n }\n\n const getVariantStyles = () => {\n switch (variant) {\n case 'outline':\n return 'border border-[hsl(var(--border))] bg-transparent hover:bg-[hsl(var(--accent))]'\n case 'ghost':\n return 'bg-transparent hover:bg-[hsl(var(--accent))]'\n case 'destructive':\n return 'bg-[hsl(var(--destructive))] text-[hsl(var(--destructive-foreground))] hover:bg-[hsl(var(--destructive))]/90'\n default:\n return 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] hover:bg-[hsl(var(--primary))]/90'\n }\n }\n\n const getAnimationProps = () => {\n if (prefersReducedMotion) {\n return {}\n }\n switch (animation) {\n case 'rotate':\n return {\n whileHover: { rotate: 180 },\n whileTap: { scale: 0.9 },\n transition: { type: 'spring' as const, stiffness: 200 },\n }\n case 'bounce':\n return {\n whileHover: { y: -4 },\n whileTap: { scale: 0.9 },\n transition: { type: 'spring' as const, stiffness: 400, damping: 10 },\n }\n case 'shake':\n return {\n whileHover: {\n x: [0, -2, 2, -2, 2, 0],\n transition: { duration: 0.4 },\n },\n whileTap: { scale: 0.9 },\n }\n case 'pulse':\n return {\n whileHover: {\n scale: [1, 1.1, 1],\n transition: { duration: 0.3, repeat: Infinity },\n },\n whileTap: { scale: 0.9 },\n }\n default:\n return {\n whileHover: { scale: 1.1 },\n whileTap: { scale: 0.9 },\n transition: { type: 'spring' as const, stiffness: 400, damping: 17 },\n }\n }\n }\n\n const animationProps = getAnimationProps()\n\n return (\n <motion.button\n className={`inline-flex items-center justify-center rounded-lg transition-colors ${sizeStyles[size]} ${getVariantStyles()}`}\n onClick={() => onAction?.({ type: 'click', payload: { icon } })}\n title={tooltip}\n {...animationProps}\n >\n <Icon className={iconSizes[size]} />\n </motion.button>\n )\n },\n example: {\n name: 'Icon Button',\n description: 'Animated icon button with various effects',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'icon-btn-example', root: 'btn-1' } },\n {\n updateComponents: {\n surfaceId: 'icon-btn-example',\n components: [\n {\n id: 'btn-1',\n component: {\n type: 'icon-button',\n id: 'btn-1',\n icon: 'heart',\n variant: 'outline',\n size: 'md',\n animation: 'scale',\n tooltip: 'Like',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { LiquidButtonComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\nexport const LiquidButtonRenderer: A2UIRenderer<LiquidButtonComponent> = {\n type: 'liquid-button',\n render: ({ component, onAction }) => {\n const [isHovered, setIsHovered] = useState(false)\n const prefersReducedMotion = useReducedMotion()\n\n const { label = 'Click me', variant = 'default', liquidColor, duration = 0.6 } = component\n\n const getVariantColors = () => {\n switch (variant) {\n case 'destructive':\n return {\n bg: 'hsl(var(--destructive))',\n text: 'hsl(var(--destructive-foreground))',\n liquid: liquidColor || 'hsl(0 84% 50%)',\n }\n case 'outline':\n return {\n bg: 'transparent',\n text: 'hsl(var(--foreground))',\n liquid: liquidColor || 'hsl(var(--primary))',\n }\n case 'secondary':\n return {\n bg: 'hsl(var(--secondary))',\n text: 'hsl(var(--secondary-foreground))',\n liquid: liquidColor || 'hsl(var(--primary))',\n }\n default:\n return {\n bg: 'hsl(var(--primary))',\n text: 'hsl(var(--primary-foreground))',\n liquid: liquidColor || 'hsl(220 80% 45%)',\n }\n }\n }\n\n const colors = getVariantColors()\n\n return (\n <motion.button\n className=\"relative overflow-hidden rounded-lg px-6 py-3 font-medium transition-colors\"\n style={{\n backgroundColor: colors.bg,\n color: colors.text,\n border: variant === 'outline' ? '1px solid hsl(var(--border))' : 'none',\n }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={() => onAction?.({ type: 'click' })}\n whileTap={prefersReducedMotion ? undefined : { scale: 0.98 }}\n >\n {/* Liquid blob effect */}\n {!prefersReducedMotion && (\n <motion.div\n className=\"absolute inset-0 pointer-events-none\"\n initial={{ y: '100%' }}\n animate={{ y: isHovered ? '0%' : '100%' }}\n transition={{\n duration,\n ease: [0.33, 1, 0.68, 1],\n }}\n style={{ backgroundColor: colors.liquid }}\n >\n {/* Wavy top edge */}\n <svg\n className=\"absolute -top-2 left-0 w-full\"\n viewBox=\"0 0 100 10\"\n preserveAspectRatio=\"none\"\n style={{ height: '12px' }}\n aria-hidden=\"true\"\n >\n <title>Liquid wave animation effect</title>\n <motion.path\n d=\"M0,10 Q25,0 50,10 T100,10 L100,20 L0,20 Z\"\n fill={colors.liquid}\n animate={{\n d: isHovered\n ? [\n 'M0,10 Q25,0 50,10 T100,10 L100,20 L0,20 Z',\n 'M0,10 Q25,20 50,10 T100,10 L100,20 L0,20 Z',\n 'M0,10 Q25,0 50,10 T100,10 L100,20 L0,20 Z',\n ]\n : 'M0,10 Q25,0 50,10 T100,10 L100,20 L0,20 Z',\n }}\n transition={{\n duration: 0.8,\n repeat: Infinity,\n ease: 'easeInOut',\n }}\n />\n </svg>\n </motion.div>\n )}\n\n <span className=\"relative z-10\">{label}</span>\n </motion.button>\n )\n },\n example: {\n name: 'Liquid Button',\n description: 'Button with liquid fill animation on hover',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'liquid-btn-example', root: 'btn-1' } },\n {\n updateComponents: {\n surfaceId: 'liquid-btn-example',\n components: [\n {\n id: 'btn-1',\n component: {\n type: 'liquid-button',\n id: 'btn-1',\n label: 'Hover me',\n variant: 'default',\n duration: 0.6,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { MagneticButtonComponent } from 'a2ui-react-core'\nimport { type A2UIRenderer, createActionHandler, type RendererProps } from 'a2ui-react-react'\nimport { motion, useMotionValue, useSpring, useTransform } from 'framer-motion'\nimport { type MouseEvent, type ReactNode, useRef } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\nimport { getButtonClassName, getButtonStyle } from '../../../utils/index.js'\n\nexport const MagneticButtonRenderer: A2UIRenderer<MagneticButtonComponent> = {\n type: 'MagneticButton',\n render: ({ component, children, data, onAction }: RendererProps<MagneticButtonComponent>) => {\n const ref = useRef<HTMLButtonElement>(null)\n const prefersReducedMotion = useReducedMotion()\n const strength = component.strength || 0.3\n const handleClick = createActionHandler(component, data, onAction)\n\n const x = useMotionValue(0)\n const y = useMotionValue(0)\n\n const springConfig = { stiffness: 150, damping: 15 }\n const springX = useSpring(x, springConfig)\n const springY = useSpring(y, springConfig)\n\n const rotateX = useTransform(springY, [-20, 20], [10, -10])\n const rotateY = useTransform(springX, [-20, 20], [-10, 10])\n\n const handleMouseMove = (e: MouseEvent<HTMLButtonElement>) => {\n if (prefersReducedMotion || !ref.current) return\n const rect = ref.current.getBoundingClientRect()\n const centerX = rect.left + rect.width / 2\n const centerY = rect.top + rect.height / 2\n const distanceX = (e.clientX - centerX) * strength\n const distanceY = (e.clientY - centerY) * strength\n x.set(distanceX)\n y.set(distanceY)\n }\n\n const handleMouseLeave = () => {\n x.set(0)\n y.set(0)\n }\n\n return (\n <motion.button\n ref={ref}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n onClick={handleClick}\n style={{\n x: prefersReducedMotion ? 0 : springX,\n y: prefersReducedMotion ? 0 : springY,\n rotateX: prefersReducedMotion ? 0 : rotateX,\n rotateY: prefersReducedMotion ? 0 : rotateY,\n ...getButtonStyle(component.primary),\n }}\n whileTap={prefersReducedMotion ? undefined : { scale: 0.95 }}\n className={getButtonClassName(component.primary)}\n >\n {children as ReactNode}\n </motion.button>\n )\n },\n example: {\n name: 'Magnetic Button',\n description: 'Button that follows the cursor with magnetic attraction',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'magnetic-btn-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'magnetic-btn-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'packed',\n children: ['btn-1', 'btn-2'],\n },\n },\n {\n id: 'btn-1',\n component: {\n type: 'MagneticButton',\n id: 'btn-1',\n child: 'text-1',\n primary: true,\n action: 'click',\n },\n },\n {\n id: 'text-1',\n component: { type: 'Text', id: 'text-1', content: 'Magnetic Primary' },\n },\n {\n id: 'btn-2',\n component: {\n type: 'MagneticButton',\n id: 'btn-2',\n child: 'text-2',\n primary: false,\n strength: 0.5,\n action: 'click',\n },\n },\n { id: 'text-2', component: { type: 'Text', id: 'text-2', content: 'Strong Magnetic' } },\n ],\n },\n },\n ],\n },\n}\n","import type { RippleButtonComponent } from 'a2ui-react-core'\nimport { type A2UIRenderer, buildActionPayload, type RendererProps } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { type MouseEvent, type ReactNode, useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\nimport { getButtonClassName, getButtonStyle } from '../../../utils/index.js'\n\ninterface Ripple {\n id: number\n x: number\n y: number\n}\n\nexport const RippleButtonRenderer: A2UIRenderer<RippleButtonComponent> = {\n type: 'RippleButton',\n render: ({ component, children, data, onAction }: RendererProps<RippleButtonComponent>) => {\n const [ripples, setRipples] = useState<Ripple[]>([])\n const prefersReducedMotion = useReducedMotion()\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (!prefersReducedMotion) {\n const rect = e.currentTarget.getBoundingClientRect()\n const x = e.clientX - rect.left\n const y = e.clientY - rect.top\n const rippleId = Date.now()\n\n setRipples((prev) => [...prev, { id: rippleId, x, y }])\n setTimeout(() => {\n setRipples((prev) => prev.filter((r) => r.id !== rippleId))\n }, 600)\n }\n\n const action = buildActionPayload(component, data)\n if (action) {\n onAction(action)\n }\n }\n\n const rippleColor =\n component.rippleColor || (component.primary ? 'rgba(255,255,255,0.4)' : 'rgba(0,0,0,0.1)')\n\n return (\n <motion.button\n whileHover={prefersReducedMotion ? undefined : { scale: 1.02 }}\n whileTap={prefersReducedMotion ? undefined : { scale: 0.98 }}\n transition={\n prefersReducedMotion ? { duration: 0 } : { type: 'spring', stiffness: 400, damping: 25 }\n }\n onClick={handleClick}\n className={getButtonClassName(component.primary, 'relative overflow-hidden')}\n style={getButtonStyle(component.primary)}\n >\n {children as ReactNode}\n <AnimatePresence>\n {ripples.map((ripple) => (\n <motion.span\n key={ripple.id}\n initial={{ scale: 0, opacity: 0.6 }}\n animate={{ scale: 4, opacity: 0 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.6, ease: 'easeOut' }}\n style={{\n position: 'absolute',\n left: ripple.x,\n top: ripple.y,\n width: 10,\n height: 10,\n borderRadius: '50%',\n backgroundColor: rippleColor,\n transform: 'translate(-50%, -50%)',\n pointerEvents: 'none',\n }}\n />\n ))}\n </AnimatePresence>\n </motion.button>\n )\n },\n example: {\n name: 'Ripple Button',\n description: 'Button with material design ripple effect on click',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'ripple-btn-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'ripple-btn-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'packed',\n children: ['btn-1', 'btn-2'],\n },\n },\n {\n id: 'btn-1',\n component: {\n type: 'RippleButton',\n id: 'btn-1',\n child: 'text-1',\n primary: true,\n action: 'click',\n },\n },\n { id: 'text-1', component: { type: 'Text', id: 'text-1', content: 'Ripple Primary' } },\n {\n id: 'btn-2',\n component: {\n type: 'RippleButton',\n id: 'btn-2',\n child: 'text-2',\n primary: false,\n action: 'click',\n },\n },\n {\n id: 'text-2',\n component: { type: 'Text', id: 'text-2', content: 'Ripple Secondary' },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { ShimmerButtonComponent } from 'a2ui-react-core'\nimport { type A2UIRenderer, createActionHandler, type RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport type { ReactNode } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\nimport { getButtonClassName, getButtonStyle } from '../../../utils/index.js'\n\nexport const ShimmerButtonRenderer: A2UIRenderer<ShimmerButtonComponent> = {\n type: 'ShimmerButton',\n render: ({ component, children, data, onAction }: RendererProps<ShimmerButtonComponent>) => {\n const prefersReducedMotion = useReducedMotion()\n const handleClick = createActionHandler(component, data, onAction)\n\n const shimmerColor = component.shimmerColor || 'rgba(255,255,255,0.4)'\n const shimmerDuration = component.shimmerDuration || 2\n\n return (\n <motion.button\n whileHover={prefersReducedMotion ? undefined : { scale: 1.02 }}\n whileTap={prefersReducedMotion ? undefined : { scale: 0.98 }}\n onClick={handleClick}\n className={getButtonClassName(component.primary, 'relative overflow-hidden')}\n style={getButtonStyle(component.primary)}\n >\n <span style={{ position: 'relative', zIndex: 1 }}>{children as ReactNode}</span>\n {!prefersReducedMotion && (\n <motion.span\n initial={{ x: '-100%', opacity: 0 }}\n animate={{ x: '200%', opacity: [0, 1, 1, 0] }}\n transition={{\n duration: shimmerDuration,\n repeat: Number.POSITIVE_INFINITY,\n repeatDelay: 1,\n ease: 'linear',\n }}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: `linear-gradient(90deg, transparent, ${shimmerColor}, transparent)`,\n transform: 'skewX(-20deg)',\n }}\n />\n )}\n </motion.button>\n )\n },\n example: {\n name: 'Shimmer Button',\n description: 'Button with a continuous shimmer/gleam effect',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'shimmer-btn-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'shimmer-btn-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'packed',\n children: ['btn-1', 'btn-2'],\n },\n },\n {\n id: 'btn-1',\n component: {\n type: 'ShimmerButton',\n id: 'btn-1',\n child: 'text-1',\n primary: true,\n action: 'submit',\n },\n },\n { id: 'text-1', component: { type: 'Text', id: 'text-1', content: 'Shimmer Primary' } },\n {\n id: 'btn-2',\n component: {\n type: 'ShimmerButton',\n id: 'btn-2',\n child: 'text-2',\n primary: false,\n shimmerColor: 'rgba(100,100,255,0.3)',\n action: 'submit',\n },\n },\n { id: 'text-2', component: { type: 'Text', id: 'text-2', content: 'Custom Shimmer' } },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { ThemeTogglerButtonComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { Moon, Sun } from 'lucide-react'\nimport { useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\nexport const ThemeTogglerButtonRenderer: A2UIRenderer<ThemeTogglerButtonComponent> = {\n type: 'theme-toggler-button',\n render: ({ component, onAction }) => {\n const [isDark, setIsDark] = useState(component.initialTheme === 'dark')\n const prefersReducedMotion = useReducedMotion()\n\n const { variant = 'default', size = 'md', animation = 'rotate' } = component\n\n const sizeStyles = {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12',\n }\n\n const iconSizes = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n }\n\n const getVariantStyles = () => {\n switch (variant) {\n case 'outline':\n return 'border border-[hsl(var(--border))] bg-transparent hover:bg-[hsl(var(--accent))]'\n case 'ghost':\n return 'bg-transparent hover:bg-[hsl(var(--accent))]'\n default:\n return 'bg-[hsl(var(--secondary))] hover:bg-[hsl(var(--secondary))]/80'\n }\n }\n\n const handleToggle = () => {\n const newTheme = !isDark\n setIsDark(newTheme)\n onAction?.({ type: 'toggle', payload: { theme: newTheme ? 'dark' : 'light' } })\n }\n\n const getIconAnimation = () => {\n if (prefersReducedMotion) {\n return {\n initial: {},\n animate: {},\n exit: {},\n }\n }\n switch (animation) {\n case 'flip':\n return {\n initial: { rotateY: -90, opacity: 0 },\n animate: { rotateY: 0, opacity: 1 },\n exit: { rotateY: 90, opacity: 0 },\n transition: { duration: 0.3 },\n }\n case 'scale':\n return {\n initial: { scale: 0, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n exit: { scale: 0, opacity: 0 },\n transition: { duration: 0.2 },\n }\n case 'slide':\n return {\n initial: { y: 20, opacity: 0 },\n animate: { y: 0, opacity: 1 },\n exit: { y: -20, opacity: 0 },\n transition: { duration: 0.2 },\n }\n default:\n return {\n initial: { rotate: -90, opacity: 0 },\n animate: { rotate: 0, opacity: 1 },\n exit: { rotate: 90, opacity: 0 },\n transition: { duration: 0.3, ease: 'easeInOut' as const },\n }\n }\n }\n\n const iconAnimation = getIconAnimation()\n\n return (\n <motion.button\n className={`relative inline-flex items-center justify-center rounded-lg transition-colors ${sizeStyles[size]} ${getVariantStyles()}`}\n onClick={handleToggle}\n whileTap={prefersReducedMotion ? undefined : { scale: 0.9 }}\n >\n <AnimatePresence mode=\"wait\">\n {isDark ? (\n <motion.div key=\"moon\" {...iconAnimation}>\n <Moon className={iconSizes[size]} />\n </motion.div>\n ) : (\n <motion.div key=\"sun\" {...iconAnimation}>\n <Sun className={iconSizes[size]} />\n </motion.div>\n )}\n </AnimatePresence>\n </motion.button>\n )\n },\n example: {\n name: 'Theme Toggler',\n description: 'Animated light/dark theme toggle button',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'theme-toggler-example', root: 'btn-1' } },\n {\n updateComponents: {\n surfaceId: 'theme-toggler-example',\n components: [\n {\n id: 'btn-1',\n component: {\n type: 'theme-toggler-button',\n id: 'btn-1',\n initialTheme: 'light',\n variant: 'outline',\n size: 'md',\n animation: 'rotate',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { ChevronDown } from 'lucide-react'\nimport { type ReactNode, useState } from 'react'\n\ninterface AccordionItem {\n trigger: string\n content: string\n}\n\ninterface AnimatedAccordionComponent {\n type: 'AnimatedAccordion'\n id: string\n items: AccordionItem[]\n allowMultiple?: boolean\n defaultOpen?: number[]\n}\n\nexport const AnimatedAccordionRenderer: A2UIRenderer<AnimatedAccordionComponent> = {\n type: 'AnimatedAccordion',\n render: ({ component, children }: RendererProps<AnimatedAccordionComponent>) => {\n const [openItems, setOpenItems] = useState<number[]>(component.defaultOpen || [])\n const childArray = Array.isArray(children) ? children : [children]\n\n const toggleItem = (index: number) => {\n setOpenItems((prev) => {\n if (prev.includes(index)) {\n return prev.filter((i) => i !== index)\n }\n if (component.allowMultiple) {\n return [...prev, index]\n }\n return [index]\n })\n }\n\n // Children are ordered: trigger1, content1, trigger2, content2, ...\n return (\n <div\n className=\"w-full divide-y rounded-lg border\"\n style={{\n borderColor: 'hsl(var(--border))',\n backgroundColor: 'hsl(var(--background))',\n }}\n >\n {component.items.map((_, index) => {\n const isOpen = openItems.includes(index)\n const triggerChild = childArray[index * 2]\n const contentChild = childArray[index * 2 + 1]\n return (\n <div key={`accordion-${component.id}-${index}`}>\n <motion.button\n onClick={() => toggleItem(index)}\n className=\"flex w-full items-center justify-between px-4 py-4 text-left font-medium transition-colors hover:bg-accent/50\"\n style={{ color: 'hsl(var(--foreground))' }}\n whileHover={{ backgroundColor: 'hsl(var(--accent) / 0.5)' }}\n >\n <span>{triggerChild as ReactNode}</span>\n <motion.span\n animate={{ rotate: isOpen ? 180 : 0 }}\n transition={{ type: 'spring', stiffness: 200, damping: 20 }}\n >\n <ChevronDown\n className=\"h-4 w-4\"\n style={{ color: 'hsl(var(--muted-foreground))' }}\n />\n </motion.span>\n </motion.button>\n <AnimatePresence initial={false}>\n {isOpen && (\n <motion.div\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: 'auto', opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ type: 'spring', stiffness: 150, damping: 22 }}\n style={{ overflow: 'hidden' }}\n >\n <div\n className=\"px-4 pb-4 pt-0\"\n style={{ color: 'hsl(var(--muted-foreground))' }}\n >\n {contentChild as ReactNode}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n })}\n </div>\n )\n },\n example: {\n name: 'Animated Accordion',\n description: 'Collapsible accordion with smooth spring animations',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'accordion-example', root: 'accordion-1' } },\n {\n updateComponents: {\n surfaceId: 'accordion-example',\n components: [\n {\n id: 'accordion-1',\n component: {\n type: 'AnimatedAccordion',\n id: 'accordion-1',\n items: [\n { trigger: 'trigger-1', content: 'content-1' },\n { trigger: 'trigger-2', content: 'content-2' },\n ],\n defaultOpen: [0],\n },\n },\n {\n id: 'trigger-1',\n component: { type: 'Text', id: 'trigger-1', content: 'What is this?' },\n },\n {\n id: 'content-1',\n component: {\n type: 'Text',\n id: 'content-1',\n content: 'This is an animated accordion component.',\n },\n },\n {\n id: 'trigger-2',\n component: { type: 'Text', id: 'trigger-2', content: 'How does it work?' },\n },\n {\n id: 'content-2',\n component: {\n type: 'Text',\n id: 'content-2',\n content: 'It uses spring animations for smooth transitions.',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport type { ReactNode } from 'react'\n\ninterface AnimatedCardComponent {\n type: 'AnimatedCard'\n id: string\n children?: string[]\n animation?: 'hover-lift' | 'hover-glow' | 'hover-border' | 'tilt'\n delay?: number\n}\n\nexport const AnimatedCardRenderer: A2UIRenderer<AnimatedCardComponent> = {\n type: 'AnimatedCard',\n render: ({ component, children }: RendererProps<AnimatedCardComponent>) => {\n const animation = component.animation || 'hover-lift'\n const delay = component.delay || 0\n\n const getAnimationProps = () => {\n switch (animation) {\n case 'hover-lift':\n return {\n whileHover: { y: -8, boxShadow: '0 20px 40px rgba(0,0,0,0.15)' },\n transition: { type: 'spring' as const, stiffness: 300, damping: 20 },\n }\n case 'hover-glow':\n return {\n whileHover: { boxShadow: '0 0 30px hsl(var(--primary) / 0.3)' },\n transition: { duration: 0.3 },\n }\n case 'hover-border':\n return {\n whileHover: { borderColor: 'hsl(var(--primary))' },\n transition: { duration: 0.2 },\n }\n case 'tilt':\n return {\n whileHover: { rotateY: 5, rotateX: 5 },\n transition: { type: 'spring' as const, stiffness: 200, damping: 15 },\n }\n default:\n return {}\n }\n }\n\n const animationProps = getAnimationProps()\n\n return (\n <motion.div\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ delay, duration: 0.5, ease: 'easeOut' as const }}\n {...animationProps}\n className=\"rounded-xl border p-6\"\n style={{\n backgroundColor: 'hsl(var(--card))',\n borderColor: 'hsl(var(--border))',\n color: 'hsl(var(--card-foreground))',\n perspective: animation === 'tilt' ? 1000 : undefined,\n }}\n >\n {children as ReactNode}\n </motion.div>\n )\n },\n example: {\n name: 'Animated Card',\n description: 'Card with various hover animation effects',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'card-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'card-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'equal',\n children: ['card-1', 'card-2', 'card-3'],\n },\n },\n {\n id: 'card-1',\n component: {\n type: 'AnimatedCard',\n id: 'card-1',\n children: ['card-text-1'],\n animation: 'hover-lift',\n },\n },\n {\n id: 'card-text-1',\n component: { type: 'Text', id: 'card-text-1', content: 'Hover Lift' },\n },\n {\n id: 'card-2',\n component: {\n type: 'AnimatedCard',\n id: 'card-2',\n children: ['card-text-2'],\n animation: 'hover-glow',\n delay: 0.1,\n },\n },\n {\n id: 'card-text-2',\n component: { type: 'Text', id: 'card-text-2', content: 'Hover Glow' },\n },\n {\n id: 'card-3',\n component: {\n type: 'AnimatedCard',\n id: 'card-3',\n children: ['card-text-3'],\n animation: 'tilt',\n delay: 0.2,\n },\n },\n {\n id: 'card-text-3',\n component: { type: 'Text', id: 'card-text-3', content: '3D Tilt' },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { X } from 'lucide-react'\nimport { type ReactNode, useEffect, useRef, useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface AnimatedDialogComponent {\n type: 'AnimatedDialog'\n id: string\n trigger: string\n content: string\n title?: string\n description?: string\n animation?: 'scale' | 'slide' | 'flip' | 'rotate'\n}\n\nconst animations = {\n scale: {\n initial: { scale: 0.9, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n exit: { scale: 0.9, opacity: 0 },\n },\n slide: {\n initial: { y: 50, opacity: 0 },\n animate: { y: 0, opacity: 1 },\n exit: { y: 50, opacity: 0 },\n },\n flip: {\n initial: { rotateX: -90, opacity: 0 },\n animate: { rotateX: 0, opacity: 1 },\n exit: { rotateX: 90, opacity: 0 },\n },\n rotate: {\n initial: { rotate: -10, scale: 0.9, opacity: 0 },\n animate: { rotate: 0, scale: 1, opacity: 1 },\n exit: { rotate: 10, scale: 0.9, opacity: 0 },\n },\n}\n\nexport const AnimatedDialogRenderer: A2UIRenderer<AnimatedDialogComponent> = {\n type: 'AnimatedDialog',\n render: ({ component, children }: RendererProps<AnimatedDialogComponent>) => {\n const [isOpen, setIsOpen] = useState(false)\n const prefersReducedMotion = useReducedMotion()\n const dialogRef = useRef<HTMLDivElement>(null)\n const titleId = `dialog-title-${component.id}`\n\n const animation = prefersReducedMotion\n ? { initial: {}, animate: {}, exit: {} }\n : animations[component.animation || 'scale']\n\n const childArray = Array.isArray(children) ? children : [children]\n const triggerChild = childArray[0]\n const contentChild = childArray[1]\n\n // Focus trap - focus the dialog when it opens\n useEffect(() => {\n if (isOpen && dialogRef.current) {\n const focusableElements = dialogRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n const firstFocusable = focusableElements[0]\n if (firstFocusable) {\n firstFocusable.focus()\n }\n }\n }, [isOpen])\n\n // Keyboard support - Escape to close\n useEffect(() => {\n if (!isOpen) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false)\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [isOpen])\n\n return (\n <>\n <button\n type=\"button\"\n onClick={() => setIsOpen(true)}\n style={{\n border: 'none',\n background: 'none',\n padding: 0,\n cursor: 'pointer',\n font: 'inherit',\n color: 'inherit',\n }}\n >\n {triggerChild as ReactNode}\n </button>\n\n <AnimatePresence>\n {isOpen && (\n <>\n {/* Backdrop */}\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n onClick={() => setIsOpen(false)}\n style={{\n position: 'fixed',\n inset: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n backdropFilter: 'blur(4px)',\n zIndex: 50,\n }}\n />\n\n {/* Dialog */}\n <div\n style={{\n position: 'fixed',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 50,\n perspective: 1000,\n }}\n >\n <motion.div\n ref={dialogRef}\n {...animation}\n transition={\n prefersReducedMotion\n ? { duration: 0 }\n : { type: 'spring', stiffness: 300, damping: 25 }\n }\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={component.title ? titleId : undefined}\n aria-describedby={component.description ? `${titleId}-desc` : undefined}\n className=\"relative w-full max-w-lg rounded-lg border p-6 shadow-lg\"\n style={{\n backgroundColor: 'hsl(var(--background))',\n borderColor: 'hsl(var(--border))',\n }}\n >\n {/* Close button */}\n <motion.button\n type=\"button\"\n whileHover={prefersReducedMotion ? {} : { scale: 1.1 }}\n whileTap={prefersReducedMotion ? {} : { scale: 0.9 }}\n onClick={() => setIsOpen(false)}\n className=\"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100\"\n style={{ color: 'hsl(var(--foreground))' }}\n aria-label=\"Close dialog\"\n >\n <X className=\"h-4 w-4\" />\n </motion.button>\n\n {/* Title */}\n {component.title && (\n <h2\n id={titleId}\n className=\"text-lg font-semibold leading-none tracking-tight\"\n style={{ color: 'hsl(var(--foreground))' }}\n >\n {component.title}\n </h2>\n )}\n\n {/* Description */}\n {component.description && (\n <p\n id={`${titleId}-desc`}\n className=\"mt-2 text-sm\"\n style={{ color: 'hsl(var(--muted-foreground))' }}\n >\n {component.description}\n </p>\n )}\n\n {/* Content */}\n <div className=\"mt-4\">{contentChild as ReactNode}</div>\n </motion.div>\n </div>\n </>\n )}\n </AnimatePresence>\n </>\n )\n },\n example: {\n name: 'Animated Dialog',\n description: 'Modal dialog with various animation styles',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'dialog-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'dialog-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'packed',\n children: ['dialog-1', 'dialog-2'],\n },\n },\n {\n id: 'dialog-1',\n component: {\n type: 'AnimatedDialog',\n id: 'dialog-1',\n trigger: 'btn-1',\n content: 'dialog-content-1',\n title: 'Scale Animation',\n description: 'This dialog scales in',\n animation: 'scale',\n },\n },\n {\n id: 'btn-1',\n component: { type: 'Button', id: 'btn-1', child: 'btn-text-1', primary: true },\n },\n {\n id: 'btn-text-1',\n component: { type: 'Text', id: 'btn-text-1', content: 'Open Scale' },\n },\n {\n id: 'dialog-content-1',\n component: { type: 'Text', id: 'dialog-content-1', content: 'Dialog content here!' },\n },\n {\n id: 'dialog-2',\n component: {\n type: 'AnimatedDialog',\n id: 'dialog-2',\n trigger: 'btn-2',\n content: 'dialog-content-2',\n title: 'Flip Animation',\n animation: 'flip',\n },\n },\n {\n id: 'btn-2',\n component: { type: 'Button', id: 'btn-2', child: 'btn-text-2', primary: false },\n },\n {\n id: 'btn-text-2',\n component: { type: 'Text', id: 'btn-text-2', content: 'Open Flip' },\n },\n {\n id: 'dialog-content-2',\n component: { type: 'Text', id: 'dialog-content-2', content: 'Flipping dialog!' },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { type ReactNode, useState } from 'react'\n\ninterface TabItem {\n label: string\n content: string\n}\n\ninterface AnimatedTabsComponent {\n type: 'AnimatedTabs'\n id: string\n tabs: TabItem[]\n defaultTab?: number\n animation?: 'slide' | 'fade' | 'scale'\n}\n\nconst contentVariants = {\n slide: {\n initial: (direction: number) => ({ x: direction > 0 ? 100 : -100, opacity: 0 }),\n animate: { x: 0, opacity: 1 },\n exit: (direction: number) => ({ x: direction > 0 ? -100 : 100, opacity: 0 }),\n },\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n },\n scale: {\n initial: { scale: 0.9, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n exit: { scale: 0.9, opacity: 0 },\n },\n}\n\nexport const AnimatedTabsRenderer: A2UIRenderer<AnimatedTabsComponent> = {\n type: 'AnimatedTabs',\n render: ({ component, children }: RendererProps<AnimatedTabsComponent>) => {\n const [activeTab, setActiveTab] = useState(component.defaultTab || 0)\n const [direction, setDirection] = useState(0)\n const animation = component.animation || 'slide'\n const childArray = Array.isArray(children) ? children : [children]\n\n const handleTabChange = (index: number) => {\n setDirection(index > activeTab ? 1 : -1)\n setActiveTab(index)\n }\n\n const variants = contentVariants[animation]\n\n return (\n <div className=\"w-full\">\n {/* Tab list */}\n <div className=\"relative flex border-b\" style={{ borderColor: 'hsl(var(--border))' }}>\n {component.tabs.map((tab, index) => (\n <motion.button\n key={`tab-${component.id}-${index}`}\n onClick={() => handleTabChange(index)}\n className=\"relative px-4 py-2 text-sm font-medium transition-colors\"\n style={{\n color:\n activeTab === index ? 'hsl(var(--foreground))' : 'hsl(var(--muted-foreground))',\n }}\n whileHover={{ backgroundColor: 'hsl(var(--accent) / 0.5)' }}\n >\n {tab.label}\n {activeTab === index && (\n <motion.div\n layoutId={`tab-indicator-${component.id}`}\n className=\"absolute bottom-0 left-0 right-0 h-0.5\"\n style={{ backgroundColor: 'hsl(var(--primary))' }}\n transition={{ type: 'spring', stiffness: 500, damping: 30 }}\n />\n )}\n </motion.button>\n ))}\n </div>\n\n {/* Tab content */}\n <div className=\"relative overflow-hidden py-4\">\n <AnimatePresence mode=\"wait\" custom={direction}>\n <motion.div\n key={activeTab}\n custom={direction}\n variants={variants}\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n transition={{ type: 'spring', stiffness: 300, damping: 30 }}\n >\n {childArray[activeTab] as ReactNode}\n </motion.div>\n </AnimatePresence>\n </div>\n </div>\n )\n },\n example: {\n name: 'Animated Tabs',\n description: 'Tabs with animated indicator and content transitions',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'tabs-example', root: 'tabs-1' } },\n {\n updateComponents: {\n surfaceId: 'tabs-example',\n components: [\n {\n id: 'tabs-1',\n component: {\n type: 'AnimatedTabs',\n id: 'tabs-1',\n tabs: [\n { label: 'Overview', content: 'tab-content-1' },\n { label: 'Features', content: 'tab-content-2' },\n { label: 'Settings', content: 'tab-content-3' },\n ],\n animation: 'slide',\n },\n },\n {\n id: 'tab-content-1',\n component: {\n type: 'Text',\n id: 'tab-content-1',\n content: 'Overview content with smooth transitions.',\n },\n },\n {\n id: 'tab-content-2',\n component: {\n type: 'Text',\n id: 'tab-content-2',\n content: 'Features content slides in beautifully.',\n },\n },\n {\n id: 'tab-content-3',\n component: {\n type: 'Text',\n id: 'tab-content-3',\n content: 'Settings content with spring physics.',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { type ReactNode, useState } from 'react'\n\ninterface FlipCardComponent {\n type: 'FlipCard'\n id: string\n front: string\n back: string\n trigger?: 'hover' | 'click'\n direction?: 'horizontal' | 'vertical'\n height?: string\n}\n\nexport const FlipCardRenderer: A2UIRenderer<FlipCardComponent> = {\n type: 'FlipCard',\n render: ({ component, children }: RendererProps<FlipCardComponent>) => {\n const [isFlipped, setIsFlipped] = useState(false)\n const trigger = component.trigger || 'hover'\n const direction = component.direction || 'horizontal'\n const height = component.height || '200px'\n const childArray = Array.isArray(children) ? children : [children]\n const frontChild = childArray[0]\n const backChild = childArray[1]\n\n const flipAxis = direction === 'horizontal' ? 'rotateY' : 'rotateX'\n\n const handleInteraction = () => {\n if (trigger === 'click') {\n setIsFlipped((prev) => !prev)\n }\n }\n\n const handleHoverStart = () => {\n if (trigger === 'hover') {\n setIsFlipped(true)\n }\n }\n\n const handleHoverEnd = () => {\n if (trigger === 'hover') {\n setIsFlipped(false)\n }\n }\n\n return (\n <div\n style={{\n perspective: 1000,\n height,\n width: '100%',\n }}\n >\n <motion.div\n onClick={handleInteraction}\n onHoverStart={handleHoverStart}\n onHoverEnd={handleHoverEnd}\n animate={{ [flipAxis]: isFlipped ? 180 : 0 }}\n transition={{ type: 'spring', stiffness: 200, damping: 25 }}\n style={{\n position: 'relative',\n width: '100%',\n height: '100%',\n transformStyle: 'preserve-3d',\n cursor: trigger === 'click' ? 'pointer' : 'default',\n }}\n >\n {/* Front */}\n <div\n className=\"absolute inset-0 rounded-xl border p-6\"\n style={{\n backgroundColor: 'hsl(var(--card))',\n borderColor: 'hsl(var(--border))',\n color: 'hsl(var(--card-foreground))',\n backfaceVisibility: 'hidden',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {frontChild as ReactNode}\n </div>\n\n {/* Back */}\n <div\n className=\"absolute inset-0 rounded-xl border p-6\"\n style={{\n backgroundColor: 'hsl(var(--primary))',\n borderColor: 'hsl(var(--primary))',\n color: 'hsl(var(--primary-foreground))',\n backfaceVisibility: 'hidden',\n transform: direction === 'horizontal' ? 'rotateY(180deg)' : 'rotateX(180deg)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {backChild as ReactNode}\n </div>\n </motion.div>\n </div>\n )\n },\n example: {\n name: 'Flip Card',\n description: '3D card that flips to reveal back content',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'flip-card-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'flip-card-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'equal',\n children: ['card-1', 'card-2'],\n },\n },\n {\n id: 'card-1',\n component: {\n type: 'FlipCard',\n id: 'card-1',\n front: 'front-1',\n back: 'back-1',\n trigger: 'hover',\n height: '150px',\n },\n },\n {\n id: 'front-1',\n component: { type: 'Text', id: 'front-1', content: 'Hover me!', style: 'h3' },\n },\n {\n id: 'back-1',\n component: { type: 'Text', id: 'back-1', content: 'Flipped!', style: 'h3' },\n },\n {\n id: 'card-2',\n component: {\n type: 'FlipCard',\n id: 'card-2',\n front: 'front-2',\n back: 'back-2',\n trigger: 'click',\n direction: 'vertical',\n height: '150px',\n },\n },\n {\n id: 'front-2',\n component: { type: 'Text', id: 'front-2', content: 'Click me!', style: 'h3' },\n },\n {\n id: 'back-2',\n component: { type: 'Text', id: 'back-2', content: 'Vertical flip!', style: 'h3' },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface BlurRevealTextComponent {\n type: 'BlurRevealText'\n id: string\n content: string\n style?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'body' | 'caption'\n delay?: number\n duration?: number\n staggerChildren?: number\n direction?: 'up' | 'down' | 'left' | 'right'\n}\n\nconst styleClasses: Record<string, string> = {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n h5: 'scroll-m-20 text-lg font-semibold tracking-tight',\n body: 'leading-7',\n caption: 'text-sm text-muted-foreground',\n}\n\nconst getInitialPosition = (direction: string) => {\n switch (direction) {\n case 'up':\n return { y: 20 }\n case 'down':\n return { y: -20 }\n case 'left':\n return { x: 20 }\n case 'right':\n return { x: -20 }\n default:\n return { y: 20 }\n }\n}\n\nexport const BlurRevealTextRenderer: A2UIRenderer<BlurRevealTextComponent> = {\n type: 'BlurRevealText',\n render: ({ component }: RendererProps<BlurRevealTextComponent>) => {\n const prefersReducedMotion = useReducedMotion()\n const words = component.content.split(' ')\n const delay = component.delay || 0\n const duration = component.duration || 0.5\n const stagger = component.staggerChildren || 0.1\n const direction = component.direction || 'up'\n\n const initialPosition = getInitialPosition(direction)\n\n const containerVariants = prefersReducedMotion\n ? { hidden: {}, visible: {} }\n : {\n hidden: { opacity: 0 },\n visible: {\n opacity: 1,\n transition: {\n delay,\n staggerChildren: stagger,\n },\n },\n }\n\n const wordVariants = prefersReducedMotion\n ? { hidden: {}, visible: {} }\n : {\n hidden: {\n opacity: 0,\n filter: 'blur(10px)',\n ...initialPosition,\n },\n visible: {\n opacity: 1,\n filter: 'blur(0px)',\n x: 0,\n y: 0,\n transition: {\n duration,\n ease: 'easeOut' as const,\n },\n },\n }\n\n const className = styleClasses[component.style || 'body']\n\n return (\n <motion.span\n className={className}\n style={{\n color: 'hsl(var(--foreground))',\n display: 'inline-flex',\n flexWrap: 'wrap',\n gap: '0.25em',\n }}\n variants={containerVariants}\n initial=\"hidden\"\n animate=\"visible\"\n >\n {words.map((word, index) => (\n <motion.span key={`word-${index}-${word}`} variants={wordVariants}>\n {word}\n </motion.span>\n ))}\n </motion.span>\n )\n },\n example: {\n name: 'Blur Reveal Text',\n description: 'Text that reveals word by word with a blur effect',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'blur-reveal-example', root: 'col-1' } },\n {\n updateComponents: {\n surfaceId: 'blur-reveal-example',\n components: [\n {\n id: 'col-1',\n component: { type: 'Column', id: 'col-1', children: ['text-1', 'text-2'] },\n },\n {\n id: 'text-1',\n component: {\n type: 'BlurRevealText',\n id: 'text-1',\n content: 'Welcome to the future of UI',\n style: 'h2',\n },\n },\n {\n id: 'text-2',\n component: {\n type: 'BlurRevealText',\n id: 'text-2',\n content: 'This text fades in from the right',\n direction: 'right',\n delay: 1,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { animate, useMotionValue } from 'framer-motion'\nimport { useEffect, useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface CountUpComponent {\n type: 'CountUp'\n id: string\n from?: number\n to: number\n duration?: number\n style?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'body' | 'caption'\n prefix?: string\n suffix?: string\n decimals?: number\n separator?: string\n}\n\nconst styleClasses: Record<string, string> = {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n h5: 'scroll-m-20 text-lg font-semibold tracking-tight',\n body: 'leading-7',\n caption: 'text-sm text-muted-foreground',\n}\n\nconst formatNumber = (num: number, decimals: number, separator: string): string => {\n const fixed = num.toFixed(decimals)\n const parts = fixed.split('.')\n const whole = parts[0] || '0'\n const decimal = parts[1]\n const withSeparator = whole.replace(/\\B(?=(\\d{3})+(?!\\d))/g, separator)\n return decimal ? `${withSeparator}.${decimal}` : withSeparator\n}\n\nexport const CountUpRenderer: A2UIRenderer<CountUpComponent> = {\n type: 'CountUp',\n render: ({ component }: RendererProps<CountUpComponent>) => {\n const prefersReducedMotion = useReducedMotion()\n const count = useMotionValue(component.from || 0)\n const [displayValue, setDisplayValue] = useState(component.from || 0)\n\n const duration = component.duration || 2\n const decimals = component.decimals || 0\n const separator = component.separator || ','\n\n useEffect(() => {\n if (prefersReducedMotion) {\n setDisplayValue(component.to)\n return\n }\n\n const controls = animate(count, component.to, {\n duration,\n ease: 'easeOut',\n onUpdate: (latest) => {\n setDisplayValue(latest)\n },\n })\n\n return controls.stop\n }, [component.to, duration, count, prefersReducedMotion])\n\n const className = styleClasses[component.style || 'body']\n const formattedValue = formatNumber(displayValue, decimals, separator)\n\n return (\n <span className={className} style={{ color: 'hsl(var(--foreground))' }}>\n {component.prefix || ''}\n {formattedValue}\n {component.suffix || ''}\n </span>\n )\n },\n example: {\n name: 'Count Up',\n description: 'Animated number counter that counts up to a value',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'countup-example', root: 'col-1' } },\n {\n updateComponents: {\n surfaceId: 'countup-example',\n components: [\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n children: ['count-1', 'count-2', 'count-3'],\n },\n },\n {\n id: 'count-1',\n component: { type: 'CountUp', id: 'count-1', to: 1000, style: 'h1', duration: 2 },\n },\n {\n id: 'count-2',\n component: {\n type: 'CountUp',\n id: 'count-2',\n to: 99.99,\n style: 'h2',\n prefix: '$',\n decimals: 2,\n },\n },\n {\n id: 'count-3',\n component: {\n type: 'CountUp',\n id: 'count-3',\n from: 0,\n to: 1000000,\n style: 'h3',\n suffix: '+',\n separator: ',',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface GradientTextComponent {\n type: 'GradientText'\n id: string\n content: string\n style?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'body' | 'caption'\n colors?: string[]\n animationDuration?: number\n direction?: 'horizontal' | 'vertical' | 'diagonal'\n}\n\nconst styleClasses: Record<string, string> = {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n h5: 'scroll-m-20 text-lg font-semibold tracking-tight',\n body: 'leading-7',\n caption: 'text-sm',\n}\n\nconst getGradientDirection = (direction: string) => {\n switch (direction) {\n case 'vertical':\n return '180deg'\n case 'diagonal':\n return '45deg'\n default:\n return '90deg'\n }\n}\n\nexport const GradientTextRenderer: A2UIRenderer<GradientTextComponent> = {\n type: 'GradientText',\n render: ({ component }: RendererProps<GradientTextComponent>) => {\n const prefersReducedMotion = useReducedMotion()\n const colors = component.colors || ['#667eea', '#764ba2', '#f093fb', '#f5576c', '#667eea']\n const duration = component.animationDuration || 3\n const direction = getGradientDirection(component.direction || 'horizontal')\n\n const gradientColors = colors.join(', ')\n\n return (\n <motion.span\n className={styleClasses[component.style || 'body']}\n animate={\n prefersReducedMotion\n ? {}\n : {\n backgroundPosition: ['0% 50%', '100% 50%', '0% 50%'],\n }\n }\n transition={\n prefersReducedMotion\n ? { duration: 0 }\n : {\n duration,\n repeat: Number.POSITIVE_INFINITY,\n ease: 'linear',\n }\n }\n style={{\n background: `linear-gradient(${direction}, ${gradientColors})`,\n backgroundSize: '200% auto',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n backgroundClip: 'text',\n }}\n >\n {component.content}\n </motion.span>\n )\n },\n example: {\n name: 'Gradient Text',\n description: 'Text with animated gradient colors',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'gradient-text-example', root: 'col-1' } },\n {\n updateComponents: {\n surfaceId: 'gradient-text-example',\n components: [\n {\n id: 'col-1',\n component: { type: 'Column', id: 'col-1', children: ['text-1', 'text-2'] },\n },\n {\n id: 'text-1',\n component: {\n type: 'GradientText',\n id: 'text-1',\n content: 'Animated Gradient',\n style: 'h1',\n },\n },\n {\n id: 'text-2',\n component: {\n type: 'GradientText',\n id: 'text-2',\n content: 'Custom Colors',\n style: 'h3',\n colors: ['#00d9ff', '#00ff88', '#00d9ff'],\n animationDuration: 2,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { useEffect, useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface TextScrambleComponent {\n type: 'TextScramble'\n id: string\n content: string\n style?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'body' | 'caption'\n speed?: number\n characters?: string\n trigger?: 'mount' | 'hover'\n}\n\nconst styleClasses: Record<string, string> = {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n h5: 'scroll-m-20 text-lg font-semibold tracking-tight',\n body: 'leading-7',\n caption: 'text-sm text-muted-foreground',\n}\n\nconst defaultCharacters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*'\n\nexport const TextScrambleRenderer: A2UIRenderer<TextScrambleComponent> = {\n type: 'TextScramble',\n render: ({ component }: RendererProps<TextScrambleComponent>) => {\n const [displayText, setDisplayText] = useState(component.content)\n const [isAnimating, setIsAnimating] = useState(false)\n const prefersReducedMotion = useReducedMotion()\n\n const speed = component.speed || 30\n const characters = component.characters || defaultCharacters\n const trigger = component.trigger || 'mount'\n\n const scramble = () => {\n if (prefersReducedMotion || isAnimating) return\n setIsAnimating(true)\n\n const target = component.content\n const length = target.length\n let iteration = 0\n const maxIterations = length * 3\n\n const interval = setInterval(() => {\n setDisplayText(\n target\n .split('')\n .map((char, index) => {\n if (char === ' ') return ' '\n if (index < iteration / 3) {\n return target[index]\n }\n return characters[Math.floor(Math.random() * characters.length)]\n })\n .join(''),\n )\n\n iteration++\n\n if (iteration >= maxIterations) {\n clearInterval(interval)\n setDisplayText(target)\n setIsAnimating(false)\n }\n }, speed)\n }\n\n useEffect(() => {\n if (trigger === 'mount') {\n scramble()\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: scramble function is stable and doesn't need to be in deps\n }, [trigger, scramble])\n\n const handleMouseEnter = () => {\n if (trigger === 'hover') {\n scramble()\n }\n }\n\n const className = styleClasses[component.style || 'body']\n\n if (trigger === 'hover') {\n return (\n <button\n type=\"button\"\n className={className}\n style={{\n color: 'hsl(var(--foreground))',\n fontFamily: 'monospace',\n background: 'none',\n border: 'none',\n padding: 0,\n cursor: 'pointer',\n }}\n onMouseEnter={handleMouseEnter}\n onFocus={handleMouseEnter}\n >\n {displayText}\n </button>\n )\n }\n\n return (\n <span\n className={className}\n style={{ color: 'hsl(var(--foreground))', fontFamily: 'monospace' }}\n >\n {displayText}\n </span>\n )\n },\n example: {\n name: 'Text Scramble',\n description: 'Text that scrambles and reveals character by character',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'scramble-example', root: 'col-1' } },\n {\n updateComponents: {\n surfaceId: 'scramble-example',\n components: [\n {\n id: 'col-1',\n component: { type: 'Column', id: 'col-1', children: ['text-1', 'text-2'] },\n },\n {\n id: 'text-1',\n component: {\n type: 'TextScramble',\n id: 'text-1',\n content: 'DECODING...',\n style: 'h2',\n },\n },\n {\n id: 'text-2',\n component: {\n type: 'TextScramble',\n id: 'text-2',\n content: 'Hover to scramble',\n style: 'body',\n trigger: 'hover',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useEffect, useState } from 'react'\nimport { useReducedMotion } from '../../../hooks/useReducedMotion.js'\n\ninterface TypewriterTextComponent {\n type: 'TypewriterText'\n id: string\n content: string\n style?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'body' | 'caption'\n speed?: number\n cursor?: boolean\n cursorChar?: string\n loop?: boolean\n delayBetweenLoops?: number\n}\n\nconst styleClasses: Record<string, string> = {\n h1: 'scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n h2: 'scroll-m-20 text-3xl font-semibold tracking-tight',\n h3: 'scroll-m-20 text-2xl font-semibold tracking-tight',\n h4: 'scroll-m-20 text-xl font-semibold tracking-tight',\n h5: 'scroll-m-20 text-lg font-semibold tracking-tight',\n body: 'leading-7',\n caption: 'text-sm text-muted-foreground',\n}\n\nexport const TypewriterTextRenderer: A2UIRenderer<TypewriterTextComponent> = {\n type: 'TypewriterText',\n render: ({ component }: RendererProps<TypewriterTextComponent>) => {\n const [displayText, setDisplayText] = useState('')\n const [showCursor, setShowCursor] = useState(true)\n const prefersReducedMotion = useReducedMotion()\n\n const speed = component.speed || 50\n const cursorChar = component.cursorChar || '|'\n const showCursorProp = component.cursor !== false\n\n useEffect(() => {\n if (prefersReducedMotion) {\n setDisplayText(component.content)\n return\n }\n\n let currentIndex = 0\n let isDeleting = false\n let timeout: ReturnType<typeof setTimeout>\n\n const typeChar = () => {\n if (!isDeleting) {\n if (currentIndex <= component.content.length) {\n setDisplayText(component.content.slice(0, currentIndex))\n currentIndex++\n timeout = setTimeout(typeChar, speed)\n } else if (component.loop) {\n timeout = setTimeout(() => {\n isDeleting = true\n typeChar()\n }, component.delayBetweenLoops || 2000)\n }\n } else {\n if (currentIndex > 0) {\n currentIndex--\n setDisplayText(component.content.slice(0, currentIndex))\n timeout = setTimeout(typeChar, speed / 2)\n } else {\n isDeleting = false\n timeout = setTimeout(typeChar, 500)\n }\n }\n }\n\n typeChar()\n\n return () => clearTimeout(timeout)\n }, [\n component.content,\n speed,\n component.loop,\n component.delayBetweenLoops,\n prefersReducedMotion,\n ])\n\n useEffect(() => {\n if (!showCursorProp) return\n\n const cursorInterval = setInterval(() => {\n setShowCursor((prev) => !prev)\n }, 530)\n\n return () => clearInterval(cursorInterval)\n }, [showCursorProp])\n\n const className = styleClasses[component.style || 'body']\n\n return (\n <span className={className} style={{ color: 'hsl(var(--foreground))' }}>\n {displayText}\n {showCursorProp && !prefersReducedMotion && (\n <motion.span\n animate={{ opacity: showCursor ? 1 : 0 }}\n transition={{ duration: 0.1 }}\n style={{ color: 'hsl(var(--primary))' }}\n >\n {cursorChar}\n </motion.span>\n )}\n </span>\n )\n },\n example: {\n name: 'Typewriter Text',\n description: 'Text that types out character by character',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'typewriter-example', root: 'col-1' } },\n {\n updateComponents: {\n surfaceId: 'typewriter-example',\n components: [\n {\n id: 'col-1',\n component: { type: 'Column', id: 'col-1', children: ['text-1', 'text-2'] },\n },\n {\n id: 'text-1',\n component: {\n type: 'TypewriterText',\n id: 'text-1',\n content: 'Hello, World!',\n style: 'h2',\n speed: 80,\n },\n },\n {\n id: 'text-2',\n component: {\n type: 'TypewriterText',\n id: 'text-2',\n content: 'This text loops forever...',\n loop: true,\n speed: 60,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport { useState } from 'react'\n\ninterface Avatar {\n src?: string\n alt?: string\n fallback: string\n}\n\ninterface AnimatedAvatarGroupComponent {\n type: 'AnimatedAvatarGroup'\n id: string\n avatars: Avatar[]\n maxVisible?: number\n size?: 'sm' | 'md' | 'lg'\n animation?: 'expand' | 'pop' | 'slide'\n}\n\nconst sizeStyles = {\n sm: { width: 32, height: 32, fontSize: 12 },\n md: { width: 40, height: 40, fontSize: 14 },\n lg: { width: 48, height: 48, fontSize: 16 },\n}\n\nexport const AnimatedAvatarGroupRenderer: A2UIRenderer<AnimatedAvatarGroupComponent> = {\n type: 'AnimatedAvatarGroup',\n render: ({ component }: RendererProps<AnimatedAvatarGroupComponent>) => {\n const [isHovered, setIsHovered] = useState(false)\n const maxVisible = component.maxVisible || 4\n const size = component.size || 'md'\n const animation = component.animation || 'expand'\n\n const { width, height, fontSize } = sizeStyles[size]\n const visibleAvatars = component.avatars.slice(0, maxVisible)\n const remainingCount = component.avatars.length - maxVisible\n\n const getOverlap = () => {\n if (animation === 'expand') {\n return isHovered ? 0 : -width / 3\n }\n return -width / 3\n }\n\n const overlap = getOverlap()\n\n return (\n // biome-ignore lint/a11y/useSemanticElements: Using div with role=group is appropriate for avatar grouping display\n <div\n style={{ display: 'flex', alignItems: 'center' }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n role=\"group\"\n aria-label=\"Avatar group\"\n >\n {visibleAvatars.map((avatar, index) => (\n <motion.div\n key={`avatar-${component.id}-${index}`}\n initial={{ opacity: 0, scale: 0 }}\n animate={{\n opacity: 1,\n scale: 1,\n marginLeft: index === 0 ? 0 : overlap,\n zIndex: isHovered ? index : visibleAvatars.length - index,\n }}\n whileHover={animation === 'pop' ? { scale: 1.2, zIndex: 100 } : undefined}\n transition={{\n type: 'spring',\n stiffness: 300,\n damping: 20,\n delay: animation === 'slide' ? index * 0.05 : 0,\n }}\n style={{\n width,\n height,\n borderRadius: '50%',\n overflow: 'hidden',\n border: '2px solid hsl(var(--background))',\n backgroundColor: 'hsl(var(--muted))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize,\n fontWeight: 500,\n color: 'hsl(var(--muted-foreground))',\n cursor: 'pointer',\n }}\n >\n {avatar.src ? (\n <img\n src={avatar.src}\n alt={avatar.alt || avatar.fallback}\n style={{ width: '100%', height: '100%', objectFit: 'cover' }}\n />\n ) : (\n avatar.fallback\n )}\n </motion.div>\n ))}\n\n {remainingCount > 0 && (\n <motion.div\n initial={{ opacity: 0, scale: 0 }}\n animate={{\n opacity: 1,\n scale: 1,\n marginLeft: overlap,\n }}\n whileHover={{ scale: 1.1 }}\n transition={{\n type: 'spring',\n stiffness: 300,\n damping: 20,\n delay: animation === 'slide' ? visibleAvatars.length * 0.05 : 0,\n }}\n style={{\n width,\n height,\n borderRadius: '50%',\n border: '2px solid hsl(var(--background))',\n backgroundColor: 'hsl(var(--primary))',\n color: 'hsl(var(--primary-foreground))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: fontSize - 2,\n fontWeight: 600,\n cursor: 'pointer',\n }}\n >\n +{remainingCount}\n </motion.div>\n )}\n </div>\n )\n },\n example: {\n name: 'Animated Avatar Group',\n description: 'Stacked avatars with interactive animations',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'avatar-group-example', root: 'col-1' } },\n {\n updateComponents: {\n surfaceId: 'avatar-group-example',\n components: [\n {\n id: 'col-1',\n component: { type: 'Column', id: 'col-1', children: ['group-1', 'group-2'] },\n },\n {\n id: 'group-1',\n component: {\n type: 'AnimatedAvatarGroup',\n id: 'group-1',\n avatars: [\n { fallback: 'AB' },\n { fallback: 'CD' },\n { fallback: 'EF' },\n { fallback: 'GH' },\n { fallback: 'IJ' },\n ],\n maxVisible: 3,\n animation: 'expand',\n },\n },\n {\n id: 'group-2',\n component: {\n type: 'AnimatedAvatarGroup',\n id: 'group-2',\n avatars: [{ fallback: 'JD' }, { fallback: 'AS' }, { fallback: 'MK' }],\n size: 'lg',\n animation: 'pop',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { type ReactNode, useState } from 'react'\n\ninterface AnimatedTooltipComponent {\n type: 'AnimatedTooltip'\n id: string\n trigger: string\n content: string\n position?: 'top' | 'bottom' | 'left' | 'right'\n animation?: 'scale' | 'slide' | 'fade'\n}\n\nconst positionStyles = {\n top: { bottom: '100%', left: '50%', transform: 'translateX(-50%)', marginBottom: '8px' },\n bottom: { top: '100%', left: '50%', transform: 'translateX(-50%)', marginTop: '8px' },\n left: { right: '100%', top: '50%', transform: 'translateY(-50%)', marginRight: '8px' },\n right: { left: '100%', top: '50%', transform: 'translateY(-50%)', marginLeft: '8px' },\n}\n\nconst animations = {\n scale: {\n initial: { scale: 0.8, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n exit: { scale: 0.8, opacity: 0 },\n },\n slide: {\n top: {\n initial: { y: 10, opacity: 0 },\n animate: { y: 0, opacity: 1 },\n exit: { y: 10, opacity: 0 },\n },\n bottom: {\n initial: { y: -10, opacity: 0 },\n animate: { y: 0, opacity: 1 },\n exit: { y: -10, opacity: 0 },\n },\n left: {\n initial: { x: 10, opacity: 0 },\n animate: { x: 0, opacity: 1 },\n exit: { x: 10, opacity: 0 },\n },\n right: {\n initial: { x: -10, opacity: 0 },\n animate: { x: 0, opacity: 1 },\n exit: { x: -10, opacity: 0 },\n },\n },\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n },\n}\n\nexport const AnimatedTooltipRenderer: A2UIRenderer<AnimatedTooltipComponent> = {\n type: 'AnimatedTooltip',\n render: ({ component, children }: RendererProps<AnimatedTooltipComponent>) => {\n const [isVisible, setIsVisible] = useState(false)\n const position = component.position || 'top'\n const animationType = component.animation || 'scale'\n const childArray = Array.isArray(children) ? children : [children]\n const triggerChild = childArray[0]\n const tooltipContent = childArray[1]\n const tooltipId = `tooltip-${component.id}`\n\n const getAnimation = () => {\n if (animationType === 'slide') {\n return animations.slide[position]\n }\n return animations[animationType]\n }\n\n const animation = getAnimation()\n\n const showTooltip = () => setIsVisible(true)\n const hideTooltip = () => setIsVisible(false)\n\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: Tooltip wrapper needs mouse and focus events for showing/hiding tooltip\n <div\n style={{ position: 'relative', display: 'inline-block' }}\n onMouseEnter={showTooltip}\n onMouseLeave={hideTooltip}\n onFocusCapture={showTooltip}\n onBlurCapture={hideTooltip}\n aria-describedby={isVisible ? tooltipId : undefined}\n >\n {triggerChild as ReactNode}\n <AnimatePresence>\n {isVisible && (\n <motion.div\n {...animation}\n transition={{ type: 'spring', stiffness: 400, damping: 25 }}\n style={{\n position: 'absolute',\n ...positionStyles[position],\n zIndex: 50,\n whiteSpace: 'nowrap',\n }}\n >\n <div\n id={tooltipId}\n role=\"tooltip\"\n className=\"rounded-md px-3 py-1.5 text-sm shadow-md\"\n style={{\n backgroundColor: 'hsl(var(--popover))',\n color: 'hsl(var(--popover-foreground))',\n border: '1px solid hsl(var(--border))',\n }}\n >\n {tooltipContent as ReactNode}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n },\n example: {\n name: 'Animated Tooltip',\n description: 'Tooltip with various animation styles',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'tooltip-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'tooltip-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'spaceAround',\n children: ['tooltip-1', 'tooltip-2', 'tooltip-3'],\n },\n },\n {\n id: 'tooltip-1',\n component: {\n type: 'AnimatedTooltip',\n id: 'tooltip-1',\n trigger: 'btn-1',\n content: 'tip-1',\n position: 'top',\n animation: 'scale',\n },\n },\n {\n id: 'btn-1',\n component: { type: 'Button', id: 'btn-1', child: 'btn-text-1', primary: true },\n },\n { id: 'btn-text-1', component: { type: 'Text', id: 'btn-text-1', content: 'Scale' } },\n {\n id: 'tip-1',\n component: { type: 'Text', id: 'tip-1', content: 'Scale animation tooltip' },\n },\n {\n id: 'tooltip-2',\n component: {\n type: 'AnimatedTooltip',\n id: 'tooltip-2',\n trigger: 'btn-2',\n content: 'tip-2',\n position: 'bottom',\n animation: 'slide',\n },\n },\n { id: 'btn-2', component: { type: 'Button', id: 'btn-2', child: 'btn-text-2' } },\n { id: 'btn-text-2', component: { type: 'Text', id: 'btn-text-2', content: 'Slide' } },\n {\n id: 'tip-2',\n component: { type: 'Text', id: 'tip-2', content: 'Slide animation tooltip' },\n },\n {\n id: 'tooltip-3',\n component: {\n type: 'AnimatedTooltip',\n id: 'tooltip-3',\n trigger: 'btn-3',\n content: 'tip-3',\n position: 'right',\n animation: 'fade',\n },\n },\n { id: 'btn-3', component: { type: 'Button', id: 'btn-3', child: 'btn-text-3' } },\n { id: 'btn-text-3', component: { type: 'Text', id: 'btn-text-3', content: 'Fade' } },\n {\n id: 'tip-3',\n component: { type: 'Text', id: 'tip-3', content: 'Fade animation tooltip' },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { CursorComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer } from 'a2ui-react-react'\nimport { motion, useMotionValue, useSpring } from 'framer-motion'\nimport { useRef, useState } from 'react'\n\nexport const CursorRenderer: A2UIRenderer<CursorComponent> = {\n type: 'cursor',\n render: ({ component, children }) => {\n const [isHovering, setIsHovering] = useState(false)\n const [isClicking, setIsClicking] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n const {\n size = 20,\n color = 'hsl(var(--primary))',\n trailLength = 5,\n smoothing = 0.15,\n showTrail = true,\n mixBlendMode = 'difference',\n } = component\n\n const mouseX = useMotionValue(0)\n const mouseY = useMotionValue(0)\n\n const springConfig = { damping: 25, stiffness: 200 * (1 / smoothing) }\n const cursorX = useSpring(mouseX, springConfig)\n const cursorY = useSpring(mouseY, springConfig)\n\n // Trail positions with increasing delay\n const trailConfigs = Array.from({ length: trailLength }, (_, i) => ({\n x: useSpring(mouseX, { damping: 20, stiffness: 150 - i * 20 }),\n y: useSpring(mouseY, { damping: 20, stiffness: 150 - i * 20 }),\n scale: 1 - (i + 1) * 0.15,\n opacity: 0.5 - i * 0.1,\n }))\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (!containerRef.current) return\n const rect = containerRef.current.getBoundingClientRect()\n mouseX.set(e.clientX - rect.left)\n mouseY.set(e.clientY - rect.top)\n }\n\n const handleMouseDown = () => setIsClicking(true)\n const handleMouseUp = () => setIsClicking(false)\n\n const handleMouseOver = (e: React.MouseEvent) => {\n const target = e.target as HTMLElement\n if (\n target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.closest('button') ||\n target.closest('a')\n ) {\n setIsHovering(true)\n }\n }\n\n const handleMouseOut = () => setIsHovering(false)\n\n const cursorSize = isHovering ? size * 1.5 : isClicking ? size * 0.8 : size\n\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: Decorative cursor tracking area, not interactive content\n // biome-ignore lint/a11y/useKeyWithMouseEvents: Cursor effects are purely visual and don't require keyboard alternatives\n <div\n ref={containerRef}\n className=\"relative w-full h-full min-h-[120px] overflow-hidden\"\n onMouseMove={handleMouseMove}\n onMouseDown={handleMouseDown}\n onMouseUp={handleMouseUp}\n onMouseOver={handleMouseOver}\n onMouseOut={handleMouseOut}\n >\n {/* Content */}\n {children}\n\n {/* Trail */}\n {showTrail &&\n trailConfigs.map((trail, i) => (\n <motion.div\n key={`trail-${i}-${trailLength}`}\n className=\"absolute top-0 left-0 rounded-full pointer-events-none\"\n style={{\n x: trail.x,\n y: trail.y,\n width: size * trail.scale,\n height: size * trail.scale,\n backgroundColor: color,\n opacity: trail.opacity,\n translateX: '-50%',\n translateY: '-50%',\n mixBlendMode: mixBlendMode as React.CSSProperties['mixBlendMode'],\n }}\n />\n ))}\n\n {/* Main cursor */}\n <motion.div\n className=\"absolute top-0 left-0 rounded-full pointer-events-none\"\n style={{\n x: cursorX,\n y: cursorY,\n translateX: '-50%',\n translateY: '-50%',\n mixBlendMode: mixBlendMode as React.CSSProperties['mixBlendMode'],\n }}\n animate={{\n width: cursorSize,\n height: cursorSize,\n }}\n transition={{\n type: 'spring',\n stiffness: 300,\n damping: 20,\n }}\n >\n <div className=\"w-full h-full rounded-full\" style={{ backgroundColor: color }} />\n </motion.div>\n </div>\n )\n },\n example: {\n name: 'Custom Cursor',\n description: 'Animated custom cursor with trail effect',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'cursor-example', root: 'cursor-1' } },\n {\n updateComponents: {\n surfaceId: 'cursor-example',\n components: [\n {\n id: 'cursor-1',\n component: {\n type: 'cursor',\n id: 'cursor-1',\n size: 20,\n trailLength: 4,\n showTrail: true,\n smoothing: 0.15,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport type { LucideIcon } from 'lucide-react'\nimport {\n Bell,\n Check,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n Cloud,\n Flame,\n Heart,\n HelpCircle,\n Home,\n Mail,\n Menu,\n Minus,\n Moon,\n Pause,\n Phone,\n Play,\n Plus,\n Search,\n Settings,\n Square,\n Star,\n Sun,\n User,\n X,\n Zap,\n} from 'lucide-react'\nimport { useEffect, useState } from 'react'\n\ninterface MorphingIconComponent {\n type: 'MorphingIcon'\n id: string\n icons: string[]\n trigger?: 'hover' | 'click' | 'auto'\n interval?: number\n size?: number\n color?: string\n}\n\nconst iconMap: Record<string, LucideIcon> = {\n Sun,\n Moon,\n Cloud,\n Play,\n Pause,\n Square,\n Heart,\n Star,\n Zap,\n Flame,\n HelpCircle,\n Check,\n X,\n Plus,\n Minus,\n ChevronUp,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n Home,\n Settings,\n User,\n Mail,\n Phone,\n Search,\n Menu,\n Bell,\n}\n\nexport const MorphingIconRenderer: A2UIRenderer<MorphingIconComponent> = {\n type: 'MorphingIcon',\n render: ({ component }: RendererProps<MorphingIconComponent>) => {\n const [currentIndex, setCurrentIndex] = useState(0)\n const trigger = component.trigger || 'hover'\n const interval = component.interval || 2000\n const size = component.size || 24\n const color = component.color || 'currentColor'\n\n const icons = component.icons.map((name) => iconMap[name] || HelpCircle)\n\n const nextIcon = () => {\n setCurrentIndex((prev) => (prev + 1) % icons.length)\n }\n\n const handleClick = () => {\n if (trigger === 'click') {\n nextIcon()\n }\n }\n\n const handleHoverStart = () => {\n if (trigger === 'hover') {\n nextIcon()\n }\n }\n\n useEffect(() => {\n if (trigger === 'auto') {\n const timer = setInterval(nextIcon, interval)\n return () => clearInterval(timer)\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: nextIcon function is stable and doesn't need to be in deps\n }, [trigger, interval, nextIcon])\n\n const CurrentIcon = icons[currentIndex] || HelpCircle\n\n return (\n <motion.div\n onClick={handleClick}\n onHoverStart={handleHoverStart}\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.95 }}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: trigger === 'click' || trigger === 'hover' ? 'pointer' : 'default',\n width: size + 16,\n height: size + 16,\n borderRadius: '50%',\n backgroundColor: 'hsl(var(--muted))',\n }}\n >\n <AnimatePresence mode=\"wait\">\n <motion.div\n key={currentIndex}\n initial={{ rotate: -90, opacity: 0, scale: 0.5 }}\n animate={{ rotate: 0, opacity: 1, scale: 1 }}\n exit={{ rotate: 90, opacity: 0, scale: 0.5 }}\n transition={{ type: 'spring' as const, stiffness: 300, damping: 20 }}\n >\n <CurrentIcon size={size} color={color} />\n </motion.div>\n </AnimatePresence>\n </motion.div>\n )\n },\n example: {\n name: 'Morphing Icon',\n description: 'Icon that morphs between different icons',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'morphing-icon-example', root: 'row-1' } },\n {\n updateComponents: {\n surfaceId: 'morphing-icon-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'spaceAround',\n children: ['icon-1', 'icon-2', 'icon-3'],\n },\n },\n {\n id: 'icon-1',\n component: {\n type: 'MorphingIcon',\n id: 'icon-1',\n icons: ['Sun', 'Moon', 'Cloud'],\n trigger: 'hover',\n size: 28,\n },\n },\n {\n id: 'icon-2',\n component: {\n type: 'MorphingIcon',\n id: 'icon-2',\n icons: ['Play', 'Pause', 'Square'],\n trigger: 'click',\n size: 28,\n },\n },\n {\n id: 'icon-3',\n component: {\n type: 'MorphingIcon',\n id: 'icon-3',\n icons: ['Heart', 'Star', 'Zap', 'Flame'],\n trigger: 'auto',\n interval: 1500,\n size: 28,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion, useMotionValue, useSpring } from 'framer-motion'\nimport { type MouseEvent, type ReactNode, useRef } from 'react'\n\ninterface SpotlightComponent {\n type: 'Spotlight'\n id: string\n children?: string[]\n spotlightColor?: string\n spotlightSize?: number\n intensity?: number\n}\n\nexport const SpotlightRenderer: A2UIRenderer<SpotlightComponent> = {\n type: 'Spotlight',\n render: ({ component, children }: RendererProps<SpotlightComponent>) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const spotlightColor = component.spotlightColor || 'rgba(255, 255, 255, 0.15)'\n const spotlightSize = component.spotlightSize || 300\n const intensity = component.intensity || 0.15\n\n const mouseX = useMotionValue(0)\n const mouseY = useMotionValue(0)\n\n const springConfig = { stiffness: 150, damping: 20 }\n const spotlightX = useSpring(mouseX, springConfig)\n const spotlightY = useSpring(mouseY, springConfig)\n\n const handleMouseMove = (e: MouseEvent<HTMLDivElement>) => {\n if (!containerRef.current) return\n const rect = containerRef.current.getBoundingClientRect()\n mouseX.set(e.clientX - rect.left)\n mouseY.set(e.clientY - rect.top)\n }\n\n const handleMouseLeave = () => {\n mouseX.set(-spotlightSize)\n mouseY.set(-spotlightSize)\n }\n\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: Decorative spotlight effect with mouse tracking, not interactive functionality\n <div\n ref={containerRef}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n style={{\n position: 'relative',\n width: '100%',\n minHeight: '200px',\n overflow: 'hidden',\n borderRadius: '0.75rem',\n backgroundColor: 'hsl(var(--card))',\n border: '1px solid hsl(var(--border))',\n }}\n >\n {/* Spotlight effect */}\n <motion.div\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n width: spotlightSize,\n height: spotlightSize,\n borderRadius: '50%',\n background: `radial-gradient(circle, ${spotlightColor} 0%, transparent 70%)`,\n x: spotlightX,\n y: spotlightY,\n transform: 'translate(-50%, -50%)',\n zIndex: 1,\n }}\n />\n\n {/* Border glow effect */}\n <motion.div\n style={{\n position: 'absolute',\n inset: 0,\n borderRadius: '0.75rem',\n opacity: intensity,\n background: `radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), hsl(var(--primary) / 0.3), transparent 50%)`,\n pointerEvents: 'none',\n zIndex: 0,\n }}\n />\n\n {/* Content */}\n <div\n style={{\n position: 'relative',\n zIndex: 2,\n padding: '2rem',\n }}\n >\n {children as ReactNode}\n </div>\n </div>\n )\n },\n example: {\n name: 'Spotlight',\n description: 'Container with cursor-following spotlight effect',\n category: 'animated',\n messages: [\n { createSurface: { surfaceId: 'spotlight-example', root: 'spotlight-1' } },\n {\n updateComponents: {\n surfaceId: 'spotlight-example',\n components: [\n {\n id: 'spotlight-1',\n component: {\n type: 'Spotlight',\n id: 'spotlight-1',\n children: ['col-1'],\n spotlightColor: 'rgba(100, 130, 255, 0.2)',\n },\n },\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n alignment: 'center',\n children: ['text-1', 'text-2'],\n },\n },\n {\n id: 'text-1',\n component: { type: 'Text', id: 'text-1', content: 'Move your cursor', style: 'h2' },\n },\n {\n id: 'text-2',\n component: { type: 'Text', id: 'text-2', content: 'Watch the spotlight follow!' },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { ButtonComponent } from 'a2ui-react-core'\nimport { type A2UIRenderer, createActionHandler, type RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport type { ReactNode } from 'react'\nimport { Button } from '../../../components/ui/button.js'\n\n/**\n * Animated Button override - same type as standard Button but with animations.\n * When registered after the standard ButtonRenderer, this replaces it.\n */\nexport const AnimatedButtonOverride: A2UIRenderer<ButtonComponent> = {\n type: 'Button',\n render: ({ component, children, data, onAction }: RendererProps<ButtonComponent>) => {\n const handleClick = createActionHandler(component, data, onAction)\n\n return (\n <motion.div\n initial={{ opacity: 0, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n whileHover={{ scale: 1.02 }}\n whileTap={{ scale: 0.98 }}\n transition={{ type: 'spring', stiffness: 400, damping: 25 }}\n >\n <Button variant={component.primary ? 'default' : 'outline'} onClick={handleClick}>\n {children as ReactNode}\n </Button>\n </motion.div>\n )\n },\n}\n","import * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm',\n className,\n )}\n {...props}\n />\n ),\n)\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n '@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',\n className,\n )}\n {...props}\n />\n ),\n)\nCardHeader.displayName = 'CardHeader'\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('leading-none font-semibold', className)} {...props} />\n ),\n)\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n ),\n)\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div ref={ref} className={cn('px-6', className)} {...props} />,\n)\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center px-6 [.border-t]:pt-6', className)}\n {...props}\n />\n ),\n)\nCardFooter.displayName = 'CardFooter'\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","'use client'\n\nimport type { CardComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport type { ReactNode } from 'react'\nimport { Card, CardContent } from '../../../components/ui/card.js'\n\n/**\n * Animated Card override - same type as standard Card but with hover effects.\n */\nexport const AnimatedCardOverride: A2UIRenderer<CardComponent> = {\n type: 'Card',\n render: ({ children }: RendererProps<CardComponent>) => {\n return (\n <motion.div\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n whileHover={{\n y: -4,\n boxShadow: '0 10px 40px -10px rgba(0, 0, 0, 0.2)',\n }}\n transition={{ type: 'spring', stiffness: 300, damping: 20 }}\n >\n <Card>\n <CardContent className=\"pt-6\">{children as ReactNode}</CardContent>\n </Card>\n </motion.div>\n )\n },\n}\n","'use client'\n\nimport type { CheckboxComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { Checkbox } from '../../../components/ui/checkbox.js'\nimport { Label } from '../../../components/ui/label.js'\n\n/**\n * Animated Checkbox override - same type as standard Checkbox but with check animation.\n */\nexport const AnimatedCheckboxOverride: A2UIRenderer<CheckboxComponent> = {\n type: 'Checkbox',\n render: ({ component, data }: RendererProps<CheckboxComponent>) => {\n const value = component.dataPath ? data.get(component.dataPath) === true : false\n const id = `checkbox-${component.id}`\n\n const handleChange = (checked: boolean) => {\n if (component.dataPath) {\n data.set(component.dataPath, checked)\n }\n }\n\n return (\n <motion.div\n className=\"flex items-center gap-3\"\n initial={{ opacity: 0, x: -10 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ duration: 0.2 }}\n >\n <motion.div\n whileTap={{ scale: 0.9 }}\n transition={{ type: 'spring', stiffness: 400, damping: 17 }}\n >\n <Checkbox id={id} checked={value} onCheckedChange={handleChange} />\n </motion.div>\n {component.label && (\n <Label htmlFor={id}>\n <AnimatePresence mode=\"wait\">\n <motion.span\n key={value ? 'checked' : 'unchecked'}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.15 }}\n >\n {component.label}\n </motion.span>\n </AnimatePresence>\n </Label>\n )}\n </motion.div>\n )\n },\n}\n","'use client'\n\nimport type { ModalComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport type { ReactNode } from 'react'\nimport { useState } from 'react'\nimport { Dialog, DialogContent, DialogTrigger } from '../../../components/ui/dialog.js'\n\n/**\n * Animated Modal override - same type as standard Modal but with smooth open/close.\n */\nexport const AnimatedModalOverride: A2UIRenderer<ModalComponent> = {\n type: 'Modal',\n render: ({ children }: RendererProps<ModalComponent>) => {\n const [open, setOpen] = useState(false)\n const childArray = Array.isArray(children) ? children : children ? [children] : []\n const trigger = childArray[0]\n const content = childArray[1]\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <motion.div whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }}>\n {trigger as ReactNode}\n </motion.div>\n </DialogTrigger>\n <AnimatePresence>\n {open && (\n <DialogContent forceMount asChild>\n <motion.div\n initial={{ opacity: 0, scale: 0.95, y: 10 }}\n animate={{ opacity: 1, scale: 1, y: 0 }}\n exit={{ opacity: 0, scale: 0.95, y: 10 }}\n transition={{ type: 'spring', damping: 25, stiffness: 300 }}\n className=\"bg-background border rounded-lg p-6 shadow-lg\"\n >\n {content as ReactNode}\n </motion.div>\n </DialogContent>\n )}\n </AnimatePresence>\n </Dialog>\n )\n },\n}\n","import * as SelectPrimitive from '@radix-ui/react-select'\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react'\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex h-9 w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronUp className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDown className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border shadow-md',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n style={{ backgroundColor: 'hsl(var(--popover))', color: 'hsl(var(--popover-foreground))' }}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","'use client'\n\nimport type { SelectComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../../../components/ui/select.js'\n\n/**\n * Animated Select override - same type as standard Select but with animations.\n */\nexport const AnimatedSelectOverride: A2UIRenderer<SelectComponent> = {\n type: 'Select',\n render: ({ component, data }: RendererProps<SelectComponent>) => {\n const value = component.dataPath ? (data.get(component.dataPath) as string) || '' : ''\n\n const handleChange = (newValue: string) => {\n if (component.dataPath) {\n data.set(component.dataPath, newValue)\n }\n }\n\n return (\n <motion.div\n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.2 }}\n >\n <Select value={value} onValueChange={handleChange}>\n <motion.div whileHover={{ scale: 1.01 }} whileTap={{ scale: 0.99 }}>\n <SelectTrigger>\n <SelectValue placeholder={component.placeholder} />\n </SelectTrigger>\n </motion.div>\n <SelectContent>\n {component.options.map((option, index) => (\n <motion.div\n key={option.value}\n initial={{ opacity: 0, x: -10 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: index * 0.03 }}\n >\n <SelectItem value={option.value}>{option.label}</SelectItem>\n </motion.div>\n ))}\n </SelectContent>\n </Select>\n </motion.div>\n )\n },\n}\n","'use client'\n\nimport type { TabsComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport type { ReactNode } from 'react'\nimport { useState } from 'react'\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '../../../components/ui/tabs.js'\n\n/**\n * Animated Tabs override - same type as standard Tabs but with smooth transitions.\n */\nexport const AnimatedTabsOverride: A2UIRenderer<TabsComponent> = {\n type: 'Tabs',\n render: ({ component, children }: RendererProps<TabsComponent>) => {\n const [activeTab, setActiveTab] = useState(component.tabs[0]?.label || '')\n const childArray = Array.isArray(children) ? children : children ? [children] : []\n\n return (\n <Tabs value={activeTab} onValueChange={setActiveTab}>\n <TabsList>\n {component.tabs.map((tab) => (\n <TabsTrigger key={tab.label} value={tab.label} className=\"relative\">\n {tab.label}\n {activeTab === tab.label && (\n <motion.div\n layoutId=\"active-tab-indicator\"\n className=\"absolute inset-0 bg-background rounded-md -z-10\"\n transition={{ type: 'spring', stiffness: 400, damping: 30 }}\n />\n )}\n </TabsTrigger>\n ))}\n </TabsList>\n <AnimatePresence mode=\"wait\">\n {component.tabs.map(\n (tab, index) =>\n activeTab === tab.label && (\n <TabsContent key={tab.label} value={tab.label} forceMount>\n <motion.div\n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n transition={{ duration: 0.2 }}\n >\n {childArray[index] as ReactNode}\n </motion.div>\n </TabsContent>\n ),\n )}\n </AnimatePresence>\n </Tabs>\n )\n },\n}\n","'use client'\n\nimport type { TextComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\n\nconst styleClasses: Record<string, string> = {\n h1: 'text-4xl font-bold',\n h2: 'text-3xl font-bold',\n h3: 'text-2xl font-semibold',\n h4: 'text-xl font-semibold',\n h5: 'text-lg font-medium',\n caption: 'text-sm text-muted-foreground',\n body: 'text-base',\n}\n\n/**\n * Animated Text override - same type as standard Text but with fade-in.\n */\nexport const AnimatedTextOverride: A2UIRenderer<TextComponent> = {\n type: 'Text',\n render: ({ component, data }: RendererProps<TextComponent>) => {\n const className = styleClasses[component.style || 'body'] || styleClasses.body\n\n // Support data binding\n let content = component.content\n if (component.dataPath) {\n const value = data.get(component.dataPath)\n if (value !== undefined) {\n content = String(value)\n }\n }\n\n return (\n <motion.p\n className={className}\n initial={{ opacity: 0, y: 5 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.3, ease: 'easeOut' }}\n >\n {content}\n </motion.p>\n )\n },\n}\n","'use client'\n\nimport * as React from 'react'\nimport * as RechartsPrimitive from 'recharts'\n\nimport { cn } from '../../lib/utils.js'\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />')\n }\n\n return context\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n config: ChartConfig\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children']\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n})\nChartContainer.displayName = 'Chart'\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color)\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n // biome-ignore lint/security/noDangerouslySetInnerHtml: Required for dynamic CSS injection to apply theme-specific chart colors via CSS variables. This is safe as the content is generated from the config object and doesn't accept user input.\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof THEMES] || itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .filter(Boolean)\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: 'line' | 'dot' | 'dashed'\n nameKey?: string\n labelKey?: string\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item?.dataKey || item?.name || 'value'}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot'\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl',\n className,\n )}\n style={{\n backgroundColor: 'hsl(var(--background))',\n borderColor: 'hsl(var(--border) / 0.5)',\n color: 'hsl(var(--foreground))',\n }}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n 'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n 'shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]',\n {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent':\n indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n },\n )}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n },\n)\nChartTooltipContent.displayName = 'ChartTooltip'\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\n hideIcon?: boolean\n nameKey?: string\n }\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center justify-center gap-4',\n verticalAlign === 'top' ? 'pb-3' : 'pt-3',\n className,\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n 'flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground',\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n})\nChartLegendContent.displayName = 'ChartLegend'\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (key in config) {\n return config[key]\n }\n\n if (payloadPayload && key in payloadPayload) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n","/**\n * Chart utility functions and constants\n */\n\nimport type { ChartDataItem } from 'a2ui-react-core'\nimport type { DataAccessor } from 'a2ui-react-react'\n\n/**\n * Default chart colors using CSS variables for theme support\n */\nexport const DEFAULT_CHART_COLORS = [\n 'hsl(var(--chart-1))',\n 'hsl(var(--chart-2))',\n 'hsl(var(--chart-3))',\n 'hsl(var(--chart-4))',\n 'hsl(var(--chart-5))',\n]\n\n/**\n * Fallback colors if CSS variables are not defined\n */\nexport const FALLBACK_COLORS = [\n 'hsl(221 83% 53%)', // Blue\n 'hsl(142 71% 45%)', // Green\n 'hsl(47 96% 53%)', // Yellow\n 'hsl(0 84% 60%)', // Red\n 'hsl(262 83% 58%)', // Purple\n]\n\n/**\n * Get chart data from static data or data model\n */\nexport function getChartData(\n staticData: ChartDataItem[] | undefined,\n dataPath: string | undefined,\n dataAccessor: DataAccessor,\n): ChartDataItem[] {\n if (dataPath) {\n const dynamicData = dataAccessor.get<ChartDataItem[]>(dataPath)\n if (dynamicData && Array.isArray(dynamicData)) {\n return dynamicData\n }\n }\n return staticData || []\n}\n\n/**\n * Get color for a data point at a given index\n */\nexport function getChartColor(index: number, customColors?: string[]): string {\n const colors: string[] =\n customColors && customColors.length > 0 ? customColors : DEFAULT_CHART_COLORS\n const colorIndex = index % colors.length\n // Non-null assertion is safe here because:\n // 1. colors array is never empty (falls back to DEFAULT_CHART_COLORS which has 5 elements)\n // 2. colorIndex uses modulo so it's always within bounds\n return colors[colorIndex]!\n}\n\n/**\n * Transform ChartDataItem array to Recharts-compatible format\n * Recharts expects { name: string, value: number } by default\n */\nexport function transformToRechartsData(\n data: ChartDataItem[],\n customColors?: string[],\n): Array<{ name: string; value: number; fill: string; [key: string]: unknown }> {\n return data.map((item, index) => ({\n ...item,\n name: item.label,\n value: item.value,\n fill: item.color || getChartColor(index, customColors),\n }))\n}\n\n/**\n * Build chart config for shadcn ChartContainer\n */\nexport function buildChartConfig(\n data: ChartDataItem[],\n customColors?: string[],\n): Record<string, { label: string; color: string }> {\n const config: Record<string, { label: string; color: string }> = {}\n\n data.forEach((item, index) => {\n config[item.label] = {\n label: item.label,\n color: item.color || getChartColor(index, customColors),\n }\n })\n\n // Also add a 'value' key for simple charts\n config.value = {\n label: 'Value',\n color: getChartColor(0, customColors),\n }\n\n return config\n}\n\n/**\n * Generate accessible description for chart data\n * Used for screen readers via aria-label\n */\nexport function generateChartDescription(chartType: string, data: ChartDataItem[]): string {\n if (data.length === 0) {\n return `${chartType} with no data`\n }\n\n const total = data.reduce((sum, item) => sum + item.value, 0)\n const maxItem = data.reduce((max, item) => (item.value > max.value ? item : max), data[0]!)\n const minItem = data.reduce((min, item) => (item.value < min.value ? item : min), data[0]!)\n\n const dataPoints = data.map((item) => `${item.label}: ${item.value}`).join(', ')\n\n return `${chartType} with ${data.length} data points. Values: ${dataPoints}. Highest: ${maxItem.label} (${maxItem.value}). Lowest: ${minItem.label} (${minItem.value}). Total: ${total}.`\n}\n","'use client'\n\nimport type { AreaChartComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Area, AreaChart, CartesianGrid, XAxis, YAxis } from 'recharts'\nimport { ChartContainer, ChartTooltip, ChartTooltipContent } from '../../components/ui/chart.js'\nimport {\n buildChartConfig,\n generateChartDescription,\n getChartColor,\n getChartData,\n transformToRechartsData,\n} from './chartUtils.js'\n\nexport const AreaChartRenderer: A2UIRenderer<AreaChartComponent> = {\n type: 'AreaChart',\n render: ({ component, data: dataAccessor }: RendererProps<AreaChartComponent>) => {\n const rawData = getChartData(component.data, component.dataPath, dataAccessor)\n const chartData = transformToRechartsData(\n rawData,\n component.color ? [component.color] : undefined,\n )\n const chartConfig = buildChartConfig(rawData, component.color ? [component.color] : undefined)\n\n const height = component.height || 300\n const animated = component.animated !== false\n const showGrid = component.showGrid !== false\n const showXAxis = component.showXAxis !== false\n const showYAxis = component.showYAxis !== false\n const showDots = component.showDots === true\n const fillOpacity = component.fillOpacity ?? 0.4\n const areaColor = component.color || getChartColor(0)\n const useGradient = component.gradient !== false\n\n if (chartData.length === 0) {\n return (\n <div className=\"flex items-center justify-center text-muted-foreground\" style={{ height }}>\n No data available\n </div>\n )\n }\n\n const gradientId = `gradient-${component.id}`\n\n const chartDescription = generateChartDescription('Area chart', rawData)\n\n return (\n <div role=\"img\" aria-label={chartDescription} style={{ height, width: '100%' }}>\n <ChartContainer config={chartConfig} style={{ height, width: '100%' }}>\n <AreaChart data={chartData} margin={{ top: 10, right: 10, left: 10, bottom: 10 }}>\n {useGradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={areaColor} stopOpacity={fillOpacity} />\n <stop offset=\"100%\" stopColor={areaColor} stopOpacity={0.05} />\n </linearGradient>\n </defs>\n )}\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n {showXAxis && (\n <XAxis dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={10} />\n )}\n {showYAxis && <YAxis tickLine={false} axisLine={false} tickMargin={10} />}\n <ChartTooltip content={<ChartTooltipContent />} />\n <Area\n type={component.smooth ? 'monotone' : 'linear'}\n dataKey=\"value\"\n stroke={areaColor}\n strokeWidth={2}\n fill={useGradient ? `url(#${gradientId})` : areaColor}\n fillOpacity={useGradient ? 1 : fillOpacity}\n dot={showDots}\n isAnimationActive={animated}\n />\n </AreaChart>\n </ChartContainer>\n </div>\n )\n },\n example: {\n name: 'Area Chart',\n description: 'Filled area chart for cumulative values and trends',\n category: 'display',\n messages: [\n { createSurface: { surfaceId: 'area-chart-example', root: 'container' } },\n {\n updateComponents: {\n surfaceId: 'area-chart-example',\n components: [\n {\n id: 'container',\n component: {\n type: 'Column',\n id: 'container',\n children: ['title', 'chart'],\n },\n },\n {\n id: 'title',\n component: {\n type: 'Text',\n id: 'title',\n content: 'Revenue Growth',\n style: 'h3',\n },\n },\n {\n id: 'chart',\n component: {\n type: 'AreaChart',\n id: 'chart',\n data: [\n { label: 'Q1', value: 4000 },\n { label: 'Q2', value: 5200 },\n { label: 'Q3', value: 4800 },\n { label: 'Q4', value: 7100 },\n ],\n smooth: true,\n gradient: true,\n showGrid: true,\n animated: true,\n height: 300,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { BarChartComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Bar, BarChart, CartesianGrid, Cell, XAxis, YAxis } from 'recharts'\nimport { ChartContainer, ChartTooltip, ChartTooltipContent } from '../../components/ui/chart.js'\nimport {\n buildChartConfig,\n generateChartDescription,\n getChartColor,\n getChartData,\n transformToRechartsData,\n} from './chartUtils.js'\n\nexport const BarChartRenderer: A2UIRenderer<BarChartComponent> = {\n type: 'BarChart',\n render: ({ component, data: dataAccessor }: RendererProps<BarChartComponent>) => {\n const rawData = getChartData(component.data, component.dataPath, dataAccessor)\n const chartData = transformToRechartsData(rawData, component.colors)\n const chartConfig = buildChartConfig(rawData, component.colors)\n\n const height = component.height || 300\n const radius = component.radius ?? 4\n const animated = component.animated !== false\n const showGrid = component.showGrid !== false\n const showXAxis = component.showXAxis !== false\n const showYAxis = component.showYAxis !== false\n\n if (chartData.length === 0) {\n return (\n <div className=\"flex items-center justify-center text-muted-foreground\" style={{ height }}>\n No data available\n </div>\n )\n }\n\n const ChartComponent = component.horizontal ? (\n <BarChart data={chartData} layout=\"vertical\" margin={{ left: 10, right: 10 }}>\n {showGrid && <CartesianGrid horizontal={false} />}\n {showYAxis && (\n <YAxis\n dataKey=\"name\"\n type=\"category\"\n tickLine={false}\n axisLine={false}\n tickMargin={10}\n width={80}\n />\n )}\n {showXAxis && <XAxis type=\"number\" hide />}\n <ChartTooltip content={<ChartTooltipContent />} />\n <Bar dataKey=\"value\" radius={radius} isAnimationActive={animated}>\n {chartData.map((entry, index) => (\n <Cell key={`cell-${entry.name}`} fill={getChartColor(index, component.colors)} />\n ))}\n </Bar>\n </BarChart>\n ) : (\n <BarChart data={chartData} margin={{ top: 10, right: 10, left: 10, bottom: 10 }}>\n {showGrid && <CartesianGrid vertical={false} />}\n {showXAxis && <XAxis dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={10} />}\n {showYAxis && <YAxis tickLine={false} axisLine={false} tickMargin={10} />}\n <ChartTooltip content={<ChartTooltipContent />} />\n <Bar dataKey=\"value\" radius={radius} isAnimationActive={animated}>\n {chartData.map((entry, index) => (\n <Cell key={`cell-${entry.name}`} fill={getChartColor(index, component.colors)} />\n ))}\n </Bar>\n </BarChart>\n )\n\n const chartDescription = generateChartDescription('Bar chart', rawData)\n\n return (\n <div role=\"img\" aria-label={chartDescription} style={{ height, width: '100%' }}>\n <ChartContainer config={chartConfig} style={{ height, width: '100%' }}>\n {ChartComponent}\n </ChartContainer>\n </div>\n )\n },\n example: {\n name: 'Bar Chart',\n description: 'Vertical or horizontal bars for comparing values',\n category: 'display',\n messages: [\n { createSurface: { surfaceId: 'bar-chart-example', root: 'container' } },\n {\n updateComponents: {\n surfaceId: 'bar-chart-example',\n components: [\n {\n id: 'container',\n component: {\n type: 'Column',\n id: 'container',\n children: ['title', 'chart'],\n },\n },\n {\n id: 'title',\n component: {\n type: 'Text',\n id: 'title',\n content: 'Monthly Revenue',\n style: 'h3',\n },\n },\n {\n id: 'chart',\n component: {\n type: 'BarChart',\n id: 'chart',\n data: [\n { label: 'Jan', value: 186 },\n { label: 'Feb', value: 305 },\n { label: 'Mar', value: 237 },\n { label: 'Apr', value: 73 },\n { label: 'May', value: 209 },\n { label: 'Jun', value: 214 },\n ],\n showGrid: true,\n animated: true,\n height: 300,\n radius: 6,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { LineChartComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { CartesianGrid, Line, LineChart, XAxis, YAxis } from 'recharts'\nimport { ChartContainer, ChartTooltip, ChartTooltipContent } from '../../components/ui/chart.js'\nimport {\n buildChartConfig,\n generateChartDescription,\n getChartColor,\n getChartData,\n transformToRechartsData,\n} from './chartUtils.js'\n\nexport const LineChartRenderer: A2UIRenderer<LineChartComponent> = {\n type: 'LineChart',\n render: ({ component, data: dataAccessor }: RendererProps<LineChartComponent>) => {\n const rawData = getChartData(component.data, component.dataPath, dataAccessor)\n const chartData = transformToRechartsData(\n rawData,\n component.color ? [component.color] : undefined,\n )\n const chartConfig = buildChartConfig(rawData, component.color ? [component.color] : undefined)\n\n const height = component.height || 300\n const animated = component.animated !== false\n const showGrid = component.showGrid !== false\n const showXAxis = component.showXAxis !== false\n const showYAxis = component.showYAxis !== false\n const showDots = component.showDots !== false\n const strokeWidth = component.strokeWidth || 2\n const lineColor = component.color || getChartColor(0)\n\n if (chartData.length === 0) {\n return (\n <div className=\"flex items-center justify-center text-muted-foreground\" style={{ height }}>\n No data available\n </div>\n )\n }\n\n const chartDescription = generateChartDescription('Line chart', rawData)\n\n return (\n <div role=\"img\" aria-label={chartDescription} style={{ height, width: '100%' }}>\n <ChartContainer config={chartConfig} style={{ height, width: '100%' }}>\n <LineChart data={chartData} margin={{ top: 10, right: 10, left: 10, bottom: 10 }}>\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n {showXAxis && (\n <XAxis dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={10} />\n )}\n {showYAxis && <YAxis tickLine={false} axisLine={false} tickMargin={10} />}\n <ChartTooltip content={<ChartTooltipContent />} />\n <Line\n type={component.smooth ? 'monotone' : 'linear'}\n dataKey=\"value\"\n stroke={lineColor}\n strokeWidth={strokeWidth}\n dot={showDots}\n isAnimationActive={animated}\n />\n </LineChart>\n </ChartContainer>\n </div>\n )\n },\n example: {\n name: 'Line Chart',\n description: 'Line graph for showing trends over time',\n category: 'display',\n messages: [\n { createSurface: { surfaceId: 'line-chart-example', root: 'container' } },\n {\n updateComponents: {\n surfaceId: 'line-chart-example',\n components: [\n {\n id: 'container',\n component: {\n type: 'Column',\n id: 'container',\n children: ['title', 'chart'],\n },\n },\n {\n id: 'title',\n component: {\n type: 'Text',\n id: 'title',\n content: 'Website Traffic',\n style: 'h3',\n },\n },\n {\n id: 'chart',\n component: {\n type: 'LineChart',\n id: 'chart',\n data: [\n { label: 'Mon', value: 1200 },\n { label: 'Tue', value: 1900 },\n { label: 'Wed', value: 1500 },\n { label: 'Thu', value: 2100 },\n { label: 'Fri', value: 2400 },\n { label: 'Sat', value: 1800 },\n { label: 'Sun', value: 1400 },\n ],\n smooth: true,\n showDots: true,\n showGrid: true,\n animated: true,\n height: 300,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport type { PieChartComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Cell, Pie, PieChart } from 'recharts'\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from '../../components/ui/chart.js'\nimport {\n buildChartConfig,\n generateChartDescription,\n getChartColor,\n getChartData,\n transformToRechartsData,\n} from './chartUtils.js'\n\nexport const PieChartRenderer: A2UIRenderer<PieChartComponent> = {\n type: 'PieChart',\n render: ({ component, data: dataAccessor }: RendererProps<PieChartComponent>) => {\n const rawData = getChartData(component.data, component.dataPath, dataAccessor)\n const chartData = transformToRechartsData(rawData, component.colors)\n const chartConfig = buildChartConfig(rawData, component.colors)\n\n const height = component.height || 300\n const innerRadius = component.donut ? (component.innerRadius || 0.6) * 100 : 0\n const outerRadius = 100\n const animated = component.animated !== false\n\n if (chartData.length === 0) {\n return (\n <div className=\"flex items-center justify-center text-muted-foreground\" style={{ height }}>\n No data available\n </div>\n )\n }\n\n const chartDescription = generateChartDescription(\n component.donut ? 'Donut chart' : 'Pie chart',\n rawData,\n )\n\n return (\n <div role=\"img\" aria-label={chartDescription} style={{ height, width: '100%' }}>\n <ChartContainer config={chartConfig} className=\"mx-auto\" style={{ height, width: '100%' }}>\n <PieChart>\n <ChartTooltip content={<ChartTooltipContent hideLabel />} />\n <Pie\n data={chartData}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n paddingAngle={2}\n isAnimationActive={animated}\n label={\n component.showLabels\n ? ({ name, percent }) => `${name} (${(percent * 100).toFixed(0)}%)`\n : undefined\n }\n labelLine={component.showLabels}\n >\n {chartData.map((entry, index) => (\n <Cell key={`cell-${entry.name}`} fill={getChartColor(index, component.colors)} />\n ))}\n </Pie>\n {component.showLegend && <ChartLegend content={<ChartLegendContent />} />}\n </PieChart>\n </ChartContainer>\n </div>\n )\n },\n example: {\n name: 'Pie Chart',\n description: 'Circular chart for showing proportions and percentages',\n category: 'display',\n messages: [\n { createSurface: { surfaceId: 'pie-chart-example', root: 'container' } },\n {\n updateComponents: {\n surfaceId: 'pie-chart-example',\n components: [\n {\n id: 'container',\n component: {\n type: 'Column',\n id: 'container',\n children: ['title', 'chart'],\n },\n },\n {\n id: 'title',\n component: {\n type: 'Text',\n id: 'title',\n content: 'Sales by Region',\n style: 'h3',\n },\n },\n {\n id: 'chart',\n component: {\n type: 'PieChart',\n id: 'chart',\n data: [\n { label: 'North', value: 400 },\n { label: 'South', value: 300 },\n { label: 'East', value: 200 },\n { label: 'West', value: 280 },\n ],\n donut: true,\n showLegend: true,\n animated: true,\n height: 300,\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { CardComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ReactNode } from 'react'\nimport { Card, CardContent } from '../../components/ui/card.js'\n\nexport const CardRenderer: A2UIRenderer<CardComponent> = {\n type: 'Card',\n render: ({ children }: RendererProps<CardComponent>) => (\n <Card>\n <CardContent className=\"p-4\">{children as ReactNode}</CardContent>\n </Card>\n ),\n example: {\n name: 'Card',\n description: 'Container card with content area',\n category: 'container',\n messages: [\n {\n createSurface: {\n surfaceId: 'card-example',\n root: 'card-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'card-example',\n components: [\n {\n id: 'card-1',\n component: {\n type: 'Card',\n id: 'card-1',\n children: ['col-1'],\n },\n },\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n children: ['title', 'content'],\n },\n },\n {\n id: 'title',\n component: {\n type: 'Text',\n id: 'title',\n content: 'Card Title',\n style: 'h3',\n },\n },\n {\n id: 'content',\n component: {\n type: 'Text',\n id: 'content',\n content: 'This is card content inside a Card component.',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","import type { ListComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ReactNode } from 'react'\nimport { ScrollArea } from '../../components/ui/scroll-area.js'\n\nexport const ListRenderer: A2UIRenderer<ListComponent> = {\n type: 'List',\n render: ({ children }: RendererProps<ListComponent>) => (\n <ScrollArea className=\"h-[300px] w-full rounded-md border p-4\">\n <div className=\"space-y-2\">{children as ReactNode}</div>\n </ScrollArea>\n ),\n example: {\n name: 'List',\n description: 'Scrollable list container for repeating items',\n category: 'container',\n messages: [\n {\n createSurface: {\n surfaceId: 'list-example',\n root: 'list-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'list-example',\n components: [\n {\n id: 'list-1',\n component: {\n type: 'List',\n id: 'list-1',\n template: 'list-item-template',\n },\n },\n {\n id: 'list-item-template',\n component: {\n type: 'Column',\n id: 'list-item-template',\n children: ['item-1', 'item-2', 'item-3', 'item-4', 'item-5'],\n },\n },\n {\n id: 'item-1',\n component: {\n type: 'Card',\n id: 'item-1',\n children: ['text-1'],\n },\n },\n {\n id: 'text-1',\n component: {\n type: 'Text',\n id: 'text-1',\n content: 'List Item 1',\n },\n },\n {\n id: 'item-2',\n component: {\n type: 'Card',\n id: 'item-2',\n children: ['text-2'],\n },\n },\n {\n id: 'text-2',\n component: {\n type: 'Text',\n id: 'text-2',\n content: 'List Item 2',\n },\n },\n {\n id: 'item-3',\n component: {\n type: 'Card',\n id: 'item-3',\n children: ['text-3'],\n },\n },\n {\n id: 'text-3',\n component: {\n type: 'Text',\n id: 'text-3',\n content: 'List Item 3',\n },\n },\n {\n id: 'item-4',\n component: {\n type: 'Card',\n id: 'item-4',\n children: ['text-4'],\n },\n },\n {\n id: 'text-4',\n component: {\n type: 'Text',\n id: 'text-4',\n content: 'List Item 4',\n },\n },\n {\n id: 'item-5',\n component: {\n type: 'Card',\n id: 'item-5',\n children: ['text-5'],\n },\n },\n {\n id: 'text-5',\n component: {\n type: 'Text',\n id: 'text-5',\n content: 'List Item 5',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { ModalComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ReactElement, ReactNode } from 'react'\nimport { isValidElement, useId } from 'react'\nimport { Dialog, DialogContent, DialogTitle, DialogTrigger } from '../../components/ui/dialog.js'\n\nexport const ModalRenderer: A2UIRenderer<ModalComponent> = {\n type: 'Modal',\n render: ({ component, children, id }: RendererProps<ModalComponent>) => {\n const titleId = useId()\n const childArray = Array.isArray(children) ? children : [children]\n const triggerChild = childArray.find(\n (c): c is ReactElement => isValidElement(c) && c.key === component.trigger,\n )\n const contentChild = childArray.find(\n (c): c is ReactElement => isValidElement(c) && c.key === component.content,\n )\n\n return (\n <Dialog>\n <DialogTrigger asChild>{triggerChild as ReactNode}</DialogTrigger>\n <DialogContent aria-labelledby={titleId}>\n <DialogTitle id={titleId} className=\"sr-only\">\n {`Dialog ${id}`}\n </DialogTitle>\n {contentChild as ReactNode}\n </DialogContent>\n </Dialog>\n )\n },\n example: {\n name: 'Modal',\n description: 'Dialog modal with trigger and content',\n category: 'container',\n messages: [\n {\n createSurface: {\n surfaceId: 'modal-example',\n root: 'modal-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'modal-example',\n components: [\n {\n id: 'modal-1',\n component: {\n type: 'Modal',\n id: 'modal-1',\n trigger: 'trigger-btn',\n content: 'modal-content',\n },\n },\n {\n id: 'trigger-btn',\n component: {\n type: 'Button',\n id: 'trigger-btn',\n child: 'trigger-text',\n primary: true,\n },\n },\n {\n id: 'trigger-text',\n component: {\n type: 'Text',\n id: 'trigger-text',\n content: 'Open Modal',\n },\n },\n {\n id: 'modal-content',\n component: {\n type: 'Column',\n id: 'modal-content',\n children: ['modal-title', 'modal-body'],\n },\n },\n {\n id: 'modal-title',\n component: {\n type: 'Text',\n id: 'modal-title',\n content: 'Modal Title',\n style: 'h3',\n },\n },\n {\n id: 'modal-body',\n component: {\n type: 'Text',\n id: 'modal-body',\n content: 'This is the modal content. Click outside or the X button to close.',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { TabsComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ReactNode } from 'react'\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '../../components/ui/tabs.js'\n\nexport const TabsRenderer: A2UIRenderer<TabsComponent> = {\n type: 'Tabs',\n render: ({ component, children }: RendererProps<TabsComponent>) => {\n const childArray = Array.isArray(children) ? children : children ? [children] : []\n\n return (\n <Tabs defaultValue={component.tabs[0]?.label}>\n <TabsList>\n {component.tabs.map((tab) => (\n <TabsTrigger key={tab.label} value={tab.label}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {component.tabs.map((tab, index) => (\n <TabsContent key={tab.label} value={tab.label}>\n {childArray[index] as ReactNode}\n </TabsContent>\n ))}\n </Tabs>\n )\n },\n example: {\n name: 'Tabs',\n description: 'Tabbed interface with multiple panels',\n category: 'container',\n messages: [\n {\n createSurface: {\n surfaceId: 'tabs-example',\n root: 'tabs-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'tabs-example',\n components: [\n {\n id: 'tabs-1',\n component: {\n type: 'Tabs',\n id: 'tabs-1',\n tabs: [\n { label: 'Overview', content: 'tab-content-1' },\n { label: 'Details', content: 'tab-content-2' },\n { label: 'Settings', content: 'tab-content-3' },\n ],\n },\n },\n {\n id: 'tab-content-1',\n component: {\n type: 'Text',\n id: 'tab-content-1',\n content: 'This is the Overview tab content.',\n },\n },\n {\n id: 'tab-content-2',\n component: {\n type: 'Text',\n id: 'tab-content-2',\n content: 'This is the Details tab content.',\n },\n },\n {\n id: 'tab-content-3',\n component: {\n type: 'Text',\n id: 'tab-content-3',\n content: 'This is the Settings tab content.',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { AudioPlayerComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { useState } from 'react'\nimport { cn } from '../../lib/utils.js'\n\nexport const AudioPlayerRenderer: A2UIRenderer<AudioPlayerComponent> = {\n type: 'AudioPlayer',\n render: ({ component }: RendererProps<AudioPlayerComponent>) => {\n const {\n url,\n autoplay = false,\n controls = true,\n loop = false,\n captionUrl,\n captionLabel = 'Captions',\n } = component\n const [hasError, setHasError] = useState(false)\n\n const handleError = () => {\n setHasError(true)\n }\n\n if (hasError) {\n return (\n <div\n className={cn(\n 'flex items-center justify-center rounded-md border border-destructive bg-destructive/10 p-4',\n 'text-sm text-destructive',\n )}\n >\n <span>Failed to load audio</span>\n </div>\n )\n }\n\n return (\n // biome-ignore lint/a11y/useMediaCaption: Captions are optional via captionUrl prop; not all audio content requires captions (music, sound effects)\n <audio\n src={url}\n autoPlay={autoplay}\n controls={controls}\n loop={loop}\n onError={handleError}\n className=\"w-full\"\n >\n {captionUrl && <track kind=\"captions\" src={captionUrl} label={captionLabel} default />}\n Your browser does not support the audio element.\n </audio>\n )\n },\n example: {\n name: 'Audio Player',\n description: 'HTML5 audio player with controls',\n category: 'display',\n messages: [\n {\n createSurface: {\n surfaceId: 'audio-example',\n root: 'root',\n },\n },\n {\n updateComponents: {\n surfaceId: 'audio-example',\n components: [\n {\n id: 'root',\n component: {\n type: 'Column',\n id: 'root',\n distribution: 'packed',\n children: ['title', 'audio', 'caption'],\n },\n },\n {\n id: 'title',\n component: {\n type: 'Text',\n id: 'title',\n content: 'Audio Player Example',\n style: 'h3',\n },\n },\n {\n id: 'audio',\n component: {\n type: 'AudioPlayer',\n id: 'audio',\n url: 'https://www.w3schools.com/html/horse.mp3',\n controls: true,\n loop: false,\n },\n },\n {\n id: 'caption',\n component: {\n type: 'Text',\n id: 'caption',\n content: 'HTML5 audio with controls and error handling',\n style: 'caption',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import * as SeparatorPrimitive from '@radix-ui/react-separator'\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-border',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className,\n )}\n {...props}\n />\n))\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","import type { DividerComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Separator } from '../../components/ui/separator.js'\n\nexport const DividerRenderer: A2UIRenderer<DividerComponent> = {\n type: 'Divider',\n render: ({ component }: RendererProps<DividerComponent>) => {\n const { orientation = 'horizontal' } = component\n\n return <Separator orientation={orientation} />\n },\n example: {\n name: 'Divider',\n description: 'Renders horizontal or vertical dividers using Separator component',\n category: 'display',\n messages: [\n {\n createSurface: {\n surfaceId: 'divider-demo',\n root: 'root',\n },\n },\n {\n updateComponents: {\n surfaceId: 'divider-demo',\n components: [\n {\n id: 'root',\n component: {\n type: 'Column',\n id: 'root',\n distribution: 'packed',\n children: ['title1', 'divider-h', 'title2', 'row-vertical', 'caption'],\n },\n },\n {\n id: 'title1',\n component: {\n type: 'Text',\n id: 'title1',\n content: 'Section 1',\n style: 'h4',\n },\n },\n {\n id: 'divider-h',\n component: {\n type: 'Divider',\n id: 'divider-h',\n orientation: 'horizontal',\n },\n },\n {\n id: 'title2',\n component: {\n type: 'Text',\n id: 'title2',\n content: 'Section 2',\n style: 'h4',\n },\n },\n {\n id: 'row-vertical',\n component: {\n type: 'Row',\n id: 'row-vertical',\n distribution: 'packed',\n children: ['text-left', 'divider-v', 'text-right'],\n },\n },\n {\n id: 'text-left',\n component: {\n type: 'Text',\n id: 'text-left',\n content: 'Left',\n style: 'body',\n },\n },\n {\n id: 'divider-v',\n component: {\n type: 'Divider',\n id: 'divider-v',\n orientation: 'vertical',\n },\n },\n {\n id: 'text-right',\n component: {\n type: 'Text',\n id: 'text-right',\n content: 'Right',\n style: 'body',\n },\n },\n {\n id: 'caption',\n component: {\n type: 'Text',\n id: 'caption',\n content: 'Divider with horizontal and vertical orientations',\n style: 'caption',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { IconComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { LucideIcon } from 'lucide-react'\nimport { HelpCircle, icons } from 'lucide-react'\nimport { cn } from '../../lib/utils.js'\n\nexport const IconRenderer: A2UIRenderer<IconComponent> = {\n type: 'Icon',\n render: ({ component }: RendererProps<IconComponent>) => {\n const { name } = component\n\n // Dynamic icon lookup from lucide-react icons object\n const IconComponent = icons[name as keyof typeof icons] as LucideIcon | undefined\n\n // Fallback for unknown icons\n if (!IconComponent) {\n return (\n <HelpCircle\n className={cn('h-5 w-5 text-muted-foreground')}\n aria-label={`Unknown icon: ${name}`}\n />\n )\n }\n\n return <IconComponent className={cn('h-5 w-5')} aria-label={name} />\n },\n example: {\n name: 'Icon',\n description: 'Renders icons from lucide-react with dynamic lookup',\n category: 'display',\n messages: [\n {\n createSurface: {\n surfaceId: 'icon-demo',\n root: 'root',\n },\n },\n {\n updateComponents: {\n surfaceId: 'icon-demo',\n components: [\n {\n id: 'root',\n component: {\n type: 'Column',\n id: 'root',\n distribution: 'packed',\n children: ['title', 'icon-row', 'caption'],\n },\n },\n {\n id: 'title',\n component: {\n type: 'Text',\n id: 'title',\n content: 'Icon Examples',\n style: 'h3',\n },\n },\n {\n id: 'icon-row',\n component: {\n type: 'Row',\n id: 'icon-row',\n distribution: 'packed',\n children: [\n 'icon-home',\n 'icon-search',\n 'icon-settings',\n 'icon-heart',\n 'icon-unknown',\n ],\n },\n },\n {\n id: 'icon-home',\n component: {\n type: 'Icon',\n id: 'icon-home',\n name: 'Home',\n },\n },\n {\n id: 'icon-search',\n component: {\n type: 'Icon',\n id: 'icon-search',\n name: 'Search',\n },\n },\n {\n id: 'icon-settings',\n component: {\n type: 'Icon',\n id: 'icon-settings',\n name: 'Settings',\n },\n },\n {\n id: 'icon-heart',\n component: {\n type: 'Icon',\n id: 'icon-heart',\n name: 'Heart',\n },\n },\n {\n id: 'icon-unknown',\n component: {\n type: 'Icon',\n id: 'icon-unknown',\n name: 'UnknownIconName',\n },\n },\n {\n id: 'caption',\n component: {\n type: 'Text',\n id: 'caption',\n content: 'Icons from lucide-react (last one shows fallback for unknown icon)',\n style: 'caption',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { ImageComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { useState } from 'react'\nimport { cn } from '../../lib/utils.js'\n\nexport const ImageRenderer: A2UIRenderer<ImageComponent> = {\n type: 'Image',\n render: ({ component }: RendererProps<ImageComponent>) => {\n const { url, alt = 'Image' } = component\n const [isLoading, setIsLoading] = useState(true)\n const [hasError, setHasError] = useState(false)\n\n const handleLoad = () => {\n setIsLoading(false)\n }\n\n const handleError = () => {\n setIsLoading(false)\n setHasError(true)\n }\n\n if (hasError) {\n return (\n <div\n className={cn(\n 'flex items-center justify-center rounded-md border border-destructive bg-destructive/10 p-4',\n 'text-sm text-destructive',\n )}\n >\n <span>Failed to load image</span>\n </div>\n )\n }\n\n return (\n <div className=\"relative\">\n {isLoading && (\n <div\n className={cn(\n 'absolute inset-0 animate-pulse rounded-md bg-muted',\n 'flex items-center justify-center',\n )}\n >\n <span className=\"text-xs text-muted-foreground\">Loading...</span>\n </div>\n )}\n <img\n src={url}\n alt={alt}\n onLoad={handleLoad}\n onError={handleError}\n className={cn(\n 'max-w-full rounded-md object-contain transition-opacity',\n isLoading ? 'opacity-0' : 'opacity-100',\n )}\n />\n </div>\n )\n },\n example: {\n name: 'Image',\n description: 'Renders images with loading state and error handling',\n category: 'display',\n messages: [\n {\n createSurface: {\n surfaceId: 'image-demo',\n root: 'root',\n },\n },\n {\n updateComponents: {\n surfaceId: 'image-demo',\n components: [\n {\n id: 'root',\n component: {\n type: 'Column',\n id: 'root',\n distribution: 'packed',\n children: ['title', 'image-valid', 'caption'],\n },\n },\n {\n id: 'title',\n component: {\n type: 'Text',\n id: 'title',\n content: 'Image Example',\n style: 'h3',\n },\n },\n {\n id: 'image-valid',\n component: {\n type: 'Image',\n id: 'image-valid',\n url: 'https://picsum.photos/400/200',\n alt: 'Beautiful landscape photograph',\n },\n },\n {\n id: 'caption',\n component: {\n type: 'Text',\n id: 'caption',\n content: 'Image with loading state and error handling',\n style: 'caption',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { TextComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ElementType } from 'react'\nimport { cn } from '../../lib/utils.js'\n\nexport const TextRenderer: A2UIRenderer<TextComponent> = {\n type: 'Text',\n render: ({ component, data }: RendererProps<TextComponent>) => {\n const { content, style = 'body', dataPath } = component\n\n // If dataPath is specified, read from data model; otherwise use content\n const displayContent = dataPath ? (data.get<string>(dataPath) ?? content) : content\n\n const styleMap: Record<string, { tag: ElementType; className: string }> = {\n h1: { tag: 'h1', className: 'text-4xl font-bold' },\n h2: { tag: 'h2', className: 'text-3xl font-semibold' },\n h3: { tag: 'h3', className: 'text-2xl font-semibold' },\n h4: { tag: 'h4', className: 'text-xl font-medium' },\n h5: { tag: 'h5', className: 'text-lg font-medium' },\n caption: { tag: 'span', className: 'text-sm text-muted-foreground' },\n body: { tag: 'p', className: 'text-base' },\n }\n\n const styleConfig = styleMap[style] ?? styleMap.body\n const Tag = styleConfig!.tag\n const className = styleConfig!.className\n\n return <Tag className={cn(className)}>{displayContent}</Tag>\n },\n example: {\n name: 'Text',\n description: 'Renders text with semantic styling (h1-h5, body, caption)',\n category: 'display',\n messages: [\n {\n createSurface: {\n surfaceId: 'text-demo',\n root: 'root',\n },\n },\n {\n updateComponents: {\n surfaceId: 'text-demo',\n components: [\n {\n id: 'root',\n component: {\n type: 'Column',\n id: 'root',\n distribution: 'packed',\n children: ['h1', 'h2', 'h3', 'h4', 'h5', 'body', 'caption'],\n },\n },\n {\n id: 'h1',\n component: {\n type: 'Text',\n id: 'h1',\n content: 'Heading 1 - Large Title',\n style: 'h1',\n },\n },\n {\n id: 'h2',\n component: {\n type: 'Text',\n id: 'h2',\n content: 'Heading 2 - Section Title',\n style: 'h2',\n },\n },\n {\n id: 'h3',\n component: {\n type: 'Text',\n id: 'h3',\n content: 'Heading 3 - Subsection',\n style: 'h3',\n },\n },\n {\n id: 'h4',\n component: {\n type: 'Text',\n id: 'h4',\n content: 'Heading 4 - Component Title',\n style: 'h4',\n },\n },\n {\n id: 'h5',\n component: {\n type: 'Text',\n id: 'h5',\n content: 'Heading 5 - Small Title',\n style: 'h5',\n },\n },\n {\n id: 'body',\n component: {\n type: 'Text',\n id: 'body',\n content: 'Body text paragraph with regular content and default styling.',\n style: 'body',\n },\n },\n {\n id: 'caption',\n component: {\n type: 'Text',\n id: 'caption',\n content: 'Caption text - muted and small',\n style: 'caption',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { VideoComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { useState } from 'react'\nimport { cn } from '../../lib/utils.js'\n\nexport const VideoRenderer: A2UIRenderer<VideoComponent> = {\n type: 'Video',\n render: ({ component }: RendererProps<VideoComponent>) => {\n const {\n url,\n poster,\n autoplay = false,\n controls = true,\n loop = false,\n muted = false,\n captionUrl,\n captionLabel = 'Captions',\n } = component\n const [hasError, setHasError] = useState(false)\n\n const handleError = () => {\n setHasError(true)\n }\n\n if (hasError) {\n return (\n <div\n className={cn(\n 'flex items-center justify-center rounded-md border border-destructive bg-destructive/10 p-4',\n 'text-sm text-destructive',\n )}\n >\n <span>Failed to load video</span>\n </div>\n )\n }\n\n return (\n <video\n src={url}\n poster={poster}\n autoPlay={autoplay}\n controls={controls}\n loop={loop}\n muted={muted}\n onError={handleError}\n className=\"max-w-full rounded-md\"\n >\n {captionUrl && <track kind=\"captions\" src={captionUrl} label={captionLabel} default />}\n Your browser does not support the video element.\n </video>\n )\n },\n example: {\n name: 'Video',\n description: 'HTML5 video player with controls',\n category: 'display',\n messages: [\n {\n createSurface: {\n surfaceId: 'video-example',\n root: 'root',\n },\n },\n {\n updateComponents: {\n surfaceId: 'video-example',\n components: [\n {\n id: 'root',\n component: {\n type: 'Column',\n id: 'root',\n distribution: 'packed',\n children: ['title', 'video', 'caption'],\n },\n },\n {\n id: 'title',\n component: {\n type: 'Text',\n id: 'title',\n content: 'Video Player Example',\n style: 'h3',\n },\n },\n {\n id: 'video',\n component: {\n type: 'Video',\n id: 'video',\n url: 'https://www.w3schools.com/html/mov_bbb.mp4',\n controls: true,\n loop: false,\n muted: false,\n },\n },\n {\n id: 'caption',\n component: {\n type: 'Text',\n id: 'caption',\n content: 'HTML5 video with controls and error handling',\n style: 'caption',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { AnimatedButtonComponent } from 'a2ui-react-core'\nimport { type A2UIRenderer, createActionHandler, type RendererProps } from 'a2ui-react-react'\nimport { motion } from 'framer-motion'\nimport type { ReactNode } from 'react'\nimport { getButtonClassName, getButtonStyle } from '../../utils/index.js'\n\nexport const AnimatedButtonRenderer: A2UIRenderer<AnimatedButtonComponent> = {\n type: 'AnimatedButton',\n render: ({ component, children, data, onAction }: RendererProps<AnimatedButtonComponent>) => {\n const handleClick = createActionHandler(component, data, onAction)\n\n return (\n <motion.button\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n transition={{ type: 'spring', stiffness: 400, damping: 17 }}\n onClick={handleClick}\n className={getButtonClassName(component.primary)}\n style={getButtonStyle(component.primary)}\n >\n {children as ReactNode}\n </motion.button>\n )\n },\n example: {\n name: 'Animated Button',\n description: 'Button with spring animations using framer-motion',\n category: 'interactive',\n messages: [\n {\n createSurface: {\n surfaceId: 'animated-button-example',\n root: 'row-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'animated-button-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'packed',\n children: ['btn-primary', 'btn-secondary'],\n },\n },\n {\n id: 'btn-primary',\n component: {\n type: 'AnimatedButton',\n id: 'btn-primary',\n child: 'text-primary',\n primary: true,\n action: 'submit',\n },\n },\n {\n id: 'text-primary',\n component: {\n type: 'Text',\n id: 'text-primary',\n content: 'Animated Primary',\n },\n },\n {\n id: 'btn-secondary',\n component: {\n type: 'AnimatedButton',\n id: 'btn-secondary',\n child: 'text-secondary',\n primary: false,\n action: 'cancel',\n },\n },\n {\n id: 'text-secondary',\n component: {\n type: 'Text',\n id: 'text-secondary',\n content: 'Animated Secondary',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { ButtonComponent } from 'a2ui-react-core'\nimport { type A2UIRenderer, createActionHandler, type RendererProps } from 'a2ui-react-react'\nimport type { ReactNode } from 'react'\nimport { Button } from '../../components/ui/button.js'\n\nexport const ButtonRenderer: A2UIRenderer<ButtonComponent> = {\n type: 'Button',\n render: ({ component, children, data, onAction }: RendererProps<ButtonComponent>) => {\n const handleClick = createActionHandler(component, data, onAction)\n\n return (\n <Button variant={component.primary ? 'default' : 'outline'} onClick={handleClick}>\n {children as ReactNode}\n </Button>\n )\n },\n example: {\n name: 'Button',\n description: 'Clickable button with primary/secondary variants',\n category: 'interactive',\n messages: [\n {\n createSurface: {\n surfaceId: 'button-example',\n root: 'row-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'button-example',\n components: [\n {\n id: 'row-1',\n component: {\n type: 'Row',\n id: 'row-1',\n distribution: 'packed',\n children: ['btn-primary', 'btn-secondary'],\n },\n },\n {\n id: 'btn-primary',\n component: {\n type: 'Button',\n id: 'btn-primary',\n child: 'text-primary',\n primary: true,\n action: 'submit',\n },\n },\n {\n id: 'text-primary',\n component: {\n type: 'Text',\n id: 'text-primary',\n content: 'Primary Button',\n },\n },\n {\n id: 'btn-secondary',\n component: {\n type: 'Button',\n id: 'btn-secondary',\n child: 'text-secondary',\n primary: false,\n action: 'cancel',\n },\n },\n {\n id: 'text-secondary',\n component: {\n type: 'Text',\n id: 'text-secondary',\n content: 'Secondary Button',\n },\n },\n ],\n },\n },\n ],\n },\n}\n","/**\n * Checkbox Component Renderer\n * Supports @extension a2ui-react accessibility props (required, disabled, errorMessage, helpText)\n */\nimport type { CheckboxComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Checkbox } from '../../components/ui/checkbox.js'\nimport { Label } from '../../components/ui/label.js'\n\nexport const CheckboxRenderer: A2UIRenderer<CheckboxComponent> = {\n type: 'Checkbox',\n render: ({ component, data, id }: RendererProps<CheckboxComponent>) => {\n const value = component.dataPath ? data.get<boolean>(component.dataPath) : false\n\n const handleChange = (checked: boolean) => {\n if (component.dataPath) {\n data.set(component.dataPath, checked)\n }\n }\n\n // @extension a2ui-react: Extended accessibility props\n const errorId = component.errorMessage ? `${id}-error` : undefined\n const helpId = component.helpText ? `${id}-help` : undefined\n const describedBy = [errorId, helpId].filter(Boolean).join(' ') || undefined\n\n return (\n <div className=\"space-y-2\">\n <div className=\"flex items-center gap-3\">\n <Checkbox\n id={id}\n checked={value || false}\n onCheckedChange={handleChange}\n disabled={component.disabled}\n required={component.required}\n aria-required={component.required}\n aria-invalid={!!component.errorMessage}\n aria-describedby={describedBy}\n />\n {component.label && (\n <Label htmlFor={id} className={component.disabled ? 'opacity-50' : ''}>\n {component.label}\n {component.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n )}\n </div>\n {/* @extension a2ui-react: Help text */}\n {component.helpText && (\n <p id={helpId} className=\"text-sm text-muted-foreground ml-7\">\n {component.helpText}\n </p>\n )}\n {/* @extension a2ui-react: Error message */}\n {component.errorMessage && (\n <p id={errorId} className=\"text-sm text-destructive ml-7\">\n {component.errorMessage}\n </p>\n )}\n </div>\n )\n },\n example: {\n name: 'Checkbox',\n description: 'Checkbox with label and data binding',\n category: 'interactive',\n messages: [\n {\n createSurface: {\n surfaceId: 'checkbox-example',\n root: 'col-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'checkbox-example',\n components: [\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n distribution: 'packed',\n children: ['cb-1', 'cb-2', 'cb-3'],\n },\n },\n {\n id: 'cb-1',\n component: {\n type: 'Checkbox',\n id: 'cb-1',\n label: 'Accept terms and conditions',\n dataPath: 'form.acceptTerms',\n },\n },\n {\n id: 'cb-2',\n component: {\n type: 'Checkbox',\n id: 'cb-2',\n label: 'Subscribe to newsletter',\n dataPath: 'form.newsletter',\n },\n },\n {\n id: 'cb-3',\n component: {\n type: 'Checkbox',\n id: 'cb-3',\n label: 'Enable notifications',\n dataPath: 'form.notifications',\n },\n },\n ],\n },\n },\n {\n dataModelUpdate: {\n surfaceId: 'checkbox-example',\n values: [\n { path: 'form.acceptTerms', value: true },\n { path: 'form.newsletter', value: false },\n { path: 'form.notifications', value: true },\n ],\n },\n },\n ],\n },\n}\n","/**\n * DateTimeInput Component Renderer\n * Supports @extension a2ui-react accessibility props (required, disabled, errorMessage, helpText)\n */\nimport type { DateTimeInputComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Input } from '../../components/ui/input.js'\nimport { Label } from '../../components/ui/label.js'\n\nexport const DateTimeInputRenderer: A2UIRenderer<DateTimeInputComponent> = {\n type: 'DateTimeInput',\n render: ({ component, data, id }: RendererProps<DateTimeInputComponent>) => {\n const value = (component.dataPath ? data.get<string>(component.dataPath) : '') || ''\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (component.dataPath) {\n data.set(component.dataPath, e.target.value)\n }\n }\n\n // @extension a2ui-react: Extended accessibility props\n const errorId = component.errorMessage ? `${id}-error` : undefined\n const helpId = component.helpText ? `${id}-help` : undefined\n const describedBy = [errorId, helpId].filter(Boolean).join(' ') || undefined\n\n return (\n <div className=\"grid gap-2\">\n {component.label && (\n <Label htmlFor={id} className={component.disabled ? 'opacity-50' : ''}>\n {component.label}\n {component.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n )}\n <Input\n id={id}\n type={component.inputType}\n value={value}\n onChange={handleChange}\n disabled={component.disabled}\n required={component.required}\n aria-label={component.label || `${component.inputType} input`}\n aria-required={component.required}\n aria-invalid={!!component.errorMessage}\n aria-describedby={describedBy}\n />\n {/* @extension a2ui-react: Help text */}\n {component.helpText && (\n <p id={helpId} className=\"text-sm text-muted-foreground\">\n {component.helpText}\n </p>\n )}\n {/* @extension a2ui-react: Error message */}\n {component.errorMessage && (\n <p id={errorId} className=\"text-sm text-destructive\">\n {component.errorMessage}\n </p>\n )}\n </div>\n )\n },\n example: {\n name: 'DateTimeInput',\n description: 'Date, time, and datetime picker using native HTML5 inputs',\n category: 'interactive',\n messages: [\n {\n createSurface: {\n surfaceId: 'datetime-example',\n root: 'col-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'datetime-example',\n components: [\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n distribution: 'packed',\n children: ['dt-date', 'dt-time', 'dt-datetime'],\n },\n },\n {\n id: 'dt-date',\n component: {\n type: 'DateTimeInput',\n id: 'dt-date',\n label: 'Date',\n inputType: 'date',\n dataPath: 'form.date',\n },\n },\n {\n id: 'dt-time',\n component: {\n type: 'DateTimeInput',\n id: 'dt-time',\n label: 'Time',\n inputType: 'time',\n dataPath: 'form.time',\n },\n },\n {\n id: 'dt-datetime',\n component: {\n type: 'DateTimeInput',\n id: 'dt-datetime',\n label: 'Date & Time',\n inputType: 'datetime-local',\n dataPath: 'form.datetime',\n },\n },\n ],\n },\n },\n {\n dataModelUpdate: {\n surfaceId: 'datetime-example',\n values: [\n { path: 'form.date', value: '2024-01-15' },\n { path: 'form.time', value: '14:30' },\n { path: 'form.datetime', value: '2024-01-15T14:30' },\n ],\n },\n },\n ],\n },\n}\n","/**\n * MultipleChoice Component Renderer\n * Supports @extension a2ui-react-shadcn accessibility props (required, disabled, errorMessage, helpText)\n */\nimport type { MultipleChoiceComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Checkbox } from '../../components/ui/checkbox.js'\n\nexport const MultipleChoiceRenderer: A2UIRenderer<MultipleChoiceComponent> = {\n type: 'MultipleChoice',\n render: ({ component, data, id }: RendererProps<MultipleChoiceComponent>) => {\n const selectedValues = component.dataPath ? data.get<string[]>(component.dataPath) : []\n const currentSelection = Array.isArray(selectedValues) ? selectedValues : []\n\n const handleChange = (optionValue: string, checked: boolean) => {\n if (!component.dataPath) return\n\n let newSelection: string[]\n if (checked) {\n // Add the value\n newSelection = [...currentSelection, optionValue]\n // Enforce maxSelections if specified\n if (component.maxSelections && newSelection.length > component.maxSelections) {\n newSelection = newSelection.slice(-component.maxSelections)\n }\n } else {\n // Remove the value\n newSelection = currentSelection.filter((v) => v !== optionValue)\n }\n\n data.set(component.dataPath, newSelection)\n }\n\n // @extension a2ui-react-shadcn: Extended accessibility props\n const errorId = component.errorMessage ? `${id}-error` : undefined\n const helpId = component.helpText ? `${id}-help` : undefined\n const isGroupDisabled = component.disabled\n\n const content = (\n <>\n {component.options.map((option) => {\n const isChecked = currentSelection.includes(option.value)\n const isDisabled =\n isGroupDisabled ||\n (component.maxSelections !== undefined &&\n currentSelection.length >= component.maxSelections &&\n !isChecked)\n\n const checkboxId = `${id}-${option.value}`\n return (\n <div\n key={option.value}\n className=\"flex items-center gap-3\"\n style={{\n opacity: isDisabled ? 0.5 : 1,\n }}\n >\n <Checkbox\n id={checkboxId}\n checked={isChecked}\n disabled={isDisabled}\n onCheckedChange={(checked) => handleChange(option.value, checked === true)}\n />\n <label\n htmlFor={checkboxId}\n className=\"text-sm font-medium leading-none cursor-pointer select-none\"\n style={{\n color: 'hsl(var(--foreground))',\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n }}\n >\n {option.label}\n </label>\n </div>\n )\n })}\n {component.maxSelections !== undefined && (\n <p className=\"text-xs\" style={{ color: 'hsl(var(--muted-foreground))' }}>\n {currentSelection.length} of {component.maxSelections} selected\n </p>\n )}\n {/* @extension a2ui-react-shadcn: Help text */}\n {component.helpText && (\n <p id={helpId} className=\"text-sm text-muted-foreground\">\n {component.helpText}\n </p>\n )}\n {/* @extension a2ui-react-shadcn: Error message */}\n {component.errorMessage && (\n <p id={errorId} className=\"text-sm text-destructive\">\n {component.errorMessage}\n </p>\n )}\n </>\n )\n\n // Use fieldset/legend for proper accessibility grouping when label is provided\n if (component.label) {\n return (\n <fieldset\n className=\"flex flex-col gap-3 border-0 p-0 m-0\"\n aria-invalid={!!component.errorMessage}\n aria-describedby={[errorId, helpId].filter(Boolean).join(' ') || undefined}\n >\n <legend\n className=\"text-sm font-medium mb-2\"\n style={{ color: 'hsl(var(--foreground))', opacity: isGroupDisabled ? 0.5 : 1 }}\n >\n {component.label}\n {component.required && <span className=\"text-destructive ml-1\">*</span>}\n </legend>\n {content}\n </fieldset>\n )\n }\n\n return (\n <fieldset\n className=\"flex flex-col gap-3 border-0 p-0 m-0\"\n aria-label=\"Options\"\n aria-invalid={!!component.errorMessage}\n aria-describedby={[errorId, helpId].filter(Boolean).join(' ') || undefined}\n >\n {content}\n </fieldset>\n )\n },\n example: {\n name: 'MultipleChoice',\n description: 'Checkbox group for multi-select with optional max selections',\n category: 'interactive',\n messages: [\n {\n createSurface: {\n surfaceId: 'multiplechoice-example',\n root: 'col-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'multiplechoice-example',\n components: [\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n distribution: 'packed',\n children: ['mc-1', 'mc-2'],\n },\n },\n {\n id: 'mc-1',\n component: {\n type: 'MultipleChoice',\n id: 'mc-1',\n options: [\n { value: 'js', label: 'JavaScript' },\n { value: 'ts', label: 'TypeScript' },\n { value: 'py', label: 'Python' },\n { value: 'go', label: 'Go' },\n { value: 'rust', label: 'Rust' },\n ],\n dataPath: 'form.languages',\n },\n },\n {\n id: 'mc-2',\n component: {\n type: 'MultipleChoice',\n id: 'mc-2',\n options: [\n { value: 'red', label: 'Red' },\n { value: 'blue', label: 'Blue' },\n { value: 'green', label: 'Green' },\n { value: 'yellow', label: 'Yellow' },\n ],\n maxSelections: 2,\n dataPath: 'form.colors',\n },\n },\n ],\n },\n },\n {\n dataModelUpdate: {\n surfaceId: 'multiplechoice-example',\n values: [\n { path: 'form.languages', value: ['js', 'ts'] },\n { path: 'form.colors', value: ['blue'] },\n ],\n },\n },\n ],\n },\n}\n","/**\n * Select Component Renderer\n * Supports @extension a2ui-react accessibility props (required, disabled, errorMessage, helpText)\n */\nimport type { SelectComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Label } from '../../components/ui/label.js'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../../components/ui/select.js'\n\nexport const SelectRenderer: A2UIRenderer<SelectComponent> = {\n type: 'Select',\n render: ({ component, data, id }: RendererProps<SelectComponent>) => {\n const value = component.dataPath ? data.get<string>(component.dataPath) : ''\n\n const handleChange = (newValue: string) => {\n if (component.dataPath) {\n data.set(component.dataPath, newValue)\n }\n }\n\n // @extension a2ui-react: Extended accessibility props\n const errorId = component.errorMessage ? `${id}-error` : undefined\n const helpId = component.helpText ? `${id}-help` : undefined\n const describedBy = [errorId, helpId].filter(Boolean).join(' ') || undefined\n\n return (\n <div className=\"grid gap-2\">\n {component.label && (\n <Label htmlFor={id} className={component.disabled ? 'opacity-50' : ''}>\n {component.label}\n {component.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n )}\n <Select\n value={value || undefined}\n onValueChange={handleChange}\n disabled={component.disabled}\n >\n <SelectTrigger\n id={id}\n className=\"w-full\"\n aria-label={component.label || component.placeholder || 'Select an option'}\n aria-required={component.required}\n aria-invalid={!!component.errorMessage}\n aria-describedby={describedBy}\n >\n <SelectValue placeholder={component.placeholder || 'Select an option'} />\n </SelectTrigger>\n <SelectContent>\n {component.options.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {/* @extension a2ui-react: Help text */}\n {component.helpText && (\n <p id={helpId} className=\"text-sm text-muted-foreground\">\n {component.helpText}\n </p>\n )}\n {/* @extension a2ui-react: Error message */}\n {component.errorMessage && (\n <p id={errorId} className=\"text-sm text-destructive\">\n {component.errorMessage}\n </p>\n )}\n </div>\n )\n },\n example: {\n name: 'Select',\n description: 'Dropdown select with options and data binding',\n category: 'interactive',\n messages: [\n {\n createSurface: {\n surfaceId: 'select-example',\n root: 'col-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'select-example',\n components: [\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n distribution: 'packed',\n children: ['select-1', 'select-2'],\n },\n },\n {\n id: 'select-1',\n component: {\n type: 'Select',\n id: 'select-1',\n placeholder: 'Choose a country',\n options: [\n { value: 'us', label: 'United States' },\n { value: 'uk', label: 'United Kingdom' },\n { value: 'de', label: 'Germany' },\n { value: 'fr', label: 'France' },\n { value: 'es', label: 'Spain' },\n ],\n dataPath: 'form.country',\n },\n },\n {\n id: 'select-2',\n component: {\n type: 'Select',\n id: 'select-2',\n placeholder: 'Select a category',\n options: [\n { value: 'tech', label: 'Technology' },\n { value: 'design', label: 'Design' },\n { value: 'business', label: 'Business' },\n { value: 'marketing', label: 'Marketing' },\n ],\n dataPath: 'form.category',\n },\n },\n ],\n },\n },\n {\n dataModelUpdate: {\n surfaceId: 'select-example',\n values: [\n { path: 'form.country', value: 'us' },\n { path: 'form.category', value: 'tech' },\n ],\n },\n },\n ],\n },\n}\n","'use client'\n\nimport * as SliderPrimitive from '@radix-ui/react-slider'\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils.js'\n\n// Exact shadcn/ui v4 Slider - https://ui.shadcn.com/docs/components/slider\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const baseId = React.useId()\n const _values = React.useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n )\n\n const thumbIds = React.useMemo(\n () => Array.from({ length: _values.length }, (_, i) => `${baseId}-thumb-${i}`),\n [_values.length, baseId],\n )\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n 'bg-muted relative grow overflow-hidden rounded-full h-1.5 w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5',\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n 'bg-primary absolute h-full data-[orientation=vertical]:h-auto data-[orientation=vertical]:w-full',\n )}\n />\n </SliderPrimitive.Track>\n {thumbIds.map((id) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={id}\n className=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border-2 bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","/**\n * Slider Component Renderer\n * Supports @extension a2ui-react-shadcn accessibility props (required, disabled, errorMessage, helpText)\n */\nimport type { SliderComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Label } from '../../components/ui/label.js'\nimport { Slider } from '../../components/ui/slider.js'\n\nexport const SliderRenderer: A2UIRenderer<SliderComponent> = {\n type: 'Slider',\n render: ({ component, data, id }: RendererProps<SliderComponent>) => {\n const value = component.dataPath ? data.get<number>(component.dataPath) : component.min || 0\n\n const handleChange = (values: number[]) => {\n if (component.dataPath && values.length > 0) {\n data.set(component.dataPath, values[0])\n }\n }\n\n const min = component.min ?? 0\n const max = component.max ?? 100\n const step = component.step ?? 1\n const currentValue = value ?? min\n\n // Generate aria-label from dataPath or use a default\n const ariaLabel =\n component.dataPath\n ?.split('.')\n .pop()\n ?.replace(/([A-Z])/g, ' $1')\n .trim() || `Slider from ${min} to ${max}`\n\n // @extension a2ui-react-shadcn: Extended accessibility props\n const errorId = component.errorMessage ? `${id}-error` : undefined\n const helpId = component.helpText ? `${id}-help` : undefined\n const describedBy = [errorId, helpId].filter(Boolean).join(' ') || undefined\n\n return (\n <div className=\"space-y-2 w-full min-w-[200px]\">\n {component.label && (\n <Label htmlFor={id} className={component.disabled ? 'opacity-50' : ''}>\n {component.label}\n {component.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n )}\n <Slider\n id={id}\n min={min}\n max={max}\n step={step}\n value={[currentValue]}\n onValueChange={handleChange}\n disabled={component.disabled}\n aria-label={component.label || ariaLabel}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentValue}\n aria-required={component.required}\n aria-invalid={!!component.errorMessage}\n aria-describedby={describedBy}\n className=\"w-full\"\n />\n <div\n className=\"text-sm text-center font-medium\"\n style={{ color: 'hsl(var(--foreground))' }}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {currentValue}\n </div>\n {/* @extension a2ui-react-shadcn: Help text */}\n {component.helpText && (\n <p id={helpId} className=\"text-sm text-muted-foreground\">\n {component.helpText}\n </p>\n )}\n {/* @extension a2ui-react-shadcn: Error message */}\n {component.errorMessage && (\n <p id={errorId} className=\"text-sm text-destructive\">\n {component.errorMessage}\n </p>\n )}\n </div>\n )\n },\n example: {\n name: 'Slider',\n description: 'Range slider for numeric input with min/max/step configuration',\n category: 'interactive',\n messages: [\n {\n createSurface: {\n surfaceId: 'slider-example',\n root: 'col-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'slider-example',\n components: [\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n distribution: 'packed',\n children: ['slider-1', 'slider-2', 'slider-3'],\n },\n },\n {\n id: 'slider-1',\n component: {\n type: 'Slider',\n id: 'slider-1',\n min: 0,\n max: 100,\n step: 1,\n dataPath: 'form.volume',\n },\n },\n {\n id: 'slider-2',\n component: {\n type: 'Slider',\n id: 'slider-2',\n min: 0,\n max: 10,\n step: 0.5,\n dataPath: 'form.rating',\n },\n },\n {\n id: 'slider-3',\n component: {\n type: 'Slider',\n id: 'slider-3',\n min: 18,\n max: 120,\n step: 1,\n dataPath: 'form.age',\n },\n },\n ],\n },\n },\n {\n dataModelUpdate: {\n surfaceId: 'slider-example',\n values: [\n { path: 'form.volume', value: 50 },\n { path: 'form.rating', value: 7.5 },\n { path: 'form.age', value: 30 },\n ],\n },\n },\n ],\n },\n}\n","import type { TextFieldComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport { Input } from '../../components/ui/input.js'\nimport { Label } from '../../components/ui/label.js'\nimport { Textarea } from '../../components/ui/textarea.js'\n\nexport const TextFieldRenderer: A2UIRenderer<TextFieldComponent> = {\n type: 'TextField',\n render: ({ component, data, id }: RendererProps<TextFieldComponent>) => {\n const value = (component.dataPath ? data.get<string>(component.dataPath) : '') || ''\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (component.dataPath) {\n data.set(component.dataPath, e.target.value)\n }\n }\n\n const inputType = component.inputType || 'shortText'\n\n // @extension a2ui-react-shadcn: Extended accessibility props\n const errorId = component.errorMessage ? `${id}-error` : undefined\n const helpId = component.helpText ? `${id}-help` : undefined\n const describedBy = [errorId, helpId].filter(Boolean).join(' ') || undefined\n\n const sharedProps = {\n id,\n disabled: component.disabled,\n required: component.required,\n 'aria-required': component.required,\n 'aria-invalid': !!component.errorMessage,\n 'aria-describedby': describedBy,\n }\n\n if (inputType === 'longText') {\n return (\n <div className=\"grid gap-2\">\n {component.label && (\n <Label htmlFor={id}>\n {component.label}\n {component.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n )}\n <Textarea\n {...sharedProps}\n value={value}\n onChange={handleChange}\n placeholder={component.placeholder || component.label}\n />\n {component.helpText && (\n <p id={helpId} className=\"text-sm text-muted-foreground\">\n {component.helpText}\n </p>\n )}\n {component.errorMessage && (\n <p id={errorId} className=\"text-sm text-destructive\" role=\"alert\">\n {component.errorMessage}\n </p>\n )}\n </div>\n )\n }\n\n let type = 'text'\n switch (inputType) {\n case 'number':\n type = 'number'\n break\n case 'date':\n type = 'date'\n break\n case 'obscured':\n type = 'password'\n break\n default:\n type = 'text'\n break\n }\n\n return (\n <div className=\"grid gap-2\">\n {component.label && (\n <Label htmlFor={id}>\n {component.label}\n {component.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n )}\n <Input\n {...sharedProps}\n type={type}\n value={value}\n onChange={handleChange}\n placeholder={component.placeholder || component.label}\n />\n {component.helpText && (\n <p id={helpId} className=\"text-sm text-muted-foreground\">\n {component.helpText}\n </p>\n )}\n {component.errorMessage && (\n <p id={errorId} className=\"text-sm text-destructive\" role=\"alert\">\n {component.errorMessage}\n </p>\n )}\n </div>\n )\n },\n example: {\n name: 'TextField',\n description:\n 'Text input field with multiple input types (shortText, longText, number, date, obscured)',\n category: 'interactive',\n messages: [\n {\n createSurface: {\n surfaceId: 'textfield-example',\n root: 'col-1',\n },\n },\n {\n updateComponents: {\n surfaceId: 'textfield-example',\n components: [\n {\n id: 'col-1',\n component: {\n type: 'Column',\n id: 'col-1',\n distribution: 'packed',\n children: ['tf-short', 'tf-long', 'tf-number', 'tf-date', 'tf-password'],\n },\n },\n {\n id: 'tf-short',\n component: {\n type: 'TextField',\n id: 'tf-short',\n label: 'Short Text',\n inputType: 'shortText',\n dataPath: 'form.name',\n },\n },\n {\n id: 'tf-long',\n component: {\n type: 'TextField',\n id: 'tf-long',\n label: 'Long Text',\n inputType: 'longText',\n dataPath: 'form.description',\n },\n },\n {\n id: 'tf-number',\n component: {\n type: 'TextField',\n id: 'tf-number',\n label: 'Number',\n inputType: 'number',\n dataPath: 'form.age',\n },\n },\n {\n id: 'tf-date',\n component: {\n type: 'TextField',\n id: 'tf-date',\n label: 'Date',\n inputType: 'date',\n dataPath: 'form.birthdate',\n },\n },\n {\n id: 'tf-password',\n component: {\n type: 'TextField',\n id: 'tf-password',\n label: 'Password',\n inputType: 'obscured',\n dataPath: 'form.password',\n },\n },\n ],\n },\n },\n {\n dataModelUpdate: {\n surfaceId: 'textfield-example',\n values: [\n { path: 'form.name', value: 'John Doe' },\n { path: 'form.description', value: 'A sample description' },\n { path: 'form.age', value: 30 },\n { path: 'form.birthdate', value: '1994-01-01' },\n { path: 'form.password', value: 'secret123' },\n ],\n },\n },\n ],\n },\n}\n","import type { ColumnComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ReactNode } from 'react'\nimport { cn } from '../../lib/utils.js'\n\n// Map A2UI distribution to Tailwind classes\nconst distributionMap = {\n packed: 'justify-start',\n equal: 'justify-evenly',\n spaceBetween: 'justify-between',\n spaceAround: 'justify-around',\n} as const\n\nconst alignmentMap = {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n} as const\n\nexport const ColumnRenderer: A2UIRenderer<ColumnComponent> = {\n type: 'Column',\n render: ({ component, children }: RendererProps<ColumnComponent>) => {\n const distribution = distributionMap[component.distribution ?? 'packed']\n const alignment = alignmentMap[component.alignment ?? 'start']\n\n return (\n <div className={cn('flex flex-col gap-2', distribution, alignment)}>\n {children as ReactNode}\n </div>\n )\n },\n example: {\n name: 'Column',\n description: 'Vertical layout - form with heading, input, and button',\n category: 'layout',\n messages: [\n {\n createSurface: { surfaceId: 'column-demo', root: 'form' },\n },\n {\n updateComponents: {\n surfaceId: 'column-demo',\n components: [\n {\n id: 'form',\n component: {\n type: 'Column',\n id: 'form',\n distribution: 'packed',\n alignment: 'stretch',\n children: ['heading', 'email-field', 'subscribe-btn'],\n },\n },\n {\n id: 'heading',\n component: {\n type: 'Text',\n id: 'heading',\n content: 'Subscribe to Newsletter',\n style: 'h4',\n },\n },\n {\n id: 'email-field',\n component: {\n type: 'TextField',\n id: 'email-field',\n label: 'Email Address',\n dataPath: 'email',\n },\n },\n {\n id: 'subscribe-btn',\n component: {\n type: 'Button',\n id: 'subscribe-btn',\n child: 'btn-text',\n primary: true,\n action: 'subscribe',\n submitDataPaths: ['email'],\n },\n },\n {\n id: 'btn-text',\n component: { type: 'Text', id: 'btn-text', content: 'Subscribe' },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { RowComponent } from 'a2ui-react-core'\nimport type { A2UIRenderer, RendererProps } from 'a2ui-react-react'\nimport type { ReactNode } from 'react'\nimport { cn } from '../../lib/utils.js'\n\n// Map A2UI distribution to Tailwind classes\nconst distributionMap = {\n packed: 'justify-start',\n equal: 'justify-evenly',\n spaceBetween: 'justify-between',\n spaceAround: 'justify-around',\n} as const\n\nconst alignmentMap = {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n} as const\n\nexport const RowRenderer: A2UIRenderer<RowComponent> = {\n type: 'Row',\n render: ({ component, children }: RendererProps<RowComponent>) => {\n const distribution = distributionMap[component.distribution ?? 'packed']\n const alignment = alignmentMap[component.alignment ?? 'start']\n\n return (\n <div className={cn('flex flex-row gap-2', distribution, alignment)}>\n {children as ReactNode}\n </div>\n )\n },\n example: {\n name: 'Row',\n description: 'Horizontal layout - toolbar with icon, text, and button',\n category: 'layout',\n messages: [\n {\n createSurface: { surfaceId: 'row-demo', root: 'toolbar' },\n },\n {\n updateComponents: {\n surfaceId: 'row-demo',\n components: [\n {\n id: 'toolbar',\n component: {\n type: 'Row',\n id: 'toolbar',\n distribution: 'spaceBetween',\n alignment: 'center',\n children: ['left-group', 'action-btn'],\n },\n },\n {\n id: 'left-group',\n component: {\n type: 'Row',\n id: 'left-group',\n distribution: 'packed',\n alignment: 'center',\n children: ['star-icon', 'label'],\n },\n },\n {\n id: 'star-icon',\n component: { type: 'Icon', id: 'star-icon', name: 'star' },\n },\n {\n id: 'label',\n component: { type: 'Text', id: 'label', content: 'Featured Item' },\n },\n {\n id: 'action-btn',\n component: {\n type: 'Button',\n id: 'action-btn',\n child: 'btn-text',\n primary: true,\n action: 'view',\n },\n },\n {\n id: 'btn-text',\n component: { type: 'Text', id: 'btn-text', content: 'View Details' },\n },\n ],\n },\n },\n ],\n },\n}\n","import type { A2UIRenderer } from 'a2ui-react-react'\nimport { createRegistry } from 'a2ui-react-react'\n// Accessibility Extension Components (@extension a2ui-react)\nimport {\n AlertRenderer,\n ArticleRenderer,\n AsideRenderer,\n FooterRenderer,\n HeaderRenderer,\n LiveRegionRenderer,\n MainRenderer,\n NavRenderer,\n ProgressRenderer,\n SectionRenderer,\n SkipLinkRenderer,\n} from './a11y/index.js'\n// Animated UI Components\nimport {\n // Containers\n AnimatedAccordionRenderer,\n AnimatedAvatarGroupRenderer,\n AnimatedCardRenderer,\n AnimatedDialogRenderer,\n AnimatedTabsRenderer,\n // Utility\n AnimatedTooltipRenderer,\n AuroraBackgroundRenderer,\n BlurRevealTextRenderer,\n BubbleBackgroundRenderer,\n CopyButtonRenderer,\n CountUpRenderer,\n CursorRenderer,\n FireworksBackgroundRenderer,\n FlipButtonRenderer,\n FlipCardRenderer,\n GlowButtonRenderer,\n // Backgrounds\n GradientBackgroundRenderer,\n GradientTextRenderer,\n GravityStarsBackgroundRenderer,\n HexagonBackgroundRenderer,\n HoleBackgroundRenderer,\n IconButtonRenderer,\n LiquidButtonRenderer,\n MagneticButtonRenderer,\n MorphingIconRenderer,\n ParticlesBackgroundRenderer,\n // Buttons\n RippleButtonRenderer,\n ShimmerButtonRenderer,\n SpotlightRenderer,\n StarsBackgroundRenderer,\n TextScrambleRenderer,\n ThemeTogglerButtonRenderer,\n // Text\n TypewriterTextRenderer,\n} from './animated/index.js'\n// Animated Overrides - same types as standard components but with animations\nimport {\n AnimatedButtonOverride,\n AnimatedCardOverride,\n AnimatedCheckboxOverride,\n AnimatedModalOverride,\n AnimatedSelectOverride,\n AnimatedTabsOverride,\n AnimatedTextOverride,\n} from './animated/overrides/index.js'\n// Chart Components\nimport {\n AreaChartRenderer,\n BarChartRenderer,\n LineChartRenderer,\n PieChartRenderer,\n} from './charts/index.js'\nimport { CardRenderer, ListRenderer, ModalRenderer, TabsRenderer } from './container/index.js'\nimport {\n AudioPlayerRenderer,\n DividerRenderer,\n IconRenderer,\n ImageRenderer,\n TextRenderer,\n VideoRenderer,\n} from './display/index.js'\nimport {\n AnimatedButtonRenderer,\n ButtonRenderer,\n CheckboxRenderer,\n DateTimeInputRenderer,\n MultipleChoiceRenderer,\n SelectRenderer,\n SliderRenderer,\n TextFieldRenderer,\n} from './interactive/index.js'\nimport { ColumnRenderer, RowRenderer } from './layout/index.js'\n\n/**\n * Array of all shadcn renderers (standard, no animations)\n */\nexport const shadcnRenderers = [\n // Layout\n RowRenderer,\n ColumnRenderer,\n // Display\n TextRenderer,\n ImageRenderer,\n IconRenderer,\n DividerRenderer,\n VideoRenderer,\n AudioPlayerRenderer,\n // Interactive\n ButtonRenderer,\n AnimatedButtonRenderer,\n TextFieldRenderer,\n CheckboxRenderer,\n SelectRenderer,\n SliderRenderer,\n DateTimeInputRenderer,\n MultipleChoiceRenderer,\n // Container\n CardRenderer,\n ModalRenderer,\n TabsRenderer,\n ListRenderer,\n // Charts\n PieChartRenderer,\n BarChartRenderer,\n LineChartRenderer,\n AreaChartRenderer,\n] as A2UIRenderer[]\n\n/**\n * Array of chart renderers for data visualization\n */\nexport const chartRenderers = [\n PieChartRenderer,\n BarChartRenderer,\n LineChartRenderer,\n AreaChartRenderer,\n] as A2UIRenderer[]\n\n/**\n * @extension a2ui-react\n * Accessibility extension renderers for WCAG 2.1 AA compliance.\n * These are NOT part of the official A2UI standard but are recommended for accessibility.\n * Includes: Landmarks (Main, Nav, Section, Aside, Header, Footer, Article),\n * Alert, LiveRegion, SkipLink, and Progress components.\n */\nexport const a11yRenderers = [\n // Landmark Components\n MainRenderer,\n NavRenderer,\n SectionRenderer,\n AsideRenderer,\n HeaderRenderer,\n FooterRenderer,\n ArticleRenderer,\n // Alert & Live Region Components\n AlertRenderer,\n LiveRegionRenderer,\n // Navigation & Progress Components\n SkipLinkRenderer,\n ProgressRenderer,\n] as A2UIRenderer[]\n\n/**\n * Animated overrides for standard components\n * These use the SAME type names but add Framer Motion animations\n */\nexport const animatedOverrides = [\n AnimatedButtonOverride,\n AnimatedTabsOverride,\n AnimatedCardOverride,\n AnimatedCheckboxOverride,\n AnimatedModalOverride,\n AnimatedTextOverride,\n AnimatedSelectOverride,\n] as A2UIRenderer[]\n\n/**\n * Array of all animated UI renderers (animate-ui.com alternative)\n * Import these separately if you want to include animated components\n */\nexport const animatedRenderers = [\n // Animated Buttons\n RippleButtonRenderer,\n FlipButtonRenderer,\n ShimmerButtonRenderer,\n MagneticButtonRenderer,\n GlowButtonRenderer,\n LiquidButtonRenderer,\n CopyButtonRenderer,\n IconButtonRenderer,\n ThemeTogglerButtonRenderer,\n // Animated Text\n TypewriterTextRenderer,\n GradientTextRenderer,\n CountUpRenderer,\n TextScrambleRenderer,\n BlurRevealTextRenderer,\n // Animated Containers\n AnimatedAccordionRenderer,\n AnimatedDialogRenderer,\n AnimatedCardRenderer,\n AnimatedTabsRenderer,\n FlipCardRenderer,\n // Animated Backgrounds\n GradientBackgroundRenderer,\n ParticlesBackgroundRenderer,\n AuroraBackgroundRenderer,\n BubbleBackgroundRenderer,\n FireworksBackgroundRenderer,\n StarsBackgroundRenderer,\n HexagonBackgroundRenderer,\n HoleBackgroundRenderer,\n GravityStarsBackgroundRenderer,\n // Utility Animations\n AnimatedTooltipRenderer,\n AnimatedAvatarGroupRenderer,\n SpotlightRenderer,\n MorphingIconRenderer,\n CursorRenderer,\n] as A2UIRenderer[]\n\n/**\n * All renderers including animated components (but NOT animated overrides)\n */\nexport const allRenderers = [...shadcnRenderers, ...animatedRenderers] as A2UIRenderer[]\n\n/**\n * All renderers with animated overrides - standard components behave with animations\n * The overrides are registered LAST so they replace the standard versions\n */\nexport const allAnimatedRenderers = [\n ...shadcnRenderers,\n ...animatedRenderers,\n ...animatedOverrides,\n] as A2UIRenderer[]\n\n/**\n * Creates a shadcn renderer registry with all renderers registered\n * @param options.includeAnimated - Include animated components (RippleButton, etc.)\n * @param options.useAnimatedOverrides - Replace standard components with animated versions\n * @param options.includeA11y - Include accessibility extension components (@extension a2ui-react)\n * @returns A component registry with all shadcn renderers\n */\nexport function createShadcnRegistry(options?: {\n includeAnimated?: boolean\n useAnimatedOverrides?: boolean\n includeA11y?: boolean\n}) {\n const registry = createRegistry()\n\n // Register standard renderers first\n for (const renderer of shadcnRenderers) {\n registry.register(renderer)\n }\n\n // Add accessibility extension components if requested (@extension a2ui-react)\n if (options?.includeA11y) {\n for (const renderer of a11yRenderers) {\n registry.register(renderer)\n }\n }\n\n // Add animated components if requested\n if (options?.includeAnimated) {\n for (const renderer of animatedRenderers) {\n registry.register(renderer)\n }\n }\n\n // Register overrides LAST to replace standard components with animated versions\n if (options?.useAnimatedOverrides) {\n for (const renderer of animatedOverrides) {\n registry.register(renderer)\n }\n }\n\n return registry\n}\n\n/**\n * Creates a registry with only animated components\n * @returns A component registry with all animated renderers\n */\nexport function createAnimatedRegistry() {\n const registry = createRegistry()\n for (const renderer of animatedRenderers) {\n registry.register(renderer)\n }\n return registry\n}\n\n/**\n * Creates a fully animated registry - all standard components are replaced with animated versions\n * @returns A component registry where Button, Card, Tabs, etc. all have animations\n */\nexport function createFullyAnimatedRegistry() {\n return createShadcnRegistry({\n includeAnimated: true,\n useAnimatedOverrides: true,\n })\n}\n\n/**\n * @extension a2ui-react\n * Creates a registry with accessibility extension components for WCAG 2.1 AA compliance.\n * @returns A component registry with standard shadcn + a11y extension renderers\n */\nexport function createAccessibleRegistry() {\n return createShadcnRegistry({\n includeA11y: true,\n })\n}\n\n/**\n * @extension a2ui-react\n * Creates a complete registry with all features: standard, animated, and accessibility.\n * @returns A component registry with all renderers\n */\nexport function createCompleteRegistry() {\n return createShadcnRegistry({\n includeAnimated: true,\n useAnimatedOverrides: true,\n includeA11y: true,\n })\n}\n\n// Re-export all animated components for individual use\nexport {\n // Buttons\n RippleButtonRenderer,\n FlipButtonRenderer,\n ShimmerButtonRenderer,\n MagneticButtonRenderer,\n GlowButtonRenderer,\n LiquidButtonRenderer,\n CopyButtonRenderer,\n IconButtonRenderer,\n ThemeTogglerButtonRenderer,\n // Text\n TypewriterTextRenderer,\n GradientTextRenderer,\n CountUpRenderer,\n TextScrambleRenderer,\n BlurRevealTextRenderer,\n // Containers\n AnimatedAccordionRenderer,\n AnimatedDialogRenderer,\n AnimatedCardRenderer,\n AnimatedTabsRenderer,\n FlipCardRenderer,\n // Backgrounds\n GradientBackgroundRenderer,\n ParticlesBackgroundRenderer,\n AuroraBackgroundRenderer,\n BubbleBackgroundRenderer,\n FireworksBackgroundRenderer,\n StarsBackgroundRenderer,\n HexagonBackgroundRenderer,\n HoleBackgroundRenderer,\n GravityStarsBackgroundRenderer,\n // Utility\n AnimatedTooltipRenderer,\n AnimatedAvatarGroupRenderer,\n SpotlightRenderer,\n MorphingIconRenderer,\n CursorRenderer,\n // Overrides\n AnimatedButtonOverride,\n AnimatedTabsOverride,\n AnimatedCardOverride,\n AnimatedCheckboxOverride,\n AnimatedModalOverride,\n AnimatedTextOverride,\n AnimatedSelectOverride,\n // Charts\n PieChartRenderer,\n BarChartRenderer,\n LineChartRenderer,\n AreaChartRenderer,\n}\n\n// Re-export accessibility extension components (@extension a2ui-react)\nexport {\n // Landmark Components\n MainRenderer,\n NavRenderer,\n SectionRenderer,\n AsideRenderer,\n HeaderRenderer,\n FooterRenderer,\n ArticleRenderer,\n // Alert & Live Region Components\n AlertRenderer,\n LiveRegionRenderer,\n // Navigation & Progress Components\n SkipLinkRenderer,\n ProgressRenderer,\n}\n\n// Re-export chart utilities\nexport {\n buildChartConfig,\n DEFAULT_CHART_COLORS,\n getChartColor,\n getChartData,\n transformToRechartsData,\n} from './charts/index.js'\n\nexport type { RendererRegistry } from './types.js'\n","/**\n * a2ui-react - Beautiful shadcn/ui components for A2UI protocol\n *\n * This package provides everything you need to render A2UI protocol messages:\n * - Core types, parser, and store from a2ui-react-core\n * - React hooks and components from a2ui-react-react\n * - shadcn/ui-based renderers for all A2UI component types\n *\n * @example\n * ```tsx\n * import { A2UIProvider, A2UISurface, shadcnRenderers } from 'a2ui-react'\n *\n * function App() {\n * return (\n * <A2UIProvider renderers={shadcnRenderers}>\n * <A2UISurface surfaceId=\"my-surface\" messages={messages} />\n * </A2UIProvider>\n * )\n * }\n * ```\n */\n\nexport const version = '0.1.0'\n\n// ============================================================================\n// Re-export everything from a2ui-react-core\n// ============================================================================\nexport {\n // Types\n type A2UIComponent,\n type A2UIMessage,\n type A2UIStore,\n type Alignment,\n type BaseComponent,\n type BeginRenderingMessage,\n type ButtonComponent,\n // Builders\n buildMessages,\n type CardComponent,\n type CheckboxComponent,\n type ColumnComponent,\n type ComponentCatalog,\n type ComponentNode,\n type ComponentUpdate,\n c,\n // Store\n createStore,\n // Parser\n createStreamParser,\n type DataModelUpdateMessage,\n type DataValue,\n type DateTimeInputComponent,\n type DeleteSurfaceMessage,\n type Distribution,\n type DividerComponent,\n type ErrorCallback,\n // Data utilities\n getDataByPath,\n type IconComponent,\n type ImageComponent,\n type InputType,\n // Type Guards\n isBeginRenderingMessage,\n isDataModelUpdateMessage,\n isDeleteSurfaceMessage,\n isSurfaceUpdateMessage,\n type ListComponent,\n type MessageCallback,\n MessageParseError,\n type ModalComponent,\n type MultipleChoiceComponent,\n type Orientation,\n parseJSONL,\n parseMessage,\n type RowComponent,\n type SelectComponent,\n type SelectOption,\n type SliderComponent,\n type StoreSnapshot,\n type StreamParser,\n type Surface,\n type SurfaceUpdateMessage,\n setDataByPath,\n type TabItem,\n type TabsComponent,\n type TextComponent,\n type TextFieldComponent,\n type TextStyle,\n} from 'a2ui-react-core'\n\n// ============================================================================\n// Re-export everything from a2ui-react-react\n// ============================================================================\nexport {\n // Types\n type A2UIAction,\n // Context & Provider\n A2UIContext,\n type A2UIContextValue,\n A2UIProvider,\n type A2UIProviderProps,\n type A2UIRenderer,\n // Components\n A2UISurface,\n type A2UISurfaceProps,\n type ComponentRegistry,\n ComponentRenderer,\n type ComponentRendererProps,\n // Registry\n createRegistry,\n type DataAccessor,\n type DataBinding,\n type RendererExample,\n type RendererProps,\n // Hooks\n useA2UI,\n useAction,\n useDataBinding,\n useSurface,\n} from 'a2ui-react-react'\n\n// ============================================================================\n// shadcn/ui Components\n// ============================================================================\nexport * from './components/ui/button.js'\nexport * from './components/ui/checkbox.js'\nexport * from './components/ui/dialog.js'\nexport * from './components/ui/input.js'\nexport * from './components/ui/label.js'\nexport * from './components/ui/tabs.js'\nexport * from './components/ui/textarea.js'\n// ============================================================================\n// Hooks\n// ============================================================================\nexport { type Dimensions, useContainerDimensions } from './hooks/useContainerDimensions.js'\nexport { useReducedMotion } from './hooks/useReducedMotion.js'\n// ============================================================================\n// Utilities\n// ============================================================================\nexport { cn } from './lib/utils.js'\n\n// ============================================================================\n// A2UI Renderers (the main export)\n// ============================================================================\nexport * from './renderers/index.js'\n"]}
|