From d43a14653d7da98ef505ea322f2973c738fb0a8a Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 23 Jan 2026 16:44:06 +0100 Subject: [PATCH 01/53] Add React renderer implementation --- renderers/react/README.md | 34 ++ renderers/react/package.json | 82 +++ .../src/components/content/AudioPlayer.tsx | 32 ++ .../react/src/components/content/Divider.tsx | 21 + .../react/src/components/content/Icon.tsx | 51 ++ .../react/src/components/content/Image.tsx | 51 ++ .../react/src/components/content/Text.tsx | 157 ++++++ .../react/src/components/content/Video.tsx | 69 +++ .../react/src/components/content/index.ts | 6 + .../src/components/interactive/Button.tsx | 35 ++ .../src/components/interactive/CheckBox.tsx | 74 +++ .../components/interactive/DateTimeInput.tsx | 72 +++ .../components/interactive/MultipleChoice.tsx | 123 +++++ .../src/components/interactive/Slider.tsx | 86 +++ .../src/components/interactive/TextField.tsx | 97 ++++ .../react/src/components/interactive/index.ts | 6 + .../react/src/components/layout/Card.tsx | 48 ++ .../react/src/components/layout/Column.tsx | 70 +++ .../react/src/components/layout/List.tsx | 69 +++ .../react/src/components/layout/Modal.tsx | 97 ++++ renderers/react/src/components/layout/Row.tsx | 70 +++ .../react/src/components/layout/Tabs.tsx | 66 +++ .../react/src/components/layout/index.ts | 6 + renderers/react/src/core/A2UIProvider.tsx | 210 ++++++++ renderers/react/src/core/A2UIRenderer.tsx | 100 ++++ renderers/react/src/core/A2UIViewer.tsx | 217 ++++++++ renderers/react/src/core/ComponentNode.tsx | 93 ++++ renderers/react/src/core/store.ts | 56 ++ renderers/react/src/hooks/useA2UI.ts | 63 +++ renderers/react/src/hooks/useA2UIComponent.ts | 223 ++++++++ renderers/react/src/index.ts | 79 +++ renderers/react/src/lib/utils.ts | 44 ++ .../react/src/registry/ComponentRegistry.ts | 125 +++++ .../react/src/registry/defaultCatalog.ts | 70 +++ renderers/react/src/styles/index.d.ts | 23 + renderers/react/src/styles/index.ts | 332 ++++++++++++ renderers/react/src/theme/ThemeContext.tsx | 52 ++ renderers/react/src/theme/litTheme.ts | 444 ++++++++++++++++ renderers/react/src/theme/utils.ts | 46 ++ renderers/react/src/types.ts | 63 +++ .../react/tests/components/Icon.test.tsx | 197 +++++++ .../react/tests/components/Text.test.tsx | 499 ++++++++++++++++++ renderers/react/tests/helpers.tsx | 92 ++++ renderers/react/tests/setup.ts | 8 + renderers/react/tsconfig.json | 26 + renderers/react/tsup.config.ts | 29 + renderers/react/vitest.config.ts | 21 + 47 files changed, 4534 insertions(+) create mode 100644 renderers/react/README.md create mode 100644 renderers/react/package.json create mode 100644 renderers/react/src/components/content/AudioPlayer.tsx create mode 100644 renderers/react/src/components/content/Divider.tsx create mode 100644 renderers/react/src/components/content/Icon.tsx create mode 100644 renderers/react/src/components/content/Image.tsx create mode 100644 renderers/react/src/components/content/Text.tsx create mode 100644 renderers/react/src/components/content/Video.tsx create mode 100644 renderers/react/src/components/content/index.ts create mode 100644 renderers/react/src/components/interactive/Button.tsx create mode 100644 renderers/react/src/components/interactive/CheckBox.tsx create mode 100644 renderers/react/src/components/interactive/DateTimeInput.tsx create mode 100644 renderers/react/src/components/interactive/MultipleChoice.tsx create mode 100644 renderers/react/src/components/interactive/Slider.tsx create mode 100644 renderers/react/src/components/interactive/TextField.tsx create mode 100644 renderers/react/src/components/interactive/index.ts create mode 100644 renderers/react/src/components/layout/Card.tsx create mode 100644 renderers/react/src/components/layout/Column.tsx create mode 100644 renderers/react/src/components/layout/List.tsx create mode 100644 renderers/react/src/components/layout/Modal.tsx create mode 100644 renderers/react/src/components/layout/Row.tsx create mode 100644 renderers/react/src/components/layout/Tabs.tsx create mode 100644 renderers/react/src/components/layout/index.ts create mode 100644 renderers/react/src/core/A2UIProvider.tsx create mode 100644 renderers/react/src/core/A2UIRenderer.tsx create mode 100644 renderers/react/src/core/A2UIViewer.tsx create mode 100644 renderers/react/src/core/ComponentNode.tsx create mode 100644 renderers/react/src/core/store.ts create mode 100644 renderers/react/src/hooks/useA2UI.ts create mode 100644 renderers/react/src/hooks/useA2UIComponent.ts create mode 100644 renderers/react/src/index.ts create mode 100644 renderers/react/src/lib/utils.ts create mode 100644 renderers/react/src/registry/ComponentRegistry.ts create mode 100644 renderers/react/src/registry/defaultCatalog.ts create mode 100644 renderers/react/src/styles/index.d.ts create mode 100644 renderers/react/src/styles/index.ts create mode 100644 renderers/react/src/theme/ThemeContext.tsx create mode 100644 renderers/react/src/theme/litTheme.ts create mode 100644 renderers/react/src/theme/utils.ts create mode 100644 renderers/react/src/types.ts create mode 100644 renderers/react/tests/components/Icon.test.tsx create mode 100644 renderers/react/tests/components/Text.test.tsx create mode 100644 renderers/react/tests/helpers.tsx create mode 100644 renderers/react/tests/setup.ts create mode 100644 renderers/react/tsconfig.json create mode 100644 renderers/react/tsup.config.ts create mode 100644 renderers/react/vitest.config.ts diff --git a/renderers/react/README.md b/renderers/react/README.md new file mode 100644 index 000000000..961ac089a --- /dev/null +++ b/renderers/react/README.md @@ -0,0 +1,34 @@ +# @a2ui/react + +React implementation of A2UI (Agent-to-User Interface). + +> **Note:** This renderer is currently a work in progress. + +## Installation + +```bash +npm install @a2ui/react +``` + +## Usage + +```tsx +import { A2UIProvider, A2UIRenderer } from '@a2ui/react'; +import '@a2ui/react/styles/structural.css'; + +function App() { + return ( + + + + ); +} +``` + +## Development + +```bash +npm run build # Build the package +npm run dev # Watch mode +npm test # Run tests +``` diff --git a/renderers/react/package.json b/renderers/react/package.json new file mode 100644 index 000000000..a992b8f25 --- /dev/null +++ b/renderers/react/package.json @@ -0,0 +1,82 @@ +{ + "name": "@a2ui/react", + "version": "0.8.0", + "description": "React renderer for A2UI (Agent-to-User Interface)", + "type": "module", + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + }, + "./styles": { + "import": { + "types": "./dist/styles/index.d.ts", + "default": "./dist/styles/index.js" + }, + "require": { + "types": "./dist/styles/index.d.cts", + "default": "./dist/styles/index.cjs" + } + }, + "./styles/structural.css": "./dist/structural.css" + }, + "files": [ + "dist" + ], + "scripts": { + "build": "tsup && cp src/styles/index.d.ts dist/styles/index.d.ts && cp src/styles/index.d.ts dist/styles/index.d.cts", + "dev": "tsup --watch", + "test": "vitest run", + "test:watch": "vitest", + "typecheck": "tsc --noEmit", + "lint": "eslint src --ext .ts,.tsx", + "clean": "rm -rf dist" + }, + "dependencies": { + "@a2ui/lit": "workspace:*", + "clsx": "^2.1.0", + "markdown-it": "^14.0.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "devDependencies": { + "@testing-library/jest-dom": "^6.6.0", + "@testing-library/react": "^16.0.0", + "@types/markdown-it": "^14.1.0", + "@types/react": "^18.3.0", + "@types/react-dom": "^18.3.0", + "clsx": "^2.1.0", + "jsdom": "^25.0.0", + "markdown-it": "^14.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0", + "tsup": "^8.0.0", + "typescript": "^5.8.0", + "vitest": "^3.0.0" + }, + "keywords": [ + "a2ui", + "react", + "ai", + "agent", + "ui", + "renderer" + ], + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "https://github.com/google/A2UI.git", + "directory": "renderers/react" + } +} diff --git a/renderers/react/src/components/content/AudioPlayer.tsx b/renderers/react/src/components/content/AudioPlayer.tsx new file mode 100644 index 000000000..9fb48bb56 --- /dev/null +++ b/renderers/react/src/components/content/AudioPlayer.tsx @@ -0,0 +1,32 @@ +import { memo } from 'react'; +import type { Types } from '@a2ui/lit/0.8'; +import type { A2UIComponentProps } from '../../types'; +import { useA2UIComponent } from '../../hooks/useA2UIComponent'; +import { classMapToString, stylesToObject } from '../../lib/utils'; + +/** + * AudioPlayer component - renders an audio player with optional description. + */ +export const AudioPlayer = memo(function AudioPlayer({ node, surfaceId }: A2UIComponentProps) { + const { theme, resolveString } = useA2UIComponent(node, surfaceId); + const props = node.properties; + + const url = resolveString(props.url); + const description = resolveString(props.description ?? null); + + if (!url) { + return null; + } + + return ( +
+ {description &&

{description}

} +
+ ); +}); + +export default AudioPlayer; diff --git a/renderers/react/src/components/content/Divider.tsx b/renderers/react/src/components/content/Divider.tsx new file mode 100644 index 000000000..962b94c86 --- /dev/null +++ b/renderers/react/src/components/content/Divider.tsx @@ -0,0 +1,21 @@ +import { memo } from 'react'; +import type { Types } from '@a2ui/lit/0.8'; +import type { A2UIComponentProps } from '../../types'; +import { useA2UIComponent } from '../../hooks/useA2UIComponent'; +import { classMapToString, stylesToObject } from '../../lib/utils'; + +/** + * Divider component - renders a visual separator line. + */ +export const Divider = memo(function Divider({ node, surfaceId }: A2UIComponentProps) { + const { theme } = useA2UIComponent(node, surfaceId); + + return ( +
+ ); +}); + +export default Divider; diff --git a/renderers/react/src/components/content/Icon.tsx b/renderers/react/src/components/content/Icon.tsx new file mode 100644 index 000000000..62253c9a8 --- /dev/null +++ b/renderers/react/src/components/content/Icon.tsx @@ -0,0 +1,51 @@ +import { memo } from 'react'; +import type { Types } from '@a2ui/lit/0.8'; +import type { A2UIComponentProps } from '../../types'; +import { useA2UIComponent } from '../../hooks/useA2UIComponent'; +import { classMapToString, stylesToObject } from '../../lib/utils'; + +/** + * Convert camelCase to snake_case for Material Symbols font. + * e.g., "shoppingCart" -> "shopping_cart" + * This matches the Lit renderer's approach. + */ +function toSnakeCase(str: string): string { + return str.replace(/([A-Z])/g, '_$1').toLowerCase(); +} + +/** + * Icon component - renders an icon using Material Symbols Outlined font. + * + * This matches the Lit renderer's approach using the g-icon class with + * Material Symbols Outlined font. + * + * @example Add Material Symbols font to your HTML: + * ```html + * + * ``` + */ +export const Icon = memo(function Icon({ node, surfaceId }: A2UIComponentProps) { + const { theme, resolveString } = useA2UIComponent(node, surfaceId); + const props = node.properties; + + const iconName = resolveString(props.name); + + if (!iconName) { + return null; + } + + // Convert camelCase to snake_case for Material Symbols + const snakeCaseName = toSnakeCase(iconName); + + // Match Lit renderer exactly: section with theme classes, span with g-icon + return ( +
+ {snakeCaseName} +
+ ); +}); + +export default Icon; diff --git a/renderers/react/src/components/content/Image.tsx b/renderers/react/src/components/content/Image.tsx new file mode 100644 index 000000000..0a4c7772f --- /dev/null +++ b/renderers/react/src/components/content/Image.tsx @@ -0,0 +1,51 @@ +import { memo } from 'react'; +import type { Types } from '@a2ui/lit/0.8'; +import type { A2UIComponentProps } from '../../types'; +import { useA2UIComponent } from '../../hooks/useA2UIComponent'; +import { classMapToString, stylesToObject, mergeClassMaps } from '../../lib/utils'; + +type UsageHint = 'icon' | 'avatar' | 'smallFeature' | 'mediumFeature' | 'largeFeature' | 'header'; +type FitMode = 'contain' | 'cover' | 'fill' | 'none' | 'scale-down'; + +/** + * Image component - renders an image from a URL with optional sizing and fit modes. + * + * Supports usageHint values: icon, avatar, smallFeature, mediumFeature, largeFeature, header + * Supports fit values: contain, cover, fill, none, scale-down (maps to object-fit via CSS variable) + */ +export const Image = memo(function Image({ node, surfaceId }: A2UIComponentProps) { + const { theme, resolveString } = useA2UIComponent(node, surfaceId); + const props = node.properties; + + const url = resolveString(props.url); + const usageHint = props.usageHint as UsageHint | undefined; + const fit = (props.fit as FitMode) ?? 'fill'; + + // Get merged classes for section (matches Lit's Styles.merge) + const classes = mergeClassMaps( + theme.components.Image.all, + usageHint ? theme.components.Image[usageHint] : {} + ); + + // Build style object with object-fit as CSS variable (matches Lit) + const style: React.CSSProperties = { + ...stylesToObject(theme.additionalStyles?.Image), + '--object-fit': fit, + } as React.CSSProperties; + + if (!url) { + return null; + } + + // Match Lit structure:
+ return ( +
+ +
+ ); +}); + +export default Image; diff --git a/renderers/react/src/components/content/Text.tsx b/renderers/react/src/components/content/Text.tsx new file mode 100644 index 000000000..4a05f2ac4 --- /dev/null +++ b/renderers/react/src/components/content/Text.tsx @@ -0,0 +1,157 @@ +import { useMemo, memo } from 'react'; +import type { Types } from '@a2ui/lit/0.8'; +import type { A2UIComponentProps } from '../../types'; +import { useA2UIComponent } from '../../hooks/useA2UIComponent'; +import { classMapToString, stylesToObject, mergeClassMaps } from '../../lib/utils'; +import MarkdownIt from 'markdown-it'; + +type UsageHint = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'caption' | 'body'; + +interface HintedStyles { + h1: Record; + h2: Record; + h3: Record; + h4: Record; + h5: Record; + body: Record; + caption: Record; +} + +function isHintedStyles(styles: unknown): styles is HintedStyles { + if (typeof styles !== 'object' || !styles || Array.isArray(styles)) return false; + const expected = ['h1', 'h2', 'h3', 'h4', 'h5', 'caption', 'body']; + return expected.some((v) => v in styles); +} + +/** + * Markdown-it instance for rendering markdown text. + * Uses synchronous import to ensure availability at first render (matches Lit renderer). + */ +const markdownRenderer = new MarkdownIt({ + html: false, // Security: disable raw HTML + breaks: true, // Convert \n to
+ linkify: true, // Auto-convert URLs to links + typographer: true, // Smart quotes, dashes, etc. +}); + +/** + * Apply theme classes to markdown HTML elements. + * Replaces default element tags with themed versions. + */ +function applyMarkdownTheme(html: string, markdownTheme: Types.Theme['markdown']): string { + if (!markdownTheme) return html; + + // Map of element -> classes + const replacements: Array<[RegExp, string]> = []; + + for (const [element, classes] of Object.entries(markdownTheme)) { + if (!classes || (Array.isArray(classes) && classes.length === 0)) continue; + + const classString = Array.isArray(classes) ? classes.join(' ') : classMapToString(classes); + if (!classString) continue; + + // Create regex to match opening tags (handles self-closing and regular) + const tagRegex = new RegExp(`<${element}(?=\\s|>|/>)`, 'gi'); + replacements.push([tagRegex, `<${element} class="${classString}"`]); + } + + let result = html; + for (const [regex, replacement] of replacements) { + result = result.replace(regex, replacement); + } + + return result; +} + +/** + * Text component - renders text content with markdown support. + * + * Text is parsed as markdown and rendered as HTML (matches Lit renderer behavior). + * Supports usageHint values: h1, h2, h3, h4, h5, caption, body + * + * Markdown features supported: + * - **Bold** and *italic* text + * - Lists (ordered and unordered) + * - `inline code` and code blocks + * - [Links](url) (auto-linkified URLs too) + * - Blockquotes + * - Horizontal rules + * + * Note: Raw HTML is disabled for security. + */ +export const Text = memo(function Text({ node, surfaceId }: A2UIComponentProps) { + const { theme, resolveString } = useA2UIComponent(node, surfaceId); + const props = node.properties; + + const textValue = resolveString(props.text); + const usageHint = props.usageHint as UsageHint | undefined; + + // Get merged classes (matches Lit's Styles.merge) + const classes = mergeClassMaps( + theme.components.Text.all, + usageHint ? theme.components.Text[usageHint] : {} + ); + + // Get additional styles based on usage hint + const additionalStyles = useMemo(() => { + const textStyles = theme.additionalStyles?.Text; + if (!textStyles) return undefined; + + if (isHintedStyles(textStyles)) { + const hint = usageHint ?? 'body'; + return stylesToObject(textStyles[hint]); + } + return stylesToObject(textStyles as Record); + }, [theme.additionalStyles?.Text, usageHint]); + + // Render markdown content (matches Lit behavior - always uses markdown) + const renderedContent = useMemo(() => { + if (textValue === null || textValue === undefined) { + return null; + } + + // Add markdown prefix based on usageHint (matches Lit behavior) + let markdownText = textValue; + switch (usageHint) { + case 'h1': + markdownText = `# ${markdownText}`; + break; + case 'h2': + markdownText = `## ${markdownText}`; + break; + case 'h3': + markdownText = `### ${markdownText}`; + break; + case 'h4': + markdownText = `#### ${markdownText}`; + break; + case 'h5': + markdownText = `##### ${markdownText}`; + break; + case 'caption': + markdownText = `*${markdownText}*`; + break; + default: + break; // Body - no prefix + } + + const rawHtml = markdownRenderer.render(markdownText); + const themedHtml = applyMarkdownTheme(rawHtml, theme.markdown); + return { __html: themedHtml }; + }, [textValue, theme.markdown, usageHint]); + + if (!renderedContent) { + return null; + } + + // Always use
wrapper with markdown rendering (matches Lit structure) + return ( +
+ ); +}); + +export default Text; diff --git a/renderers/react/src/components/content/Video.tsx b/renderers/react/src/components/content/Video.tsx new file mode 100644 index 000000000..4f927df4e --- /dev/null +++ b/renderers/react/src/components/content/Video.tsx @@ -0,0 +1,69 @@ +import { memo } from 'react'; +import type { Types } from '@a2ui/lit/0.8'; +import type { A2UIComponentProps } from '../../types'; +import { useA2UIComponent } from '../../hooks/useA2UIComponent'; +import { classMapToString, stylesToObject } from '../../lib/utils'; + +/** + * Check if a URL is a YouTube URL and extract the video ID. + */ +function getYouTubeVideoId(url: string): string | null { + const patterns = [ + /(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([^&\s?]+)/, + ]; + for (const pattern of patterns) { + const match = url.match(pattern); + if (match && match.length > 1) { + // Non-null assertion is safe here since we checked match.length > 1 + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + return match[1]!; + } + } + return null; +} + +/** + * Video component - renders a video player. + * + * Supports regular video URLs and YouTube URLs (renders as embedded iframe). + */ +export const Video = memo(function Video({ node, surfaceId }: A2UIComponentProps) { + const { theme, resolveString } = useA2UIComponent(node, surfaceId); + const props = node.properties; + + const url = resolveString(props.url); + + if (!url) { + return null; + } + + const youtubeId = getYouTubeVideoId(url); + + if (youtubeId) { + return ( +
+ ' }, + }); + + const { container } = render( + + + + ); + + await waitFor(() => { + const iframe = container.querySelector('iframe'); + expect(iframe).not.toBeInTheDocument(); + }); + }); + }); +}); diff --git a/renderers/react/tests/helpers.tsx b/renderers/react/tests/helpers.tsx new file mode 100644 index 000000000..4ad25044e --- /dev/null +++ b/renderers/react/tests/helpers.tsx @@ -0,0 +1,92 @@ +import React, { useEffect, type ReactNode } from 'react'; +import { A2UIProvider, A2UIRenderer, useA2UI } from '../src'; +import type { Types } from '@a2ui/lit/0.8'; + +/** + * Helper component that processes messages and renders a surface. + */ +export function TestRenderer({ + messages, + surfaceId = '@default', +}: { + messages: Types.ServerToClientMessage[]; + surfaceId?: string; +}) { + const { processMessages } = useA2UI(); + + useEffect(() => { + processMessages(messages); + }, [messages, processMessages]); + + return ; +} + +/** + * Full test wrapper with A2UIProvider. + */ +export function TestWrapper({ + children, + onAction, + theme, +}: { + children: ReactNode; + onAction?: (action: Types.A2UIClientEventMessage) => void; + theme?: Types.Theme; +}) { + return ( + + {children} + + ); +} + +/** + * Create a surface update message with components. + */ +export function createSurfaceUpdate( + components: Array<{ id: string; component: Record }>, + surfaceId = '@default' +): Types.ServerToClientMessage { + return { + surfaceUpdate: { + surfaceId, + components: components.map((c) => ({ + id: c.id, + component: c.component, + })), + }, + } as Types.ServerToClientMessage; +} + +/** + * Create a begin rendering message. + */ +export function createBeginRendering( + rootId: string, + surfaceId = '@default' +): Types.ServerToClientMessage { + return { + beginRendering: { + root: rootId, + surfaceId, + }, + } as Types.ServerToClientMessage; +} + +/** + * Create messages for a simple component render. + */ +export function createSimpleMessages( + id: string, + componentType: string, + props: Record, + surfaceId = '@default' +): Types.ServerToClientMessage[] { + return [ + createSurfaceUpdate( + [{ id, component: { [componentType]: props } }], + surfaceId + ), + createBeginRendering(id, surfaceId), + ]; +} diff --git a/renderers/react/tests/setup.ts b/renderers/react/tests/setup.ts new file mode 100644 index 000000000..b22682cde --- /dev/null +++ b/renderers/react/tests/setup.ts @@ -0,0 +1,8 @@ +import '@testing-library/jest-dom/vitest'; +import { beforeAll } from 'vitest'; +import { initializeDefaultCatalog } from '../src'; + +// Initialize the default catalog before all tests +beforeAll(() => { + initializeDefaultCatalog(); +}); diff --git a/renderers/react/tsconfig.json b/renderers/react/tsconfig.json new file mode 100644 index 000000000..96b40b35f --- /dev/null +++ b/renderers/react/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "module": "ESNext", + "moduleResolution": "bundler", + "jsx": "react-jsx", + "strict": true, + "noUncheckedIndexedAccess": true, + "noEmit": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "isolatedModules": true, + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist", "tests"] +} diff --git a/renderers/react/tsup.config.ts b/renderers/react/tsup.config.ts new file mode 100644 index 000000000..8d675f821 --- /dev/null +++ b/renderers/react/tsup.config.ts @@ -0,0 +1,29 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig([ + // Main entry with DTS + { + entry: ['src/index.ts'], + format: ['esm', 'cjs'], + dts: true, + splitting: true, + sourcemap: true, + clean: true, + treeshake: true, + external: ['react', 'react-dom', 'markdown-it'], + esbuildOptions(options) { + options.jsx = 'automatic'; + }, + }, + // Styles entry without DTS (avoids symlink resolution issues) + { + entry: { 'styles/index': 'src/styles/index.ts' }, + format: ['esm', 'cjs'], + dts: false, + splitting: false, + sourcemap: true, + clean: false, + treeshake: true, + external: ['@a2ui/lit'], + }, +]); diff --git a/renderers/react/vitest.config.ts b/renderers/react/vitest.config.ts new file mode 100644 index 000000000..3fa5ea5f0 --- /dev/null +++ b/renderers/react/vitest.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'jsdom', + setupFiles: ['./tests/setup.ts'], + include: ['tests/**/*.test.{ts,tsx}'], + coverage: { + provider: 'v8', + reporter: ['text', 'json', 'html'], + include: ['src/**/*.{ts,tsx}'], + exclude: ['src/**/*.d.ts', 'src/index.ts'], + }, + }, + resolve: { + alias: { + '@': './src', + }, + }, +}); From 5c43b82e7dff0b8d6e023b20c646eba6d819dc74 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 30 Jan 2026 16:45:06 +0100 Subject: [PATCH 02/53] Improve React renderer with visual parity and tests - Refactor components to mirror Lit Shadow DOM structure for visual parity - Add CSS fixes for specificity and selector transformations - Add unit tests for all components (220 tests) - Add visual parity test infrastructure with Playwright - Update documentation with build and test instructions --- renderers/react/README.md | 602 ++- renderers/react/package-lock.json | 3309 +++++++++++++++++ renderers/react/package.json | 2 +- .../src/components/content/AudioPlayer.tsx | 19 +- .../react/src/components/content/Divider.tsx | 20 +- .../react/src/components/content/Icon.tsx | 20 +- .../react/src/components/content/Image.tsx | 20 +- .../react/src/components/content/Text.tsx | 38 +- .../react/src/components/content/Video.tsx | 42 +- .../src/components/interactive/Button.tsx | 21 +- .../src/components/interactive/CheckBox.tsx | 56 +- .../components/interactive/DateTimeInput.tsx | 56 +- .../components/interactive/MultipleChoice.tsx | 14 +- .../src/components/interactive/Slider.tsx | 70 +- .../src/components/interactive/TextField.tsx | 74 +- .../react/src/components/layout/Card.tsx | 51 +- .../react/src/components/layout/Column.tsx | 70 +- .../react/src/components/layout/List.tsx | 70 +- .../react/src/components/layout/Modal.tsx | 10 +- renderers/react/src/components/layout/Row.tsx | 72 +- .../react/src/components/layout/Tabs.tsx | 8 +- renderers/react/src/core/ComponentNode.tsx | 24 +- .../react/src/registry/defaultCatalog.ts | 14 +- renderers/react/src/styles/index.d.ts | 18 +- renderers/react/src/styles/index.ts | 553 +-- .../react/tests/components/Button.test.tsx | 258 ++ .../react/tests/components/Card.test.tsx | 137 + .../react/tests/components/CheckBox.test.tsx | 250 ++ .../react/tests/components/Column.test.tsx | 249 ++ .../tests/components/DateTimeInput.test.tsx | 327 ++ .../react/tests/components/Divider.test.tsx | 140 + .../react/tests/components/Image.test.tsx | 293 ++ .../react/tests/components/List.test.tsx | 280 ++ .../tests/components/MultipleChoice.test.tsx | 396 ++ renderers/react/tests/components/Row.test.tsx | 327 ++ .../react/tests/components/Slider.test.tsx | 308 ++ .../react/tests/components/Text.test.tsx | 23 +- .../react/tests/components/TextField.test.tsx | 232 ++ renderers/react/visual-parity/.gitignore | 4 + renderers/react/visual-parity/PARITY.md | 324 ++ renderers/react/visual-parity/README.md | 284 ++ .../fixtures/components/button.ts | 77 + .../visual-parity/fixtures/components/card.ts | 143 + .../fixtures/components/checkbox.ts | 68 + .../fixtures/components/column.ts | 88 + .../fixtures/components/dateTimeInput.ts | 59 + .../fixtures/components/divider.ts | 34 + .../visual-parity/fixtures/components/icon.ts | 39 + .../fixtures/components/image.ts | 124 + .../fixtures/components/index.ts | 36 + .../visual-parity/fixtures/components/list.ts | 94 + .../fixtures/components/multipleChoice.ts | 100 + .../visual-parity/fixtures/components/row.ts | 104 + .../fixtures/components/slider.ts | 31 + .../visual-parity/fixtures/components/tabs.ts | 97 + .../visual-parity/fixtures/components/text.ts | 112 + .../fixtures/components/textField.ts | 37 + .../react/visual-parity/fixtures/index.ts | 76 + .../visual-parity/fixtures/nested/index.ts | 6 + .../visual-parity/fixtures/nested/layouts.ts | 199 + .../visual-parity/fixtures/themes/index.ts | 43 + .../fixtures/themes/minimalTheme.ts | 198 + .../fixtures/themes/visualParityTheme.ts | 257 ++ .../react/visual-parity/fixtures/types.ts | 17 + renderers/react/visual-parity/lit/index.html | 158 + renderers/react/visual-parity/lit/src/main.ts | 214 ++ .../react/visual-parity/lit/vite.config.ts | 17 + .../react/visual-parity/package-lock.json | 2388 ++++++++++++ renderers/react/visual-parity/package.json | 38 + .../react/visual-parity/playwright.config.ts | 59 + .../react/visual-parity/react/index.html | 158 + .../visual-parity/react/src/FixturePage.tsx | 168 + .../react/visual-parity/react/src/main.tsx | 34 + .../react/visual-parity/react/vite.config.ts | 14 + .../visual-parity/tests/visual-parity.spec.ts | 452 +++ renderers/react/visual-parity/tsconfig.json | 16 + .../react/visual-parity/types/pixelmatch.d.ts | 22 + 77 files changed, 14279 insertions(+), 583 deletions(-) create mode 100644 renderers/react/package-lock.json create mode 100644 renderers/react/tests/components/Button.test.tsx create mode 100644 renderers/react/tests/components/Card.test.tsx create mode 100644 renderers/react/tests/components/CheckBox.test.tsx create mode 100644 renderers/react/tests/components/Column.test.tsx create mode 100644 renderers/react/tests/components/DateTimeInput.test.tsx create mode 100644 renderers/react/tests/components/Divider.test.tsx create mode 100644 renderers/react/tests/components/Image.test.tsx create mode 100644 renderers/react/tests/components/List.test.tsx create mode 100644 renderers/react/tests/components/MultipleChoice.test.tsx create mode 100644 renderers/react/tests/components/Row.test.tsx create mode 100644 renderers/react/tests/components/Slider.test.tsx create mode 100644 renderers/react/tests/components/TextField.test.tsx create mode 100644 renderers/react/visual-parity/.gitignore create mode 100644 renderers/react/visual-parity/PARITY.md create mode 100644 renderers/react/visual-parity/README.md create mode 100644 renderers/react/visual-parity/fixtures/components/button.ts create mode 100644 renderers/react/visual-parity/fixtures/components/card.ts create mode 100644 renderers/react/visual-parity/fixtures/components/checkbox.ts create mode 100644 renderers/react/visual-parity/fixtures/components/column.ts create mode 100644 renderers/react/visual-parity/fixtures/components/dateTimeInput.ts create mode 100644 renderers/react/visual-parity/fixtures/components/divider.ts create mode 100644 renderers/react/visual-parity/fixtures/components/icon.ts create mode 100644 renderers/react/visual-parity/fixtures/components/image.ts create mode 100644 renderers/react/visual-parity/fixtures/components/index.ts create mode 100644 renderers/react/visual-parity/fixtures/components/list.ts create mode 100644 renderers/react/visual-parity/fixtures/components/multipleChoice.ts create mode 100644 renderers/react/visual-parity/fixtures/components/row.ts create mode 100644 renderers/react/visual-parity/fixtures/components/slider.ts create mode 100644 renderers/react/visual-parity/fixtures/components/tabs.ts create mode 100644 renderers/react/visual-parity/fixtures/components/text.ts create mode 100644 renderers/react/visual-parity/fixtures/components/textField.ts create mode 100644 renderers/react/visual-parity/fixtures/index.ts create mode 100644 renderers/react/visual-parity/fixtures/nested/index.ts create mode 100644 renderers/react/visual-parity/fixtures/nested/layouts.ts create mode 100644 renderers/react/visual-parity/fixtures/themes/index.ts create mode 100644 renderers/react/visual-parity/fixtures/themes/minimalTheme.ts create mode 100644 renderers/react/visual-parity/fixtures/themes/visualParityTheme.ts create mode 100644 renderers/react/visual-parity/fixtures/types.ts create mode 100644 renderers/react/visual-parity/lit/index.html create mode 100644 renderers/react/visual-parity/lit/src/main.ts create mode 100644 renderers/react/visual-parity/lit/vite.config.ts create mode 100644 renderers/react/visual-parity/package-lock.json create mode 100644 renderers/react/visual-parity/package.json create mode 100644 renderers/react/visual-parity/playwright.config.ts create mode 100644 renderers/react/visual-parity/react/index.html create mode 100644 renderers/react/visual-parity/react/src/FixturePage.tsx create mode 100644 renderers/react/visual-parity/react/src/main.tsx create mode 100644 renderers/react/visual-parity/react/vite.config.ts create mode 100644 renderers/react/visual-parity/tests/visual-parity.spec.ts create mode 100644 renderers/react/visual-parity/tsconfig.json create mode 100644 renderers/react/visual-parity/types/pixelmatch.d.ts diff --git a/renderers/react/README.md b/renderers/react/README.md index 961ac089a..1f98fe091 100644 --- a/renderers/react/README.md +++ b/renderers/react/README.md @@ -1,8 +1,21 @@ # @a2ui/react -React implementation of A2UI (Agent-to-User Interface). +React renderer for A2UI (Agent-to-User Interface) - enables AI agents to generate rich, interactive user interfaces through declarative JSON. -> **Note:** This renderer is currently a work in progress. +## Table of Contents + +- [Installation](#installation) +- [Quick Start](#quick-start) +- [Architecture](#architecture) +- [Components](#components) +- [Hooks](#hooks) +- [Theme System](#theme-system) +- [Component Registry](#component-registry) +- [Styles](#styles) +- [Development](#development) +- [Visual Parity Testing](#visual-parity-testing) +- [API Reference](#api-reference) +- [Contributing](#contributing) ## Installation @@ -10,25 +23,600 @@ React implementation of A2UI (Agent-to-User Interface). npm install @a2ui/react ``` -## Usage +**Peer Dependencies:** +- React 18.x or 19.x +- React DOM 18.x or 19.x + +## Quick Start ```tsx -import { A2UIProvider, A2UIRenderer } from '@a2ui/react'; -import '@a2ui/react/styles/structural.css'; +import { A2UIProvider, A2UIRenderer, injectStyles } from '@a2ui/react'; +import { useA2UI } from '@a2ui/react'; + +// Inject A2UI styles once at app startup +injectStyles(); function App() { + const { processMessages } = useA2UI(); + + // Process A2UI messages from your AI agent + const handleAgentResponse = (messages) => { + processMessages(messages); + }; + return ( - + ); } + +// Handle user interactions +function handleAction(message) { + console.log('User action:', message); + // Send to your AI agent backend +} +``` + +### Standalone Viewer + +For simpler use cases, use the all-in-one `A2UIViewer`: + +```tsx +import { A2UIViewer, injectStyles } from '@a2ui/react'; + +injectStyles(); + +function App() { + const messages = [...]; // A2UI messages from agent + + return ( + console.log('Action:', msg)} + /> + ); +} +``` + +## Architecture + +### Two-Context Pattern + +The React renderer uses a two-context architecture for optimal performance: + +``` +┌─────────────────────────────────────────────────────────┐ +│ A2UIProvider │ +├─────────────────────────────────────────────────────────┤ +│ ┌─────────────────────┐ ┌─────────────────────────┐ │ +│ │ A2UIActionsContext │ │ A2UIStateContext │ │ +│ │ (stable reference) │ │ (triggers re-renders) │ │ +│ │ │ │ │ │ +│ │ • processMessages │ │ • version │ │ +│ │ • setData │ │ │ │ +│ │ • dispatch │ │ │ │ +│ │ • getData │ │ │ │ +│ │ • getSurface │ │ │ │ +│ └─────────────────────┘ └─────────────────────────┘ │ +│ │ +│ ┌────────────────────────────────────────────────────┐ │ +│ │ ThemeProvider │ │ +│ │ │ │ +│ │ ┌─────────────┐ ┌─────────────────────────┐ │ │ +│ │ │ A2UIRenderer│───▶│ ComponentNode │ │ │ +│ │ │ (surfaceId) │ │ (recursive rendering) │ │ │ +│ │ └─────────────┘ └─────────────────────────┘ │ │ +│ └────────────────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────────────┘ +``` + +**Why two contexts?** + +- **A2UIActionsContext**: Contains stable action callbacks that never change reference. Components using `useA2UIActions()` won't re-render when data changes. +- **A2UIStateContext**: Contains a version counter that increments on state changes. Only components that need to react to data changes subscribe to this. + +This separation prevents unnecessary re-renders and provides fine-grained control over component updates. + +### Data Flow + +``` +Agent Server React App + │ │ + │ ServerToClientMessage[] │ + ├─────────────────────────────▶│ processMessages() + │ │ + │ ▼ + │ ┌────────────────┐ + │ │ MessageProcessor│ + │ │ (surfaces) │ + │ └───────┬────────┘ + │ │ + │ ▼ + │ ┌────────────────┐ + │ │ A2UIRenderer │ + │ │ (per surface) │ + │ └───────┬────────┘ + │ │ + │ ▼ + │ ┌────────────────┐ + │ │ ComponentNode │ + │ │ (recursive) │ + │ └───────┬────────┘ + │ │ + │ A2UIClientEventMessage │ User interaction + │◀────────────────────────────┤ dispatch() + │ │ +``` + +## Components + +All components are wrapped with `React.memo()` for performance optimization. + +### Content Components + +| Component | Description | +|-----------|-------------| +| `Text` | Renders text with markdown support | +| `Image` | Displays images with various usage hints | +| `Icon` | Renders Lucide icons | +| `Divider` | Horizontal or vertical divider | +| `Video` | Video player | +| `AudioPlayer` | Audio player | + +### Layout Components + +| Component | Description | +|-----------|-------------| +| `Column` | Vertical flex container | +| `Row` | Horizontal flex container | +| `Card` | Card container with styling | +| `List` | List container (vertical/horizontal) | +| `Tabs` | Tabbed interface | +| `Modal` | Modal dialog | + +### Interactive Components + +| Component | Description | +|-----------|-------------| +| `Button` | Clickable button with action dispatch | +| `TextField` | Text input (single/multiline) | +| `CheckBox` | Checkbox input | +| `Slider` | Range slider | +| `DateTimeInput` | Date/time picker | +| `MultipleChoice` | Radio/checkbox group | + +### Component Structure + +Each component mirrors the Lit renderer's Shadow DOM structure for visual parity: + +```tsx +// React component structure +
{/* :host equivalent */} +
{/* internal element */} + {children} {/* ::slotted(*) equivalent */} +
+
+``` + +## Hooks + +### useA2UI() + +High-level hook for external application use: + +```tsx +import { useA2UI } from '@a2ui/react'; + +function MyComponent() { + const { processMessages, clearSurfaces } = useA2UI(); + + const loadUI = async () => { + const response = await fetch('/api/agent'); + const messages = await response.json(); + processMessages(messages); + }; + + return ; +} +``` + +### useA2UIActions() + +Access stable actions without triggering re-renders: + +```tsx +import { useA2UIActions } from '@a2ui/react'; + +function ActionButton() { + const { dispatch } = useA2UIActions(); + + const handleClick = () => { + dispatch({ + event: { action: { name: 'submit' } }, + sourceComponent: 'button-1', + surfaceId: 'main', + }); + }; + + return ; +} +``` + +### useA2UIState() + +Subscribe to state changes (triggers re-renders): + +```tsx +import { useA2UIState } from '@a2ui/react'; + +function VersionDisplay() { + const { version } = useA2UIState(); + return State version: {version}; +} +``` + +### useA2UIContext() + +Combined access to actions and state: + +```tsx +import { useA2UIContext } from '@a2ui/react'; + +function MyComponent() { + const { processMessages, dispatch, version } = useA2UIContext(); + // ... +} +``` + +### useA2UIComponent() + +Internal hook for component implementations: + +```tsx +import { useA2UIComponent } from '@a2ui/react'; + +function CustomComponent({ node, surfaceId }) { + const { + theme, + resolveString, + resolveNumber, + resolveBoolean, + setValue, + getValue, + dispatch, + } = useA2UIComponent(node, surfaceId); + + const text = resolveString(node.properties.text); + // ... +} +``` + +## Theme System + +### Using the Default Theme + +```tsx +import { A2UIProvider, litTheme } from '@a2ui/react'; + + + {/* components */} + +``` + +### Creating a Custom Theme + +```tsx +import { litTheme } from '@a2ui/react'; + +const customTheme = { + ...litTheme, + components: { + ...litTheme.components, + Button: { + ...litTheme.components.Button, + all: { + 'my-button-class': true, + 'rounded-lg': true, + }, + }, + }, +}; + + + {/* components */} + +``` + +### Theme Structure + +```typescript +interface Theme { + components: { + [ComponentName]: { + all: ClassMap; // Always applied + [variant]: ClassMap; // Variant-specific (e.g., primary, secondary) + }; + }; + elements: { + [elementName]: ClassMap; // HTML element styling + }; + markdown: { + [tagName]: string[]; // Markdown element classes + }; + additionalStyles?: { + [ComponentName]: Record; // Inline styles + }; +} +``` + +## Component Registry + +### Default Catalog + +The default catalog registers all standard A2UI components: + +```tsx +import { initializeDefaultCatalog } from '@a2ui/react'; + +// Call once at app startup +initializeDefaultCatalog(); +``` + +### Custom Components + +Register custom components to extend or override the default catalog: + +```tsx +import { ComponentRegistry } from '@a2ui/react'; + +// Get the singleton registry +const registry = ComponentRegistry.getInstance(); + +// Register a custom component +registry.register('CustomButton', { + component: MyCustomButton, +}); + +// Override an existing component +registry.register('Button', { + component: MyEnhancedButton, +}); +``` + +### Lazy Loading + +Components can be lazy-loaded for code splitting: + +```tsx +registry.register('HeavyChart', { + component: () => import('./components/HeavyChart'), + lazy: true, +}); +``` + +> **Note:** Small, commonly-used components (like Tabs, Modal) should be statically imported to avoid Vite cache issues during development. + +## Styles + +### Injecting Styles + +Inject A2UI structural and component styles once at app startup: + +```tsx +import { injectStyles } from '@a2ui/react/styles'; + +// In your app entry point +injectStyles(); +``` + +### Style Architecture + +The styles module provides: + +- **structuralStyles**: Utility classes from Lit renderer (layout-*, typography-*, color-*) +- **componentSpecificStyles**: CSS that replicates Lit's Shadow DOM scoped styles + +```typescript +import { structuralStyles, componentSpecificStyles } from '@a2ui/react/styles'; +``` + +### CSS Variables + +CSS color variables must be defined by the host application: + +```css +:root { + --n-0: #ffffff; + --n-100: #f5f5f5; + /* ... other palette variables */ + --p-500: #3b82f6; + /* ... */ +} +``` + +### Removing Styles + +For cleanup (e.g., in tests): + +```tsx +import { removeStyles } from '@a2ui/react/styles'; + +removeStyles(); ``` ## Development +### Setup + +```bash +cd renderers/react +npm install +``` + +### Build + ```bash npm run build # Build the package npm run dev # Watch mode -npm test # Run tests ``` + +### Type Check + +```bash +npm run typecheck +``` + +### Lint + +```bash +npm run lint +``` + +## Testing + +### Unit Tests + +Uses [Vitest](https://vitest.dev/) + [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/). + +```bash +npm test # Run once +npm run test:watch # Watch mode +``` + +**Structure:** +``` +tests/ +├── setup.ts # Initializes component catalog +├── helpers.tsx # TestWrapper, TestRenderer, message creators +└── components/ # Component tests (*.test.tsx) +``` + +**Example:** +```tsx +import { render, screen, fireEvent } from '@testing-library/react'; +import { TestWrapper, TestRenderer, createSimpleMessages } from '../helpers'; + +it('should dispatch action on click', () => { + const onAction = vi.fn(); + const messages = createSimpleMessages('btn-1', 'Button', { + child: 'text-1', + action: { name: 'submit' }, + }); + + render( + + + + ); + + fireEvent.click(screen.getByRole('button')); + expect(onAction).toHaveBeenCalled(); +}); +``` + +## Visual Parity Testing + +The React renderer maintains visual parity with the Lit renderer (reference implementation). A comprehensive test suite compares pixel-perfect screenshots between both renderers. + +### Running Visual Parity Tests + +```bash +cd visual-parity +npm install +npm test +``` + +### Quick Commands + +```bash +# Run all tests +npm test + +# Run specific component tests +npm test -- --grep "button" + +# Run with UI mode +npm run test:ui + +# Start dev servers for manual inspection +npm run dev +# React: http://localhost:5001 +# Lit: http://localhost:5002 +``` + +### Documentation + +- **[visual-parity/README.md](./visual-parity/README.md)** - Test suite usage and fixture creation +- **[visual-parity/PARITY.md](./visual-parity/PARITY.md)** - CSS transformation approach and implementation status + +### Key Concepts + +1. **Structural Mirroring**: React components mirror Lit's Shadow DOM structure +2. **CSS Selector Transformation**: `:host` → `.a2ui-surface .a2ui-{component}` +3. **Specificity Matching**: Uses `:where()` to match Lit's low specificity + +## API Reference + +### Core Exports + +```typescript +// Provider and Renderer +export { A2UIProvider, A2UIRenderer, A2UIViewer, ComponentNode }; + +// Hooks +export { useA2UI, useA2UIActions, useA2UIState, useA2UIContext, useA2UIComponent }; + +// Registry +export { ComponentRegistry, registerDefaultCatalog, initializeDefaultCatalog }; + +// Theme +export { ThemeProvider, useTheme, litTheme, defaultTheme }; + +// Styles (from '@a2ui/react/styles') +export { injectStyles, removeStyles, structuralStyles, componentSpecificStyles }; + +// Utilities +export { cn, classMapToString, stylesToObject }; + +// All component exports +export { Text, Image, Icon, Divider, Video, AudioPlayer }; +export { Row, Column, Card, List, Tabs, Modal }; +export { Button, TextField, CheckBox, Slider, DateTimeInput, MultipleChoice }; +``` + +### Types + +```typescript +import type { + Types, + Theme, + Surface, + SurfaceID, + AnyComponentNode, + ServerToClientMessage, + A2UIClientEventMessage, + A2UIComponentProps, + A2UIProviderProps, + A2UIRendererProps, + UseA2UIResult, + UseA2UIComponentResult, +} from '@a2ui/react'; +``` + +## Contributing + +### Code Style + +- All components use `React.memo()` for performance +- Use the two-context pattern for state management +- Follow the existing component structure for visual parity + +### Adding a New Component + +1. Create component in `src/components/{category}/{ComponentName}.tsx` +2. Follow wrapper div + section structure (see [Component Structure](#component-structure)) +3. Register in `src/registry/defaultCatalog.ts` +4. Export from `src/index.ts` +5. Add unit tests in `tests/components/{ComponentName}.test.tsx` +6. Add visual parity fixtures in `visual-parity/fixtures/components/` diff --git a/renderers/react/package-lock.json b/renderers/react/package-lock.json new file mode 100644 index 000000000..096872a44 --- /dev/null +++ b/renderers/react/package-lock.json @@ -0,0 +1,3309 @@ +{ + "name": "@a2ui/react", + "version": "0.8.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@a2ui/react", + "version": "0.8.0", + "license": "Apache-2.0", + "dependencies": { + "@a2ui/lit": "file:../lit", + "clsx": "^2.1.0", + "markdown-it": "^14.0.0" + }, + "devDependencies": { + "@testing-library/jest-dom": "^6.6.0", + "@testing-library/react": "^16.0.0", + "@types/markdown-it": "^14.1.0", + "@types/react": "^18.3.0", + "@types/react-dom": "^18.3.0", + "clsx": "^2.1.0", + "jsdom": "^25.0.0", + "markdown-it": "^14.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0", + "tsup": "^8.0.0", + "typescript": "^5.8.0", + "vitest": "^3.0.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "../lit": { + "name": "@a2ui/lit", + "version": "0.8.1", + "license": "Apache-2.0", + "dependencies": { + "@a2ui/web_core": "file:../web_core", + "@lit-labs/signals": "^0.1.3", + "@lit/context": "^1.1.4", + "lit": "^3.3.1", + "markdown-it": "^14.1.0", + "signal-utils": "^0.21.1" + }, + "devDependencies": { + "@types/markdown-it": "^14.1.2", + "@types/node": "^24.10.1", + "google-artifactregistry-auth": "^3.5.0", + "typescript": "^5.8.3", + "wireit": "^0.15.0-pre.2" + } + }, + "node_modules/@a2ui/lit": { + "resolved": "../lit", + "link": true + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", + "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", + "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-require": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", + "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fix-dts-default-cjs-exports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz", + "integrity": "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "rollup": "^4.34.8" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsdom": { + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz", + "integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssstyle": "^4.1.0", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.5", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.12", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.7.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.23", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", + "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-literal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tsup": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", + "integrity": "sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-require": "^5.1.0", + "cac": "^6.7.14", + "chokidar": "^4.0.3", + "consola": "^3.4.0", + "debug": "^4.4.0", + "esbuild": "^0.27.0", + "fix-dts-default-cjs-exports": "^1.0.0", + "joycon": "^3.1.1", + "picocolors": "^1.1.1", + "postcss-load-config": "^6.0.1", + "resolve-from": "^5.0.0", + "rollup": "^4.34.8", + "source-map": "^0.7.6", + "sucrase": "^3.35.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.11", + "tree-kill": "^1.2.2" + }, + "bin": { + "tsup": "dist/cli-default.js", + "tsup-node": "dist/cli-node.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@microsoft/api-extractor": "^7.36.0", + "@swc/core": "^1", + "postcss": "^8.4.12", + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "@microsoft/api-extractor": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "postcss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", + "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/renderers/react/package.json b/renderers/react/package.json index a992b8f25..14959db72 100644 --- a/renderers/react/package.json +++ b/renderers/react/package.json @@ -42,7 +42,7 @@ "clean": "rm -rf dist" }, "dependencies": { - "@a2ui/lit": "workspace:*", + "@a2ui/lit": "file:../lit", "clsx": "^2.1.0", "markdown-it": "^14.0.0" }, diff --git a/renderers/react/src/components/content/AudioPlayer.tsx b/renderers/react/src/components/content/AudioPlayer.tsx index 9fb48bb56..49478dbef 100644 --- a/renderers/react/src/components/content/AudioPlayer.tsx +++ b/renderers/react/src/components/content/AudioPlayer.tsx @@ -18,13 +18,20 @@ export const AudioPlayer = memo(function AudioPlayer({ node, surfaceId }: A2UICo return null; } + // Apply --weight CSS variable on root div (:host equivalent) for flex layouts + const hostStyle: React.CSSProperties = node.weight !== undefined + ? { '--weight': node.weight } as React.CSSProperties + : {}; + return ( -
- {description &&

{description}

} -
+
+
+ {snakeCaseName} +
+
); }); diff --git a/renderers/react/src/components/content/Image.tsx b/renderers/react/src/components/content/Image.tsx index 0a4c7772f..00baf76e9 100644 --- a/renderers/react/src/components/content/Image.tsx +++ b/renderers/react/src/components/content/Image.tsx @@ -37,14 +37,20 @@ export const Image = memo(function Image({ node, surfaceId }: A2UIComponentProps return null; } - // Match Lit structure:
+ // Apply --weight CSS variable on root div (:host equivalent) for flex layouts + const hostStyle: React.CSSProperties = node.weight !== undefined + ? { '--weight': node.weight } as React.CSSProperties + : {}; + return ( -
- -
+
+
+ +
+
); }); diff --git a/renderers/react/src/components/content/Text.tsx b/renderers/react/src/components/content/Text.tsx index 4a05f2ac4..15a2227a5 100644 --- a/renderers/react/src/components/content/Text.tsx +++ b/renderers/react/src/components/content/Text.tsx @@ -26,13 +26,14 @@ function isHintedStyles(styles: unknown): styles is HintedStyles { /** * Markdown-it instance for rendering markdown text. * Uses synchronous import to ensure availability at first render (matches Lit renderer). + * + * Configuration matches Lit's markdown directive (uses MarkdownIt defaults): + * - html: false (default) - Security: disable raw HTML + * - linkify: false (default) - Don't auto-convert URLs/emails to links + * - breaks: false (default) - Don't convert \n to
+ * - typographer: false (default) - Don't use smart quotes/dashes */ -const markdownRenderer = new MarkdownIt({ - html: false, // Security: disable raw HTML - breaks: true, // Convert \n to
- linkify: true, // Auto-convert URLs to links - typographer: true, // Smart quotes, dashes, etc. -}); +const markdownRenderer = new MarkdownIt(); /** * Apply theme classes to markdown HTML elements. @@ -66,6 +67,13 @@ function applyMarkdownTheme(html: string, markdownTheme: Types.Theme['markdown'] /** * Text component - renders text content with markdown support. * + * Structure mirrors Lit's Text component: + *
← :host equivalent + *
← theme classes + *

...

← rendered markdown content + *
+ *
+ * * Text is parsed as markdown and rendered as HTML (matches Lit renderer behavior). * Supports usageHint values: h1, h2, h3, h4, h5, caption, body * @@ -144,13 +152,19 @@ export const Text = memo(function Text({ node, surfaceId }: A2UIComponentProps wrapper with markdown rendering (matches Lit structure) + // Apply --weight CSS variable on root div (:host equivalent) for flex layouts + const hostStyle: React.CSSProperties = node.weight !== undefined + ? { '--weight': node.weight } as React.CSSProperties + : {}; + return ( -
+
+
+
); }); diff --git a/renderers/react/src/components/content/Video.tsx b/renderers/react/src/components/content/Video.tsx index 4f927df4e..40c1ecc50 100644 --- a/renderers/react/src/components/content/Video.tsx +++ b/renderers/react/src/components/content/Video.tsx @@ -39,30 +39,30 @@ export const Video = memo(function Video({ node, surfaceId }: A2UIComponentProps const youtubeId = getYouTubeVideoId(url); - if (youtubeId) { - return ( -
+
- ' }, + usageHint: 'body', }); const { container } = render( diff --git a/renderers/react/tests/utils/messages.ts b/renderers/react/tests/utils/messages.ts index 95b60e39b..dbba4a0fa 100644 --- a/renderers/react/tests/utils/messages.ts +++ b/renderers/react/tests/utils/messages.ts @@ -56,7 +56,7 @@ export function createSimpleMessages( * Per A2UI spec: Updates application state independently of UI structure. */ export function createDataModelUpdate( - contents: Array<{ key: string; value: unknown }>, + contents: Array<{ key: string; valueString?: string; valueNumber?: number; valueBoolean?: boolean; valueMap?: unknown[] }>, surfaceId = '@default', path?: string ): Types.ServerToClientMessage { From bea72bcc33672dc235dff405e7bed92154a868a5 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 6 Mar 2026 11:40:11 +0100 Subject: [PATCH 35/53] feat(react): add altText support to Image component Resolve the optional altText property from the schema and pass it to the img element, replacing the previously hardcoded empty string. --- renderers/react/src/components/content/Image.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/renderers/react/src/components/content/Image.tsx b/renderers/react/src/components/content/Image.tsx index 00baf76e9..27532a314 100644 --- a/renderers/react/src/components/content/Image.tsx +++ b/renderers/react/src/components/content/Image.tsx @@ -18,6 +18,7 @@ export const Image = memo(function Image({ node, surfaceId }: A2UIComponentProps const props = node.properties; const url = resolveString(props.url); + const altText = resolveString((props as any).altText); const usageHint = props.usageHint as UsageHint | undefined; const fit = (props.fit as FitMode) ?? 'fill'; @@ -48,7 +49,7 @@ export const Image = memo(function Image({ node, surfaceId }: A2UIComponentProps className={classMapToString(classes)} style={style} > - + {altText
); From 1ba9c1c3feefffdef8c058b1ee13d420b308e886 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 6 Mar 2026 11:48:45 +0100 Subject: [PATCH 36/53] chore: add React renderer to CODEOWNERS Route renderers/react/ changes to @lukasmoschitz for review. --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index af71504bf..820dc39e7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -20,6 +20,7 @@ # Renderers /renderers/angular/ @ditman @ava-cassiopeia @crisbeto /renderers/lit/ @ditman @ava-cassiopeia @paullewis +/renderers/react/ @lukasmoschitz /renderers/web_core/ @ditman @ava-cassiopeia @jacobsimionato /renderers/markdown/ @ditman From 1812b40897afc2b7722c8b1ab828697534835ad0 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 6 Mar 2026 12:07:36 +0100 Subject: [PATCH 37/53] fix(react): use published @a2ui/lit package instead of local file path Replace "file:../lit" with "^0.8.1" so the package is publishable to NPM. --- renderers/react/package-lock.json | 4 +--- renderers/react/package.json | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/renderers/react/package-lock.json b/renderers/react/package-lock.json index 76ea65059..b110830d2 100644 --- a/renderers/react/package-lock.json +++ b/renderers/react/package-lock.json @@ -9,7 +9,7 @@ "version": "0.8.0", "license": "Apache-2.0", "dependencies": { - "@a2ui/lit": "file:../lit", + "@a2ui/lit": "^0.8.1", "clsx": "^2.1.0", "markdown-it": "^14.0.0" }, @@ -50,11 +50,9 @@ "@lit-labs/signals": "^0.1.3", "@lit/context": "^1.1.4", "lit": "^3.3.1", - "markdown-it": "^14.1.0", "signal-utils": "^0.21.1" }, "devDependencies": { - "@types/markdown-it": "^14.1.2", "@types/node": "^24.10.1", "google-artifactregistry-auth": "^3.5.0", "typescript": "^5.8.3", diff --git a/renderers/react/package.json b/renderers/react/package.json index 85f393fb8..b81f4111a 100644 --- a/renderers/react/package.json +++ b/renderers/react/package.json @@ -48,7 +48,7 @@ "clean": "rm -rf dist" }, "dependencies": { - "@a2ui/lit": "file:../lit", + "@a2ui/lit": "^0.8.1", "clsx": "^2.1.0", "markdown-it": "^14.0.0" }, From d4443c61ff21e93bfe258ec9b44f1d7414e649b5 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 6 Mar 2026 14:21:43 +0100 Subject: [PATCH 38/53] refactor(react): replace @a2ui/lit dependency with @a2ui/web_core Remove the heavyweight Lit renderer dependency in favor of the lightweight web_core package. This eliminates Lit, lit-html, and Lit signals from the React renderer's dependency tree, making it suitable for embedding in other packages without bundle bloat. - Replace all @a2ui/lit/0.8 imports with @a2ui/web_core subpath imports - Use plain A2uiMessageProcessor instead of Lit signal-based variant - Replace manual pixelmatch.d.ts with @types/pixelmatch package - Update empty surfaceUpdate test to match web_core@0.8.0 behavior --- renderers/react/package-lock.json | 33 ++++++++++++++++--- renderers/react/package.json | 2 +- .../src/components/content/AudioPlayer.tsx | 2 +- .../react/src/components/content/Divider.tsx | 2 +- .../react/src/components/content/Icon.tsx | 2 +- .../react/src/components/content/Image.tsx | 2 +- .../react/src/components/content/Text.tsx | 2 +- .../react/src/components/content/Video.tsx | 2 +- .../src/components/interactive/Button.tsx | 2 +- .../src/components/interactive/CheckBox.tsx | 2 +- .../components/interactive/DateTimeInput.tsx | 2 +- .../components/interactive/MultipleChoice.tsx | 2 +- .../src/components/interactive/Slider.tsx | 2 +- .../src/components/interactive/TextField.tsx | 2 +- .../react/src/components/layout/Card.tsx | 2 +- .../react/src/components/layout/Column.tsx | 2 +- .../react/src/components/layout/List.tsx | 2 +- .../react/src/components/layout/Modal.tsx | 2 +- renderers/react/src/components/layout/Row.tsx | 2 +- .../react/src/components/layout/Tabs.tsx | 2 +- renderers/react/src/core/A2UIProvider.tsx | 5 +-- renderers/react/src/core/A2UIViewer.tsx | 2 +- renderers/react/src/core/ComponentNode.tsx | 2 +- renderers/react/src/core/store.ts | 4 +-- renderers/react/src/hooks/useA2UI.ts | 2 +- renderers/react/src/hooks/useA2UIComponent.ts | 3 +- renderers/react/src/lib/utils.ts | 2 +- .../react/src/registry/ComponentRegistry.ts | 2 +- renderers/react/src/styles/index.ts | 2 +- renderers/react/src/theme/ThemeContext.tsx | 2 +- renderers/react/src/theme/litTheme.ts | 2 +- renderers/react/src/types.ts | 3 +- .../tests/integration/ThemeContext.test.tsx | 2 +- .../react/tests/integration/actions.test.tsx | 2 +- .../tests/integration/components.test.tsx | 17 +++++----- .../tests/integration/data-binding.test.tsx | 2 +- .../react/tests/integration/messages.test.tsx | 2 +- .../tests/integration/templates.test.tsx | 2 +- .../tests/unit/components/Button.test.tsx | 2 +- .../react/tests/unit/components/Card.test.tsx | 2 +- .../tests/unit/components/Column.test.tsx | 2 +- .../tests/unit/components/Divider.test.tsx | 2 +- .../react/tests/unit/components/List.test.tsx | 2 +- .../tests/unit/components/Modal.test.tsx | 2 +- .../react/tests/unit/components/Row.test.tsx | 2 +- .../react/tests/unit/components/Tabs.test.tsx | 2 +- renderers/react/tests/utils/messages.ts | 2 +- renderers/react/tests/utils/render.tsx | 2 +- .../react/visual-parity/package-lock.json | 15 +++++++-- renderers/react/visual-parity/package.json | 1 + .../react/visual-parity/types/pixelmatch.d.ts | 22 ------------- 51 files changed, 102 insertions(+), 85 deletions(-) delete mode 100644 renderers/react/visual-parity/types/pixelmatch.d.ts diff --git a/renderers/react/package-lock.json b/renderers/react/package-lock.json index b110830d2..e628991ed 100644 --- a/renderers/react/package-lock.json +++ b/renderers/react/package-lock.json @@ -9,7 +9,7 @@ "version": "0.8.0", "license": "Apache-2.0", "dependencies": { - "@a2ui/lit": "^0.8.1", + "@a2ui/web_core": "^0.8.0", "clsx": "^2.1.0", "markdown-it": "^14.0.0" }, @@ -44,6 +44,7 @@ "../lit": { "name": "@a2ui/lit", "version": "0.8.1", + "extraneous": true, "license": "Apache-2.0", "dependencies": { "@a2ui/web_core": "file:../web_core", @@ -59,9 +60,15 @@ "wireit": "^0.15.0-pre.2" } }, - "node_modules/@a2ui/lit": { - "resolved": "../lit", - "link": true + "node_modules/@a2ui/web_core": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@a2ui/web_core/-/web_core-0.8.0.tgz", + "integrity": "sha512-UG8IDsiLYuZjnEmqH7129EbN1Ds3DfC8FXPSI/E+0kcZ4VGxo//Kij6ZF2jBXBKyrHYPehoDtffFFIIFvgBp6g==", + "license": "Apache-2.0", + "dependencies": { + "zod": "^3.25.76", + "zod-to-json-schema": "^3.25.1" + } }, "node_modules/@acemir/cssom": { "version": "0.9.31", @@ -6272,6 +6279,24 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.25 || ^4" + } } } } diff --git a/renderers/react/package.json b/renderers/react/package.json index b81f4111a..04e91c475 100644 --- a/renderers/react/package.json +++ b/renderers/react/package.json @@ -48,7 +48,7 @@ "clean": "rm -rf dist" }, "dependencies": { - "@a2ui/lit": "^0.8.1", + "@a2ui/web_core": "^0.8.0", "clsx": "^2.1.0", "markdown-it": "^14.0.0" }, diff --git a/renderers/react/src/components/content/AudioPlayer.tsx b/renderers/react/src/components/content/AudioPlayer.tsx index 49478dbef..27bb27046 100644 --- a/renderers/react/src/components/content/AudioPlayer.tsx +++ b/renderers/react/src/components/content/AudioPlayer.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/content/Divider.tsx b/renderers/react/src/components/content/Divider.tsx index 3e8563e27..0c7e99b41 100644 --- a/renderers/react/src/components/content/Divider.tsx +++ b/renderers/react/src/components/content/Divider.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/content/Icon.tsx b/renderers/react/src/components/content/Icon.tsx index 31f5dda8c..4dd250061 100644 --- a/renderers/react/src/components/content/Icon.tsx +++ b/renderers/react/src/components/content/Icon.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/content/Image.tsx b/renderers/react/src/components/content/Image.tsx index 27532a314..e6597e38a 100644 --- a/renderers/react/src/components/content/Image.tsx +++ b/renderers/react/src/components/content/Image.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject, mergeClassMaps } from '../../lib/utils'; diff --git a/renderers/react/src/components/content/Text.tsx b/renderers/react/src/components/content/Text.tsx index a4736ae58..df872e31f 100644 --- a/renderers/react/src/components/content/Text.tsx +++ b/renderers/react/src/components/content/Text.tsx @@ -1,5 +1,5 @@ import { useMemo, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject, mergeClassMaps } from '../../lib/utils'; diff --git a/renderers/react/src/components/content/Video.tsx b/renderers/react/src/components/content/Video.tsx index 2f5721726..121bda89f 100644 --- a/renderers/react/src/components/content/Video.tsx +++ b/renderers/react/src/components/content/Video.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/interactive/Button.tsx b/renderers/react/src/components/interactive/Button.tsx index 16e913cc0..57f5f574f 100644 --- a/renderers/react/src/components/interactive/Button.tsx +++ b/renderers/react/src/components/interactive/Button.tsx @@ -1,5 +1,5 @@ import { useCallback, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/interactive/CheckBox.tsx b/renderers/react/src/components/interactive/CheckBox.tsx index f97639481..89bf64174 100644 --- a/renderers/react/src/components/interactive/CheckBox.tsx +++ b/renderers/react/src/components/interactive/CheckBox.tsx @@ -1,5 +1,5 @@ import { useState, useCallback, useEffect, useId, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/interactive/DateTimeInput.tsx b/renderers/react/src/components/interactive/DateTimeInput.tsx index 0395363da..535a3867d 100644 --- a/renderers/react/src/components/interactive/DateTimeInput.tsx +++ b/renderers/react/src/components/interactive/DateTimeInput.tsx @@ -1,5 +1,5 @@ import { useState, useCallback, useEffect, useId, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/interactive/MultipleChoice.tsx b/renderers/react/src/components/interactive/MultipleChoice.tsx index fbc237a77..7e27adafa 100644 --- a/renderers/react/src/components/interactive/MultipleChoice.tsx +++ b/renderers/react/src/components/interactive/MultipleChoice.tsx @@ -1,5 +1,5 @@ import { useCallback, useId, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/interactive/Slider.tsx b/renderers/react/src/components/interactive/Slider.tsx index 405d8810f..fec2b7d27 100644 --- a/renderers/react/src/components/interactive/Slider.tsx +++ b/renderers/react/src/components/interactive/Slider.tsx @@ -1,5 +1,5 @@ import { useState, useCallback, useEffect, useId, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/interactive/TextField.tsx b/renderers/react/src/components/interactive/TextField.tsx index 4986f45b8..6b667b602 100644 --- a/renderers/react/src/components/interactive/TextField.tsx +++ b/renderers/react/src/components/interactive/TextField.tsx @@ -1,5 +1,5 @@ import { useState, useCallback, useEffect, useId, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/layout/Card.tsx b/renderers/react/src/components/layout/Card.tsx index aa114f9a9..b159acb05 100644 --- a/renderers/react/src/components/layout/Card.tsx +++ b/renderers/react/src/components/layout/Card.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/layout/Column.tsx b/renderers/react/src/components/layout/Column.tsx index 7a6f69883..f18fd968d 100644 --- a/renderers/react/src/components/layout/Column.tsx +++ b/renderers/react/src/components/layout/Column.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/layout/List.tsx b/renderers/react/src/components/layout/List.tsx index 375f14477..9c9c92b3e 100644 --- a/renderers/react/src/components/layout/List.tsx +++ b/renderers/react/src/components/layout/List.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/layout/Modal.tsx b/renderers/react/src/components/layout/Modal.tsx index c2f42de18..017f92d9f 100644 --- a/renderers/react/src/components/layout/Modal.tsx +++ b/renderers/react/src/components/layout/Modal.tsx @@ -1,5 +1,5 @@ import { useState, useCallback, useRef, useEffect, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/layout/Row.tsx b/renderers/react/src/components/layout/Row.tsx index 72867c5e5..8bbaf7766 100644 --- a/renderers/react/src/components/layout/Row.tsx +++ b/renderers/react/src/components/layout/Row.tsx @@ -1,5 +1,5 @@ import { memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject } from '../../lib/utils'; diff --git a/renderers/react/src/components/layout/Tabs.tsx b/renderers/react/src/components/layout/Tabs.tsx index d556c579b..3785a7830 100644 --- a/renderers/react/src/components/layout/Tabs.tsx +++ b/renderers/react/src/components/layout/Tabs.tsx @@ -1,5 +1,5 @@ import { useState, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; import { useA2UIComponent } from '../../hooks/useA2UIComponent'; import { classMapToString, stylesToObject, mergeClassMaps } from '../../lib/utils'; diff --git a/renderers/react/src/core/A2UIProvider.tsx b/renderers/react/src/core/A2UIProvider.tsx index 31fb31bbc..25f559d03 100644 --- a/renderers/react/src/core/A2UIProvider.tsx +++ b/renderers/react/src/core/A2UIProvider.tsx @@ -6,7 +6,8 @@ import { useMemo, type ReactNode, } from 'react'; -import { Data, type Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; +import { A2uiMessageProcessor } from '@a2ui/web_core/data/model-processor'; import type { A2UIContextValue, A2UIActions } from './store'; import { ThemeProvider } from '../theme/ThemeContext'; import type { OnActionCallback } from '../types'; @@ -65,7 +66,7 @@ export function A2UIProvider({ onAction, theme, children }: A2UIProviderProps) { // Create message processor only once using ref const processorRef = useRef(null); if (!processorRef.current) { - processorRef.current = Data.createSignalA2uiMessageProcessor(); + processorRef.current = new A2uiMessageProcessor(); } const processor = processorRef.current; diff --git a/renderers/react/src/core/A2UIViewer.tsx b/renderers/react/src/core/A2UIViewer.tsx index 0abf3b051..7b0eb7784 100644 --- a/renderers/react/src/core/A2UIViewer.tsx +++ b/renderers/react/src/core/A2UIViewer.tsx @@ -1,7 +1,7 @@ 'use client'; import React, { useId, useMemo, useEffect, useRef } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { A2UIProvider, useA2UIActions } from './A2UIProvider'; import { A2UIRenderer } from './A2UIRenderer'; import { initializeDefaultCatalog } from '../registry/defaultCatalog'; diff --git a/renderers/react/src/core/ComponentNode.tsx b/renderers/react/src/core/ComponentNode.tsx index f36eb0bf7..86b665a14 100644 --- a/renderers/react/src/core/ComponentNode.tsx +++ b/renderers/react/src/core/ComponentNode.tsx @@ -1,5 +1,5 @@ import { Suspense, useMemo, memo } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { ComponentRegistry } from '../registry/ComponentRegistry'; /** Memoized loading fallback to avoid recreating on each render */ diff --git a/renderers/react/src/core/store.ts b/renderers/react/src/core/store.ts index 30c206ab5..946c7670d 100644 --- a/renderers/react/src/core/store.ts +++ b/renderers/react/src/core/store.ts @@ -1,4 +1,4 @@ -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { OnActionCallback } from '../types'; /** @@ -45,7 +45,7 @@ export interface A2UIActions { * Combines stable actions with reactive state. */ export interface A2UIContextValue extends A2UIActions { - /** The underlying message processor from @a2ui/lit */ + /** The underlying message processor from @a2ui/web_core */ processor: Types.MessageProcessor; /** Version counter for triggering React re-renders */ diff --git a/renderers/react/src/hooks/useA2UI.ts b/renderers/react/src/hooks/useA2UI.ts index 675c5848e..c6a741644 100644 --- a/renderers/react/src/hooks/useA2UI.ts +++ b/renderers/react/src/hooks/useA2UI.ts @@ -1,4 +1,4 @@ -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { useA2UIActions, useA2UIState } from '../core/A2UIProvider'; /** diff --git a/renderers/react/src/hooks/useA2UIComponent.ts b/renderers/react/src/hooks/useA2UIComponent.ts index 510877f0a..57452a32d 100644 --- a/renderers/react/src/hooks/useA2UIComponent.ts +++ b/renderers/react/src/hooks/useA2UIComponent.ts @@ -1,5 +1,6 @@ import { useCallback, useId, useMemo } from 'react'; -import type { Types, Primitives } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; +import type * as Primitives from '@a2ui/web_core/types/primitives'; import { useA2UIActions, useA2UIState } from '../core/A2UIProvider'; import { useTheme } from '../theme/ThemeContext'; diff --git a/renderers/react/src/lib/utils.ts b/renderers/react/src/lib/utils.ts index b6826bed1..56f0bb634 100644 --- a/renderers/react/src/lib/utils.ts +++ b/renderers/react/src/lib/utils.ts @@ -1,5 +1,5 @@ import { clsx, type ClassValue } from 'clsx'; -import { Styles } from '@a2ui/lit/0.8'; +import * as Styles from '@a2ui/web_core/styles/index'; /** * Utility function to merge class names. diff --git a/renderers/react/src/registry/ComponentRegistry.ts b/renderers/react/src/registry/ComponentRegistry.ts index 10a1c103f..9f032e042 100644 --- a/renderers/react/src/registry/ComponentRegistry.ts +++ b/renderers/react/src/registry/ComponentRegistry.ts @@ -1,5 +1,5 @@ import { lazy, type ComponentType } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps, ComponentLoader, ComponentRegistration } from '../types'; /** diff --git a/renderers/react/src/styles/index.ts b/renderers/react/src/styles/index.ts index e073a8948..6c753df04 100644 --- a/renderers/react/src/styles/index.ts +++ b/renderers/react/src/styles/index.ts @@ -1,4 +1,4 @@ -import { Styles } from '@a2ui/lit/0.8'; +import * as Styles from '@a2ui/web_core/styles/index'; import { resetStyles } from './reset'; /** diff --git a/renderers/react/src/theme/ThemeContext.tsx b/renderers/react/src/theme/ThemeContext.tsx index 211bf0d19..42e99e370 100644 --- a/renderers/react/src/theme/ThemeContext.tsx +++ b/renderers/react/src/theme/ThemeContext.tsx @@ -1,5 +1,5 @@ import { createContext, useContext, type ReactNode } from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { defaultTheme } from './litTheme'; /** diff --git a/renderers/react/src/theme/litTheme.ts b/renderers/react/src/theme/litTheme.ts index 19493892b..54477ce2c 100644 --- a/renderers/react/src/theme/litTheme.ts +++ b/renderers/react/src/theme/litTheme.ts @@ -1,4 +1,4 @@ -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Default theme for A2UI React components. diff --git a/renderers/react/src/types.ts b/renderers/react/src/types.ts index 59e6ba223..7db73e3e0 100644 --- a/renderers/react/src/types.ts +++ b/renderers/react/src/types.ts @@ -1,5 +1,6 @@ import type { ComponentType } from 'react'; -import type { Types, Primitives } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; +import type * as Primitives from '@a2ui/web_core/types/primitives'; // Re-export the Types and Primitives namespaces for convenience export type { Types, Primitives }; diff --git a/renderers/react/tests/integration/ThemeContext.test.tsx b/renderers/react/tests/integration/ThemeContext.test.tsx index 68e15201b..06701db00 100644 --- a/renderers/react/tests/integration/ThemeContext.test.tsx +++ b/renderers/react/tests/integration/ThemeContext.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect } from 'vitest'; import { render } from '@testing-library/react'; import React from 'react'; import { TestWrapper, TestRenderer, createSurfaceUpdate, createBeginRendering } from '../utils'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { litTheme } from '../../src/theme/litTheme'; /** diff --git a/renderers/react/tests/integration/actions.test.tsx b/renderers/react/tests/integration/actions.test.tsx index 6a0db888e..01d8f3275 100644 --- a/renderers/react/tests/integration/actions.test.tsx +++ b/renderers/react/tests/integration/actions.test.tsx @@ -1,7 +1,7 @@ import { describe, it, expect, vi } from 'vitest'; import { render, screen, fireEvent } from '@testing-library/react'; import React from 'react'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { TestWrapper, TestRenderer, diff --git a/renderers/react/tests/integration/components.test.tsx b/renderers/react/tests/integration/components.test.tsx index 3a91bd240..4b40f475e 100644 --- a/renderers/react/tests/integration/components.test.tsx +++ b/renderers/react/tests/integration/components.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect, vi } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; import { A2UIProvider, A2UIRenderer, useA2UI } from '../../src'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { TestWrapper, TestRenderer, @@ -300,26 +300,27 @@ describe('Component Updates', () => { expect(textElements[2]).toHaveTextContent('B'); }); - it('should reject empty surfaceUpdate (schema requires at least 1 component)', () => { - // The A2UI protocol schema enforces min(1) on surfaceUpdate.components. - // An empty surfaceUpdate is a protocol violation and should throw a validation error. + it('should handle empty surfaceUpdate gracefully (no crash, no surface created)', () => { + // An empty surfaceUpdate has no components to render. + // The processor should handle this without crashing. function EmptySurfaceRenderer() { const { processMessages } = useA2UI(); useEffect(() => { - expect(() => { - processMessages([createSurfaceUpdate([])]); - }).toThrow(); + processMessages([createSurfaceUpdate([])]); }, [processMessages]); return ; } - render( + const { container } = render( ); + + // No components should be rendered + expect(container.querySelector('.a2ui-surface')?.children.length ?? 0).toBe(0); }); it('should NOT empty the surface when invalid surfaceUpdate is rejected (requires deleteSurface)', async () => { diff --git a/renderers/react/tests/integration/data-binding.test.tsx b/renderers/react/tests/integration/data-binding.test.tsx index 0c392de92..3ad9e9b5a 100644 --- a/renderers/react/tests/integration/data-binding.test.tsx +++ b/renderers/react/tests/integration/data-binding.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect } from 'vitest'; import { render, screen, fireEvent, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; import { A2UIProvider, A2UIRenderer, useA2UI } from '../../src'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { TestWrapper, TestRenderer, diff --git a/renderers/react/tests/integration/messages.test.tsx b/renderers/react/tests/integration/messages.test.tsx index 46f27883a..049a27d94 100644 --- a/renderers/react/tests/integration/messages.test.tsx +++ b/renderers/react/tests/integration/messages.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; import { A2UIProvider, A2UIRenderer, useA2UI } from '../../src'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { TestWrapper, TestRenderer, diff --git a/renderers/react/tests/integration/templates.test.tsx b/renderers/react/tests/integration/templates.test.tsx index bb6e02594..8bc3cc7a0 100644 --- a/renderers/react/tests/integration/templates.test.tsx +++ b/renderers/react/tests/integration/templates.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect, vi } from 'vitest'; import { render, screen, fireEvent, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; import { A2UIProvider, A2UIRenderer, useA2UI } from '../../src'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; import { createSurfaceUpdate, createBeginRendering, diff --git a/renderers/react/tests/unit/components/Button.test.tsx b/renderers/react/tests/unit/components/Button.test.tsx index 6ee7d5931..bb8e87621 100644 --- a/renderers/react/tests/unit/components/Button.test.tsx +++ b/renderers/react/tests/unit/components/Button.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect, vi } from 'vitest'; import { render, screen, fireEvent } from '@testing-library/react'; import React from 'react'; import { TestWrapper, TestRenderer, createSurfaceUpdate, createBeginRendering, getMockCallArg } from '../../utils'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Button tests following A2UI specification. diff --git a/renderers/react/tests/unit/components/Card.test.tsx b/renderers/react/tests/unit/components/Card.test.tsx index 1b427f310..3053d1fa3 100644 --- a/renderers/react/tests/unit/components/Card.test.tsx +++ b/renderers/react/tests/unit/components/Card.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/react'; import React from 'react'; import { TestWrapper, TestRenderer, createSurfaceUpdate, createBeginRendering } from '../../utils'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Card tests following A2UI specification. diff --git a/renderers/react/tests/unit/components/Column.test.tsx b/renderers/react/tests/unit/components/Column.test.tsx index 6f655e041..8a067a922 100644 --- a/renderers/react/tests/unit/components/Column.test.tsx +++ b/renderers/react/tests/unit/components/Column.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/react'; import React from 'react'; import { TestWrapper, TestRenderer, createSurfaceUpdate, createBeginRendering } from '../../utils'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Column tests following A2UI specification. diff --git a/renderers/react/tests/unit/components/Divider.test.tsx b/renderers/react/tests/unit/components/Divider.test.tsx index a097453ec..13e7bb4e6 100644 --- a/renderers/react/tests/unit/components/Divider.test.tsx +++ b/renderers/react/tests/unit/components/Divider.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect } from 'vitest'; import { render } from '@testing-library/react'; import React from 'react'; import { TestWrapper, TestRenderer, createSimpleMessages, createSurfaceUpdate, createBeginRendering } from '../../utils'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Divider tests following A2UI specification. diff --git a/renderers/react/tests/unit/components/List.test.tsx b/renderers/react/tests/unit/components/List.test.tsx index d98ad28d3..4cb538565 100644 --- a/renderers/react/tests/unit/components/List.test.tsx +++ b/renderers/react/tests/unit/components/List.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect } from 'vitest'; import { render } from '@testing-library/react'; import React from 'react'; import { TestWrapper, TestRenderer, createSurfaceUpdate, createBeginRendering } from '../../utils'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * List tests following A2UI specification. diff --git a/renderers/react/tests/unit/components/Modal.test.tsx b/renderers/react/tests/unit/components/Modal.test.tsx index 6f4d38488..297b84ddd 100644 --- a/renderers/react/tests/unit/components/Modal.test.tsx +++ b/renderers/react/tests/unit/components/Modal.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; import { render, screen, fireEvent, waitFor } from '@testing-library/react'; import React from 'react'; import { TestWrapper, TestRenderer, createSurfaceUpdate, createBeginRendering, getMockCallArg } from '../../utils'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Modal tests following A2UI specification. diff --git a/renderers/react/tests/unit/components/Row.test.tsx b/renderers/react/tests/unit/components/Row.test.tsx index 5f80af9ce..faf6b05de 100644 --- a/renderers/react/tests/unit/components/Row.test.tsx +++ b/renderers/react/tests/unit/components/Row.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/react'; import React from 'react'; import { TestWrapper, TestRenderer, createSurfaceUpdate, createBeginRendering } from '../../utils'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Row tests following A2UI specification. diff --git a/renderers/react/tests/unit/components/Tabs.test.tsx b/renderers/react/tests/unit/components/Tabs.test.tsx index d81425e44..ec22016ee 100644 --- a/renderers/react/tests/unit/components/Tabs.test.tsx +++ b/renderers/react/tests/unit/components/Tabs.test.tsx @@ -2,7 +2,7 @@ import { describe, it, expect } from 'vitest'; import { render, screen, fireEvent } from '@testing-library/react'; import React from 'react'; import { TestWrapper, TestRenderer, createSurfaceUpdate, createBeginRendering } from '../../utils'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Tabs tests following A2UI specification. diff --git a/renderers/react/tests/utils/messages.ts b/renderers/react/tests/utils/messages.ts index dbba4a0fa..6cd03c319 100644 --- a/renderers/react/tests/utils/messages.ts +++ b/renderers/react/tests/utils/messages.ts @@ -1,4 +1,4 @@ -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Create a surface update message with components. diff --git a/renderers/react/tests/utils/render.tsx b/renderers/react/tests/utils/render.tsx index 0c156273c..04afeacba 100644 --- a/renderers/react/tests/utils/render.tsx +++ b/renderers/react/tests/utils/render.tsx @@ -1,6 +1,6 @@ import React, { useEffect, type ReactNode } from 'react'; import { A2UIProvider, A2UIRenderer, useA2UI } from '../../src'; -import type { Types } from '@a2ui/lit/0.8'; +import type * as Types from '@a2ui/web_core/types/types'; /** * Helper component that processes messages and renders a surface. diff --git a/renderers/react/visual-parity/package-lock.json b/renderers/react/visual-parity/package-lock.json index ec8a2717b..d5b6d6bd3 100644 --- a/renderers/react/visual-parity/package-lock.json +++ b/renderers/react/visual-parity/package-lock.json @@ -18,6 +18,7 @@ }, "devDependencies": { "@playwright/test": "^1.58.1", + "@types/pixelmatch": "^5.2.6", "@types/pngjs": "^6.0.0", "@types/react": "^18.3.0", "@types/react-dom": "^18.3.0", @@ -34,7 +35,7 @@ "version": "0.8.0", "license": "Apache-2.0", "dependencies": { - "@a2ui/lit": "file:../lit", + "@a2ui/web_core": "^0.8.0", "clsx": "^2.1.0", "markdown-it": "^14.0.0" }, @@ -75,11 +76,9 @@ "@lit-labs/signals": "^0.1.3", "@lit/context": "^1.1.4", "lit": "^3.3.1", - "markdown-it": "^14.1.0", "signal-utils": "^0.21.1" }, "devDependencies": { - "@types/markdown-it": "^14.1.2", "@types/node": "^24.10.1", "google-artifactregistry-auth": "^3.5.0", "typescript": "^5.8.3", @@ -1377,6 +1376,16 @@ "undici-types": "~7.16.0" } }, + "node_modules/@types/pixelmatch": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/@types/pixelmatch/-/pixelmatch-5.2.6.tgz", + "integrity": "sha512-wC83uexE5KGuUODn6zkm9gMzTwdY5L0chiK+VrKcDfEjzxh1uadlWTvOmAbCpnM9zx/Ww3f8uKlYQVnO/TrqVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/pngjs": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/@types/pngjs/-/pngjs-6.0.5.tgz", diff --git a/renderers/react/visual-parity/package.json b/renderers/react/visual-parity/package.json index 671c38c48..1fc4f2e35 100644 --- a/renderers/react/visual-parity/package.json +++ b/renderers/react/visual-parity/package.json @@ -25,6 +25,7 @@ }, "devDependencies": { "@playwright/test": "^1.58.1", + "@types/pixelmatch": "^5.2.6", "@types/pngjs": "^6.0.0", "@types/react": "^18.3.0", "@types/react-dom": "^18.3.0", diff --git a/renderers/react/visual-parity/types/pixelmatch.d.ts b/renderers/react/visual-parity/types/pixelmatch.d.ts deleted file mode 100644 index b6997123d..000000000 --- a/renderers/react/visual-parity/types/pixelmatch.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -declare module 'pixelmatch' { - interface PixelmatchOptions { - threshold?: number; - includeAA?: boolean; - alpha?: number; - aaColor?: [number, number, number]; - diffColor?: [number, number, number]; - diffColorAlt?: [number, number, number]; - diffMask?: boolean; - } - - function pixelmatch( - img1: Uint8Array | Uint8ClampedArray, - img2: Uint8Array | Uint8ClampedArray, - output: Uint8Array | Uint8ClampedArray | null, - width: number, - height: number, - options?: PixelmatchOptions - ): number; - - export = pixelmatch; -} From 6cae9f48e820e3a4d50f129233ee29c9927d062e Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 6 Mar 2026 14:27:28 +0100 Subject: [PATCH 39/53] fix(visual-parity): inject markdown renderer for Lit test harness The Lit renderer no longer includes a default markdown renderer. Provide renderMarkdown from @a2ui/markdown-it via Lit context so Text widget parity tests continue to work. --- renderers/react/visual-parity/lit/src/main.ts | 4 ++ .../react/visual-parity/package-lock.json | 57 +++++++++++++++++++ renderers/react/visual-parity/package.json | 1 + 3 files changed, 62 insertions(+) diff --git a/renderers/react/visual-parity/lit/src/main.ts b/renderers/react/visual-parity/lit/src/main.ts index f8435c47d..4d5d50c57 100644 --- a/renderers/react/visual-parity/lit/src/main.ts +++ b/renderers/react/visual-parity/lit/src/main.ts @@ -3,6 +3,7 @@ import * as UI from '@a2ui/lit/ui'; import { LitElement, html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { provide } from '@lit/context'; +import { renderMarkdown } from '@a2ui/markdown-it'; import { allFixtures, type FixtureName, type ComponentFixture } from '../../fixtures'; import { getTheme, themeNames, type ThemeName } from '../../fixtures/themes'; @@ -16,6 +17,9 @@ class ThemedA2UISurface extends LitElement { @property({ attribute: false }) accessor theme: v0_8.Types.Theme | undefined = undefined; + @provide({ context: UI.Context.markdown }) + accessor markdownRenderer: v0_8.Types.MarkdownRenderer = renderMarkdown; + @property({ attribute: false }) accessor surfaceId: string = ''; diff --git a/renderers/react/visual-parity/package-lock.json b/renderers/react/visual-parity/package-lock.json index d5b6d6bd3..5ce8c4949 100644 --- a/renderers/react/visual-parity/package-lock.json +++ b/renderers/react/visual-parity/package-lock.json @@ -9,6 +9,7 @@ "version": "0.8.0", "dependencies": { "@a2ui/lit": "file:../../lit", + "@a2ui/markdown-it": "^0.0.1", "@a2ui/react": "file:..", "@lit/context": "^1.1.0", "lit": "^3.1.0", @@ -139,10 +140,34 @@ "resolved": "../../lit", "link": true }, + "node_modules/@a2ui/markdown-it": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@a2ui/markdown-it/-/markdown-it-0.0.1.tgz", + "integrity": "sha512-SIYNeUvBBO8mCa1n2haeZ3lZ5AVZSmZCpeyIMHDIMGYbGUXLCaSVU3qCdlzX78wR3xPEQ8zo8DvcezBBnVZLuA==", + "license": "Apache-2.0", + "dependencies": { + "dompurify": "^3.3.1", + "markdown-it": "^14.1.0" + }, + "peerDependencies": { + "@a2ui/web_core": "^0.8.0" + } + }, "node_modules/@a2ui/react": { "resolved": "..", "link": true }, + "node_modules/@a2ui/web_core": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@a2ui/web_core/-/web_core-0.8.0.tgz", + "integrity": "sha512-UG8IDsiLYuZjnEmqH7129EbN1Ds3DfC8FXPSI/E+0kcZ4VGxo//Kij6ZF2jBXBKyrHYPehoDtffFFIIFvgBp6g==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "zod": "^3.25.76", + "zod-to-json-schema": "^3.25.1" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", @@ -1670,6 +1695,18 @@ } } }, + "node_modules/dompurify": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.2.tgz", + "integrity": "sha512-6obghkliLdmKa56xdbLOpUZ43pAR6xFy1uOrxBaIDjT+yaRuuybLjGS9eVBoSR/UPU5fq3OXClEHLJNGvbxKpQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/electron-to-chromium": { "version": "1.5.267", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", @@ -2515,6 +2552,26 @@ "engines": { "node": ">=12" } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", + "license": "ISC", + "peer": true, + "peerDependencies": { + "zod": "^3.25 || ^4" + } } } } diff --git a/renderers/react/visual-parity/package.json b/renderers/react/visual-parity/package.json index 1fc4f2e35..fcdd23d23 100644 --- a/renderers/react/visual-parity/package.json +++ b/renderers/react/visual-parity/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "@a2ui/lit": "file:../../lit", + "@a2ui/markdown-it": "^0.0.1", "@a2ui/react": "file:..", "@lit/context": "^1.1.0", "lit": "^3.1.0", From b378bb74ef542411c16f0eb8fb39bc3418186ad0 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 6 Mar 2026 14:30:32 +0100 Subject: [PATCH 40/53] replaced hero image with new version to keep parity to lit --- .../client/react/shell/public/hero-dark.png | Bin 254934 -> 484724 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/samples/client/react/shell/public/hero-dark.png b/samples/client/react/shell/public/hero-dark.png index 7ea83066d8f8cfd9a02a94f6fa6d80d076e4ebb3..fb239ad4eca01ddfc3b2dfb5c8560a3b44fb1cfa 100644 GIT binary patch literal 484724 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 AmGqVF$RcF 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�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

7ToHf=O+?=uJxNdR>NO@T8v>O>(FwJ>{0dJb@# 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 z z49*DNnC&NJPJhp=iHURYX~7kOoyk8GtiqQl;atF>h6Lb$s_E~63Ge~h1UQ7?iNVQ9 zUp}~UaJ9Ug*T_qYAHYutk@qQC++YIyg&91)JS5v!XBz?#4Z!b>L<{h`!Ht7khWz_U z2*BXhIrjD;=YAvQe=qWG5P*??mb(5f>H7o^&h|sH{pjGIQ}+|{0i7B$?WrN-o*q0e zco76(@bcupCV&KdeMrDJ0SLgzcLb1t;QgudgOU5Dz-R*k3BU|o7sRahqNFd%Kn4ML zagN0&AUKMDzyNs(NZvjHm@@kWATp2u-1i$O`IquYH3BEeH;Fy>H-WZ@xvvL(&MBM} zP~VzHp_oBTL=%K!=8b*U*VnP?eAvlI!*5-WPbWS$z7Kr>ayCdgbQW!qdF|5{BF z3npyS-1=b1&YsyOKi{6v_e%Tn1M_+(rgk52dn*Cx{b76f z{c~Gv+)rJTl+~=b+t9}^k$_DOu9+S?>2(1ESl9q3!usQJLfjGWCaE@w!KsZi)3c0e zv1`QOO=iPjgZZ)Acxz=Xvz_p>j)8gJ1>#Yl{l~f5^mmefs{~+6k@2L@;m>fv47tFxH^0?=Apu!<>O|i9Gzpf7~i01X1t(Ta^8NqNXG11gY)KqMbIwQ46M;TL@b zPC&@&vq}Q6iMy`TdL{fCE}XybOK-t-P_D}h>s~c4E>aWlzSzIgM(!*3NG(9_sc?bl z^IY;rwWI}zrsmdQCriPP1lyvB1V|J$%N8|y*hiT@enrzyqHt><4WX7Dgqh=T6M)=P zza_@H>1)^VwManQE+(|?iUohVz@12prxvmc4)&!trl=~(D zI0;+wJU??FOn}?uSCd?@LBmgMoLlc|`U_g=068%=%C+)PGMD2WQ3DXrKhrnUcQgOs zn&}&KBY_rq&%Z#wGo*n(*MY%j<~)f0M=KK1T7SZyq?Fg(w~0d0Bp{gn0VM;?Zz(*M ze9ogSs1r~CnCAP`M(TbW>qP?OM`{g&piC@{3!q#^(TWgUlBgNDqg z!@~1*y>q`2ecdMQ`K)u+*F01TEU6Ip~y@IM=JWf=i9bH_QzAbz`23K1UmARMh`z7O_O}J!9iRnxo!|z+O|uyK@s#CV~J%T?8{xXEsDZ%~nu{BLg(@c-nG2a*qL9BF;4E!8+|REoK=B#0G=5q~c=!f?p4|!Rp|?4b3-lM;I~x^4Te<60q=NCVPtd;Lz*jq)|MF_lY!KO_<)4mBT_Fk~B&pb2L8 z0roLzj2S+YA0*pT`;T%X2aVxW`GXHTk}tH zZ^Gjzu^~L?R(PH!8AZmvj?}0Wvrped`i=apq@h^U1XK$1#55C@-w zG>bd#0mKTXrIK#?@8dgF>NvbXS%@qn{6c!MEg`6xt0W*q9}6c4Ks1SI5AQzhKtqwX z>UzQNM52x3B^V)w$dfPwY(qjw2$3d_eJmVkk0hKRUo_#T1Zp|VsExpK?w5q}+SQos zsKeH)kHLXmalS#xY0|ZxVQHx1T@r zApSV6kC}v_1Yi??l=rw9*|#x?YVsuaCh<4VX?tiR?uk^TDqYd?OV$L>D9p|+v#eV0SFd!{BH$p>8z@EV4%cea&k@&UE`rXN56 zK_~$Tjt9q*cQn_F*56sddxJLwFUb7iv6*|{Icv!4~2A&*TKDbiKTqU?h@X^7?2cMRg_cMdf&CC2HS@e8G z2)?h&!si=;Zx6mV_@Ur>$-i-M^Wdj~pU;BmmxDXxqxkiZT)!WAw|r249Q=6(sJ{#D z9dhjf*?w5?sNf&70D4@?o*Gi^DUr{Jd`|HEoBYz>zBqVU>U(wMYa>t3Io=d4!?$Gr z+d&4)cjlOP1@8$y7Vb8Y<*#+OQh+Y-+lQQTHk=v!*@RK_Z0YT>Ge)eh7QuZ33{h5Zi$_ zu)K9Oxuw}1FwlwwpTwSIpQhV=9l$!wn`SxGBT3gp;L!3jIE*IYtvNUeV732*`Aig9 zgh>DjCOupm?O8>WfQ@Ma+`hh$+X=u+PXsQMhjefs(Cl$h`x8hG>VvSa*RGmN!;xPI;!7F*ljW;o|=hU&GZHq ze3eN8Vgd{#0N4HfZ2{#Z{x)fG%%45&MnX(eE#bCOEsp6Aly6u9uoqpOmI&k>;XX(z zLDaF`(Nrb>j38(l$v(B?T<}0%aeSvC;`BSH77Ytd+R67zn;|gS@3+SBZcFw_l!5m5 zCvhp+CfJs^ljxKDQxnf^NF+cWXhKQN2?;>8C}tU>K1x8+F7pgT(NTnpz+_v^K-w;m z0nz6*LIAQYR*9A-0w;mgi*6S6kZCOHc^@PcCBEjdP52=#t9fddaeu=|&A|P%brOt9 z-6?3QPFcR`em`9xyGYd4hY_FckNr8vvzunX)C+8**KdC_`;bY(3F@HFm&d-X#n)SztbAR~7-QC@TySuwXAY2GeaCd@RLLel;JxYXlh`YO|J4vUL?!)&!HR|ax#~i!% z=>)F8cm8;RjX>t+3PuTt{EUmauB}H%@nNX->S5)%r+3`Cdt^zdDchdduz|= z&-wlE!~A~UD0)#o3-`+B?Ap=gqDw{VTwML11At2aa7iQl>i}@w9J^w4WdLB_umHgS zjBb?j%>aO*+INiZ8r>@(@cz+*vjBQTpx0xv2zp}lw7lt`8;JFi{Be3k{`kB$dUN!S z)Zd+BAIhr2tsqHm?``)S)Wc5_03GtRH0KL7z^w~2O)c8T^1sM{xY-`M?Q z4-9xaH1_b+kBdDn=Nun*RmP=V3q)MVy`jJ7`TiY?GKLZsc8@<7 ziO6HZM68+&F|(|CsIET{1cIuEh1UM612{bn>p7@}6L$}rwe=e8`y*PO+0QwdZCO~; z;hl?uzJDKezz z8EX=edK~Hf*U#58P_c+-KNWr~cJIFq_vUFH6jZ(4=W%g70z1T0t^Z_QAc0*>{^;{H zn*xLt4w{_AJv;#(SUo_e_9UbakVFAekY#LzgC=5NktQJI2QFTDLPB65>YjKPS1wpt z&}vcLugbFR*u}$;7l(hfPnE}e0ua8NCqlI*)%W$Q>gV^q{ku*GI4`MGuLIG#hi_ff z0e9Tsy)Wpj6XvDojGlTt4}cTz+v@$NgnwG$m_QKk1K@&tshVg&AnAN~Z}J}IbIW_0 z`vGX$#(BPng%w!CZuOi)97BROq$ePdN3SpvbZ|^)hgF;lw6hKvvY(3+&(RxFz}F$6 zfY0;Y8;~(A>kTL%R6Khi6rR2S5ndOw4P)^J;qFa9E3i+KbW8M;QNYaQDF^#yY-~8Z1zpQbA{Pv z1{MM$ya0i#JZt9DL7)4gxye6^e!!YwQYhu$LR3Lh-`h(7$Y+f2Xa8ve6P))tH)Fc2b5f{jIEOnmcT7@YKF!kE29-zG+&xh{}z0!Er z+;;_k_5IIyJX?WC-5Xjt?+yUfl!q1f&i7RRUZ1lsETVj|lSip}zm0pFe+QalKnH;Q z&EdD4;IAeEnFs&S%p@^_KQsI4HHggYt5;uD|8BC*JUC~b$Di$fZfclt_XzB&$My0v zD{z1R_U}-W-ubNbqV%_M{SDa@%9sGC1G65TBm`5`RR?zMeCxAdVokhJ?JNkWX2M1j ze4qjWDXX58MD-+)mi;>`^rUWxupaxA7t*#m_QF8G<-or{z=N_L*e=>M`b^eSZ_T>u z*;%*TH=nT^=eOOJ_5Qo0`o9GKmH^y8Lvi`Mcz^a6Zypw11IoUa@@6@{dHQda{=Y{6z}RhbY^U@a_5{oyrM+VRmOn%X#2&<+ zfP?~Pj3FsV>@m@?8UOg`6vBaX?inNpiOwEnNbtF_=)BRMpD|XToJXP%wQ|%&UFlaL z;E*UJRF=d zF>O~573iL00;=vkXxq$o&#w|7DSw=(>NzMNRI|b-)^^iluG15c==tb>EQK%~46=v? zuGn6^357O7x2a6a-V?`aD6?V=Evlh6!agO)wC<02=TTK4t@5=MFxjp=Pp?GB5d1NJ ze}MZ#2MH6n4}b9SOj!u2nc&W{?bWKOHbbD>xT<j0#>4=JB}U|ofGNa!{R{y0{_7*L9_*sh>@CG(wP7&rGp zfA6o3Eie?YA>SuvjmEMM8{dI_f!!C>X58fOhI?63)@xAE>-)R{KIA<(7d@|QVkpkl zGEc#p^Kg#J_PW=l`-j!fsL#&V9r1jy754Q62t6SP|LEYe#5Fqr6yPw&z9(_rZlwZ1 zZEZ(p174dwV(rtxpSFfxbN@V7|6TzA0pxufiVgq;5>o(>`SQIZjOpRO9RLcs_&eKw zXIoeO*gQ|aF8>}}+`kPyk>5mODa4r7+ixZSRD!(zTTQQ0-#@;0czx(!!+p#9bEY_k z{JdEg{MBREx`_@V>q=L?G}{PQ=lduH?dncu_y#^O2k zJ;yuzvySxOLlw{|A)j)Lew;N79(1JeDw zeJjSUW&bX(jtAgHnfv+qE;}{vxr6d~#Ov=HdG70H4fD*{2jq9e?eZD8em-|sy#(HW zh5)ZqwFLi`0O0>Au}Nig>F6?fgI+eee00Usuat$&)uU@>adVyMKLhk`lKQRK2M{m7 z*t}B zdjV&gMw>-H%L3_F`9t&j{PFo?{^)ESOHz;>0fFoZh$mnG#=TCg-#VT z*3bpL9_PWq4hH9CRBj>BUWao1(QCpDejGAC;mSHAIZ51ibt}#QH;#A9z^y@Ufb;hLv)tR}d3r4F)vym#EpTn`W0frPdLSrl!;ZRF>hYYFs_@3|UUFP!H%W$Q?9Yxhi6nXmu+lrB!#|URu=v8-t~a7#z*yw*zW1ORfdOG=F-Cf)3HvHkskQ@_ z?#ZH;p2?k%nJZa98)94m;7sY^C-f`geWXV+V+#QVc!>Md+Q&BToA=8?1;zGt9LgN) zNw})ax>+;)*Y~WiAK#e(?>e{oY`hmeSCt;w0zl=Qu*xs+se{0>I$1Ish7 z`@kY!<61|2j=7fe@$Z`eP^dStbw~I1L)K>kK;C~-A?Q63jIxiaVb{C|`L1Hl0zkgU zx)9?V`o57J{_*fkHDH7 zr0)yZw(j3o6KK$e>|?pitHL{F zACD~-f~;uk-i(UB-+Tun+w3#T^O5`T@3mQg@%~$xan8y2`B8c1J7!(-&8!#RkhRQ1 z^ZB_|-s{)SXW%ON9k*_D*|qil6Z+MRzyG^h(wu`!f=I^>5HO3F%SM-r*3F^@0C?4i zBp}z0u9xzSVsDW*_pM`Zm-<~|??Ez<0KW%D56!ucj2;_UMJO;3@cGe;Q-4K1NUw|D zoDa%7^2ck#=zRfBAIS&q)3Kk=2ktAe8wYBAC&#`Y5VmQ~`&j_rmbu1na;-n)+JBC= zOL>R1?Huh9?Uifq6YU=z2n5VE4~soAmc0Rwj*eqbz>Ilv#vi-^V^14(h7d4znGyox z9jJ|jfh$tJAXw1xqD%sQ%2P`g%}&`*U6)XnC*I{fOHhAnG5{Hw4~*{7dZAzp=pg2B9Z zDjejveJ2yE%-f9LvZ^qx&rwLG_)%cluwbp_DK9`(p;m`r)w7QFx|d)N(MEdtbx@0( zj}ll~r(ETaLf{^t5BR5mf9l?k{otVcJ^7P$?@K*h>BE0bc~*?uH=9<5a{I#*O=cDD z=T!*TpKnh%qB;x|01C>G3(~3z2fOM#?4#{%Rg9@@n@U!Ks2ftO7povpFo^e2hlIkx z8hUKG%LO@B8FE}a2MI3~A_3b7yA}S;lOS-eW`!H08v5v7S{*1BFF?b8d*Y9o-p8tg z!QwGUeM)PaIeqe2&*+F~>kH5I9=!qHxdK35pSoDF?0#B?F!FlwOjsBSB&eGmxOxCm zCv!4hSiltCOAA3hU zQ?>~Jt7zjrqIX=8;0keESr?}DcE2|k{N6wSX5NQ(7j~ z$YcaF7x3B|?pq;+R@ugTRsdM{ofHDuUcZy6cj?WF@KDA}mG2L}6M#&7pDu%np}u>PJ@y`RS|PlfKPsYHEsE`3`F>so}jTK!%| z{(YDV`xO?Wn&6{@KR%bj>AvS)1#yBt&Y}N2_(nfvxG(2c)Jp=h(qfM`60cF2t ztHx53-mT|)PTgmZG7t^xII04|s_p@3 zdp%$E?}qAW=sytsTi?N-|2*t_0rLBR?_|EW7gAmoU6Ai;vi%;A-}zf)9rMn7E*_cB z%?XRL|2cll{fWu zV{Z_x@dAwQnDXESm_^WiQ+`nF!=p#1-xH#zkE!9z6u{2pnwDMYB8vGtMAoreQq?^&UjEPFS&_#cAt%3J#)-Xt%Cq!Ae+hwN=2y z^izFd+ZU>RvtaAWdbL%Ppsa@ss}2emQytqm`r}IQXCK2a`U1aOpGEbG?4FLQ&wt8` z(R+WFck5U6JD`6rCDTs;(L z0>TTak5&e{NQMR!_6%ba{jr^+zq2a{>!nFZ^?oU`CUiBhbNPPiY zVP98G00IE)35&3(wy6U8uwApDpSG3fdjOX2QQMU5hW}P?K!7WA*1N+HU_2BQb;L2V zOS53(nec3RE{wzLBbdQ6%8ktp!3X~FUZD+Gv%vdAFDu?-F4SFQ@>v#O__?UCn)j{% z2V0ZyaBYF2#|41y2UxS|R+$WqMI_0Z$}#rvYexL!trKEDeT^%@?m z*Pj9a`W+(xXQkOg*30>H&Qws;o&eXKx@a!n4>)slKxpPBt# z)!(3&v8cg4>$R+`TXtI-|4B3n0Bf{~FpF~ity;rHEWeU7l-( zZO-F*ytnJPNZ7}?s6ssV2;^M702kXQu&VqG^>?Yykbk-XRsF7`{bB>a?%7vC9^QP2 z`mBBv`vP{aLS&}kK8~;P`auXq|sV!oPookl&>c;3e^96#!l~8USE) z<>+eBHKOZ8*Uty!Ciw$(%jniA-!2gD&S}4Ubgu{q_>kz~(PN?~Mo$a4dscwn^E2+t zqu1m*uaDjuy))V{0s?+C`gHWU^#5wKamM~u&i`Q`-=+ajn`d#qRTfac4jlM>v`rTJ z+Xo`-5bYH0nzlW1eDCzzFCrZHpjdP$-hk0DDB~R;oe-TIofMstYn>dO8l9Ftr;#-{ zW1X2X&mMJ7z{4_=hosN4Xn8ciz}PhjMADCa0|#XcMBB}{El$*|C*_HcT zYp<8;G1%ak<(Yu3L%=D|K|Kv;c-PE?f(0HZ)U1}ne4gK4l0ic0qZ>H0Z~0U5FTi4&ntj~9)tiXy$5Spao1#KV{I4X;>FegAfnv0)_VfB zMcu`g@7u1P=%_+K<^_=Bd0~NfLN^yJF7E37MSvHcGw_9^C_FbnAW)V%V+neIGF*%I z0NyXa3*I{bAwq$9FL4a0;QL?r$7dC21lVVR)V*c(I_1Z{i*U;HaUsydfZY>N5M=l- z^Tg85`_n`aSmB&yA)jJQYz2TF{&jKO@oSiIfr5&99lstI03tk|NTxs=AZ#W86wpzw zU}cu4Uk5SOLrk$a#_APV7tvhT&m{e@)DiCwoMQU-7~R*NXOUHk^AnzuRfa& z|FpH-#WUtQCi|!WkY`F;U&L3hqdI5R07Gr(9}2!FrzG^7nQX=5eScV<5%cA52j46F zGm`hHUap=mK;(7hei~%(KJ^F$I0!er*NG$`v%`QZcr)5$mRjV=+)&?Ic5Kw!s-4x3 za^Krq>+hbrKP+Wbv;B7P$9;3W{&R=-S>00)b$C~g0q~F>q1^*di)wakzHfMcaW1cM z1$Y%aT2@?x?a$eTRrl;e6#!PRJ!HEo zFs_CKYbT+7?_1%Y>K=yncfP7;53cPk^tgHg*712({zH(@CjF3Wm4#?!zMGe4ZFf}O z$J=B*^s(5-=JWKQqvzi`|ENs(k)*07T3zRVM@yRDVM)?zbm;)P!3!{2H@Z@Q+*P9g zh^`e~FJSJ5u{VjmW#H4Tv+%inbmzS3?-t!F<@=@m!OW4)~Mn|R3u@OMsCOQ^HJS!xQaIW)bLHmsG-Q#xrUlrEKepNL47Z}0>qS|sWYKl z1BE6;=s%LCvTDvuV!}96`{Q*O*dU(P^2~7Nu70e~r)wUlWWkT^*R6>?w3hu(bA9c# zNYB0w@)q^(Q|%mJqTYjZ$8OM2z2!YW7ZP^wLGGt!xAXpeKcM>j`uj}}O=Mg5*y|Fk zRS4K&p7lvpP=@X53tr0|!YPka#`d!EzFNqoi&tQeAf|e5O#(vNQC&FCk_&BRJFlCI z;~r)V-~u`U@Bn$jt2tm0hzJbC3c5HSXeI=l1^?!H`YjUHwbmQAS9R}=+P5FC+aLhz z05f{-Rj3N|!#ksU0Sa|k%y2%>goP64vAE^=^Ni@jn0QR)HwS%9T*K?j>%BnP{Q`x& zd=>$JEZDq0V^1Z|sUEAsKcNk(kXq|!pk@lL@Q*qGPwza`_xVGVP3&P^C|ENA*ToXY zJl=s~1%S+@0zQ+1P4AlWevD-(DRo1EwY1eb zptS=)y=N2&hz2NVQ|Ez2O zToA$`kGba_e+Ptef;g>Z<@%Y(1nKRBPYYvy;*W&Rle zP|v?50QfHf0GCw5fFl6l<)bSA0L=y*=y#pyKcgE*H;ZnS_S;5xNO{-~FuD(+z|lh@ zAmC#I+MbjJ_S0jZ9lbDmdGy-o^=W@wv_U}ChOzID-6;A*7UQ3ZzL-V*#?g=+INBs| z=qEY8W%~X+_Sezx0fEsD>5q0w+s@JM5fE^nXkYdQ%v=u2{0@#iG&($ON3lO(NfdHI zbdn%2ZG+P1^wA>_4KT222o+ABWfcad4H)SDf#<30Yqlbg?1GdpoRLW6Lckw3ij9PT zO}Q@w3d=3i$*)!n~^5UajXXjOmBy84g8t`0f79LLwO zKt6z)R?YSHqg@H?nyr1Q3-P-244eXgwoO67D#tP54&F%JYjE;;RiG+-uHJ!NZSO{5 z+T3vB4hAjvK5d~nsS5vUo3@VA)z4LRVeCC2e!x}FQR+2OgYy;=R;wzwq>Maff8_$V zZ;)RtixS`j&9eNwt5Uv z1_GK@lycoW5J*wab1aV`0ifZ>?(=6TGj*P^bGIF<#~(5zS8p1#!`95GJqZq?E_~6G zkoSaRpt^{zVZij!8&LSi9L)O5YhFR0>UF(JdEa#}Kwe9|-DduSfa9u%-S+Rx`abZV z5rzco38+kNQ-I$r064d-z=BmJ_!PQ_%GtPUX*(2B0d*A35cMF zcGcjYumDXZBhZ_P>*%E_fEMhjy1yUgN$6*P>%52R-k<382`-)_AwbH>*B^=#T{~c8VK||7*%gbB?MIT*8}jvym!xzJvh(kmw8t2%yYY6K08-u-@kvB=id_i z`&R*gOM+Ba0C-uv07n3L<>+eB|4aSavDXbmyFOlk(Ji7|rG3Z>9Ni_lXLO(Rc|i2A zfVTCb#|r@iex4h>C@|noWi8d;L^<3M09|-;CLOwy7vLEB%!N-^;{Xmoz^$G^N2VaMJ z{hIbg@A~lXl;`0AI2n>W>w2_v&q6`77W*Gs1Sq6ly;EyOm4-OhUWF**rXSsA;$jL)0@zHWU=hM3I94M>>kGrW=)(&|kivbl z2oV5w_@@Q>=^+U)bwS7&Tu(35?|p4cJpX_QKsT)W_3#?FUt5JVT)QrQ5ZB~&m;~s& zw!D|z*ObLH_h~);9P5^SDsZdYvoatU@>BqPivkQGI_j7qWHn+r#Ck3umaic*b%q7XLy% z_X4aE462@K7~9$u@81Qi>fc`#4pQ#NZL3+Pl>pFxI0)%nfY$I%Jp+ATR*%50y1fEp zqPlp;q8d)?LS9&1A)bIwpgJXm+_&WD0=yJXt01CFdobME9;MwxMO6WQQ z)L^SupWx3n+pBC>^c8mVJoxTm-g*G?ygK|70P>m9i-|c-06^NTcK~SLS>in+@Z)<( zkVjkp{-0U*yIy&|s^P`Gui}{H4gqa50UWBof&E9N?``3qTQ~4MY!*~si*Za38(3z6g z>uO=oWy_gcsQOQHRg>_!#nD3AFN)5J4g>(EZG$|g`~EWkV1a*^2L65X$J?QG{`a(` z#XBuY4?rQ{WuqPjeD&xWWCSJ@IPEu#ZW`S@x^;9rl7a-P-7O2Ddj<;JH;dy3W>NpJ z*hgluOlIIG1r9we3#R8pFG~NHMz6*bF#X?}z8ggEN#74-LB3IreLUCtOzfAUujHI> z0Rhwh2hmS5-sb7MRrK2|sQwWBDc9OM_3fhVqn$JEU!&cCfGBPI#JWe|0pmV_hotTB z*u!IwOrN7O&N0!DG(=^wbyDofu_wn89y~xnL=urmFTt}i76SO4Giq7gHxQfScnPBO zM_o{*S74K{uL8j}ZNfji2y<-6KpZ%6QQ*YtWL;f-%X`0KHRZGc|I|!x!2ICA3J0<1 z?^QY8)nOiOy|3-caA2XL$w*j0cWBth6BufhZMF-%x~E{(6o|9$WSBAK3UiR2eH@=P z-h8jS#bsYXU4?tfwt8HvJca;S{q^m@w!^&&(5B=VLOyhl^)_tfW*hvgVl3v(UVhA( z{xuA^$~ji}x6!AzuC{vn2_+H0K+D+O*8K(*Sz&n|yl=T*-#hL(h&lxBUZRugKmPo| zGYdWo(NNF)t0wjltgx^Hyk17VznTjir$Awsi)82TM*B5;u`sZQP^0QaDDX49zh^F< z*c(w8$XozLz7Bvt1rT&E&*wb%jy#hcrYoqsCp0{;?UUG;98;cYcF^2qh z5Qx}U$#7^Ff5KJkJV!#ufP9A2Vu5wMj-ErEvhNf3iE<%SJph>(=a$!5;KzM12KPnX zjFo&(00H@YGjA+)0f-P#2qy$YLJ&RjI94s~TFc%0Pmevut098*JiYsBc(I|!LcIzm z7ZvmCNlx&v5|FuA2JZEYsx=#M3(Mt2XXJyJ@hOq-zR47?Tc4KhB@B9uc#xADS=Z5e@YJ-#uTy}0*$rY zy&SuB-iV|Z0KXbi$9vw)nu2TQ#5L>vq8ZSys(SkT|Y#@o%DKk5jI{d1>SM>9x;$SOC@KHV#5J;a-J!9#aA{pda5Aen+8M z-!*PGU_ZVG3@`S(r2{z6(;@*M?-@P!?1SvnGoNEU?zyyk9~|>M#C+&eL0<)dwpVr7 zr#GPWMP*_?$`u5viMroU0z*~7p+K+$L%;L1oM#_FqQ@MsC!6a~uij6UZCZZ=Yb`HC zt8@Iq=*;vzGy(vwpZE2>^ZB|O0Pr7$f9PKd{w)E(CHck$07jRIE*o7wAn*#&m7=Q! z^8E*)z|nQ1Arv@^-J1s1+#(-<3;4rm)3pC=)Gwmn zNm@#<&=z!?J=#c2}=!nrCorT%ax&ATHvC;8q zJ7M$+JSpRyl6jmQotpBgv8N+Kg=5bc0pMWMU!9ZtI|neBvRXcd5F=sWdE>r;Xa!2! z8jF`8p~J}i0|P@=2J8(AXjmE8cVX;>`9pspdkc=?#^|Elm&ry3YdP(D1`d`w0us`e zetHq2g{sVLN`FT}yb1-CP^x>ibZ&{$!_b^zk>YE>T<#}Vf>V0^P zeysLEH9-n>t+IcW(5{Zz!5`ML>Hx3<)tM4_3H5+nh%)Up(FQ;Im>2Szz`P0(6|bLV z$5*sf+vRzB4FUqWmO#)sQMRr}Ut~=R z8>xV~YvvET($;_I8FuUsA*-vxdH3)^pj%aifGlY60;C^{ z7c7f;&Uc}00tUoFm%ZBv2S&aRc=mec)V(kPfE5BNo;}y_^>z%PkBjN<-Dn~azXO2y z0x7eo0sxU7b;3Erc7Y&z_zC|I?H)s(C&1GR6B$cb(7|DqV^)tq#_0V$Ug0dAcQ~8x z8}^fktpv4dtD>mYs@i*0wW!^iRij0zO+*sArN&oll*Vi+D)t^hjiN$ZqGnVzYK4*n zG2Z;%_xB> zf|m`0cp<+}3H2pE)t*OQ{mNSI!;uuH%``m_7(Pf}B_n!8z&GlLC+nU}{r$3jp zS)sv~(XZB=%W*{n(xxXpBCfZ62_C1@eVzbs@xw8I9_-9dRL0gww^So8RBIT8b}1~$ zbrFPH)5?-v9nLGlm!(WC^~UDrOfLYGXifaBl6nB9m7pDqKC$n75If+a@qqB(h8x%a ztp$4@jN58y#Q=fGr2{aWxMW%3F`CywZgOit5U(ZX;fL5wCQFQ_al{J-CjL4KVm8@J z{3IpDOhi!oYAU{BSVuDeo8kJO4%(s!M<{GH3d~q~cT5f5GIWxM-w>U!T+3J{><@3t z9eI*T>+@IPimb(=M!H|>i|7^nc~0Nf;nySDheQ#GDRw=Kvg9FpY6qhSW=lKEF+MyK zAkgZ;YmU3i0}@)G3q#>v_dB+}oRa|hJY%_DMx<_%v0$&-h`q9a%!AB`PW~^o2=Mh?a z(;R?XJE}_3j>s_IF5OtcBP}B*{w4i(j81gJg_{Ms;(BRz1gLkzf%0Y ziiKiJ+VvA38gGWONesWel73`i+l{?RISR4INNO_y&9%;tQS^`HMf!E}tv-PC;XzJ2 zb=b3(ulu|QLK#;Lm7Mwgu9daBqpK;~8w5-JzPIJ&RY|*+SiZl3ntjBY=$iquV8cyL@ouS>+8}fyslu92lpx6wSl|pA5p+6dPLGk+K zG87!~ie&*D9&KQ^YqI=y4M%2QKh{BFGTze9KCc$ymJ4cfu^S=8a4y9+K`nMiPJ!<9 z2pv|wb@^J-PPsqX;_+eN8&^d$CL6=ldOf}C?AIBv@528ea?>%E=w5nl04LgS!;xxb z${J#jB+%;3IWv|`9sYjNZ=|kj(vq2SOv!06H0;BdQyNpfDCqm3K9q&QYz5dy_(oK1 zP(5@t^tl3&(=eSr#~J(Cg4F#7I<>30BC(w7?6VZ>VyF6?rRqH4`MI5>m`N8(kFN$X zspRn++8;uaRaIwd&~;6B{=Vy_mnx7fH|x!|6c}T_{;>PM4+uBdl1)Cm+JCjXFXBx} zFO351Si3Z*dEx9s_vr`n$j)w{J=d)>dt0nRH{f(Q?N>A8zmlCbhrxY#a57lj#E+TybphzWXfBs)9VVflnq1UCpd}eR@x#y}c&2;;bZUWs3BsJ4b!mMT) z<-;;#>8oJ&FZwz>Fy-T5-r?nxo_B*(N~775M9MYU28W=YMzch ztV?2Y^MCHjAvjaTer_A^knLBPqT#@^&I*+0SLn^?`8O&p#HkAJ=%3TaKSW>#I@(7I zcd88=c8qbVp6H%u)qhZa5ABNXkajn{*4ng^cdj`O)Bd-+8te0PDe~S=w|R8Qh;0FJ zNVYf|^8(kI+(M1-9?;)<%&@_7;&0RZm94Xhw7bLt=scF9I*y$edtaN7)@FUPUu883 zW7HHf0?AOcejU*P_P|>Jh~0=!ceSD356X7+25P7>IsRiy=4MbEo!%fpP*Knwbz39> z&I9-d8<0q)sD$u*U^2b^y5Hcf54es_Qob$|^=5WR$$wO2KME(`6V0U}a*B)v>Gg?H z0{9D-(m>{XW#fyd>$}IEz>j>z5G%|dk{rOcNxbp+ZC9B$c!uSTtnC&a``qu)EAb`I z$Paa<6ENa{6fJW3HGieYO@EB**P5$<$JS#8G$vSv6&jU9{=T2+!|ba({~>jcCB*S} zqa#6G&O^vb5tdivfnhb!B`>7OtX^d}F+2zp#jqbd?Oc=97YnJ}Rd{<4zB8E-qHTFM ziQn>yl*)XaQf)FA8wb}$GK8CxKe=aZS`lHPJh19FP##bkV#7V1Sy2(|TP2;A`5UW*?4U#hqc_T#G!q)1p+N9wR7A^$z{p9rw9z8YiX(VMbh)0V&^mTp zd-*bdHT9%j&D}Cj9J3$R=AWeFlp{73zkLv8WRFPmb>W89neVqSi z>loN}Rs>WdMLsWJJgbT<@)RsA;5ap>K7N?H-CY9?7RG;-i#T)`+E{|0YV707#W8aG zY!fNkGRIC!tAP_xD(Yyv1q{dq;JLtQyC5S&nV_vTPuwde`X2L8l3p*3o)7&Wtb016 zhhbv6CCMP54J7g`sv*{aQ-*iK@zS4lu1RR_?w9h>i*-vx-#r+TA6dQ>00}S)&Ya~K zij^dSGyoH;by3Dwr9B6EYdmIcCJ>y-9mF4SfQoU zTXWp}WBkZ=a=kGRk#E-$@%7z9KcYQJoz7MRQz%DBrWB*%ql?Ltk478G3>*0knquE( zg52h8>HTerzXsd61X*r>SzCg+h-|{Z|Lv=4n|gH{^mj~N_OFfxl%m!RT?&KnI~Phd zc5Q3`b#ZQ}JMaM51=3-t_}9~zy|H-?Rzcq9-aQjDT+v>F3~cgXwhO6V-QXw%-P36| z&M&%VAe99h66VI%rFva4ET_9!C*xVFw0-!uxL3p4? z?*6Se+m%+L13cjM9%tJ(2I)!eZUQFDg)v^~%nyV@hGs!}UcD@gJo~oZf*%&H3(}eG zhWGt@%N!ad)rHcM-smD5=zi|cN$kX0w)KPZo-+-W?<~be(mhIy@s6O!&(7!8h zR0yQ;p&2>A?_(*@-=%UG`u0$*Yr&akX`rfpJGAiovli%9+SdCRpKH4v1U0as zS%+QA^lF;TD36GJ)T>y35w?qX@%bNJA<%-Z9;j|GR9;SGNCOii@e9-eZ}dd5+zxk8awujr!Ai2WLK#rm?@!AKJpS(t%7O zUhOD*Gxop_GFgCh`6#ZDgYoq!Acx}kFVg#ZblOs8i<)Vm<Ekd9(&1iPqYKz#t=uN$VLK8W?pU!A3->FVbI6>T&VJ$Ux7adQ+d*)_nmZ3~R_$-) zXZy9ucm*um-22&z>(p8rh_Hq;n5{bw)zD(ulHVPFV@!vbF~9HF-q?15u|HKv*+SI% z9DEw4UAC@)l&TY=TtdX(lg?u7;Nh~%MW=J5Q-f~uHi664Lf6%^k&iAUlQkao!s-t7 zqRhpdk2`Qc9mx)idDF6nkF!c*oGk$f~ey@90fx*z~2BpH{cd;vxEBNirzsb-yJp7eqzXNJSaVT~=%Sdp@` zUnva`2#12JVurOzQnJMS+lb%q;?4P#WdW*EML>XchB_`4C$CN?( zwY0Sj0jA1}0DJ6gJGD_GHkY6YpP<7t?bPKoM+-ltO+#1Q@E-jH8~@=dE;i%&IzI!I zwWL{vDvSmlpUOo_zUCY228i-kOB;SfS9?bGP*>hE8JYR2h|R6rod2{LX!a9eHm-Ik zBiIAXbhXbnZauqheg0ujzQd=8nm;#lE=7f*`M(okJ-KphHS_wu)lcIz^~EUt3vVda z1BgxC{~|x|^!uHfW<8|;ajLoL>84Tf=*FKeT zz&niXT(885;)s}f*J1fSo|8STHsTI&)&Q>960_5&S8SiB<|PN&T6;#T8C_SyFs&^x zpPvF=o7p0Wt7w+PPO)WJg(+kC$!gcI8y$cx7t{Xt+myzgW6IRvdY2?ntO|vg%DgDq zVPGqcS1t83#sNVlY8FRQ|J&0e=hxY%TuhiE1I65V%Q%?bqm2&M*Y|+pmgy+e;NM2N z+X#f>7YWiD@FM!cZ>V8YEN>0b;DSU!MvMJ-yk`;8!X*)|9#OV6^>zcr=)6M!vqeW7}b;(5JR&atIW3Jm`#HvBSPCo z$>~v|kh~RVs&{&IJM?$h^s1c*x}@cV2~*`n9lVyKoxA^`*ck_|+-%6e5%nOX1Yy@+ zVmeIc)aNez{ge?SVrovTG@q{<=LWI(PU2^NuI=4AY2ixtjij z>P#(cc1i#1ns0EWkr$^OpI~Jc2u?4c?>u7)DVgJ|RFIdUOkS;d>M1^4^TOoM3!SI6 z6gLO$9cMe?3@GgeH-hVrfQ3IDZ46Y{D!6r1tu+e3Ol-65kq)46ODU1b&%q5}o%Z<$Np_vzE@^Pte; zw(Z2-7@;Ib#>COpIE&BwpcX5#(=OXWtGOjl@iXj z!-S6!SlwcgQqel1Fg8XyH3~?Z(KGaXPQ3?V%p(>G7}@+9_JKwjzYNhrOVM%Gk(BT| zUvVX(u$Y~NY81kJcdgyIGl|i1yZr&-`(VuB_`GG*xt3rJrmDXK_2xU79gyhWthl{s zIHBwx66i>=TXVgefQ-4YNXNBq=O%b%wt6NurDJ3Hax|c0`J+c~mxzH`NgYLOguYbLQ!y;xIfMh?q) zQx7jjrbkhRvK!-OGyi5OZ>O0tVHIlRD=oQIVNGN+a#uN>&f4p=LBmuGR;i;2q8WND*nV@w{F&5N@CiDC3FB zD9WL1Ebta%_l!}&bR3K|I1p-5u0(=2VW25B#)1 zrl;cjM=o14`QLBW&zl25{U@M4!F-|WnX%7{;IhJR`W>LEqnzAYfJ8{b7) zQ-DTmCr%|zb8s`57O|0NGqRB9lL*u1G%F(7R{j&B&0wcq-wE@YAMX*qU$vwBprokO zb=V5l^9lB;Pb>t&28v;#H-SxZBTLp0RFjPPQObBB<-^k{si`V@g5uu7-p(JYG=p^pIi4# za(DGX05UV{>FM=!iy_;N05QsFH-yE>@PePOT1dDxa|&>@PUbV{gJbz$W*M+iq)@&v zjiVcVsgra%H`9H7i=q5`$jg@7Q9bsgdcng2W&rSNzkE$@ zUJQRcK>|O(a=;Yvp+>qKDi0#A`<-8UcHsp2ebo(gVkrNQ6VEkkT2PnSPy#=g;;u{z zVu^s=CGCDI?eP&SbzY_uKCuhzdkPB-x77WtE@HYfxUQNgCRB~LBtGs9%=8j}OmenW zy~<3vzcOnvV$k_ZtHkc^tcNgGr`$oPC9;=U`s+ol@1FHO?nFqPckmx-d7PM+=vcqu z80a3-_Up@<2vI;Lp+AC^z|12jV?v^q6J6#8U~fd=s;oD>O7dT%MJlqko(kINi*X&> z&5ucGHNg1*L8Esv{mA9+6NY2^|3u8CaI)R!GM;xIc$h?_V`D_^+x#>shWS{<$xIwK zE#;b^O6V-_6-@}Q^k(Gk3Dd(hoUF-!QL=4*);f)oVEcg)Pq#O%*2s z>*jyAe&rdyHaX+;tv5qq<;5M@B}A^tlTM4!cHhNy79`Rkz4j6icN^J4l28q1g%C zdxg-YN@_JFzFZQ7DGlEoRn^HE+^8tUnz->(7#D8s{?fb(*F6@ef=vqEcSSYXjjr?M zW6=@@3Gm##^E`Eb?tp^l5h-W?`EA{LN?1ofnOEh7wD}xwJGtYRA5mT{2L9*+^)-pU z-Dgi{7p8D(N#Hb9LL~hU^VZj6I6ab2>8=;8hOoU$Q4_n##e@>Nv#z8O@Z+zs4}J7I zfp>{2wX`nWj&z&+Dw|0BR4|3(M!gvio&%6qZ|~jLu7b%>35W!jLm^|1NG+piEAw*1xtjFio0!Ue@31U zcy2bXh5yWBT^{DvU7C~G#Lt3N0+n;xxSse#^)(tC!B zhN~IH@*V0$h*m+P*^{0#S+F+%tBlSL!Ut?zH+6Ss%So}*7;%$#4xu|V1o}Px%-O>o zmIUCT06&un0Vyf~$Sfn9M?J?v*#wnC&kt$i!@;47z z$#$u@f9gj<2|-fXkd3e~KxG0v%^Inz_hQq|eVD?!?5X-22PN7wZ7jc27`9UlZS&5@ zz0GRtA%H7KCY^2d@$%D?t}E~05j0B?z3egNlen)uSY ze&}FWEWqkJvN^CRJIeoc&r> z^r6eH$?G6>T`hkYef?%hKYV-^o__ZFxTp-slCBg~!O67qw#CJy)3nLK$bJP@3bWq$ zUq%lY^q-aFC9ao7rbfx8rmqB&GG3-n6y8=c2<8lp;f)`r@5*=o{dqRKE{V;wB5euj zQ~a7!38EPZW&xD-m8Lbay@E28?pyKZ`@Np5-QV~8brK2S)c9XJu-!FNz3feUh5l=6 z{Gd6RUC8S`XWz2e2L0iMQU00wN`sz!D)XPQg4Kj<59{Sl%ZHQ>8|{xn&X8H88{^}a zC)HrsNHCo}xj7?e_4LHaql#}HYL)lBNIy9ew(zm;_gqEBi(E(p%+>KZR&oJ(Ie<)* zb?4}u5g)O!3X+X7XN*qO=6GE2_Pc0jkuSe1*5CN}S)9E#{gVg|z1lDP zyQlpy<(sT_UBLEQh_TtDNZF-G)jNtR)Ii23pl;A_Z%|)!4M=akNsIMINs(6oGG>%q zmA`GE-km1bJRb#RKN+j0b%3OJ2QfYD^C)L606i>vbozL8 z=M3UrybUn;ll-pzDE77%!gtj*FGGAelFIA}4hXSpJera3cbxYVMTI5DzVxI&VIHjV zj?+P+RvmVSpG)puuL;XJh(1t1_AsLGT$lJoLB;#N&Dy5}r~{NG5T z27aO&_S03oIt=m)2rf~mI@aR~}g&P*0i&r=>l~2CV1>FYe zeU{44{R;o9$cKnH0(8j@xe74x|7DK+x~}ojP4N<$KJA$hjmq;nUY6<@$P+)@nd+v) z?(k{Lq>d+p&$J|1$4pH#u>JqOJb^w)*H(*;J&@>+3)z}>dflr4SbsHjd^Iq$C1Pzh z$;m%PY))n^!?ft7jsQ&O`2Ntb`Osmsd`aIrlv6M0d*S}-b2R3fXY0#YR8McpX@EQm z2{+3JOCT_x$^rm!9|J`@J+~&N(i7Nx6rgEy*GS#pdI&NY{PMRJH+c;)g2+W-7Ko8L zL5a-CR(FXENvktu&;c-Hys#Vo5F4|_JoRFVHiXLYMgmLOfx7l3|5~V&M}L+_f4qrU z8yk?0+dS%-`*Qo2crG8wgzYF(OhWAyL_xCL(>7CqNA)WWv^7;iQ8(fj`yDa`t z##)p1p$+Himo4=4;EQChK9@!|jvP;6hSIms)%LCSyDGh-+nsJ+w6_j)pH!Y6aXL~c~8DT)*@vPN;-9HnsADK_ZOMW^aO$S#mY(APD)J|>ASIXFDo_gOqnc8sM z79qB?W?F!{SvcT`F#0oasO3r7Fi4UL(N#!k3miy}`ReS>*Cu{wc)jshVoZ2~6h3dY z?FU~e#nwgxc&$=o$3I0WjJmI5nC2v2#s!kdsAp1pJUc#+?PTmSqAB{BAGWM( zn5aF2d^=gIGnUik2`mVw(XBdh=^I`nQFaC*LqX#jj7Ez}WcIcZDe8%%TE^5_+xdQXbCATZ3SG~3 z$k6d9uA8ij)aHM)dO2OdTS4B_U%yQ0E`Rbo7AcST>zNB<(p~y*$(QtWiGJK~_3-9(^?wskI6&f$Zy?x*1se76 z`F-&0KC5IszZeF@3uW}SbM4&i!z}G=mL0d-UC0w3{tJPS{^^Qte0s0(V++wJ32avi zkOZnL5UDPYdS7EdXaDQ`mE;+^s&V(u0}$d4=!|~j;~mo-=C)^{i7DDZ++)V{T27Y= zFQ%T`p^bpvhbFCGOUdC#(}8o;_@(N@RW5)TwvhlhuBlmjeZp|W(ax6k>E z6w_Trx;3J;J^E-@{gZS@Jv_~PU@B@hKm3jSW!7@-1Z(PMaWwXX8l4V@f{~JJ`UL=x z&9Xe%=VPEaTUu;BSv))FMkM2h00dGX@Zsy0?MFzYW{D8hZ==)QbUTN|I zp1eOx!Pf`ee747M?*DC&YMYZ_m91f6GP6jRUXE@C`dk;ArIg53i>UCYxY({iWN|pl zC7TxPMXT*KZ1-x$bd|B2+>S7i8Oary3SvGIntn_>jIR_|-Byzo`hIz zldB?buYpW}{0$!I&xSjkLx*WsPUud6B!oyLp7|W{;K9HbXZg8|@Zq)mU}AJp9prZy z!x@k_YNyMMjc|R-87=&$n8E_x@n~n%qU#prh63iA7E|w4+Lt)T$7st(N`2lWkgS%X z0F!=^_jo)$Ph_d^PC1}ev~v!WemOPh{kcx~#c!6hw$EtwebW-)xFU**Tx!Ib?EFo3 zWNVa}>8yD$cJMql`o!ac^oOmUxRgza(FuA1UVo`a04WeyR=+s)`Quwf5azpyEFm@h z`Wpt-sP36y4o+TKkLqN1didf#cJH;Tzm_3|uP`p0r;z{VM`@{FS{au|8+YEPJGIg> z3YbD|wfU6YfZ{FDg1Ft7o_Tu2+||rsWrD(%{_9Rk(G1MUuM+LiPdZL%pjegUEnkbZ z%-@@({{3Qq+-R4iAt+Uy;4eJNyz!RMiSf4Yz5OQE?z(pW1C_jd)JqA&u)hu6U?gfr}cSP$J z{7=N!i-1BReH+=M*M;Yo9Wz67^Rf{<^o71CdV9`LcZ^T;Vz|st%pZfT4M#0N##btQ zz6+~^BBD&!BIZf`3JRUC=^kBW9{JDvj-_5${(6HRM(80f$X(1GvpijT&UDymf|zVB z-2`{I=yvFbmiaOu z8ARYEn2oCZ-3}b-^TwA?ue6I2=~XSeZ!X2Cj`%#BwwUa=1@?zs>e}*H+;?ApgngK& zMjzC>yYjVu^f*RU(E!y;yn3BiZe!#$b0I2A0+YxdJ4(`eCA1_AQtW%3Tlw2+Dq)H{z4&c& zt_oL6*zQncuuxz8@Eg1(An{;se}SE6TWuA!MdbJWbCd&pxad~z{TwYmEo}5}K?4x# z+V4=}%EA2U7pXMkUt@7wF3W#i4#0OJ2(m-$u+_7r5MS?KZ=!`aFg6s>77B4CyQe{i zn|&t1IgF$4>8A3SFy5&a&H)LCb-+EoleEbanML#zZ_%@|x^Q4~25YgrJ(1|$zjZ8s zx1q1`;>lb^|A|7nT~PAzk*jHSMNzO0k4|t;Ngt1-{g`vbe=)v-zdIeptmXlEnXRpq z22%dNSqY^~%4glh%Rw7&_xp2c4Q_UTbCyq?7V-3Q*|MqVh|g-t(WmfFK}lmq|C99Z zoPX}iF-mfOd_NPQS9!DsI+=M@%YOk1GI6+jPE+=9X|>t0xL38Ji%K20L-!9l!_pUd zA^c)$3G|Gki`wqKOso@e$9+H+jtie7AM5p(l?_*%l*`)}@oHZlMhQ~8n!06J_i}x# z4>#mT-MAG??gW3q;IpijYu^Y23`V(nH&A7G`LV)!>(%qC_CUJU^l<)Wn{?vE&gj?UEF%OMGN_ zYe#tUbNBARtM08fHSH6Yt%rV=?NRvpbQ{8t06&|Mq6`XM0E4;Gp>%)+-aZ zv59&_^lUBrQFH+!lRk(Zj=8qtMmjVc=Vq4z6X(bo@wKj7@@Sf6VrK|D;Z_Qp= zn1wdh7%R-)-4X-;i1+Wi@b5^g!PhJ6!Y#Tpfq$vS2DP+H9oLhMi(ub#n8X~% z4k$wN%*w78`7f2$I&e~IayhG(+)@)wK)f+Y(N$rV##kHSXF&>R`W7f-c$6z6+(1{G zA@NqXVwD#bji^p4kt6)jmcE;303R5nANFN&CtLLOwEEdUk`MW%{j2e_{p?0;<$)nL zCNY>Cr>rM9tz50*RQ%%lmBi724V;c)DCFsWTkm;da*xy~?k7Pea&vO7KE@4)O~R+I7GmpJ^8VUf<2nmNjBGmM zJr`{<_rUOzrT*ZZK@g(9D=J`ydIsMYbE5!kyV0lMaaw_eci;V)bT*~5T-(F9QV14H zI!C>Osw*8kZ3Nyq)j9e~7QF)q;{2a~=SundeP1y0F{6kU@Nz#=QPf4eUvPJH%C4+h zfU9u7WDCcNnt zr06)iw1QDa>vHt7gSho8fA2J8I(Q?`=H!1bWhVY8@Lc9)`j?J*5kZ)xdHP>4ah_RC zIB`n|QGd>2jScgH4&JQ$O$|+{4bv>S9DRl7mm673btg!%mjXlr62Fnh4ybkqtax{$ z*{I}_^~IvXX)87g{vv$TIl^R5V*bMW0L#}pR3obQ6gyw07mFS?R8f@0DHox$yhKV)f*6ruZ%Bg$E4gPkt&Yq7zsCix$3L zv1l>k(p1I*euJ^JCc0a37}|ET@Pw@tZ=n2zAAQBm5w#uWeNf8)e~y(;*eo9-O++?y z_l&TUg+t8D#eH&h@LL1U0+mDlkobn~&!kS*+eTqO=Kn0LuS5nJb|=ERwVcpOb-nkJ zj46K9rRvNATnZNCl}-ssn2#<$j@nb*sVc4`sxt+Bzhfn1<^u3FNMkvC>R8tjP51N- z9xZ)a-{z;FH8ty%sR;FbM`RdWi-Mt;VCM?D>CEUGAv!bYU6oFK^E(#Q8NZJN9x0}$OYQ* z7Zl-m<;2iHUUI}R-4lN8n`d3}6)4BFM7PXhSKkn-ny>Zg7~{RA$nNz>wT z2kzkuQBAtToMQdj*p6F#w?LVY6FaMxN)4lexW~<(e5Tf}%gsgJtQ0NnY~_`zWI$hAV=h(vtKIAxB&t<>Q; z9u73ityj~+QX0}DVTsAp4<}Vx`gP|zqDPdfUfjM2dkqNEIcd~dUd8_FlE;|qCDlaK zc`rXeD}7a#(nAsE8Ba5|sJMV+_|*UC_J6b7`_LzpuE1Vy>S)vAmEMdX$BqN8RVO1_ z)wr#DekziCABoImXEMsYz}Dp)dW6A*nKHEv2`Y7H(0~Cr?S#R7NGYmUOL=y2@m9wZ zBgfrOWwfx5v>l;E?K+~XXA7Q|?wKxfNn0Y?f;Y@E1;xaahGJ$)qX+lMkl#a?9g6U}WV=~GEMkEVki|(Ccy`LY^2tyOMyYrdW zvzaUF(5q#l#sx;Y`cC5~H^Rq!s}Fw4lKG~v$hi9W)?zBN37nrEvY-Q-Om}i7UZiD$ zsyxN{wx)nDLtlx+QN8a`X%Jy}6Fd~Mgj5eVOUM-?rz{M3aFR#X*Vp-thgN1+JuOp= zbCOTNW3F*b9DTHYdBs}$J5H##d!N(QqBsBChmY0keWN&`jOE`^*C`r^?`2M{wPYPtZ808&gKfh|@06XYc;Lr4PLEKBGQ! z-I7R`X)<-oHLJ44F2zw*(RxfG{{=yNEZ=If&JoY!`Z7f&0MzjjvZR2$X8Jx z*zcP5zj$UH4|j#`^t_y75ulGu%C)rRFir|9>9NG}Z^W$$k=H!4OkCXmfY^zeT7MxSVQ#lJ5|~!i z9UHSdaz%nUFrdPj$fwLl;Kv3+HO1+JVz^*sI|}0}4T^};35cYZpp^W3Yk+3i^&M!; z4CiYjd-lk;Xcz6j_Oxwt7>Ikv{T7T!QPu!oM2YL$Q)+5X?G^*k1G>LUds=Worg&y_ z8Op*t;^s#>CCH(g+ybB2hzL|_84&%0I@y^KK2(~>`BdqVCxx zzt9OmmQv|1h1XO%;MXXr;{7LOeb}lO(1h57zq@D}Fm0r&&pdo6O*c6~%w_4bqlc$` zBIM&ULM{Ysm-PI|FW7d`+haMiBHgeh6UA(Ir6&!W!lEqf@^IL_yoT;rxXi@1>)=cE zOZHoS?`7M{c23txIABr3S6s27nyZ8MF?~46`Edd9?tEQZpK}a4RBu+im?ZM=;XtNl z0WDQ@)9g=9|+(dqCy;8a* zg1E5rwdra7_+%>304W+m0~bNMyl=D!$7u>5|0LRP(#u@jdbBtC+$d7vw7!J|tszp` zNwSsO_|EF&yy_?=rzqFc6Xu@95G$-cQW(4NS@Pr%4VY9~-B=k`&#|VD8F_w{RWR$P z=))Gz(a5jQ@A9_)I9*Alh-O+=+H31Pbk>qIvcb{)oaZg#$hKL zUrc{)y5Hf-E`50LSojo*jy1J)Usr#yMhU!oV%;Yie9r)rk7k8+aTL9$o=l(dki(Q2 zio7O12BG5(i==t&@?^%h(ezb-$>?kIxkQWBdyt)cNAS<|W2);zB_h zGI(dHB`^<{MsO+!bxW^Nd^jn6>xNEj&t9L2rXr9<7N^&pGGlL&S!GUpgvM>@KVJg%1Wa~qH0W&=-|H&0ArD3=Wnd`*!0P0`M$hM%dJ#RYyYNcP(7=9PV zhY(YO$e6`t`6@mR=6u~w6y4?%=EujgkM4{4M*`y2DN1Cn8y}g>MMJyH1<9Wsi}B3H zKP+F~`vST|%P3WV*hVs>YY4vI-a1g14tFAPjd$hH*vQI#>tjv@Hh$+U6Aq0fXDR-;yL^}@f@idLG_=Y=Xd+MUEMZM|8^u7y|pv7*)_ZC zb+cuwEh+o$Z+bJ^A`jh&daK8F?zSAvga=*EobLo`9lI9RbY`n;wah)RcP%TDUN@Y` z_qhRN-j*6)nnzxOydL4 z>QwSR*sWg>U`2YgiSh@jth{@nxkMgntzr0I&iHQn{0^qSpdM;g>orV&4EgtEVej#( z4)9&Hs4U^3_5-%dYtH&~UfR5N^zXC{>nL8j1KEEcVw-!zMs?KIdSXwV!XRJTN%>5G zX1gUtR#)v+F#JK+f6n+0M}~U07PVOiKEN(zMY)<_;}J|XV*l^BM8KEo%S6(W%SEmW3{ssSp zZv5ci)7V2*>zUeF89B9;gHyV2|A(Wq4r}s#+xRv{*8u4nAtjQ6fW&A_@QakRq$1J+ z8-tBjkWf@QRS=X=K|o@JpnwdNk{Fu^qZtx|jd-8mdmKBC{j)!x=iYUn*Li+Uonh+Z zJU?CgMSB2K$d|v&+2fZiW8a*wS-T?GTDZmV=dr^Iu&z4Ux?B_-&*XN zPrb>A9-r=~f_FyN>IT&1OG`J>J*U*sIlr+t=VeAdgj!n<9=8U53L&8ChUg@T!}m$1KYd>4 zgI)rk@NHS>Ee7a2I>Z8ji(tee88YCM)lsdFm=^o+4IJ)&)ZylfV#dVlK>mo8T|yti zut{NRbDrK5PTPFh#N2DB27wytKLlYLGBb;F{{iEM8J+_ZbwgkgkMG|23YJp+UcTWo zdam5z^~v-nZUT0NzEntWa`8J}F8ZG*f=ZsHLf^H;ol&DyI31z&$$TnDZKEvUmqtNY~l|}O0!tF|8;1bx; z5Jhe^H9VtpJG4RGry=Ib`rA=OMK1tYt`D^}LXSB`G5Ths1$^$)Ji*w((EG4G9;RaU zqrpaIpEhF*&Y3{xKd0emlENu$5zw93IBJeV^dtsU)&EYuv}^lmQESU1n8I|c8$1R! zZwMO)P~ePD42IOH3xuGE5~G=I`%r70_NiTw0@k!oR?8_IJQg|GKAAFLct6Ks5i<>0 zP)$jpLz~s&JcKlqKW({Iip;L`PqNAGHC1!1C%)@;Fkq}4Hs57f4>2O|izYrLK_ z+BJX2DXXZ&2H(U5ZEWvsGOEe{{*u0c{$>!`ITzNHp^KOKxh?-eA@X;}1iIcftI5=7 zW_Iuf%akTf$+M&yHo|yjRX8@=$3q;X7MHd+B`RRu-I(9VvjTSP@x}Thbow;Jnv<rqJw}hzuswl_ z`?-PKq>V@V`b%i1T69ssynMaisol_A*s5bS148OSQXG<|;1)+<)_2FGq|sJyGG_f^ zU|VMXYl=J&t{n{Vws)hg9?C(N^AA4f{{UrKM#9tw* zOfXL9ijMP5gw{2mS8JTq7jK|1SRe83j|qaMiVcH-@su8+Beh zB$U5@d@>%uS=FPv$tsWd^d8d7b<|3B-}?rblc(a%;ZL1b_GE9hxgYC?75DGmcvn3F z%kphu=u*-AWM7}MZp6rad`aV~izF*GOCnu@>XsO@zt^Y)vWb>75Nm$nCpY?bi?5yg z$C+9R*9NQ}wK?uBbJEibv~qjDVZasVFt;$vdg=HAauwhXWsc#4+nl%Q&*)Fq`v8<+ zjnwMc)7;*9i?yGg=JXTaq1mnM!`>AsP4+KQ!lrW7i8_f<}bh~o|iZwiQ^f?RpZUM}dD{?bf!@SrZ$ z&Ad5yeGOP}7JPuY7zqTzz>M>pu%YHejySbqUCE*HhZV~H7ukXjg*jh?N= zs_Yz=d-hax2yl{moOEL4_vxeDA2CNaKYh=2^!}LsF&aT!YHswbWJ-x{4XD@R8$Bo3$BEJn%n&FTiw#JzNLeIg zgmW94Bw50u?k8at@b;+C@c#sU$@}r3H4re0AUjn5{Kj(n^1C)J299vyvJxtRI&*1sW=OHNqBvVM*ixxnU?(ni7$O~*(7`DPl2doBg@ToGPT zta9}c4$!66D^V{fke~X$k`oucWdNWR?=t%+2T};SU+0LR76%6UQ+}>kPiD+CS1=iC?Ng8s zLEBPV+&c$b?g1_KN2cQo02G7^tBJZssWw}Qo zwk95HNZe_txR_kifgG6D`mY^bH!x4N zTL!`XvWBtiRs+}HYI1SdmP9Q7x>Je1eb-%1*CGgJzeGx^WQ5z6(VCO+vleZ-pq``&4p_Aq zga*yZu%iVC>lg3Fa~MqcLOv?tawNhHlwWA?Tf8IRThZkIb7|4e$|?GM?>5_v(ooGv zedbMi$dCaL-Jr-sUuKMRMPDms@a%(Fk^U%;lgpyGl103(=alb>eWho6bsK*T;KDtedPVjyD-l>Eib3DlQSdWpGk2=8zH8j@(~4f45mR&`^G{_(`#;lQT(b z-mY*kHx;$$*iQaVCKYEQk5_o6>7FPJ@z{%AbAy?akLJg6p1Z}}Zgp34@Oqf*8?PPdo+8 zjqy0=Clc7t?2gU0W)s9Oa#Fo>AA>s_1V*S&+T8`_q8JTjk0rAi=VU4@{nGn;4GjaW zhZ-uqJ*i_;z(8^NP`3e}=9cw!E)D25&`?2|3oO(PLrxlncb+r^T@k%)gx0naMf&Y- zilMA`J1{S)4VfOeuPKlX!+hQBTYne4mMK8w%BSJr_mrx+y8zqLY+Zl8%U`-KnYlun zk;}r!0xMyZHYfdX&~f)F@Tbqr!u80!FN0`>IX!icxn8tGETq zcbMK=j;>(n`zsyAE}^!XHO8I6g>UEyRk5K|E&G=O;In9n{=dTFFa5$@idVKrS)*$c ze#YJr_<`uMt+4$G$e@>%P2P|+A*dT^H@Md?87vePKQu|jCj0%J)$9)@eGD5e6>|rg z)G)CLfew{;x{y*!{}aNUd{E1u z*w|ieI2lcRkQ{@*Sv+>kuxMfi5!!jKYtQ4f-JrC=B=Dd>YLpTM_BM`Qe)L{lYhF zg>8KSpJN5Pd5~1z)zCXxF`J=e=P*Ow32<6{x8$^LCvu(jROdl+-7(B(=G>>%vKFns z;Y)<%$6i&E46(=u)WS2MiC$@O`0ZM<^Ck>7ZqOd}gyo4vw}(_UCReXCoeXsu4ajWu zY)$n`n3Svwq5?D<>*rLzr?8&5--21@>IYCXPh*|FHz zHo^M~F#}hEQ#W|;sWUZQ#W)OJvF-+vnfu>5_-PTW=ZaF$U#<<0dcq^NDq`km3^f~= zBTkm4GG=9Xto)jTI47G_7nQIjh$~IeJ&5p3 zE8xP5&Y5J1UzT-aD%6u2(gskv*NYmuPq5lDrt;k~IOE8A>MLG>R^o81v2@v}*kIK} zGR@~dp*}L& zJvrX(3?4npBa)toQDlIqioXATMhunY2=|ziw1MfY^XP1H>v(fmIDMPb!H|5x9G_F$ z?ZVfVAKsO0gZv_^jLwA)8&seysgERJ25Jx{!!z*Qj4ha<&!p`Md6QaUGEHK6kpCWV`O(=e`bu{UQZ4f&U8-r{0hp>OM)36##QsNM6qC zl{Rf6DNAhgj@eQMFvvt>0N#D~Dp@tNq{itfW`wKMm6xNUl zpT4bNbtijjgF`f9E=i5#ABpqm>)YhtD2iUsLrwdQb&ST28mEqsc-SQJ)icsFgv#K0 zdcRQKk`~ozak`S+GV4^omQ!%mfjheMQs_%W%L46$#a^-aKy= zjfq?Ntf$6uQ(OHqBNEebd2xDN32zr>FprFX!o`vlZerX8kMMla4|PXsm5U6x7zi}F zHlo#WKCUxbs_JIqo$k)j?;r+S0ZOJDcW_sA1wYP1JgzdiOrvzx0Vmg_=gSZ8ryo&* zGYU8oTcp}9?kc;~jChUD&>P3vC_dve15vI4jEsVVBOAvBy1C}iEtIFE0PB9WU}>Oh zw~@fjaR!^w;?9c1tq)TqX3ew;#_6jSMfK?o3U+1Ep7PN?_jk9eNu zB#<4lamA_s5Fz%?iv_+nWeS1gHMe_SO%^#}R?e~PBGH>-JI$VfIZkk3{OfvJo&im> zv$Yvk?wYs+GRtxHbsy9Ovj3CStAPXeOAOBmj8El*m#PU zxgP)->d{1iT|kT6i>iNUj`{}4rg)VuVPGa9?OL4KSKNG$TGoxU!%31EPW}0g6xY%# ze3Qcp3KKi{|Ba)J_h#8l>4xaN=GDnaF+BOW2Nge=qP{z2+U~-KahzbtGIU|~=+}bA zebYcEp~lzhx(x@@5bE^Z1xQ2VKejQY871YTc_s|s?^r*d6IXFSW^4ht<7IDy#L@Dd zWrU~H6`6m8cAlB1i;+KGR{+73t+%JI*;N$_p1QL!o^TQ{j1XP{WtKKbHC&CdRgH~s zNIQ`!-OL9oPiC~=NVFvGF)#(?#$L>Lz&i&dH-=k$ri1tZ%cgC(pN9u+-hjOY^@f9^ zEohy=rVnWY`f4hz!OFlO$#1{}TnpsQHpNp@h?-s{&%e%x-6<*YQWYvAUM=r3RYUsh z-pJ`V67kKb;WrrD{qcQm!&X`^Dj=j`dzM4`?%wK6MGd6x0xxHg^&4+nK|i4um@|yFY!Db=Of`{V_++x(o}8 zi;T&mFb<(8h?)&tsHjjo{N57kHmz8qC|QHMwayU0nx=9Up)sY^R0@fQ zx7YzhdR+e8>3|#9wFZF_KHa_Bv&yM+4}@XMM3CHR6=muE%(Sxmy_pU~5K!eV!g?C| zqf2Sp57IGVx#z`?dE1dv*#D(p#HN~E=#N_hlJlXJBbDhLsrS6;_BFiz_}Wf)1S(F8 z5!Kv;vt*?s|9j4+-e@}lyPj0m)TAP%oX-lPYu$7DT`O>Pf3!@JdXD0CvoBzRu3c3* zA=0`RHX_*Bc06PtwYIZKzR@*Ui@e`pc0S$>CrMg4Dy>6_EPY&y$C_L0?Q4Fi1IW>I zUoZlgmtW{|XMN*#pT=Y)Zsb!;xi2c0nptZa^BCng-BM>tQy%8|Hp1m7tIk5<<~Duy znB_C<_)>3maJ}Ea>kK>JsBsx<7RR1@&uwau86mD@7d}f+<2{9YN&giFD5$^KN4i8* zk!KYr7m6L|H)SNVGgA#opEV5>g)2G;L;N8>3+L8;l%Wy zChOg>ws^Cv?VFMg=d0aPa=!FSuS&#jH zhB$w@EzWa-x)B~TfLcU1`49?9SU@pugo4QHx5l+BxI*6g7sXkhUy0lPbF~^4oa5OQ z5rmU+4u%u>A)B>{|G9m%^vF2v+->&_-^i&GMYT_@Szi3MEee7BI`#cu1;gTzGxPqO zcB}aB1TQQW;5SLko!diw{UaQ8>bP6FEG5hH2>rJThCN^Gev24$S*Ka%Zkv;+yb!_WVuDi6G2`@c98QQ>Jw;Atl=FIbXeDK`YM!B2y zdFnF)*t8Fsa0KOJgZtwSmNV(ct1OJ2*|GB?np_J~2QoP!7uE0Ubejh6_zx}%R>blj z>(Q=foNCidmv;J>@fA%^PM)HKb5Qe&)4J5p&dLzB&7z(C;YLo;6X&JQpi;bX1M}-+ z+;ZvA8t8s)gdgur&RbTpkG>=9t1OEE9~L>JVV`a=6#57=perHOvTGqNY^*{{{B;*RY{ zQB2BxQ9txt_0SLIq1NQpqVX$#H>+Qq#Vb?%X3x=eFVgFmMV@tznsaQYj<-m^Kf^)@kU9gheQvMT+~oJ* ztJFQ)v80gryw&5ri1#yc`Za1lMy&0g-Bp0UU^Uv+>D80llgPgkhj7^Y&$Q9S^ag*R zIP{Kz3dL5U!bQrSb8Am$@;@!n2LObEJnQKZ$ai$uTJU6Se#`=N}7sz>G?-aByah6DPiP^D|7xD$H13KfANcYL&}CXZVllZ`ta1hx25+0QWv$ z4zm^$qs6^1(75Eo@>TV>uiw9AKy0~g8GEofy~wVUy0c||KPe_v8ziOiN*r!c(jt*C zt^|-Y9#J3DeIEuHzpJ+ywLe?Wuw>IzvY@bPH8Mu-*`qx8%63wivRWML_;q`Auaa4E z!*$N|#yKI=bk8c4`35A1v;jj=30a0Oc!U}6+DD2Z$G^|RpsIq!uh!jw=iw*3!UjI- z(`IWz~`v7&w@b#R`nW}S$@a! z0GdC4`MHeN|7fndt@j2TGHbJA0r%B&?yZROwK7Dfs2NbhAa)S>YZ*8ac+}KdT?KSL zXJWAbQ#t3fT2UEbDDxI>8LTj})ztv%N~yeNPqMVgd@Lbupu*lQ548a(Yu_8JGttO( zV1y7)D=zuR?&U6KgLQjc>9IS2gY4>cCx1l5cjVP^pA=c8c@ZxMl$mPil9l9wSV_j|AkiL7LiaV6DUlY{-n`+G!M#S3@o0daRrQU+%;hrAws#1mjq7|o=j!fh0xxOl~d~z}Nq=xR~ zHwLA|97kItnQKvp0ie?;)#cwScM74bJ!^j=lHyGMYx_so9*P8dk_Y$Ks4k{qZ>eg& z@9Un00x#G;8V1CEf*0wBVM6ks6*~*@bD%Nj$4N2VzrI$pwJtjY zqC*6JrJDY4WuuZNmeUX5BI>!WI#YlCl3trzz^l3Utz5p*O51BpX8qDBnfEj)Tno$A zR5LI0v*PEqAF09a1`xVox*Qu1MGDSQ$^rNOf~mW*>^~QhMYqtf;N&Y#j2-_q=#_!h zsY|G2JF4fWjrYonEyPCE>AhrI)r$!)cEz2?rI!t&ImmysZY2dCJ^OxtM($YcnW|SF zN44A>h0q??0Q7Q%7=xfk3Nv*zN@=gYRQw`}V+v+zG{Gv4kN{h`q6+MA1ITSa;| zwz+OK3Cj%yf%)#Sg5}4{JW^s^Pg%0~nD#?$B~Rl-Xm>BY6MGt$PKfjCmk``|{?EQa z501Kdzz2NIooW-QIuuxRRvfSwPih>G&n1mq~SP;(}6pl2ern5nJ~LJ*@Wp~rmxa-j*cXP*={6Ly*8xSf!kw}9_`%qg%>J1pO*-qF z`G?!~GuSLr;b*T;wx6!{{nmOoxjQ3sOwHJTwBK#Gez|U5euR0W;NOYDhG`$^4)-G~ zwa};w>t`MHp`#5x+{QfsHI7m9C13w5Y2f6@_ri5O`}Oe3Qp6R3RfNg2G`PtleCk=z z?Yw9KQ>zeK#m5iL{k9Y_geMVmyO`DjKBu*yR!?bj*=cj(8`Vzatuz8<|9hb8Oja2GSH=+}jpC|ZmFkz1Fiw`NN!Q)&s!a5m}<()Ln?Dhze$^< z{3*)-22x*=`3pnPMg6ywDvbqI0kG@tho5UV4l3WHIPQGWTmL26;5Qc`Hr6iI$Zs;d zC;M*I;{$bDFD;7p+i+6l#oo&`P!-2GfL+}UjoaOrRIZ2pHpK7T2yvn4sb*gRS{%Q2 zr~5@;ug-HTHbfBwJD5@S_h}KiH9EeMe|12Jr*Yv2@`dWVY}ccXrHtXk00Gdh%Yf`G z48+#5JM~9sQZ`|ARk>7PS>6%#TXVkjb8)EY!`h2{7Q**xH00pl40HS-h>xuh6edwi zf8uz)(A2=f-Aq!dlsIfS#A@}*L3EMrB+KSk7rx=Ir`9{c8L)@lmREa^ zjcIiy2p(EuS5)Z@gPQ;e z3<7Exuc>#dLBeiZjv1shBtA+8d4Y|Px!|f@sJExJ#f|o;>Eak$-djJC?nAW44gT8v zD4nSbY_Ik^Q;WM1vDNcnZ8k9rDB$p4ZMA)542_H6HXrM9Pl{Z@u0nALFCyFXgMzs1I@rlW68yNR^lIdj>9Lp;`Y*S8doP!mw| z?;~+mfLStFEhsRv5*A1Lt#!Y0{NfbZO66&X`#`k2geP&*_QYb^O66bsGV>_6CB4F5 z6PWoS2bEwo=iUc-4NXv{rKvigM`qTj_e8~u0dji5SB&8MZsBaR>+o+LRpXo_ib_M= zlZUJn(GQ%KC|2g1(^S;ZuXzn`i434T9>VhHyaLD2R7(FEk3y80G9lg)%w(5gYxE`& zR&pymRA5!!kC0$4EB=TgV%8&(fWfsr@cX+b+Q!HOn8k*N^oNagfq00(7iBNi9%nT? zze1GTuz@Phvz~<_sDrs?66!W^PNBl(nHR2u|DL|vS~tS%zo#nu^0Gq*-9vY6mb4Pj zuroh*OI9M2o?E%U+dvAj@iFVVw#a8S?;n1(JpnlUK{*t z#()!SSRdsBzKcD^$2G=wp`g%xPi(h^eO%6ia4mvmYVpu2(+K}PGOT?o8b!TX!paaW z@wtt94ihKmm?x}9C@ZPY+_}j(c&M__u1M@z-S87$+g75|0dT$zo=E17HGTM_o1MZi z#A;u~Fb6VG)={!5pZhBjFG^$+M(Ng>=+i$gJAXTHtnJa#B~Y1nXW4eI(MHQ|+9kzL z72B9vy#bl_SgB|Av-m(uS>_aSKRBoM1723{cG&qM-jy^lErZ# z-cA04Zj-s=pV#1?e^{t1)lQM9=5_rDp(P=$qo%0U6?Oml7ED9tqu1@5nHQfsn(e`s z^aM-!+>o}Iy2i-d<&)U3F84<91Kl@-n0VfSHba+5uc{ZqbpsqY+?o9e&0k9WNUOS1 z8vr7es>_uF28vrNkz;%HE`t&~I@EHqM|;yM47OHyZ}|f#d;60AJKV4~O@=R=a!u)g zuW8g_TimnO7@5LI}+Zo6(#$6d%(`o140(YYuCUi3vQ7tD$XF$@%r9P*==eeMjJ|%|| z2|H5mmk3=1qj%bZ8+S+@dk6P&yaZnz7dp0`KFplc-#0xB{Kuhjy7YNSt6Nm%;=h!L zllI0}r(S%wpMq>yQddtf-_pBy;K48n?AZ$kN-`{M(+b8!Ei6{i9R-cYAi~jrSwVq? zqwTU;l^Ow?%r>tCVIc^>SvZv4;v>^Q@zm5!ek=7TwmyO+Tu5gZHcyG>637 zN+JuRq^N;90%F|-X37uI+5Zjdx~VF$$ELw$xh{V&?YNt)Y%-rib1vVj;4D8C(ef6P zC?nDtbhRHF@@5AfJOg#%K3jjx^q|G6(_(0`X9dt&UU8Z`Uri~_4fB0h)i&m>CHMJe zW!a~Hgc>3!epnV~?}j!X;-D&!Pa8c)`K+*Kluip#|im z<)sG_xeB~x(bmR_Un+@jD?St7j)IspPlQ+EET*>w^x1>Do`yp+yTZzSz|g@8;45|i zrYVXD-f*13U(Z7`zpP9*Co5&hv~ljxN<^bVVn5y4RS?@hJJe?H9eYlL3Kn~_1$%to z!pkh4mn!qBFjh`k_|;1(?Vn#L<zXbi=4~QZh9v5^{JiU^2(y$ZzSgqK)JTFH5y1tQ_gaH zb#rN2ZUdA<+?I#ELJQolAtr|{Te}NLeLAPljE!@0xx=&Y(Plfw^SMNFq3w)3pIf+% z&Nv=6z4^K_MTl2fQBY{e7B)q$S)FYc;GJb%Q4*`Tt{Zee$!iLz=((UN%(}7H0<^7q z{Zi8hohNeOhyRdL{7Ujy6rI{3*f@Rpt;UUCmHn^7EM@~zz9vK1MHSiQSdHFr>XsyZ zYyF+foR(O-+XVq#SBYOvV+28x6BU#@HhLnZFi*A`p3ENy@cEYJpE0#lQ;@Zd@7&y* z?70_MqAVlz$_+Vg+F;uG6(?!GoPyK|<9B<=kJ%4cF~6(rGgjtqSCqng1crm<5j>ce zL~C`yex|YOSff7T-s0Ywrp91=abjYCvjCCkNk%~#g`eQ zb>B%CIb^{4rZuJP&(0Hm1*tAcA9x;JK$`SYBCFeI2I>n;a@dp@pao7$vZk^)m{S*z zG@upCeU9%e<`nu}YbUl);w#7QxmmmrfQ$L^+MV%pyj5{SeVEcMp&z?PJ3xT?2mB9!bvjs#`Ck>WC%iS>qx3eP2*-OtCTWC6 z_*WKKsza$7jMELvBIMYUI9QAY8B;mUF0vk&0*)!CZv^SIEobv&4(=;x3U4}-YL~M9 zmL8-F^(GyZfasz#s&Uw4UF$(~IhGOg(|bSwIf8+sxbUBCd8N5^W-(90OJdkIEFGPV zVzrPHj1JtTjkabIohyJd22w@HGha@wAe0zN4z(HPHfRqB0ra<4vqM*}mx%<*oeijL1 zBUnf1AwpELe7K_X7vJ3`2w+FXO0mKsP0w{)kTO{|-$I*A& zFAh8Cqredzg4ponb+`MC!4iF4sH|S;bj|~Y3wM5~q({o9ArM(3+@R)s^Qj(*(9TVt zNpLBmze%aj8;@{v7D$OY3E>21FR<1RS-7+lImjEqbqts7JbBq=p1ItzVevk5r)5%X zBl+UiQKTB^b{D8r0pp`&lJsAth{0@{~T_sXq9=F;EQ~J>nloT=N5SO6Njvy&2 zRCWP90}QU|da^ZApE^G8eK0+`UKLzNDA^!f@>%MMY~AtXSgmraf#6mf$y0J{q%gnv zVyET_d7owVIEK6g;(vDECKu`5S@*ghM4yhK>?as=r&Q><%M}a@#r%$2MtuuFi&3nR z{d48bZd@AYsX$76d*DyDgPi^`{Zz7gf8NuDu`rcd=JJi2J3N58V&1=a@#p5-pcns= z6^#@rTLOnq!k@qHmArZx@nSd5YGyqY1P^9oa+7OShTDj8q8Kf*j<^^Y;~hjjiE(D* zmqu(n%SsUx8aD3#gRw$j=tqhK#v^rUQ2Gt`nW?yT0IdASqd_muN7$ltJ!_LcuyoU?EH?{<;Mr9@8V3q{4KO9n*7qHI*J zEhW4RPUl!PPpx8BD&*nJdn{8bb$h`)SDQqF-75@GPJ4|8CFKqNYpWeBUyPo6;b%B# zaULJCIu%y2b0t^(L%N+Ui~@Q0Plu4ukZ{jpVW`gc0ux*Ql-YZeySAp{AR)&J{!PwO zYw&)kwWI8AO?hBzyX-^UrNLmwHXOzjlRwlVuWkH{sI-$;unf)nW)|&IL(>sYv?KOM zF!bkjx@FFC?~rG|@3cm`S}%JRg$6oAxHV>U03aU&-*_&q=nX}+sgg?aD*s*Qm&7NM zM@P#{i66d^g}2}BLe9IPd>h}?LYrRrAsOw*cVKB#`GPh{unTP>Hz}`1gQ{ncFCqYhA z(RHS$8CLK+OHNo$0am8#vm_x#NdEC>i2}tgcgC=8MYDDW$zmyX6*4&lFDQ3YKu$x| zBqL97XJ3d+J!ZND3d=NT|3x#{rQb9-`uy@a`7S^8(FVxD-@dCj7_a7`PoaF`1xaVH zuFh&^PiFg7THfi*Ebi?!fO8scdj1+7l$C8WN@~(t&(*6lHs~~pEDPdfwg7R^gteCs z492+BFpg6J;7c))Ae`fvgMvKlmcfil^$5Vezr}4rx9MYVK%IH0YP<-A}N4qCTu|i_MrcqzUTZrg8)rg{nxa`SF#$PaV&Fp0CxpVGQ4a|Zi)u&d> zG~;e+EoEfC!@0m+sBL~BBHl_ykjr9l8*S$+}D~PZq_YEh) zRbyE~C5hGVm#KW(2}+rKzsPo6t?&Dk8(V~Kmn63faqJ2=Hzv8o@gJ3O9UWYndX_<< zmV~rT8Zs?%or2oM@3ECI_NS{-G-c}P$GFK*68pw7I;+6@`O_^gegdn(?$&knbU2(DzFxrw#fxcZx;jv7BHhEkbRd9Zw9VR z{y9xxHj5s&_|aeGer(WRTrKyM>{`|u&2sdH#s__GS*sZGOi*??Jr{WT zoQCq67bGbjkbpd0Z>&E1RHiSOzP%ha3dl5-$Lum^#BxG91<+Ts@9Ip;(r&IAy-9x( zn;&)&FNEkSVYWZgC+Kvh#%e;k=6!hRDa+QFF6DclpSV^i&qk&`e9Qz-O~n2$&eHCX zcL+qm9#e+aQfK=;D>7b5h(C|6@GAGREYewpn&}>o zu#PHXA(elliyv1ls0(>ShL#c)6{wL{Fh3Ndc$QjCts1VxDZ^ooI#Dbl|IO+%^AnQ% zzV3U;DT1ZBd~zOsy3cXe(E7FEH{_m?HYr(XP0If%FEGvt`qm2GqZ=l~ z8-q$i>u_8Qd;j>@9{LP_i@nZ?YfSG2NqczcTXB-tQH*Tw<$9d>(Ts`w4}Vn4&>XB0 z{XBi@f*!9WVxz4|i(j>X#Q^`r+s$K#K~3YOoJtSIB!h5AxDF7<)?+!-x;OM=e@hLv zJ^M#@C`_Fr&5r^8zOHEDP(;MS%}12%R40&k03D2S%#fj){5>9GutHv#OlmvC#(qs2S;C*vbY2$C&22%1nRBRqcykmj0$SWBSaPZMpTI!H~qi;L%Ilj-s@X58)s4{ zl5aYtvoZtznVEXG!109o>L%8sGZ7uuHSZTQJ4rJc&V%D? z!%aY*j{j(nato6}h>h39mIhmohvWdR&l2u_Jxa~LTyj~fkt87^!bo41$k6NYc4jF= zIRfjtXSkkK+uh+5=xA^PjT5JpA>A&iglm?u?vUD{E?aDkEQ<@?`Q*>6XJoYetkkZ!8 zZ}OlqHk0VSS;2^LQi&HE`0&ykUk7Y+5Y^f_p{1X@Q*UC5k(!s}pS})3bY5IZ*no|+ z60PA=0~6=h9z})_;pA`@9d@qU4il9bx|{mTmF+qb7`YQi9@N9|YXe{UPIRW>{gV81 z3MEPBPS_JqRPM5ZRNh82ut6FyxIzDfi|Q3x1ke==$c~sLD1ipS+Ar=o4`^t{hP3jbQWO=fCeIdwwG@sTYaA+ zRVF5C-X*egDDD)I$nXJUq^1YoOR!vyj9Lma3!kd$vQ;CO%2=XySr{@OWen=}XYMzP zT>`(3jaild3ZdN?I4c$VxLmB{_XGB}MIL^%))BaPAo} zHKcl(bQ>oMpIeocd!#j*`rZ7~fS2P1Z`t9N1oJ$ZhzmJ861QPPrTK8#V?VjLtB%nJtZ(A$RrIo0%=slG<+nXGUfB)v z5myDPf4oCMKn~~S9DFu2@j$_OxOgo ztp=`Qc?#9%e>M7sDhi>gcl;4qS7(`GP}VS<3llK>-{x0AG)=$;<)dj+%*Cs!@ouA@7+7? zX>p5u+*-=V${)B!c#0ee8B$kd=cEfAw+?frGT)yVv{`v=d1+)6=8hE$t!=YU_3C)Q zPqSCG-Fn@9eP)jNLxw6qzted*Kh((C!pCuYf{pzL8{6MeKC9+2DbEzl`sIV;%m)dJ zB?^w3b-x^7{_Q3m-!&#z?{Jx1Tv|57HchrDO}DP62r=lqNhxxBko@PNjn4Dggp}E7x0u8HFVzmv*k3 zb9nsL;MX<~JGAhYxN{zBaj1bID??xj7yl-_?uy4nK51lILJt>Y&@t_80xoH}eA$G0 za`g~51>CE)e%(bGhgXi(70)ZZd<4Ys0H2zw{^40LB#jA{$_8Cmql98`EU+q2d^b)+ zDaP*1!9`hKFiZL9C0K+)RV5LoEk;bKEny^s7`=kT=43U(50~z)M_$0F2QRv9y=OU%#)y05#`MiD)k6 zXgP@oxGgbGEr_S^QwrzX!nja4+f5Y(CxGRri1o zG#ZMdwHM+#AV7^+MNql`-0DD$=2=Vc;o*3Y?^WPaSYlRC+2%7Hm)!z*;)5Q?N*?nt zCf^rV`w#)2*H*0PguXiV;SeUMdu&r4U}cvpcXZg z%W6KM!qfr<`e-`;ZHrDs- zTs%HqWg}U^UhNDwm&z&9V!SU#2pI*1P)cNM-#fR&Wd1evRPlY`p&bd0Gt9;BhT0iU zs$_8RJ@)H*Cb}Er^)<9oB_~4Xx2z+q zKPZuIIvA)VRzI>D`p@O#E+h(bS?t%U6H^tGNom+T$H_mKlQjKTBKo*PFUpqxr(IoV zvGS`cxhv6C>FSfK=9W%s10TC*M(f@9+HEZLHG8EoUti+m{l0$eQ7V?f&u%wX$t4?a z)>*X>9H=b2T6Z!qMx??K?sNB>T-6<{UBNy*Rhyrrg3os=J8h(SC{(W!TDCH zBf*3Ia*ka2Poq2UyTwRsYSx*C131Isei6g;=GuDBEZHa?X?yFQ;xi_!-FoZQ1r-Hm ziEB<8V9s|ymh~oHHY+~(kz^qe0k{MFp} z00Oe@i&!?bsV?`=b|%ddO6iPa<0CE|){K%l=aj{GZD*I>#+)KE+>%U0HtT$e8*ZV= zj{ok10+XGl>re|n;^THN<|PyBhEu#W`9k4?5ixFpZmMqbbtytAei-vvTSn{^N=j}T zsb5ZGg=n2CC&rM>dUCC|i`sr!3wkI16I+W=K?`J|$ay|;q~5dtt(T1@|A``OsIDl&YrM$^%q zyIWcN*7V65@ri}o_=2CSJRmn%k+66X zzTds#`o9_fgsGIujpW0?rp-?O<*ldxqXhICV(oBl26n0rICMyG>)dG`Yo*o?(oA?izN(X zkoGhq`TdsBonO=>Z&6^CgpBTxbr+}SFYhIC@@a^*pFbvuv>PmTT~#BuokLph5=Nb2 zaNr6hGur=)3`{>Tw|GRCa$6@*S+6GTB7{ysLo5D|qw@}C`|DIsl}7A{tteWwwzjmWQG3RWsv514(wZeo5G%3$^8MZApWNk6xbu3y#`E!f z?tVD$-@x4T*ZjuqVBnzFV{~ETbLBa7VtP0~75z5sLWs1F*#L1*7zrCC{jJ{J` zSmsn#7`$_D(j|E3bN)D_KKxxbuCl8<(tM8ef;o*SD74i3FWM-ECE0+Pu0TbEpe^wF zborssSWwmrewL)C51_r1lR;sT8OiEm2fBuq5E7>z3JhAqvVHWRlO8)VGLjP!qWeuv zU&LFOKtn#0C;i9>bSFga%Q<5+vaV#Bxdgcl;L4 z>7$Nm-y;iiXCGoyGx3A4ap22AxcQu9?N`U&?@6vZZoup5PVx5@`S#4mgB{42JGN7- zYQNLELQ;|)%*+b2Hq(CS6rkhBBzsNf$BcIICpw)^00V%5)`RcPenak^mw-F5xXScN zZ65!Gk_NO)V+I6svH~Ax#gU zWBBwYvpm6z*TB~fuo3Zq)>>Z3HQqKogOP@)TC{aUZOp+-S9KF_sSp;w5RIUvFD-bB zkto1Je6Tl5UB|tvD{H%Gm(Cf{0s#83FtHeQzdvl5icoEuV8oTUi_6@<492$x0)SJK z&IAHW8(Cc!LnDXq-?ZKAyh3$%Lx!USVDu#xw5dAx)Ty@$3_z2&c@-DCeA+iDUy(KW zG*%Ngz>VLdu=%Bf*uP-c|P4PRv>bK>DFKm;8p8ji$Fn*g> zmLfk=ZTuCXwYCi~qnX5`-(ow)?E;5^?Ga3>Mx;5Ze1`G4Ip|TI>hv zA)$`Tg2kG;QMb>lpp9Y)lMZ$0nw^uDN)y(yo4^7iRyi(qduz*u=t?c+X>FH-jkh4y zv&-0|P>QAh{2C)C^@OX+7|IXI$jaTaMcmPq<6&pcZXSuDEb4&kM}dAUvavf$%o5-AzJ$qBo!*VEN!l`@)xgt$oCA&52b#QRAEzkD zm&-}6vf97r(i!1&QBtStdH&qwL%m4vFzIKvUE`fbpPhgM@2b%wT=|73UfNLRcx$8O zAL;BjsW_O?Kl^mXXYtmYSTI(D^THDqtJUiieEGS)gO1ALbmvvrZuSYA#(9gynV|@` z3KYY9R}fEu?sH7cT!|~wrBr7Y2!U@J8W^_KlIcMfqV33zf_IYaHj3rCPMU<|sH_|d zh*wBxdGJPd6MWPtO@^E2Nd);Om%ss9Q6Ay8 zWy>pB%m2cgl~t)F_FqizR8_+0Kuq_rI?XI>wgWnAAR(W@5ZuGHekskk)F$JKE5lDV z+`Kw+;6Q)j1>|V}v;okvZq=h{+iylPFrbMOp@MvQ9@h|{wodx+d=ZdA{=i3g3bPD7 z@YU>R$l2KS^v@Z@b-ZG1FXi}*9*$n zxMqgax{*xhtUKH@43%4F{GaHrHZQ}QZ{u#dFh~*7!#P-mT_xqj8EfN~f2B#Qy~j5( z9n?UgosgPm*25LE#pV+l+wjD=1nRdGc@u7&DJY7!G_MC)Np?z5t{=~&>+|hGDMSEV z>2L4kAr{HOE*t+|#KX)ev`Q_CQ$I!e8f6FG_ZI(eYr$FJnN?Vk7U&mQz=Evhjbap$ z{CYRj1Gd{kh5k5Umtj{#1DI8PnFPKUP&9%gqNk~ui zSx4F!RZ_<~_4U#NDFTtzc5cn;x&bK%3&&BE0D!Gl6q*q_rF-va>dOm) zD+P4-5$S{~y{#7F@AX&z(1YKqw0L3^C!#kc&+LHNf`mt2Y1X>ItL%_fkDSKG9E3bg z0cAFVq`^zX%og{U;9kqz({Y#y-_<+!ds+j`m#v21D&tutKFjj#Z=L<17JB_cwIn(= z8d;r6bM@eg`O}&>5Np+Sb?c6`n~;kY*(FIMid18oSKpxd825O3symk9Bj~H<(@VL| ztFk}kf@?|>^W}!`BI5M4&ifal(LK5u8ay>$-bG81tIUtA28uQSIQ3QyDpr8HjGi(+ zmLkU6iTyaS3kgBi`<6g|7@L!qHLhBJrpvFqwFqxSQO9$WWN;weU6VX$4VCffD<8J|aHz1Q;6WnqUR~Dcoh@2PSj4{Dt(xVI`RN`8#Mc@(F z^qmU+f{wg5pn;SY@#BW(#fuB|*WSIb!e7semyscuigDjrYN_!kDLc)S(L93jjD=IMl=l2}r@;hBp+U(7m5lg5U@y zQO--xG5cqs&#W6IRdf9YjE-{^pM4Hze*I7c=b$*yn!sMsEldj1F8P(B)yNU+O(vQT z9Ie-#W04XV5fR;WH$4@9GS;Xq4qB4-U@D4Lv9X|K-lW00xo~NL^9%DD>VU0@Bp!4v zQuMEL-0+06WSJ@2)B7=#N|T_+gI^2TmJg&gmsm8dPb{i1yhk_J)48(+(b&zC-d1^e zUI&9e5@6pyV0X^+QL3c(6~dYyjtEug@kdrd#h8!f2!9gKfIYG4U*L?0V3HhZE0~3O z-~N7Wep&t_(Dx9{ue|LNja#2w&8GuhJza*1?gGl1s$=5d4D_^ifX#mohwB2tR=`Tk zE1pn0y=n7>O<5S=K_BOtwN+pfmeL5l62a3EKTVIE7_IKCoS}(PAZKNFa@8)&o`rx0 z>8DSdGChDjeqXw%v@j0g0Oe?q7UttJdaQp7IKLTEuNGZmPg9kyvPO{voAsq%MWv}9 zwjmzPJX$)?&hdY~i=n5WiQyRfG3M-jxa@p-u)Xlg{@dKCiUkKa)X3XNhV>fv0(R@x zJAd6i4K$FIo(NtccTTS|%|SY@ujcihfsNXl!>dzeJh~GpVr@kpNO01P)-{tio*BzL z66PGBXCEUXsnBQ?hA`30M z1kZ?R?b!VAYrG%6+ae6;i3p;5Mk(`+LiytSh?!2V>hWv8(l@yi@br6m48g2#W**Jy zmRIFU?CNS1M;5Df2fulKY41Cu32nFfvb6Xttju3Z2i}pp;0VVB!!DYu>vI;2A}uof2*v1WI{KRkw~uKGFD@X~tc2?-(UA zfv$?48W+#RaILDs)sMu=Us6(p+#xf>8}{X&1(?hyE~u&Yo`Aidmy?-6sEmv?nF$(V zCRd&oL-9oxC^rLpXZU|)0DzRfLkk`iKBkzAI|QdeAT?YRG_=yaSU2h34e{&j5ngje zro;amw;mE%BZ8LDsSW0lcGT<xgzu-oKavQ^RF;KTPMK+ zuvC{z_B$*y!>JZ0Yvj_L;)4H>eWJgg_waTENuGL*EGBoW>+}k~_y1|zXg79oM{k3$ zUjFAM5r^HFZJXJZOI&>Pxo5oKD)Zz^#nMdu{JU{0XD^m^(UZOev^Um62DhvN2f9c19%}vFS=jTH)YGF$HjO1%Fc|jSVOjV7EHELJ49ll!azVyTk z;NE|FVV5_uekreIb1V>?r)>p zume>kQq+_6Fz2GLVfiHTB!H`kikh?eyD&k+vNZlq*mm=imq@qF0e22*M8CeuJrUoJ z<)>v{5m!cm7^o@Yecmz(t#e;cCR^i9K9BILECwG+@}J^Vs}7>9;`lKd`MFHYzG>N~y9_?7d~(m?(T?2$!_n9p5Kg}C3(&7qakmi37j>#9htcbEdr zk`p&3YU-6=hORfT!Q}E0pTEkn?_*&)R7PfM4(ijk&a0@C#{{dCJk2JMF?k&55P)~r zC&8cP84ZE2J)DTOYl!Y-15S?A8)ps0&_EeTqpi}f4|w5(r->%hx}SYn0rZKS6fu#d zef*WmC2BENw7ww`^EuEAk_fmS=`{B$qzh;vuz0f1e{8ZW`cI>Y zf^DbSk{YY~>O~*6!s&Sx)3!_d2Q4S4uWvk_oZgB;!q7W!Vnb%>skKndE?oH!MaT(G zlKF|Ia!ZdF=$MPr2&>1l8xGg<^vyOr>cn}c$4+r zi&>Thj(@KR9haeFa?`X3R^(o$$qv>di&=Q@f+h{W z9A6sYZ#>;Lt2qBh4yh>q9-+Y%DYQnmP&gGc2Xp5g^sq%r_%E7WB*Ko!*7GZ(d2Qz+ zTDV8C|7kLm{E}NM&VDGe-6I>pEu&1?r>W;)7=1Ug!`nd$5{D*V&XV>Zzhy%!f?Rrg z3_A451%-I`Y=`BHVTZ%*N)f>f0q~Ei5yuOdhYOfZ@)e;%fncU&qsMYt^`F%xXO$&! z{PfT?BNI8iu2Dl)LB?PeSU^A^&S1CC0}vP1mHss(@vdBl%~QZh2H z71XNVdEb4F{zIC&)tZ_*y_v)rW067vW0jEhozG#`>rX>FPhX3k2ixgr=h8fu9FKUt z)?}al!!UL1#UZ=MuOwB?-8k(j4<82}rbSke~B%nkfgRD{g}Z{LmQt19>*7yAK5d_fH087(;opoH6D7=oyqUaT|X-{3!=#uz?ivPc_^v>BQy=pm3x%aSpI%-%> z$~I2QH=HZWN;wpnCu8=*{MXiab@`lg5D%=E41cx%V35TDsc51&0HMmt`F2=hloaNt zHN~|yMYrZQGXTHL_q1*;h3ddMq{>KBVerOo{ah`Hi}SC5q%l}t1y{zZKJ42GFjvqI$4u$;z0Z-?XpREx5|C{oItrXd@m zFhV*}+q(>M(SE?yRN3Fh$t?Mos@+jC=w9wb=2_A6B2OWqg}`BTAk%Yv>1Q&7_0yp? zoZWgi=o`oI(O+R=h;I_YdHhpVL9TVJ=6udlMmV+D-U4jGOajGzS!(B+b?GHJ6Kv`# z`k==1^G7QLDSyy0P?TUvJW}=6t|LoYVlAY8+my_f=FPIzQE>7+kKLnq5fx1v8|Ug@31qpSbbIuFTD^^${~@sC9oVqsQ$YcBF@(;c zNY3D%CE48(tZFhGh(B;I7VLsS{|@3sxor>jW3p}ZYri57j(o270wKtNdsj#0E#;25 zKlQsW7P8}y&pcw0e=OZ(%VyB@wxQm2U)xDY$l6=6TOJjCQs#6=Go^e-SM ziD)gIq;dhW8TG9xLk6-z{s86jL!@vR(&cGbbL`f&VkckorjX`%O+QaN~X}`Eltu_&=cHN_pQ9JH2(&c zXDnprdlUro&D>14li}bO54+I=DKMc7tKFwi4T&-W04G-YB}ZhTC4fMnCvyxRYcct@ z>0*%Mv&tRGvK`0e-gydMMVQXRuFp-&&@Kzo<2S9nD`%Gg)D$tmW5d^Loy`nkPAq^x zZ(5>|R+Bjimg06XvN^GP|;#O`F|FJM?y{`ZZeLB=L>#9El~cV z4w^n23(er+lr+)f7?I^%b$^A~#1_;lylq^X@C^+sd@SJN`)e>=bLWu`lhCp#*h6@E z#ROpV)~zHVgFYVhh=$X`Kt4Nf!kLtNU=QI+nr?3>p0EgLriWE=m7r@f%9Rtycl(36 z9RCnAT?!s+?u}roOgfTxl~w~%Ha(va^=O(xG-T-0LX;!hgyEk(Z$k~PwV;75D2!Z} z9?eA#jk)~$=uLEc*dh0Td+V53mAd?y{<6_2&BN}Pc62h7?u?O(D6d!PWjF9#8AeVF zT0KG0vd+l8p(Ck{s}{TX@9DjJ@n{$xBQ=tK=hvx;xvhNZ48cyQs3a3X;;i;O`!!Po zVD>*AG0Th@I2AdTccWX#Q23R!()np&{W#^!LlRvqM8*(qF24lVk+es^*k+O2EBr^plOf4ov{!wYCgJ@TGe#{V#jQkYwF#ZxO;8=nlT@6Lc5p? z@^QY3EGzHupde!^=oYzlsH(I*XCYgmsY>M7*XK+7=ihHD9UWkz4qX(AdQ>qsRBRr% z!PWb>BP;;eF8usLY_?n9dyu`a@)9!QNO zrR-3#r_s=BKoND$NRJQ8NA9z!k?Xi zM8O03Qt4Hl8*6H(0)qCd{?mmep`>9&{xj_uC=?9imLVi-C7982MyhIU2a87wox0EU zWUh*Eoghx1sEKi%SmQ}Xw^%QrWO?9QJvd!f2>c6H3V;-6lVjx9(=_|TIIy8K84&zJ zh`h7Olbcf|eKB2caBB2lk893o!G_jH-wuC1J12FKVN> zuB%=98TAZBL+_rUkK(QXxe|_T)qrNn>U3I0a%`Q~EXC};Chry87S()nFZ~_^R8>lA zr7o3k$dE0q*85z0T`;T3rcLjpT|2yiyz59+F<7yASK@8D%*3)K%-8*Tlx&Rd6Shb4Y zGiktM^M%`Svn3aRs2HtIieOU_k-y5G>O`;pt`$0OLC?iaa`1fG9|m)WQa3YYcOI*y z8!}aPyZaEXF)O&C18oe)U%DN0(7$c1x)I_nv@p)Pw*PZfA)=-YUH9pGm2^5{#$91n z7d*f0LKD;XmRHrjw*X>`xHuxLZL+{*sv_I*i?~^#*Rx#DjsiW;;OT3;m$zT>>mMnO zeJpL{Xr~io0jCYz;wN`2$Zze2ZiVGMdG+dgc1Ab+9`qUDCi+_>*h4Z5DTFkjHCs(-hfQPVfoX*fLSC?y6g9oYc0Bu+deo>FgoH!{Cx zDZAc}E$ZIgam^A3rVE<$Jx87@F=}nH73bw9BvSn=Z8HK~#!K(;g^5px0mi4B%tajo ztG!MD2xA%?@ z^>0)}ZDP5!S|ik+dk(o(r|v7URVHmNVxDv;xk{UD( z*qd&yvj8fp^ILpN71t=JJZM3^woN;g5`b$KG)M&9hu@`3)4td`*E%Zg{scpAWfWui zrl|5`Q!>^{&BT|!Be(g)4!S4+;||{i!fd}VX^J4YN8FEDCd&=DlOSB`5EwTdP4Ub9 zFJ$;(Jat&vWP@N_o=fA}sYaZpphYqFJek^}6Bx3TnRV0*{sko#s_gbW#dlEvcMW5K zf|S=jEE@1!k&%aA#xfTge36i~<6OC!T#p{e%SdwQ#y_Q)UVdE!-KFyBokqL$xIb#A z;)+L7?zHdEzd4>M<$nukFuJlr&+M)!Bu2g6uWNBlzfid#fJONB6g_}@q4}%C@;|bq z#$f!t$uZb=haMVD0d5#~{SwZ7Z*(CprgtM?Qe*NGptGsdmsR;U#{0@!Q}T?(D~i^$ zh}N?^Zl``Bf%b>NO4g*Wxib8rUaRcd^-l&y@EliiBa*Za9pT{%H(B}_Gzp-ix(A5c z5YbJvNdKo^DWG-@LoEU{ha>PjVT+kx;aIX_C~A@?EPZ3t+pcI=rTldp$Zd?LlTN;3 zEq}hPKJJGioU7r=^_1~$zG|rH)2uf+)V@P2zkkx?{{+zg)PT)aHC#}VB=z!hdD-jq z&f;M*cb6V{*W0r_DcEABJY9oKnO778RtbSzAvr02E?mts7t!|0r0S0d;0u+b=|oybaj z>S>;px|*H&Fy*Jd-exY=r$M@c*~nI{iEqZ<@r?g!gt`Uhf_8rE@s43MKIy1nbReYD zzE7KN3H08L(PoUuTZ(|GY?f)lBK_P05G^NwynJVWNbmFqlzFKj*?yPs@i$wh3Ot|y z1b_FZ?U3<1_Ojsgh`VR;t-qHPSsU`@Ur@XXWTdE0ddQLz+WB>JkC_rjIk;1ATUzod96V$0&_#Q6$i~deDoJ3& z3XOOHm>v6OCR{z8eC?*&W5(O)|BOCO{e-*TeB(vsMID@ZMgIer%eF7yCY?;3`kiag zm$NxC?&(&w-T6X297)r11V#d__m@AJOZ0#yBS2*gJZ-REWC$Q*ZKnC4SCEzebGlRE zfi(^h_Z?eBe(F?@by}~!FggxMjB5VZw$a&H`zg(ISej&oo9Y#etZxi9E1(^vK9~9% zz&Q@I;F^&xi7+ggzFyfbWB;;82!2d)lup)&gl2>$HJhC=t8{xb1~-PE?s6Cx>l$dm z??1CAA3Ge!(dVZ2>W@orFzkhAH5`3%^tdl@>gF)7CbK~@*$rsx?fxelU#Vv1|IF=~ z_9o7t!ocwTW$xjkGQw(vG)DTV(C~!Zu#aip?7Vv27oDpUlY1DzDJBU{o6+XD_PB%c zeB%9$XZdi-o6wT>f=}k=+%Rw&Ia=81<1qDgau{&EZzuI56q8FuJR|5=LTcg?69uwT zgwrnDpWE|gIQdRaj?*9`55Cmk&O`_j%d5z*uAJ(jMkA=<#qT9ZmiY;4?p!}cc^lml z2J6{9)RabOXps$Su(^-w?;&5>Jls3q1iZ1qbl+mYD0x|&%t)#(^0vk%LbU?p(vHT+ z@^GR7u(3P1cRiPz+djGE%2Ku+2O*VKA-)*Akg?pjRm=89CJq`w3! z=k0@nBeK!S-{mUEfuMZVmyy$@;Qn z?JmLam*1eNZfnqgC{8MJUbCLSzJ(#=hKDQ!B`RW_+<(KW)<$^^p|9?`xIu+gl9xcWnvw*N#d;nAWGtx0V^f}mrUnidMeCqT(-Q?D zaeL-`YE%ac0DwCU@@|Iqm^KF`{obe9A`DG<9ChsLSKEkVs|?+tukvoagU*qXbAYJx zjS3UK5|Eh|dEq&FjPDLdOK+0Hl1Fc%w@TYypOL35z-+bI$ks>Z!@TTpS_J6m(!|!C z)5A}C*5qqt`uolguHZnx@kU@drPijxe=Yt0>7A@A^-P)ol0HBk7QG`W0qz~SCDxf< z$_;Dz0PxWO?_8Anw@>5mDP@IEYg|)myZBbcQbztOKGe5{25g{hzFd zPy}%RPTzdIoO@8NGFm6xfkXh{;f=FQmn=`vWx8fu{Qw z^7}XE>b}I-4q;Z9XwRui=m?pF0I>&EAzgoAR9{nO7s-AQRR^Osv>%u}tI?o|MEw&! z=rLaoY3?yGg5kGgVdmmAMRZCOTDy9`Gyc~4Yutc(JMFRwVb)EIlJlth-cGS?(1xAp5J zWXRC+oUzPTec0?*{mr`N8=-1#*O4VAC?-C+-;+C{SOnc`zkYLS?XS*Ab0X_Nx4?o` zJhQ~LZo#wId*E|e1fvE;F)NAnuh0bpK?Q>Dp%#6H?V=XvlGcVy^ke`^DwZ<1NtVZ= zYsF|@0$=GiNWiyWweHq=es_<%Qp^!7fbnggR~?NXokOo;;q#^Dy6bqo`Fr$nYVUSN zGP3@JY5mFGUr-y}(LakyL8iUDXa}!QEoVLyPUvr2@2@v>%NT(C^c2<*a~tSWyTRb^ zIj%iaIC`ATB6sh-WJO>>fzYpL^LlfOOqH>?;K43nJy%0F1Nc6DH7TMMc#GxqmRFkN zOilgRG>=>T&UEw%HobaY9z%|N?P)`^v|o5rdD7hw7}L@NVRE{Ab-61gE55Li z$4m10P5K$0w5C8M|L3d!LR;M3MjWGw*E?NSRDdAfgwggjw^9vD?h12d2CsgT^~o`7 z80y#WSrPGi|0hh_b76g3th+kj^hN&W$%u^l|01ji4V3B^guhHSuA4EYWcx?FB`Gr- zs7BAhS>MmX>u> zIr#KT0~q)21?cd!xNvW^s#dqz5`iXHtr*OgOkY{urzbDXj-SUyisj}7Y<9@(D(9sBo$eHQ&na_!=&8?bAV!oNJtW~sf?efPrCPfm1q}FU} zD9cs^x9S4!KNhOy7|@wlvP)Q;`pGG=tr3+K>eC-Ff8yus(?zqTAbgoTyBk> zY|Q~DLJ z3K|`6b=KA1DKB~Eu9cGA_@pQnU=uK$XnNDRx$eqo0R850R@hA^z<0bCJHt@R0knML zuST=gbqTS6$u@>xyzf$4rrr7+-(!F7+jXi_3*!kucSh~)8{5|EQL~@9emc3Wr}vP40IIF4v+L6YpnKxaetOW>%brEYoLQST1cV%3S<< z2($dsMYB;muV%3c=S0K>O}g=L0Lz(PZ4VsK-hJ;p4wumnJCfyImzU>)Am@)6oqC^R z#UqM$bi*t)f_oBn(KgD&Z)q;%Xp$RgS5h7`A^eL0^MRv9fv^G~S6|a;h{SKqVtKwy z@jlptD+F2MzC=B0DS5Gq4XW<5x4pTIbDC?0FI$YsN)a){1Wu2*)x#{wXKO*+?;V%a zt`{b?b333k^Gwg;u(y{Uk6`*Z2^>RR$lVW^{emt@lWg%1$Hf|fDdLyf*2}LKGMAH( zv0=Ic=+_+YIjBXE&`>MA?j)rDaGf4F2SYAAzi#NrF_TLOoL8;VocN> zZZ_%OfLP?x^Dyi=BroLHkYG8|vtdicPUHDKJw$aTUQ-_9Qn%&dc^zx+mKmm~Ym22c zYpQWIh8VS!`twDN`tb#55AmpWGTb)OgvUEbP=dyXC<$TrtMAGgx-;O&f{@#D^ zYihjoLQ+QijuflC#-fO5pMn!MC}>1XGS+zMN4hX88AyLs)h_e5YHL8WPqlW?nRfQ4 z%?7IXAC{*t@2%a{_awCz^mfjgVypg!68@NYtKc|PUw11>s(CS4isuE7O*JGwt&4Ui zq_{Vowo+58cx8#IL_z#c-;2Qp{{)uttf9AooTHxydQ|SyAw}QW8auI5H!vQukJARYV^h)&M>H;#b0GjBLY56b-PPyFB{|4kO zdO;oB4q3$;k;Aw)^x1z!N&1rS{By>mS^k&J94;t#kNsGf^>r5=%ab8^AfKU{1VIWxTT2s@6w~i~$=H@#9<>tsew=C(ZeU zFQ<`w!BWeS-S3{H5-_B&5tgeI!i{v$`3uQDA@`>&@rS3YXJSQBU1cuC@ZrU@DRo1Z zf2}UYj{^qg4r;q^ZOtV`caqpISGKwM_RNOFGkSr=6!{>~L4Iq7Zyqz(K95R5kHY*9 z;_dV+*3P#o&NR}c=lAj7mK6wMaIT2VFwOqs+NXHX3FKVekFle-H1MY5H6?USAm}#; zw5P64dz-c@w`AdIL(=Y7x4Fja;EdiCPa6hgbJMexWo|``w=K=W- zQ^dg+Vx~8L%)B=P;@PNK&e*9u!qusD$v$3LsU|=qVWT9`wIc%xnrz@@w=fq55=FSe z47xI)!sy`J7KD>u#&!FwQ@ZBPU;7WMw6qCF*d%1Y4&0%Wdif8*8Qw#X5tQ!DfQm(o zQeWQ#5(pjBeP2m1c5m{P_H1t{KSJsdpQv^Uf%=IO^hDY#nmo@re@0m1R!Fw zYi|1)YOR+vXIyhL}x?`JOj!xQS+)xj`ZPm6!QJ%GN@ z>S*yC8i^f!Uh+CvfO1C(mRO&ls}-)y?=$1Be3w!F!#4NlWo}4HhBiSN60YW}*&9js z?{>0m0&g*Wg{8);g93^Q3(XgoKbNc1<(K)*`PHg8>9oUz9N%%AveQT-Q*Zk^jXsvl zwdlSJ($P)jkrsU`>o^+}M=69HXOa=<#Tk6V@|3`osh+HK{~7I?46YLqTW)H9HT%yR zmFTc!je0j<*CM3$``+S!b6kM~s1L=xNH=H*=P z_8gTdhP1-|uqL?{4~N&BS*q`fURjN;Z(;tq1`Lo_f2It=pUSwSSIP6n`qzI?rh zU}e^=PYL^T8F#&u4Zy{4@TzY09-eP~f!V{D=rJ(k&KAl)pPbNp3Y!udh(~d61r1*a zt~GJ5h48FtyXGXae1n? z5o5<3BDO3-QMw>e7SI1PH(zOc52E+`?bJ83W!lHFvWlf0EY!YgHnqSvtCG5%d=3;c z@0^PrvS_eJ?Jb4*_kG6|x3a}3zlOiRkX(zr_jZw^8*{C%^-dQ>sSTL%1$Ooa(GZA# zU#K*-+#iK|zwpCLF5Px61@GEsYMphYe^_R7;;J*F_1fN;HSz_feSN*s{S4KJd9&YAzo$$n+CoDuHP zwUb&i?;zcV+PnFIBld;N!>*I+*&=v|ir)FpnG5=8eY}SgV(Y#1ipx;TA>wjyzuUaz z0Be74iDJjVs1fRHIu)Mrmb#I?%hEa}q!%iydrD%BQVBvM2OHtQa4yGhXP1n+2se*S zO|P+xeF4Hv{7-nXCNo6;WU^76^Q;zoqt9|FpAZ4(>3n(6ofxKxQPW&H3o^x05@X7j zpS1#R#aA6K6r^`CJ$WBNOLWFx6h;Cd>%l5Eu<=Bp5nb#{EvF7!c1FttxA^w-c7B!s z>f0#-{WDm_Hw{Hm5a}uXmrpf9H9~KVCfEgP{-$mD`COjJi>JY^y52Zeh@dVSzi?`r z|KMw%=bm!4&2~>#p9p#YM)^dRxdt>Z8vq%B(LZinyB9-f(ZQr3(KoKh9`h-NR%+{l zaJtXe=#i}2ggb=4=@rvuP!K_%eSp&fT!f)&L6&rKJ5zpDKBtFU=_LAut9Qok^VJ6o zb#t64!f87h7MOP9Nd2@MS5VNQpfx)_D>XuxC(-AMKZ1pP_3NURuprDARxFX0&Jc9_ zODC2PNc33$#`wwPB?E+ic4_%UN$uU$>-v3KTiVOvxPQfU(FsTG)YtjYVs$J>FWf9g z-g>kQjLgu-VYlNIe7@^-rY;~yTO_tJd!FYfkv6L-mlqJAH!qc+tt?%--p``MK>k8d za20{Wl;`Jona^v1n~9SZ%5Y^7k3EZ$7hG<8P`t9U@!K4ep)#YS!kB~NkKRe@e7-0A z%EsK`%p|mU0OKFyT9=u;v#0p*bMiaU9Amg_@i!q2 zLk5;_oWe;=cDN$G$7)luzvBgrStxHCSblH<_0C;4&*-<a7*-DGl`)bNPi!i=<|NQ5Qs~&n{N6I!MF1F0sZzSW{u4b|~XYaVGA|%}Z z+CuDCZ5>qiOu0<(6tZNwAW7!y2w%nsqMKikLi*5Ie%s$DP=Xl0pbm6!yy|c{qEqK_ zdZbrnk4||Nk$zsy=l(BT*6nHzY&L^xmLN3hwC&czD@RHQOLxhock`Njpr6b70x{3} zuO$%A1+Wb8(Mc`+(<8s8Dyy|)82-J^yL0xBIFUW^jDUZgiQ|?HbZ;da4x-CX%y63+&i=vKRPnbCuPwqx6KPpeB z<6pJ)j}7r*IO>e`U|$<@bm$VB!?bbDA^l@#>ud+_>}CjyU~<8KC&DgXwT0EDyBk(Y z_l?D=L}dInyzp9>&FxL@oF$=pP5k7>gX9;H)wWe04?Aapxm%Zt^DFrz7A(ax%?`S$pp7MQG@MR zj)H@|`m4vr;!fP{O3jap3M-6e>thtyRVe~k7<+Zro7H~E`nmi89kgkVDbRZLn!xMW z&UX|CxWd^?cJ+F`E%7TSpGNU_C=ithci=p@vs{;}h!<#XoS1T)Rm* zqsPep?G?E46^FeAn4Rj3#DWsxWEsim6>Brv7H#D%i&cXZ0h*x4IWxwYd*iI>WKu+h zyumuCmyY4;ODzQ=vAG^DG%3j1_$)^h?Xl86^vWyBwufecdAGz=y7xJ+qF=My+`@Rq zHfZ1cSO_wvsdG_Ipp$3jlaoA*X6`mRNu@^;j?x3r&rRfXu1F`7d%F7C$Fk?B#4#5j z<|5_NMFJ>CB-L?ZzRnRI9kZRsH`Rcmz5KV_lu%5n9X@g_@`*)p4zjz=e;{%5vWv|0 zadm~SgKqbZW!Aa>;s{j|rvtHt_c_CPw@csqyO1F7q63B@DB8ZLDGnwOQulW%I2=YK zjB)O2j~Jp~&VBM*tY>wrW1~0w+iF>lU@OWR5XG)o0q5igO)%yI+W0U8M?0wm#`q)3 zCwKYSU9Z#_e0nR+xTAU~SN8I0>-}BrL7fqspfr)rV}v5z zeZZi$bW5k0Zh zoG;|oH%LLW4Y>Pi?@3Qz&`@qOx=Eawvlfkppay@MO@d;dh(iPiZywiQs+JlJ^pHb6 zt^{ri0iN!#3XiHv8WX{3tv2DG^s!ma_36#3?8=Qr0phdn4&R~6zWa5{MGB^`MO%xM z^!|Hz3xl~W_bbr>5q}rIWYYgai~A{4Dd&D2tE}`_y6vf8TGVN3X9_D=q}>omUNNeH^S$ikWlX)%>Wh^-+G?E4^U+tZewh_oC?h z>mGCJS2~dbO@KU=cYky(o~GGm)btlvKKZEMV|{#}{sOv$n;#Fq_+?fmRI@#o>9?E` z&+>5|d}NL1gHb2+3iVzr_hjVQtMNf4iF0t~=CWlGVYl1Oce(e^?~sH{)bChlmAvCP zd&hD4)TvGBV@snubZX7nO-4lf&Ooo?@76&L>Iz`&(eYu^FO=_!HaF|%j(1`!#RCWT z+!$nKj}$2k`Rw_Yt8HiANy*IA%?9ap2%mcvc$U4d&giX#?Mylg(^S*W|G;dO<9Y@2DjTUNe6V&&^hazHkvy}P|Tor6-UdMUf{IGXXmu5b5i!Ug1H+_wT z!e%}E?_?csbZU|ISt`$?RzkQ6<^~hT`tAtGmFZIKoZ^ylt6!{+2~XM4?;Hr@r?}C} z6L`y!VitXb0Qc1dGAzD--shCFi@GftoZeAK%EMAaHsG0;iCQeRKm_&|)()GG5V#+e zx39~;%bn51wv*tX`uWl5bReB0prW5HkUEkU{iIH%nr^Y|BChb51ScjrmP+qo$a80O zTc!91b80_rpd|FvN0++KS-WnJnNh-84~#dxC45H`sdXbGo=#eOB;@H!Oh4Q0B5JdQ ziWoYBqFXt|$&reBU`ej3m{KR#0w!Y*v=6-$f(&S;eRoDCFuisCD_@ek#8nw>LH z@K1$@CYFnNL%Hq?tvpWKUgq%Fbt0Q!j$g)>uik;>WW=r>-W-LXnrwtTv-4oUqLDXd zaX;HKDlBH>CL}R9*CVLp3Ur$ug_B#47)nT8{=uvcd=HGHyOHq!{TsTeKCK55-t{Xb z|F%gY&yQE%?W;*kriHUh-(%bT>ElIHWqmt2Qe=|4sCLK`U$0YO3(}QA)4*7V6(5;` zdRbel z*sSk)`wPqPyvv&m$H`oG>*vUgN~b#7cW1v z7_w%Cy%G}497|cFR-vzuHs&^TSer4)GTe%P5dftw$3w`rB)^E~UoE(`B3VScP>Tl< z_FB=f4GV7f(MyPN-QJ!fwr!V5J>{^qurbhUFxNL(mSNsgy?Yb#I%;cbVX!T0Bh*=s zfEuh%Duzlc-iCG@4BUq>`@OY$5k~lXq|}0#q~4ZmBA7ud+C?y&G;v4mIfo7P*gC{E zBA(~!6$$Hv9a1MFsgr;>CiB+EM9{3me{1i-HuG3fCI^UCnDJ(@h^f_kB8qsP3D@6dR)qb#7At% zwacW(gj{z^JPD-@)3(jen&YznU@hv^*^8|U<&f*^wMjyfxdfpov|^xRL)tR7&Ia6y zg{}A}_DMYaQkJEm75*arwH|(~CvC0gUu+>_SfH&I0*gq-HAOhHP5j$C#%E?!YH^RS z>4N226ch!!r>*vC1whNK@K=thkF%X?YsJ6xm3ep%q+c5{W(x2<|@Wq zEtGFC%Q1FF=ec)tEbF%e2LfQx897kd`=Bshw5AB;6w$}X@KtOsktPndso z`ajCK-po3lhg}W9cqN@^VA>Q@w50I=JyT54h7QMuh=F~cg4hu6z(F2@+Uz4Js|s}~ zf?!9o4a?);U*KP1HHaXX-hw}YpHu!ReZOSP8t`k5FQOp)7Jg5CO;8wI8@mqt z5&lH|PaJ3Bk-rKe&U(zZJ`dy@@Nl^yf7Cajyb0}k4sOaZo3ftGv0HX*1zW@Rh!fj& zdk^ji+jr~?J9Qb1ccH9ExGU^VS)p(btm5EaSlL&RP%lE*hc#*Ug99iZU|GRXC?5m| zi-I8>Nx66tazBoCFGALSJoZ@Xh7}**B`i5raS%>{A`sGlx^SImV9$gzXg?dygmd&9 z>@pZ%CODAJ%X~M|W_boe z*Nhju>3h>(|ABRGQWT`!?8UcoY=P^#O_4ByU_1(gnTwOr7y-{PQya+oxvqKTFv~lbl(6ex^&^`w{hdwEL7}|!= zF%L0j9{+8g%RMM%!p-M#Pl}L;AhwXtTf&J8h7-dOwHI>@&!HF>A4mX<1+K0E|aqya8F82}Md`5k$XnL_f>LTY(34MZt)9(v~Cm6}YZ~ zZ3=~)vxtV)BmTwa!M_#$#Qwk>Qj3IjSZkZ%SFB52Zao4O^#+Srz`e=hC-N4yjx^eNV~^M^VF7$yx-u4(U0L_lr5cJ~8R1dRB{_lLrtpV55QC0>3J|5`6V z%L@L!S0aknf?udZf2A!C5(EcQ3unBy($>pA@&c^OAp%**INEzfv$n16M~IsAyzPF3 zka``8JWwEPlm4WfFymSvOlWY6?d`f+>~D$i=j$)IUSEILA6y5*msod9gu*&$Nlh{b zw+T5S+7)U6FvPnrVZZ^wQCoYu zG4>Sdr@@(&U6y<|K(QyyhnX;kG>%qG43-~^)PTwctgZy24E7r9? z51zzp^XPTf-hKtP+*%fX-L3kQG1D*-b(n}EgT&z4FUIhP!kM@rd{#=M&) zK?&EirBL1qyA6FwR8qo@6%4hoeP?%K?9N=nu2|U(c6VPw>>k*?gz`RM+uof>DEo6< z*^iKWaVQ+j19kBpR1{Pkq<$0}3&+9nl|2DYffLPMj6KQ3CCqVZ$7%5*R1CzPjXhT= zpU2n&^^(PyISQ07Hk7#I3btP1m{HBlm^`>|Y(pNkRMejn;-olUDTM}+;_%RQLw_|VD(sl)FSeLIkSbY`V-_V_R%*hT*zgpYM@~ zgstf1bwu2XC!XUX(6ul=v|+@3dkBUIf$@@zu$J=<^c;+67jdu_1|tAQv{l%tX$4%! zy_z)4I2L-_YSBn>f@^5A6%PtCo-}+oUUL!fY7aYzcU|j2*DJKuS%f3}rJS*CDDj|V zA~|>6)|P7_uNEPpciwpSQTMpen-N&tuTUXJvB&pNe2oX6$oph@9BwUIx7_UD?KvC4IJ@>?NNP-Kk zB3}}B)OH+OhyWOvdkkT1jPn)CHX7PCj5mT`guW5J8)I!VIaw{-6(P^08H#Bn_b7El zIBf*IiE)AN*)oqfr~R3aHI?}s$2x2eBLT5LDlz8>3CTu3ce!AMd0=BC5U|k_D$Hgz}w*+9q)qofLVv%hv@KcW*ts~ z5$wl0J_VnK&w(Mt?j`tT_!8ySv0sI+@ds7D%^%fo@kjML{89Zre2<6h;w_j^V)!{@ zenEYWE*tS0JY4)LVa2TFckp{y6R}|}>{{5hvFl*}1b;-J_%n7r__NSg#6sry8xJMx zAu_BF8#3=k9h=a%34KKpgfO$x<%Di|s<@(WB4=B^UExcM->53VIA) zN!wL$B@cdv8DERNhCaEvv)9F|kYjJ4d;{ZdP#okOGF{tw63)<*P-6a@_yE@W1E4_YnEP4J1A;JN$ngW* z|A(;=2Onn4OoY&x2r0Ahc6^w!%o5x10Gti8xPP-4TSAO^AI?Smo5N>$4xeqy^8|rR z<_A8j+6CB!^e+JIP~bDT2!?nM4=Dt)?h;n4M<8`Whh<_vLE1`U5kx`2%x7Eo^L=h`C0%5PHWjW$tpe_;jyoPu>DQNYD5{F*zzghsS`&tpN zwGja0VaLOacGCR|`}Sc>IX2PEAiZm&A3_!)bpM$4y49Y3mTMt5;%z+7BL1}@ z^RX$5<1%kV!g#o8dlP1aK>}Z&cv$ztb{+cif3)DHA)l$^g7cjGM>Y)i5##J2)OMe<6vj5X&v|~uho0trC=uC$MD^~A}ky6FVvoY|EJ(@(lUMU zdqazoAd!I-kn5KaXMlQ6!}PYQ;G{ z^5EU@LHIarpM@{b|0TwKMJUUc;Pdo-20mq2GJKHo`#Yge(ebtL5_mp5ll~_e-pjm? zF}v@pU-`zB+~<#VE{E{9Z1=o76*V};R0!}CQz65YYufz-L%Ww?=o14&pNC+9zEy?e zwZ%&i8&AQf7CrG`IAni{T%1@6V*d-Wwc9&SB>?H^_v!OKSCkv+JH4E7H+I)2%EvCu(_6T zvXynlY{5gU`x0)&gQ<2~>#!|zY|nM=47yIGDY@2yaX-HWmN@&j;Rj@=K6 zWv+v;2g6}-2;&q96$p>)1VYP4fr8-CdJc9RCwdN=xws26K8gA%j60cmPes5w6~XUp z<~@_+O-fQz#6pCcbH)7#wX~g&y%2j54|--Vz637SQooG8%Q?^G2uY%MVM$D)Xh^w; zh^(vZNvO9V>u9-whs7JTFoXMX0~m5VgX3nzGM~hw@Rlx|SfS8;2yfRy?Janh;l?mw znfGqiaHmkd3wyV4{(BMj3asJYPDs38(J)z!!K}s)aE%WkY&{^>^(rJBdZt1lqTozH z7@Vny$i11vdvG@I&Dn^1v-zCPMl>sJydP)r8kIc>nQJcfxx8oR3Gd+|7HWC_$^!a_ zgk#EHgsg87>s`c;^hF4Mi}+DJj1UsBaF}C;yDY;a*f7faN3ml=FVgL{BsTNIFr2*mZ6HCRDMp(i3!a7<0@#aFjSn2QJ~wFp?- zl!IbbtYl0)+a%|0!-yp!Rm2Y;QX~3hY;5oGb=Y&CxYsgS7T@~#cpmzYPC4z93W4>x zQqI_Tbk*l?Z5v)3ug*FQJbS~nUZUdoHhZkJ-ks?W8CMI15lMH!d~CF8Qr`dIG^ z;)9{tt!HiSdxXGR43vCky!U>FBi4EETkE}#0I0xYTZ>~`dXxLq*oFsM&J$XX!U$X1 zv=0>0g#MO<>qf*&eK5^&P>0Rd9(4o3L$f`<3=SP`$hAjw>x2H<*3?;yC-oq#KWDYr z+X|t5Vqq)VCR{kepSCG45#}gjU+RHz#kTN%E#uw458-P(o_&3yAKz)k)>(QJ!mEge zt;2LDgf_kpi`dqJh*-ow&O6LnhVi0|xK|+KuOi+=}-g z_kLx=jQQSN6>;z}e1|@c&+uy8vnRq+xhKzn=fDf$Mevf27xQ=JMeqW6K0Ftm1ot4PEH)o1yF{7*P=3*@=Sh#lBxpLHHmKavy?^ zz(?U@9iJ5XKMS7=3WL}$cPI>gMPZN!!LRes_f5S9d7v}X~)l5*BY#A4F$rE-@vayu~61D>=@SMcv*{ct_|yId8k~6x!0w= z>`BN&&7WzLzjgZ(%7*Ss$OF)s42o5L2c6+hOt!EQ_6PS_o&@5C`X zVt0mJI96}L-8%kGeK*)saj+8#_l5o804-}Q;l!`iAfX%&w;Z$K~OH_xC`Jy z$``|>fiZG9eV1$DGOaLYv8?9`VZDYMU&TGW8WHU(JlU>62)dfr`WjyI>l6tU2(@sd zFkWUZa~EL{JB#{E!;k5o$$N4p0@_RjwOK-W z4$Kw9i}{?!gRqE#98>liL>ybdkNbr@%q(Qig}jfbt~?&7Yl}e0nwDTA0``l6cn=EqtcZaT1S9$>EW|^O*F*83cP~0^EyQWl zUegLjwP-|tukaUJmus&z7$^cpa8hiF@Sp&~b@hsUkU9FwlX@AZj18&xdL7p5sl#R| zXAi9q=fiifpu7&2!y7_Cf*eDq1F#|p92+2Jx@EU{>ULVE2h=TF@8>W3Bb~bJI!gZ9- zfV~;}H(vAa()K<+t1pEo^0`|Ds&L;1==SiFY5%{&v&J&Q^HG7{Y_e>}ay+Lk4=ccm zuyVDZ{G%a}VzMf%0xQExup;p-h z5<09P*n|%EiGuQ4FyrtWux}K~3WJ6azpWAl-v#f3_r_z8@&~aW#(o(45$wm{6O=!R zl}}UtH1;#_dCFgaFT$6hh=h6$@{ssd9^h8z;qL4F*!eo;Z}QOhErmkr-*MkTel&bn z81n*TUf9cA9!-`&nvN3GJ8WjjP!*0PGn={9juvNSTIY;pr4;1-m~RI2O=o_E!<*@sn;0Xvz-=6RJ8QoKkwNZ+yE^Ws z{cif@9=MZw1jBoUG4~*b-H%ZAK*xQ&pYKyF)QgbyKESyjL==1g9^|!hk3zi)ALf0j zFgOdVci?Q=XY<~h&9%>A-35NI&%u*!!b^~I%|~#X&-nSQV+a-s^R+C3WG60gtafq7 z2=$s#;T$2NV1ap39;p z$XaS|$zHFfh=idQ>?GcUsn?<%o*WVNJSKQdguc`j4O@XPeVME6tA)jZf?sGwxP+DS z`s6k4O`Ie7%y{pzw`FMGQ*D9|_iyt&5wHW_gW8(BKU|Y!osTH9c5Oq(1c+81cLacU6dPM7$!-#Y)w-u(IVJdK|Nmd4`y8NGr@I z3&s8#kMUUNpstm)g(0X#KyATxL_nhm7V#PmbB`xb`C2%SA%em&u>ARfrl?sMh6Pt8ig;&#dH4lu}AoyK_ccE?9u+FO$2$}l^#X-1M z;ShTxb~?=9oHMA;VB8D@hTGs4vCMnsR=8cLOA!kd4LL@8m%Yy`0ST(VnL8AUW3d#hk568 zRxd)C*D=2$NlAt{b_iRt6n9t_g~716M<5*Kb2n-|ZPZJ)da$0htSw`g z@L4VA;rnC>4<$=@EtYT{C2Wk>s?3dmWWVRAY1V4I6OxiqF+N`bd7)+lw z^kz)9EpU7-`t>G%sX-*DMeN*bg=&v)MY!Iu--Ls^ zS|n_#L*c1w69()$2a1L@lL?)*AXr0RE!_2rc8@gMa82fjt+VLXZH~=3p*=?!DE`5u zqGsDJZ9T+OuaCB`76@U9C;;-_E%3e%B?~Qm>&+-^{3|oXh z1wcXcs|CNZ-(5sL`f3(4=VI(Ib1V|ZPr&#^94kZA3(P;nxoSag0YY8@0d4^T+ycJ) zvTk84%*tF27? z-_I0NOp(GAQ%upI7znKh*eeP)6hSZ+A_j(LAHm-6VOgakV&J2+b=WZF5;lyL;w1=0 z5X2Ty(6C{t1wnWkl>G#;&xHRW!3gCEPeIBr#mdXzXg6652CN}K=C!hj(Mp0wxS?>2fk~$6AHi2!^-!uKg9l|6AFJC zIR2Mi0+Zjsue7xNhH<}x-@@-Xb}b%6*QUHSb{*`x@F&h$LX1HV!u2_BJuUSOup5H5 zgcNg*Em`xHJgjZOL(W#P1=q1v=Rvp~>_~YB?9SMovAaq39|XgTC3_FjL{y-m?99u;c#SERwOj5@zJ6fs7R=VX&ej zF6A7TaQvmrbE#H1*A<-eO6--`tE3YGucmwrW3GkkV7i`!T49bEoNos2#~Wcf?>oz- zT^Mr{<8OvrMA48n-U_!xC}e*3E7TT2kZVyOEKt9Parbp1VM$)XHQe6`f)8LHKp=Tg z4?^A#4>8Y!ypJB@IKzo&3G>Cyu9yRJg+9Fp=V=uKh4au0#`2zQHrBl zL=WdrmSDx%SV=u3yKty8glp?iIm;#>yAVT1OWAClQEi10K+ZKp>2*lkJT$AAL!6gdB-O&&v z?jGFTJvcPd&@}Dt?tQwCw$YG#$Cyve^HkRFbSL?~T(0du#`DgqRZI8Ur+2+QtEwgp z!88TU`V%w!*k?6y%}UYy!wl>NQ*Z?uh9BE|mHm6TUg;L@O(N#`chRPc^9Fohx>&`v z6Z5Z2^G`JN_&2YM|A^}P%9nl~SY}}m4Z+TaIT(gv?wfc#vi!O*{?uM0kZX22k+?oS z7g-@@`0?DF+b^ljzcyG%JPjQJH^c8Ke~n}9!~6e1cpb-i5jt?a=3j-Y^>SaaS}%Wx zGVTxk_)hl+RdNvzv_*>+|EpxsqD71KQyYToV*vDN2Hi8&7j7sl{!5W|RbC~>_aaT!Y!7bv0K&&t9ize6<&e+z%$htnU>KNezmF`Xt?GyWUf&Y}G0 zGR*iKIFD`Tq35F)pmGUZSo8|GvJhE>pgEXva;-+8ahiptEZ4!!X&4r6h1=majY00= zb~=A|(;2)AmA@0;2lv7~lv>V0eG@AEq42&&9j3>}$oUmQ< zP{y-=n1jTVx!0*|pGrI(ovt~EnKqN_GmCHr??4PU7LGfI`Yg}kd~-O@Y?#Aw<~m;? z_dSOn+Y49#WIimUGp9+og!(0#gS1=9x!Tek#GqR$d_UBv6OO+;GY7dY=@j2=v&XuGF z>=V#tHJ`KOHtQtJ$Ar&e4Rrx+*3jPiEXy-BoKvk=R1WCWYiO?FTAmS((@SL}hS7(v zO=B%+X{Is(g*2BM@1ndjEXOjA-rQv*{d2U%vD z7(bh^UE?szNpt&JOpvu2rF7!tS>l@K*#4ZFWVso$ui2HUlJx-{%8Ya0f25I_$0eZ#iScA#f48}ABlgyG!b0*C}X_|N$=l1nd zFQ|~3Lu~6h&zpv2ntV;TubMR0(mc)k@?O?!{8?Ymsc6PuW(;cH)zoI7G*=JLx+Z;@ zhG|X`*M@Iidzyfnayj%khxF%)*0qV3Mze9UK67xrW_L{vUv3(MsTtQaO~5qTQX$)| z%j8Q_Fio{SaU1&vmNU);Hqw~meE$|XOt;25spsaaWA4xG$+Mi-Y`%atQKmlQwbX~1 zr?P*Rvo3I<3XH#J_%6sASJ>q{maGBm*03!XyU_ewEw03iDJT(R?5(0+%<)Fz#Qzr$m_t+>%hG0!0_w91nj^NOf0t- z72718>{AoR_4vG#U0h2y8m1)QVd;S|0*iJ-2P}oT)Qv|UhHK!b@CEkYo%j6Re1~2O zFC-q&T;yYYX!h}UY5+QrzeNKy0EO>rf9ThuMT`F~|KScTTC^BEbfQLJ6V1QWq|YqD z%nsBLB$kXf5MoI~PAV{rl91i!|>L^ z+n_cE-wp49Fa^;VLM%CiSTqF-TNJj0ttxYH`(h5NAH`shj}>6oxGzcAB`Sc z48l)v4EYSl`wX3udh#ez%eFrPZNnFYmj!6U!35YOgwcHY5Q z^_X{OUanru|L{AEcrnjuF~;CxIu_11Xx88o-Y>HTmzXu^e1pzA$T2K0C0+(?nuaRZ zB+DQSLWspkRIZ_u^L1jB*>UL-I=5Y%zl&{MTvIpa>Q*^+59jFNygeF)psu7&R;aXD zLEDuzX$T76x0R?g4MRy&F;+k3Sn6st3`5)T{sd_hCLA}6L=8T!e>L~9ns;k8&rdUM zHTTdY+Vl59T_cqNXHsvNh8p5q7mrzg)xb_A;x`PbK)wL zw9^D!!{0f1Cea{t8^?%p(;O5{KK4zXf!wFw*S4|E_DO9JrZGro@mb!{XW7;Z+iPr> zSgy^#)FkU_^Y9Brxx&>H>@{U7{Yl#JC}RoeUU+P&s{CO&tKLQTOsbFjvH&N(ozo2uI1X*WOa>y>z&Vz_d^44 zH8|Wgz!+2m>Q~Y(hV+`zhZ&gkBx(9-o;A_rLp#-kw$dRSQ`&`cD94oL7<9`iFBA4# zUT7Ddfw)h!!ysJFP~PP%{;?c`a5)B_v}^wHcc3;2!#qrLkzihXeTGaUh+71Nk9xFdW2>l7r#n{3tnu4#Z(}HjZGQ!Ox9A@z|IUR<&_9Ahj{gXMhQGky z3V#JxH9m(n=V%fZE~eZI$Ge#0UdnY|!t+tDfUBvy3a*97FyxusfMIn##?^KFh`#}D zqBDOz$G?&Ly@^g>z%gzv+y=J_^>?6mpc2`Ha1Y$AY7CO&fXg$Lcn^BROo zWE5%?3i0FcBn*ZjT#u%p=Agri!x$9KJq$DnEe|u3P@|B#F;a}d@i30^M7BB9Sd5d& z;4tJVJeSEZ)x}E8B&2SJ(B2`&GOJ`1&W8D1|9n2v`MhHbFg_M)1Y!s-N_eJ=99B%{ za}gcWMGiOSUKVjaSWtYxa9{qexc{m= zma(LXnQg^m&|wPm5;XTht*336lDsF9nUh|N*Wo^~uV^HqL7I6r8h%yQpygiEv9GwP zWnYI@H2);8i)WVxo9C+yz|8uqS#K7ghF;V3tIfdL_{(jc!~6I8Gn3D2 zY7P~ysq320r8x{a=OD}>;LAtn54;vnH5TVX_|n|dHR~H zp*}Efnt$x4CaWq|N?qqd7d-!!7=ZAu9!x>$hAzPz?4rJlc3mvWqp{c3$nxtD>dov^ z&F))HEX!1$-E!J26Sj+S8|GilQnC=2qDwIOB+8h5ONph;vhB!HT+04SxzDyHJl8h% zSw**Y{0+M8=@Pc8}Qv5r~$}ti2;1i`$NC~eOk0=@n1e*ixw?vL$EJn5Y{(r zxHbiI_;9iTWeve(!-^MFXb8%S3NHo?!KBU-e0fr32{ui^m`^ZG!NMjLZ!9>cpu9zz z*@DFwe3#V5AZA~Z=3qUfST;>_5R*Z+Eb&%_t&2e@+roBy4jP5qqshnMBm9W?D0~cd zs@Pf5D1_aGPElkOqI>ZJWN&_q?8A?gefaUeFF)iD;D^frDjlx_`2lkfKU6+W+k@HX z5RRoWs7dG$V>1VjWWQr*?>vOZQa*;ZnuDK0KU+8fz5u<8l(7F7;Y*-F_*M9tP!4mD zb7~HL8@}%lV--#m$|u1OjB_4B+W!a~W_(78&%#(z&qjZY{uuo!Xb%324$sete*wQD z{*`gj-xYpa^!M-wGXMUdL8w^>f2AWRe}cc!;X4P;h4Z`655P+5^!rwN#7(q%hzRWbhp;#C>bc7@w*$Mq%}n3{lj{FRcKle{ad zcvoub;nuxoB!-jMqOL(T1XsaI@f?RLX z)`I1=k{O4#W51Ypk^R<3(=5!a!XykpsWSr81Waj zNSZ`yt{iP#X9(6XEVLUuGND#-D9+7_?+YB>xUHhx$sE`-bb_da`W1PV*17F6Smp!_@22jPqI5#;i1- zXPS_G8hvOkR??@5+9dar{A_uz($uS0Gfuqbb!H9vTrrxwr!*VaJFFNJ=O02`59JNx z&o~#>NJB6+<5c&N+9a&WZE9`!CDaG(t3E54&6j1`rJ*O!LB^5Yr_x@+=*v0z656E6 zmzdEP1|Ri-b+w_#wv1z;4wZdYpaJdGq(?9SrK?~TT&K!&>|`F#4opC4=W}Xj7{4qR z%FAFm^L8#1jKXE?8*rYbeXs-;bI!%8W$s}K_q{m5;0rMP7GwBH#5;fV<4M$E@P#=@ zc?sn(4JoTjF#$d9QjXVF!*f{1J;n8DN>;Q{=kJ2q=mdBSZlT`!{=SJG!27ou@8av> zCA_x-|5waEariIa9f$f3XI{1y+qZ-?3bzGyyM|%7gC-$p5Jom(Wf1Pdj}F;Y_|d-`pXqM=SlNvZ+@5rL z_T~rwp0GFZe*B=>pH9{Os2m6f(e7aOIYeU+j^Oy2J$Mux4bDM$EE+?LImc&E`7H7A zLI>nHH~~HfUodkJz64(pO+wmz9ljxSaK4Ft3nG({Hs3A$08WIH;ABjLQ-t_b_#yFW zba;LUXA++w)SpTDZ1^es7=BXJ@-KvT>M!9pocq`CTRL+wS7FI2jJXNvApMcmi~oq} z_gDA}9q+&JeE!BYov>4 z46hYpjlt__BVi7r8ilu_x46GFrDJZ(I? z6IsX){Dssnaog;gYw99Sx+!rZ8S600n_Pci<)vUKsC&trx$NI6VF%f;{u!%;Y&Dro}RE?}S3q=$Rx z!5C1Z46D+-6y6W14Zu2+Py=u!#-9eGtRPOTPor@~!nrh2)7T8-FqQUUNMcs3;yJIP z!x$?@Vo+GW#^J}!j76yHvOb_LG|fahmtiQTshGwh@27EO6sl$ya^6tOw0AL@XZZZr zW?T(ruID$56`d(30q^j0ZWGI#M8vD`_0YD$IO_|DZz~@OQt)?7=h;C01`v z^G=#3U~OCp=St(RPtz~=&A2wV@|Y^;)o{{CTIVXaQZJrS8-E&ynr$9e7+$FHCAo62 z=W1s6g(hkCr8Y^kFSTj>@gAh{XI(z0yw@yC8lOoHPfjB+v20s4w`JR;X%N7;ql7Ne=rBb1zAwuhi!d z+|V@c684Wd_&A>!Cv|;pdj{4BWm#Rr@nlt+dX^gtbF3ov?@lP?Bv<84Rxqr&*W{zz zQx@k)x}ht{p}Wu_X2fCsISjU4h;zQa<#lEsahuSljpy5j0k{-1unl8SmcU}6eu-ct zE*AC)^G~yn>t2M`EKJ1&Ocr74$zoN~7{u^PGz0@<+wwkWEG|(s19@)J)`YCaCFneu z3Zvm6uJLm8r`+2KsPp~3kN0mQc#-BG?`ePN_n%_+pNoF*z0m;F;M3^afbZOfD!+#} z+w!@MC6Iez@<5%Nj51hSevp+v>#JLEa zlkgxo7(Nb%z@gM1&UQJ1_D54bM%eaA^pkX6J|zw>rYxVKgAzs|u{a0e=V>Ef1Q#nw zlTad?P_vNzzFthiZ^E~Ysr#O=-*?dy3qPQIGMq?f>_qfb^b|M^P8aHaM7uN4vnZcQ zY)0YP{K)$$#?Vj57W*k3@}HqU!@M%P@aMGo743fwza{<+{J!Fk)T@6ohQCn$3-_m4 zcrMTM9O831SHQLl;R2QWxX27c;>*}}6&gd1;c~bNGzqQ0rWl3S3;W%mK?pa)4Qy9$ zv8-9hd7Yc^4)hN6PH~0fT-{iud|%-K7bl_4p~W%W7!7k!D97R?kg7R21bqsI6mxJG zbx(7gk!1LdE{x>)jfOFx890{hKy9l(0;DwAnnwMIo|w|O}HSl38_;TQeFgM2&&XCrhYN| z2OM`1X75ruypd7J_hTvF4~@e%vkM(=tU(BwIVjep85l+&$7-ieEKBUi{v8~zo#VE1 zjtlmMrHnd-(iU)TD{Y=Wd%Y6WK3Ky*geA4u$R!k15n8mRFXnNrzKw9%}q) z_=WL@(XfhVADM%+7h{hbm{ph=ggO6VBeO6KKd2NMeU=oI2Vp%v&ntvL7s-|IJoN%r_S60s9#c2$tDahZhKB*17zB1U1>$)b^ zC-r`rp;nuI+}FP(=Oavb9u8H_RhXNGWoG($&Qz(h{rWWaayW1^`%m1bHZ3*&g!AWu zBh8_{S?|7S_|?~xW?qxp^h;gu>czInebfA_&DnhZVw~jtcpps7P-k|g@t0)QV3>tw zw2H=G6WXkgY?r2B(-?e?Sfek=EWRMkKaIYo5m>`MHP+PzpjywR?UI>%ntpYbUy!TsLJ#GjHu@-cYyLT0H;3+O_K8LxD(##vhUyxt!gjHov2EJW zr3vLFXtKCs5#OD~fWB)X2H-->!G#!tGG8bMeBb7C|MOgMgKM0}HO}L{=3)HJ1y!Ps zp})rSiRWYT$pTG6bP=cvR7}7y3fUIMBG*9Gv)*-sYI&>k-gz@ksZSF+Rh10mE zV|j13=RJA{@8qk{7oY>u{QKXrcO*0ang*cs=kG((@Bd2Z!}OA^H8#Z`>IBd8veE7ww z4joQIusNq7)N=~Ts}hX9I$Kb37;!ETClvhxe33R^aL6(GRrnfwoqF|a zDxI>gqThsX5r12Q5d9vUSU9QZ57_4W*&*!HOL3Xv{l2w=snf$!yugoe$UC`v$+|M7mpWkT~QuimJ?$1U43g;33 zjq8k|$8Z5$1Q!bRs&$vb#by_xR|xTy=#^*=J9fzNHJtZ4xZc%{h4@CU^A@;WbC9-o z6z){nM>GiUq3u2BeeeK0XvQFQX$}sOGzWPuPxAbpe2iZq6 zFtZ6Y{M1<7MDvjSG!``#V;}2a8MId{uS~z?!Z9=)gJLXpfLVvKoM*Z$hbU7HsO!YU z>EKydZkOE7F*?QAV~Mft(M~Z-5xSFN5axEx#iR>7p2x{!cQwsG=rt9&wk|$%aVWIq zsOMTe);}4D{N3v2?~s|2JN7dTGq18J63U=1^a4?Xsr{5zB9ZeBy4KTW~<+4X7U zsZeM1HK|R(CV8xSjz#J7Gsz4_uQi`ZZD!UB%0TZtmi*0*_bQD*J`3s7^kbiO!uI;z z&3QM299pm8*EIBUn7-T8GzOt*1lFtcKI0JH%;rlhOFd6tG5R$AGOJit3Z~!+>Q<;3 z!^+I=LnFhFV;CpBEAq0fIbUBpbrOai+J;69OI68XyVi+uqVb2y;({jILRjEX+M@Ge z9`XD{lTV1%dB&K8@UA(SgfbgbFu)j;Sulq-bGY|8w4cMdX2TqeJ?S+GG5qF{6{ya~ z0Gy95WVd_83j}qAwHUqN>x5_L+;%(4+e!?A!G58Vo z-;s{Zj{LCSiB8MTup6<%ig%;4vL~H@n1j%TO4x57Iv4xUDcYC#0Q3O#KsbncGYAh> zEt^SLn}nz);V}+3CYGb&SSi_rpU@!WT*o=|7>=WCd;%O#ESiR&6V9z+_$47$zX)H| zIK*i9DxDVj2JyG(EPa#u@0eXk{B1fl-=qFS;vc}t)Su|;$K3PDm|Z7h1fE7mQckB+ zcRJ7GM{Lt5JfqBA=t{_E68{7ZGz`(7X%K=#kAIE+MyS^u{4JP4_-9c61b>0Q=G=r_ zzj{76{P_H04ql4N#j0hFb2-<2c`jlCSHZR75aXPeFy|qp?M-N!gmNp~$u*lfcvs;b z?(aVC^8ud0{XByQ(TAuX1dqbwu1w6mJPw12qntyFL38kF)J(w<3FVPOJeqfFH0H+y zI*wz}@jTxNoNofpaRU2Jg2^0vD(WI54jrC`PT^jr@LtS->6FtHoF(i#2hE|x8iI2Y z&KX0C!TPywhk3;alm#%4G1n6-Bdc7av=eLgNt%Rh zg{2ASZ_`}VfD~iu+EKF?6U)moPV-SM)bVmY$6li{heTHS65H~eyZ8*cFlepwc(Jl`nL|-cR%C2_F$7h!3)OB^BT@BQ zJf51FhVnlaT2VcA&dpe_0Nq>(T8PCsS8CQYjEq9=J6Y4jVaGWiVXj~-Y!hQm54Db; zO#>xKbC7pb{YR3fO>M+z-qeee)bkH&e&w8kO;fE&8c4RuIr%ipH0jc)!*tZhTdx7A zDWy5(zV+(HX`)HSs@v;fuDm08&Lp;ZFS+WjLx{iejlX%#*5!HfK3r79^XEb-^_+)E zURQ1QscD>LyR38ny54NPH1(RPZ=NmMZyw5cLjB_!QoKG;1R~v_E z2=}f|ov^=XD5s$(>&y(SjX(6cIs>+fleJ`eu2qv<)m!r2m!?VB9O^5?nW@(tvYX|V zXpnRBNip=gB@I5o^s9+syr^_zjzz4#W8qRIG~BfAUaTp1C2mbL$Eo7SaJxlW?=H7RLwy2#YHs*liCkDth{7c@fbXeX+{2uDwt3e3wPouDygvkftLlCAQy1B-nRM~`E)r*$E_Bq6uANe2QNB)ld zxZjZu%g5-f>_mANhZnQWRgGgsWA@n{^KB2}yMuItluppN4@k3&zO{RwQVO+qoF@JnoS zzQV6M1etv`3%?HEB>pTLA0hE2=p~wipk5AF!nJS}T<;3UrF;$X4aF$DDTfwo3iAAJ6Ylv=xW_pM z%Y1|Pp!cKqv;9GM2p(YnhfCI=a}GWVk5Q*7XvW}EJgecDWkZE$HiBn0l;aHJ-bca+ z7$xj8j$=D~cs%iV>eNZ-1au;5?25!{n1i&RrcuaqSEo>C{XZFmY@4NO4pJ|(H33T; zW}q=TTX+U@!1~B6bbD%M7?y=g)CF`D7Ube3bU-7s0b?cVF%0H|3!Nkj**}IUb1a7` zFG81aKFvN^ltY-gCbuo3eL$PV)X5U=e@PB;7TTpQEodsr(xS@>%lX@p^|BappJncs z!<maw8N=8Fe_aB zIgG+w%~?2~bZ9O@hvg;?k zCuzi(fa{!(P_2g+r#Z;;OEP;u^z%eC>B_r!bZYR0z9^Vj#2!-?ZFCC<+`NH|ZDb+*$q4tUOK z4kpjRvkA{QK*Bp6qjxffV&#_Ste ze8N64L^p@=VgN43Fbm%Jn$1-gy;wqhFO(Odi_nD-*?PtBQ=6vVJkF8Kh1nWjFnFirE1{f46V!ll%m$=|fk!cKgq@8+|8HTptyAn#Ov==Xe38+~d1 zCDi>_GXT^4OEmNvX5YYqNfogjHBKxi{r&~ncT>aYOPa%brCFXbYf&$=<}HzaEn561 zWbpqHTC`}9CZL*V1eW?FjKI{I+7vWSV^A~%lVS)4eJwarXAK%RG6r8N#I-RP!--MR z7))|?;^bASn0?8s3$KBHG72#OW#fuX(jdg}lQ$5*LFGrl8~I`JMt-!vi4KXpnGWMy zsC#QM3*QEBugpSYiQ&gpMqw^s@=wE!Q#A;y#Y;2>Ws9UNSd!U;+j2eI(n;8kANf1* z17AKu{4wffN9Q4=-A;vA(HPP!+!OXt%^)l*8}GyM_T?D+qWh!!qx;dxFg}puABY|d zhiDQ~J{S(6lX3{1m_z8O97=oyos%#M9exbQ6it&*KE?J=f0=RdT}E%<~={nOy8#3LY-`jNC9O+1GC8q4<4 zT+dkIal{TOo`_CJieWghn1*hftg?@oIT(f@b!swAN<6jbOxnyqXBSgY^H5W8CeLOT z2JkHBB!t;~zO!H^I7gv%b9oo$(lMDs2W1}2Ax>svfXwCHm{*L$`5J*RFXuBXERd3o zm|2Kn9G1*PbrD2arTt=1Wsz7{&`8we3yejxu!?J4f-cRBM5#?iXiMd~WT|KX7Gm*~ zqRYjyCZH;H9kfH6iHG)Liu$?S>xWz&Od3pm~2?9eM@Y!~4FH@5V~LBdb93Poppv zHR0ZR1e2mi1AinW=$~w)mX#;!=q2q5P`K7&vFfE zwnUtDiS<1DG-e`J$%=grtw~d`HhVPxa#(0;#%TbihUv%o(`>5^u-fcv8dP;%Q%|)q?-!$j4oGS_UY2wwfS&5mA*Id9u@)_0FlG%dB zYP}eV`}@o@qtb1ff41fLlFwSwkj#Z*Y7N+)8GubQu+}8oJ&Qh@%5#5~@A{yA9F)&!_p9@H@Icgz{Tm`bozB z4mp3{`edQ_h7&{*!d<;ISQnyoKSJ;J)&dx<+Wn*-A_T8Oh?9Q?F;F$Z+ z@z{$F%-(c7_MyYFA04Fq9Dbb8X*vi!ScO9%vI^;h#6l)2$CJz`JQ|MWI2wk>vhOF; zG~~WMgE~*4>dMEic&vVox)U@BT>+VE{4#tAVqp`m^J`q^*XhiBgAUp^=xlu(6HJ5f zn{<}LFr-Ecmgo?WdZ9HProDsw~1BW-NbZ zzrUe>rOi2IcyX*^T(}r6<=QU-&A`jq*K9!-CAk`|f$LPB&$Vy^+{im|6Wj{7bKE<) z=Q}a{?xACOuW+yTa-a8d{b3BkgTxPWzmK723d*DG`vm8c!D39^)3keNl`sQ^coI5^drX~d)*u=XPgP+m@wCE>RB`bV?rl1z z=5)-!8GN3i2{;3sn{Woqbd_T|pR?#-&fH-acIJG%5rL(q^Zbu7i5Vc)vgYSE-Ujd#t>#S<505@RcXwj*a>PHe*uO=W*eq) zC>>@;3eQ1PQtc?@5a!w>?5>E#Rn#;Ip_6yGOL*TU>K%H_`?G@YN)MlV3^V55!UW_# zyM?%$x?K1~(<0_K0fU754Kf>zXOeT~)h1h-d1-Pb&Ec?aZ?o~PH)H2>;j=TP5l(;RZ!)Ldj_ozOhs-~ z)v&U`iuKULXWqj*DSi(FzH1tQntw5j7h_I3pfgwDg_x%=!O%;r&pG;17o!Uc3yP-6 zm&{8v0Nu{H=Mv8;IGk2yvds*>H2bE(bioXq22+`TZ!$WGy3i6&qCVm+KXkAMW15t?Ka-u6bf+4bo0?aFUdLhH;;dqc_9f zs5=P`hpqT*-ppqd^ZoG|4}gBpCz;__48Q@xZ}%_()#TqX0;}x4e*X^tX*OR?Z2sf=KO*c8`iAD7)+Y;4X%%u)VMea zyez4WL4GL6EBQh3N=(03op$P9UJ0)velI}k~f0~;xGYXrTgle5l2yYb4!5ntn zoRhGSS%dN}%)NJ4MD`$NkNSQzRy1b+527C`d>C?=@#b_cw!jqIoFDRA(xH;AU~9@- z7u~L4M&Y)!-5z!z{wREm4#7v+_A%Oi4Be5so#;&Ogpsr}>{8fG=nU-vd(ttISj2?= z_o6eg51okpz-+<;T zYyK={IgaZ*j&psk@OkROBt*YRXXwjx!oEZ&_{(&{zRHi2>2HDW)ptLtU`|Y z9j@UAJj3t9iD?j`W)7YTr)dtNXK+71qWzgAi|{PUXTwk7C-5`sen~s|Ep2{BS!3|` zsF{O*R5b`)oCGun&xiA~k0O_i!Kg5#KMw55XW}d6Z*1jQBBOpU2?|VcX*{g#DkQ z{ZQ)68hlEF&@%e8CZL!}2sxx!Mwbl2%p#QWg>kAY78k~giDjps9wDKJT>o6NRJ z+~;IIv&m>~n`}Ee+mkRbCh*|`o?$axXx=J4mLE@Io7g_xuPX+6~0i7{;1;m>Hm^;#F( zj8#mS`Jl=|wQRTjB8NDe%?Q2bq;)R9!n+hJLDC6a%y(lkb()2_dh?PJXIYHHL_{Sr z4>braqfxK1s6v~^$?etf=ww+lTQN;Rp&SNcnvD=fW1U6Fz8Zls_aUFRME0QBhR$7x zY3zK4W+>XWv#i=23#rg1pu8d%M`0i7fmqIvi>7G&a1Q~`Xf4lgEzeWUILprpu|!P!jFaa$&T~BP=QwVVal$it4wFe@ z_%qKUhCo~9dZJBp-_L*QcWG=zmYbycl?I@2EwxG-fT@YuerfDA4Zm8O+x~(6gTJ$( z!v0bZ!PacmWK|uGox`?sNUvIF^?5(>+$8Vax~y-;YT`5EIPRl93-MV}PR%%I#u3xsXN<*A?ny222XN{`=k9)GyH1$)fDqjh+DL1(Rv6iTC@n7 zLx;26)HDUrdQQP0(xLGe<|K6x2GC|*Y0%QOe2kx3}8lpJDAtR_u^a3hYDypChPF12YCRvCn04oaGX zlEaMAM zoq#RqK)Jf{Hn6qi!X_@yW?B@_<+6J6Q4u(Ui|2WrwDAyMA6%ro~N5au?jF?$SyHCQW zh~?AZ;wHxn@d=#ccsiJ$%K=?H(34%(OC%XHGdNZps&_BGl#H{mzfCl)Y)@4~m? zB=|nh;zYJN)c8d1^%Tx`D)H&)=?*j2AcP-78iUS5_)FUS68#1IMuSkwJcIIQp84NU zImgUFS25;#F66o{q@#5)SxgsGzKr8tM%$~3F?bDauO+^g`WsxOm`>&`w7ZRKyM<%i zq8Z3@lfSF9{X5(P_p<+kY`-5KG-i9iXCB#tw0YDFLgK;b6JQ3RS%X8+r#Svlcp8RK zHw+yPnuFF2b8!+F!L^J+YerKSs}_SgHn;IUW!)GJ!!l2y2H`k5qvLoUv4{zu-$WR1 zne7v}#_=$bcoOfNM&P7kCQjs-6RDd}Wg<=~+b8q9!Z_4y%!N;28uvb3Em@1=u{0s4 za?YvjGnIH+nF~>!UW~>Z(mX9GrsJ$!QMs6rGTpK<#||SikkaznFh992(PQ{w5pkxPW(mA>}j%!*GNcDqVDOsasUc#LPUjJ~iVdg^bN? zG|u7AOL^y)szO~7W!f3Hp%TNEEgPd^S#77ibf_8IUUQJo#$n6td|%8s%puR6wozRm z1x>ojD#_hsVs&E{_OJkt=3izCu27{IhFvQ4ni!F>q%jD&B62Krl8d46_jLvTq2j8? zVJ6nYA=x+QMpIX53PPHKLC#5-$~j{0LXAO)SOX@ruu`edwrhlV4d0c3=d#8{QFxA; zK5Mx5DDy0y;o0;F--9IU)P z*{E0Rg@UA*e4V^^oxFEqtg+WYebQdBywE1R=Syk3R5cq}vyXSBjqk$}>K4Ny;$)%9 zc3DXK`7lqz4cSX=Q5;Jw4~56rb}!d@1^kNoZ^A)5+s*h4Hi4J$9o^vh9P*o{Um;Du zH2yXy4CMECG9XFgZyhW6CjC-dv{(l%1F%Jl7A=})V6&Wcx#&omg6qRf!6r>}kaH&+ z*6@${`gj5V_`iT3125o5!VCG)@Irn>yhw;&M12^8w5#Y8OzL?E zU#W7QS2uV~VWT9CK{VM!8s?z9sb07w7cIe*%Q*?(ra4%6hngl~;oTS*G2B>)<^3*V z0_q2fhEa&&TJaaVX_aJ3k>EpX2Dze3lN(@pO<+z(Du{d{OA!gfU2)FPAw9 zzphD0-8ZTGF7dbE`z8JXZBBIFL5_V2oDQdH48j?37Mxk;9+aPP9Y1#kWA^`V(-+|r^f2ZzlmAd;-=NY^gHNIbC5PbkN3kR7sh$fLaNZnxcNmL?> zkZXC8YkU%Y3LT0LMP)=W2Zy7>(P3ijJcKz6nQIuuIn6E{$+I3whTbSwF&3W7I1NP3 zGn%%}TR0XoLdF$Sahx&FN1XuUH5tt?D3;;OqOmBG zRQ8bxs>UJ5oWwOvdE*4oKewC6t}4ht>>B+LM*aktb)22mQbfIwahsd z6?#oYVs$BMo6yW6bTwt}r;Ynt#=R})d$SBv#rn3gg0dNgnQ0h9kX7g?bWvxhb}XB|T>SR!5ZyoJzh%yx}IjlCYOqenFpN>fk+knI|RVY2Xdst1*onk;mH!yu#s z9>b0y<{}jCD^xH$%s#Z8CSn?jk!^^s;_sF5Dr1$l?k}r(H_cRB&1WrZ5j#FlH149U7)a$k-U1|Ijm z){IO(zc6h1TerqIGw#q>xQ2F`c8Q;-#46b6%0h0hGx{=KSy%x*LVc)p#>Lk% z+AM?x>@y$c=De?DugykhvQ1{u))jDPahzEEA~X3ocFnYc+or;lGCy9-#Rn5%LK&7D zLv78j6O6Rcd^bnIXwGH!-Ut{D!!-3$;b|$x+)(sM^a&VDJeXrX0gn@F&OOR`9_M^f z#`Jp>^Y2kq9^;sg+6DtKpv~iyA5+;L#}iFL?%DbMhJY#$PKFGGI@U!mRpJgZIl zY&L-x!$AIK^@o1X2bJlU#@_~@;kRMJ@9hnQ-{%7h1Cn(Ze(PABw?&H<|54)>En2kr zSMvzg<#o}ADJTO|(-ch7Agp51AoNGT2IBt?);}8fp|GKbU}hE88G{YX8cbd+?3?6gv9GVGz=Z zc`Kcgx6#oE73xHzPfTA`FN{J}%qY|_q=WK44MX((LY;g7K2({8A4WITDCB$^ zhMSA?6v7t7TS8EO-P4IbMSaNFDKABIi8No3GjJ- zB!7Vp&KDeN?2uz{g<}^kiPeqa+Z^M&=y%N=L{AotLG%=jK{E$A_K!I3kLW<0fu7AV z&!!{hf+WA;`TnZ#Tg&Y8XO918I+gM_hZ0kF9?#}Hp7#Yp+e_gR-ieFQ%Xlv?BfgS2 z%|MBH1u5Tz-U_$CZPed}-htkUY6{*#n>*2aIDeReW(;z^2jC&F`~ce?Mgy+t5g4R$ zt&gFagpZ<+8^ho<3RT(+h9`IyW*W+1jYFQxlRS^7FfX1Ko_`pL9BYURnea?q$Ydxy z&9msuJ}e8Gh{oV3wv8!Sg~lVP(>NRf#v>$$E~}Ksp<@z`DekY11x-eoU|ge_sHvzK zNGEg>jOTNmAjA`?*La*r8_A)}>I6RXFe6LG;UrKa&a#<}T$4JrFio|N>z*Rq_f)Yx z=bPg2Xv~&rysy*vo=oF!$4uUd>AVv&_>46Ua}LEA>TH%G$CTL_m*LC3L!MEwE;0~R zs5M~Q{LDxcV#_%fqPoyFY*TxUKg(h{DQ2LW!$tTM%#;aNOSR$GB;rtajdYc`3GG>8{-^K977+uzFgEmV=(IY zJj|HNcB)xc$qHDR(6)CzHTE^zFjX@!<~Kxp&@cwkm3;1ja~kqJja88OyjKgK`D*G` z^L@6Qx(1bhG6`v`Cabyk)qEb322^Ab*4bs$$unjZ(*7Bqk>=J~4Cu8y3+I?yn}(k% zndzrm&%U+!SI5~l2_um9wF&rK8f_)+h5PO`^D=X<-p2hu$Fr~;rd=@_bKX3S(6zJ) z7534@OS3cT*teM>ne}39U6`%)vlX_hE7>oMT{7Uz5cRXv7?z0rta+xfuuW#{Wd`SJIGf>Ah`<4xkY0cPHK zn1CTRk#kRgaScYpsKQ8x(PEsb!}(4>4G!5I%CVk;;V_gs;~^M!PrzW}!9^dZtvtHz z_6I$N4idHv;+PL(;;9c|(mkY7eh?m@{2=8}P#@y_537YiVEGYa48=#dpFv#jgK!_* zOZhssoeyUae~xR}gJ&FASg|yR7)zf9VQmi9aWMyTPQn~!oR~rQDzrCyu*9!5u1vyYW9EC) z98@=t?K2))puwC68-JE^4C~Q@T6_AB^JJ^9(v+$!0 zc9b*-VVA=0qB)4}&3(x}!g2O3>}NJ1L^dHEt}q7$qa@A2BOP`O#|Y(5ILw$#o@3~k zf0|Cqr|E=zhK||^LaZrxe90F4679dlalZoJfUk30S2H$aFcv4FGxvRlVx9;m(OEc! z;ew}>VZ^6%zB43;6T?r+{DQqJ6vJ;-?&Xi%+n&gXh4x#OI?IpqB`3FXgzG z(_XHGtKhm~4qk&^kKT;lh-whtQnCkgRpPre2aP$-9i@CH=dkW>^zU#V+hS-jJOKA| z-4DP++~0%fAY-1z!#pcjFdoFSdz6mtqdb#A@Ccb9kGqnw<{`%)T;?Twg8gbD>riFe z5ZXNnL#P`<=U2nfZPsfVK8+4TheEFkZDf=Sp4d)Pk+K?Dis%S*WGRofPD7DvAHy|{ z;QB}KE{r4|L*2;I*5i!@jYWyfMB0p{{YdV2B=5`^I`X4cGaNa_XttZ(=#Xe}e#FRZ zgb6UQFiACQ(QHMS#C6AFE6$Thw$}s*lTmY!@A?$J_mlZdC-b?uI7^s`WeD^%bXppW z5c4LY(@UJIHmBh@19DEqX)vArXNg8)wJ?juq0FXzWG|vohPl>p3<*+Cd{kN?2_K$#hgoxVaXUdF}I-$rsTYXW(ekRSILDc%$Vai8B4^eNw%-sYPO*{ zTsDn2vCejNCf-`eZDLu?Y)450bBz$M;kgC04N9B1Z?(>(EZbKJvClMF$#qJ89+E3u z`#DAisfMwpZ!zu6((`kbZpo}X;XUu-Z%7y44bA2-or!(d++Lg44ujXgjtp3i8QFZi z$L+*{Wl2-Ku&g%moC~xVdC8JA|FR8OULst>VpJBv!klJ6i084-Jl>Bm_%OBR^3Kdg zV^Jr*E1G#O>Qpn!1)%{>_1(lJPl2z!sNoFiV1~rFdidp4EvA97&M!2ER4c@ zlo2pI;hHr1h7v!8K7|f}Co%Abz+iZSvKe@f)An&pzDH^I2s}jjA@qK>KOnS``{BOA zJ#cs7F1WLBJEq;8n0hsL!QZLB8@&e=_q&hsy~OwOF5C@wzzweQOWkkTej)4U| zeh<8sXaAx!|DH$VPX@riH2U&C??K%_{C!_BKh-+JdFtl>PVO@pu|jX||G2kR_CHDYO)gfDNH zgX$~c6%BJRH5M#EjbDT5m%J7u@U?XIUQ4`D;dRu7!p4{Y8*3C|0&JoRb+1P?3tta! zpriOEcmo}lHyYE?3Fw%-iMlsa_ZFe8MpdolZ_kD3vG6pY2U4-OH z7au{df~(x!xV+_Z%(ij}UyEB4#1RZ;gMdwCzjzrBx&BU=BM~ug?-&op@ z<#~?QgmhJA?qv+mL>*Pk$I)EN*uprNP|U^g9LHhMGQl#8gD?+^(U`_#V!O$b^CNPs zsW7FK6U&jM2vbyz#GDtAazHFIb2u|P3!PJjHHV>Sr{C3`H3posi+H9hJ#*i)F;N4` zW(CdVxy{9po5ORN2O12ru&mOosi-bQB{B+=%Ajy{J)>QaqF4MkT@ z=JV1J)IeO?SUI^JVg=-)%Rp_fh)hF{8S|uJ7PNDp(g|HfJ1_`4_&brAS?&|Yjtijh z{&w;`?&NP>7uwC=u5OJbh#|{D8|miVh;3+>G4u$}KMW_8&p=ibR;G!iS;+gfQj^ix zZDP#64o6>kLEUn42)?C!`#)Dh$1ivL+-N z`-CB`ED%d?`u26 z5P7~c%Y9FaS)CcM`3^=|<=9CK#V?Bi`5joC3knf0tX4qJg^Cv0me}?S#YKpOSe*}Z zMe`5la;f~PP?tyzX`DlNq5Z?g~&AnBKz*(A$LgcJy`( zzgxJr8{sPW3-xDVMt%c>@=$bp?(6OFD$xAqS&LY+jGA^HZ*LiCNoG2VoxQTS%!x8$6KLOC)FbKXJ> zCr!e4qOOJ(Iwv8W-=pX> z9D_NbIru5|abc3r(B?SwbLi($`67JTj6sh1RrqF^Yw$Z}3$p)r==`53bmUH@gMF&Q zhiUUeI-VMXXTpzphVl#ex#l4HEAHdhWeD-_IPM?NKXbqGSGKF?py$x;9QL^Y&W8&j zvIbK*&*g9>*LXQx$FZ*B{8z(uboQ=AK}*4xR=Md7V95FpFm{@ z$1y8$Fgh50+_EubrlQz(sOBO1BxpFw(;Rmg@4(Y^+MlLF`xFcl%#~qfc=S-(x$je; z$v8~aXmqYc&LJaUB#fedgwQTB711PCZ)RHziAKklc#LIZ7+qr9jmbKQeR*Dzi?=we zIqFc$6Fnxei@In)PJ}51+iE(>MEB*Molnsr%u~6~$-MJ+@Lh~0=18QyOt+k-fGQks zX2P*F7F9D1CFVG!z03!VLgTq<8d{&RDj0q9(!>yAS*RJvXR`nn@wuoAtYe!jhI$p{ zMX*GJFwtDe#ZY+v+F)5?nQcqTK5ZN~j7H&kv|;8f;~6c7c9nNxxym*T9*vw>D1~>v zo$q)%fAc!fPKY|*`%dUegHRJmbIMqgi8!!aqhYAQ2t6D}<1kDr&fA0Wr)qcwTz9}d zNDpXW1sYswf=S7SOS7@gkh2_yp(u8HPE> z4bv}&>K8*j$l?Cf$sF3vtEULC>>Q&mbi{FIb9|Wvk$;k={6dG^B~_5Wn=ETitKuC`6F z;x)7_rKQC_D6Yk=IK|!FJpu_NxI~G&yL(886Coi$ut2cjP>ap}rP}lO z4(DSS&V@NJn=#K}_{{_jzZvLsbUHc>CSm+d)Wk!_Vc3l&9!)%ocqH)%47*{$5Ex3| zP?iD@26YJSVK7`A&v~O5H%5hF+)sb5*TcR3=x>hkcQwY}iQL=Xr<{88PkAp}MzN3e z8_hqmi<9;Kt%>Tr>qDdYSF-&Q%|EDS`!%v&O-)U00M^v}52D_KuwoikU05gr9cN5PU~nCu*f%JFcbFxfeY3CPKq zey1^^IR(yOB2xAqOvION}-q&NOJVE?4w1;-k5jr!rBgfRP zsD($mWmRHfQrkzE;PvCa`tllm(LuBap@U%veM3+U!V%o(aL%(B$q4#JFxeW#eU8DP z7{{b+G{?;*9L-qG!||LuL8UF4hiM>Ai+HLqPD61D?|&+4yJQ)1Etv*Wc@LU~(v*Ri z#$lL=1;#xGo;MSfS-kda?(cc7KMUrl8jJM1q`71#@*U5OV+$EOKd^5u_cTAuLv$_%&Dsufoe>u_<&V$5-;2QnI(*Ulx{e4@+T*@IIGl_7N|H7l`La zyg-u=b8jx@+FZ=PS(tybiDzS^Jr_)8{B*`mMJI92B*ssG@w`VFOFRZ01ta+l4aFGL z&>P5g`UicXH%4Bs*t4%U$8Gn){3}Yk7ny*4QRx@jhhsh9S)QqD zk>*|jB+I5yzQhU%t+hoV{hF)_@PSQs6Dr8Kic&gq)}&;bBgz0T9pw&9>WTCNpK{tluG>+N;0ut5AZ<- zdVi4W!!%&QBwKDz`ZQ9RjL;XH**GdO=Bw7s2ynP|v>qC%UKpS%@?@B|8^iPG-pR_6 zCn_A|Nx9KaiTUofB<~hAi$pFIC^{_D@JXFn-=9zP_Y|dTSReiAqPSPVaJH2j?&`1O zDl=l&1tXWoZ)E7?>*SBTXO8$OzuDz1pWw4${8RXw5i&B^@7gj5zmw5(?cW*(t|W37 zz4p5fYdNL13)c#dYZHMPthLBAcT|`7L9GNogP3g?@B(d zNlqQv1yoo+Fl9U4MWqT9OM^7P?5)Otn1nPaZL!R zP<)9Bx+R}~1ENqAr;}^w8d9lxqKQi8a~NEaAj4|tL;P(;MU;hGQcT zuaec{GK^esm)uuMd74XkLu{%TZqzOruQd>7G3)Jx#SYku6i4F!PhYuU3HQd2&tl|d zAMN@JAtYAQOxH(RJME{Es$Eh@uSILJAYtSKM(xK3O^DSX4l8?A?!3;)E5mjg%X)o} zKRF5zp{uy#TOp(p@9_udk&#%;O(RiZWG*hV=Q~a)r*4 z%PKoxSOj+xi4T zEF>;A#X~6JMopjYU5X)@KM7F@Pi&19W2RoNEUH^VX%?|cHkrg;kOw_e$0rISa>Jks zo%5SHGdH5eMT!+iw!C|3*taopaQ2ua)xlPw`w6?>_FmTi>TA92YKk7?K|vrv&iTX_Z_Yk#?615{wM5%-%nS*`*xkok+too zTAg#$R`NSu5`Meg9X;19^xP+UuUcY-44yDh_?H_ZDfy4%y(IqJ3jSof5`nt2SBk=Q z$rr!3NS`v#=E)AD?Zm3wS8uq6h}1&N@#!DVZ#c-&?nu}29X@7a zP)bc*EsmPwUW}nQ@$xHazFKM0-oZMXQGjeZDb^9Jp{=YFBfcy&V^^&R86tEir7KGq z(-c<4NLDS$SzzrwB?E-bd;h)te9MPck2oxjSsm~Tip7s(Qnoz8GJso$y-y2Q%$RcS71=$ps z=^R_$l%DO$*Ok^l4GZuUK~cS+AjTr=&$SMMN6d+1*a3ZPHxN)t3Y8$2vwybV%R2&lJWP#{_X=W^Ep6)im$&*(!%Tuk z+1^>KFzZ9oC*@mnB(#UCoXc2@86q+Sv5`mge{*;+46SSLh^tmDWR7iWDqyyHGE18J_tNduhubvmacu@NRZR!5C@G-)PUstPU>#iJpPe^lnN4&7 z4DtmdWD?B0V1!kTJo8^zH1Jg7uaU}yy4bYo;nv__5)>O4JZ5>zRr}w6fV_SX1USy^Dumv>oC zh&Xb)yO{8IF$IBcrx}Fq8{o(wC&D!1B{H{!#wslz+Wa?zyycx_`EM+T`Ep;jn`xAd zgBnUR$9jXcyI*C8-<4v1<4U_&G#yMQZO?Z01PY;VZyKA!#R9LQJ6{9tUq`gTx1vrX zs}6)#XN!(_WVLamJ+k+xlvyu1H2knnWuLqDZ8{IOehVXxz+D6{Brd$SeD!TW|ViM%Yb9XmaW8YO>UmLW%^Z5rYYd6P2GcMzytyYPuMn>Q+P-e0W^; zRuJidcdP-*>-?Qy%(PNE+UQr`AI_` zsA)oIYiw$#!#!nl?(kzCvqXRebsov5JLlZBw-L<227l_@@RiT$wfEqfM171KumdZJ zK#x2K=@=0-R@jR@Q9rrfKYW%(Z==l|5iW{73!Pm{9DI&vAd}|gI8#kN4q@b-?`v69 z#)-(ougi*-jg*(bOOi_@KJt2XZgREdlr9IyQ+-RnA&2$fdu~jYn$Hr+E=f`#UOgMP z3Zt9ZNQ}2Vb;$d7#s{wS(&n=NJW{v9T$Ku$sX{U0XVBF6LC7A3?fea;O5TLfNjKrC} zPhsGb;a3uLGV+h=Xvd9z(FbV*3G9z#W);-Z#^7r8G)=@>J*i)jFHQWY#Ega<;2v4Y zg#5o@JhV(vQC)U2-rxpF4kn~W1S!6--Vp?=9Yi92Hr~&GyeJc$;qzJ9OSKoL(*!Z{ zpVpX*r`&}1a0$gAAjMAaVETq%GTCj1K$7a62j7?e#mk^fp*0XIQ0?ufxlkdvqDS1( z^IBOGad*m*f|fxq6OuPI`o`;CK?>!(p#U6n2sLcU^n?JtA%GWd*tj)A>+l zrD_38OgWDmx9A{+Zo2g3r9tt`uQT|MP4kYkufqcc+^O=2^GMI^7MbAVF9cueO7Cl0 z8nuO&tnhcisBS=Dv>U$pMgqQrR&WwIVzKJvj5@njt8&G$uGG0?j;Kw@j#CTSrqCl$ zB_4btUJUYPBWVhUnKErc{@Ti*QNXW*G@FA0I~QckQE9y4eu1OEBx%*i_GVYJ zr5cqNM74Opjx@RWp2wb-%=Z`ZdS!qkrRQS$2A`dCS&l5W4~0dQ^FGm!(pgR$g-ga3 z>u;8PT|X{_-Oem27mS<}_)#sy_!7+Suhlt&*q5K19VZjFudXR+oK;`(!Mh|(E1S!n^l}PM7KY$ zHHcsiJ}y88FD;gDjPFETHA^RYk!6L#^Dw^RQGu)@ty=fL+y3(iakrIF_?q9U8+kMsqyQ(DOM@d}$VG0+<4*0{B<= zR$88;O0$84)hmsDB1B7vn_>7!_S*)?-1^nmDU$hz;x{*sUX53eT_q@md|y7ZLj3>P z4~u@s9GMlG2r}ixqE#OOrym+m9)_=5KS~isjuNd1PE=xkea>^2F{U1Idz44jwUcmT_D%9mn)6;);!bPr#$wSUVaACq=ruC1t3bnD%dyLA(8zUm^K zd`g(}gbCg4?&wZv-hEgx>YU#X_y{C)i>d2x%P^~M@j%x77o|>1+rFChW z*V9!`>ef@YO-Ou{pz#0tR(G_Ex4-*^ZHu=(_wR`9(@6O_w=dyr(=pc*vBbazQF?J2 z_7{sC)^|4gI!3u@oVl|yjh8O*+}7c1{;(W-*a~%3@q;KDv^zjO)MRDn{?B48*idcM zu(!iu<=&w&p!6pPK{k(4S@KZ3eqyJ zbIL=hE*l}oAL-YdEE$ahoCdjPZnQn|lcV}qbmcT>8^G0aXd>^(#WM-Ywz|lyNkp|{ z=&l^I{p_mK>jkPywQoPJW`$hR$tpWl15PTrP43x%V6bAwX4VI4xlI_P-R zkw5IO!Ky$d_)`H+LM<6p_=JMAgQ;}tMtgrM8Tz*eW zl_uGG$h~U!7I?IO_2RId^5oy6J%ZK(;@!6njRGwbnW#s%l&)%coTEUNeDI9w2yDE& zSblrve*Jv;spT2$(oLm0sv@c(fI-mcC>t>tEBg7?MLKL`k9yC`XsBa1w$Zyu6ndka zs6g6T9q06KAuB8E*8Jul(|^3umob5>(j9SR&_-^Axu~S01OaP57$aD$Fombf`HDF$ z_>n;qy#0x`h7i1_QiWFsr<^6orL^j%NN4)iPd4<{gn@0gnk)Be@ie3$&+rPL6Nog^ z#ff?#nSc_b*LR-*i@ujOw|lO3=>uM9*x=lHevs@_Pn;klkn<)3Kz{w4Ftq+QpL+jZ zv)%ebx^X!{+=D&Bz)m-Dvk(2wk6&T_QLVI5MJxNY#~ieU606Y;f?BGfsAQ;&n)dre z@{QbkS>g5_nFqu(_5~Xq7g^z9FV#fi?(rZLzo-gzO?q%n7D_o$(=LL8$ma%B{ygPl zXcU)e7Dr_dB{m~#B<$~v=d7L`Hc3XTxAfu)csJzkFg|kBYL+z3U{=mvg2=C`A@9p; z5X}^sZ$tPDlf`})_vozEtpcg@sz$4na6&Mf1}^U<%iQHG_Ix^T!=|_VmKBju(e0AhBqn%K%Sg0L z;WsSDm^fB)GPkz5Qzmb)`#f*~upR{#2ywG6qg7?zsUzy3mtBs#a)(<0xtGc>bVALp#OM zmD6GR=KuvOPm3`MgZ8DI@Lryw_7b~BS?4?mCa6bmam24W&-u!6-SP4;@Em?Sc9_Y6 zdl7=U$a5I*torz88Ev|Z@?i1jEOcCtb3Oa~>)=VS)A#tQ&tHc8qlQ*i#f`s`YF#lR zw|2|!JzV2lR=_+wr@4K23v#8z2wDEr@3=qzJD7M(57i|tPO@xY^XQ6ALlWxEe{OK# zJUq?pvuxU&-&`1&-`sh-^4(T+DjPS8IBU++2n|MxX_|W11oXa@;4IOMXd% zaqg)l`M`B={o#l5__)Q^VV3IMzu0=7h+ra6GaPbkKCCnPGsmy3@_^bd+)zyY5zp-&WuK zZv@^?qle8GQJTtg47m(FKE>^Tc%_}LnkU!uyGD+Ib2pX_Zt}#5-3x5vvOCJn)z_o^ z{5gt_<8FD+?(A-ZRy+O-vxLJq9;_fKiWlV{59W62vke38osD~vAE80x`2>GAkPWm&QWL*EvmF6%53 zn5!CClIGKsUX0DxHh4r=yORbemvQi5_`ZX9C7Zo?%7)yivy()Mnl}z8^~qsu)xTT6 zK*njJ?fU9u>nH|2*CdD}6(p2iq#f`kfAMFtBt*!-Kp%|=aE7F3KjKHM8AeW>m9F@L z-8@FzK>Z=);!DEt)CmBc8$|4D3CorfxWjkTtVjkK$f%kD>B$P~ezBJImj$;Jtfe@! zug3L}%DjYP|9BSnesS6K{MDbch79@HzcC;mVW(~*d>`FIZRz!+wbVb1d`Jd6g>kmX zk#50ySgUxYD&~z$F&!<-aFO(cmvjckI&3 zcrUemL#C_VE4fXe!T7)uUL+^q-~#AA)Xi}-{LVaG zWDTGQLtjM`rN&7Cj@=$c|G=GINKLo*w&t^*H@4W8Dib?U>5Nx1c2Wh?b8v-_m>xfO zB*l+Au$dyMf=ST2Ac|fj(rfEEog9PQW3pKGUbhW^G)q$WBmdpbi|2U0vPpF3LHql> z(MD#MKIFgluShjKU+DPPYvo{i`|q0 zA}4k*iN9Y$4Ix=k;h@uCaT3;o_8&TsI_B$8#LK?5cjPyR!e+G2^o(9LdMK5UJ{da& zC2~Z*Ldi8W>6S+T-+Se%OP*fF68Sv;dA`ESKlTS+Q#2vy^G{2NgC|qWA(ZXQa(m%> zd@K=jMvvvgZy1GfuXr#e)A~Gq#S#KeA@1D?An~lvb z`CPu;IA;g=``QTfS>%Lr&M8+e4A#ON#AjH-h2yf7$uG_FsZbQtLS$7FEF4SUha|pP znJPc=d(}zJfOy;()^O0*c;Ik=blXCQ*<4vGB+$owd|Pe#i^4OMZ%uXe)d~? zLRO{tgq1ienjLQ>e*ICqJlMQZb5twQZo~p@H!A0c9g@}Mt)~lA=1f%DOdHG@2YYXM z*$SWP*pOy>6xc{Sh(w<@#S|X2xllzx%3a%5A>g`%pTEIEJ=}0I)m~%@fUPKe?3VXfZ&}MGsvqiG`ULh8=*OB7eu8g z9V*kSnNfgJp*2K-e^x40y>a*dY^~aIzq(7W-w4EOi9QHqFoft;V!Q()&JLcnFgoFc z@qO}A`pfSI^=!Eejl6VHnWMX<;Wh$}v{lRaJgq(GIY&F%7oxT22r%ARBRElxlLj@v zmXH3PUWrcTs$Z1ol;6PJ-WNZ31V$%=M)WDa>GWse^pC;jj8EpQruUP){?LUeTWY3N z0lYVjdJLd?k91bvDV(z56X10OQBtd>z5e_Dl+a7tuhPSIzeUh|vu?XSW}LMde`|U; z57^8Y8rdd0@Er4ykI==i63f1I_*XPZ5b|z zdUOF11oj|$=Istn-D;(%UILDpoz|~sF%C{JWEGdSW zZZ=zRI(F*`inGA>FcnDLXam1`c+M4k1U;wuEQ5MC!M65nwxCXK=Z->Dp2y7yq}Q5% zjDBswT*>?tpfY$9e&R^Br`u0|^>wt7>W5X00vk!pXedcJo|+Ai4&Vu(&l-$P-k9k{ zlY+UmmB?Fue}PcsT7rm2?jvaPC^u;HIL%3zx;$4jAD*$bfE}#j1}5Co`MAtGKd+ne znMrjdf-9?xusm?G9>&K_gul!{w{Ml*#s${SU30eezSwXV`ieDqD!r5H-3xD)x#i$8 z+<%!JmR8O9EjuCDhI1xWeTAUl>+5=&;&%?&=51^+8^_LwgPJrsj~sV}Q@QYg)dL4x zUim#9-S4}g1zcL@R}vj`nxJarp}00sS^RlzYj8tmN5iD?{qGTxkWG|G=9j7W*EW1M zM$q9cvU%zDW~cVxh6{Kz*u0p#FFUM zUTI5BK_RS}CrJl-6YYuR0#Yd3-X~HFQ@;RSM$;uLsX1`i95s2H;6+NBmD=#fWn4gx zPj~3HvU$MB1Th~nK}W_6z^7q=ICbf1mOVI&9-LK=-i)0sQn=KO_Y9R9 zXci{Il&G?IYsX;u)Q9uwnMCAdoYmb`BUI_+T=s{>scm%j)%t?c;!0!HfYV+hAQHyu zBu#pD`}BJMz2-+d%3zl8{y-Z-+mqmQP=ol*3%}c=5JH?n(n{<4l-TZuLPM2T{7W^eV)k#yHu^l>1k6mUy=843E-~|E+!B!wLv@JCI*gF^VIU zJeRfHxNtXT{BhVUx}KZ0o=eT-MP*Sn2A?j4oi2z8XfExlAqu;PRGI8mt+E2rub(AK zUez6p%$1c_FxFEAbNs5)H!4aVab_H;c}6$q`)g;>F-ZIGM~Sn0jZXk>Fi!Z!F~B*) zL*JbfTdNC9MInQ_I&H|Ku4cvF8((Vf;AYIQoKjNNOnb=7<4 zN*kdQW~*M6t$;H%o5EGkFRVFWM?hg#v{Z+dlGUDBSzOsdxd-5*bo{3|6UF1#t!5Hb zio%+RvGvVh!Kt@*u^4NY{@Qhzzjf~S*XW_H-=l&<7{e|n)*d9yQ9gBP!ymcEu~(nx ziDt<5O@fW1)RuIiJ**0RUCBQxnK|A_GAjlPO03%F+g3=&X?cP4XJ#KjYYAkrwm({_ z5tT1{H2C+vKU(apN3yYlIG+JC_g&r%_Sx>R0X8@idN}s80tHn=lVbxTN(yK2J1Y|^ zY#rNKVbbp>z0?=(SO(r%UwYyF(3N?pR&j3jA-oy_!?|nstA5jJf5yVj{*0^#BaQa{ zR&C2pn=JKPe~o3;f02$3tNcwLw$6+ksDGFSVcFdZniP8knFAxcYc~LIK87Hk4i|=2 zfri2et$!~E8Fx5~KHPS@%N#-uykSh;ZKOWlCtP{SX10a8UBbK`{0OMJ-kAVmD9yH3y1+B{0j2Eiie1 zBA5o-5U7BdyqvkXWGLF3U-~qVx+Q5l*GBH_5;)`{+mP~?fUfXvr5{KksjDaYxH_ss%QjJZsoTCN!U_FOP*1O;15v<(EypTb|7I(-^Kwq z(QnTl`&!mK;>5OY%s)g~dib-1Sj77ucf=Ch6te=9WYvnOV00s7uwL5v4c*!CVm)hU zIkG9n|2biiH(A~!4@E~D?DA-44{fw`Y{*{#9ZNBM&CfwvWZtlSN`Q7hlzO1-*Q&UA zr~lfxz|BD?>FmSQ_V=>TdYk4L?L(=WM<3f0Zzxqb)$(3&MySPdM#qS4=g8l#OC?jZ z2R=lcUM^;4F9)EAs_xWpjl_5Xj){k#Gt1pgN&>eN;C)YzPN^4|j}{4L(Z6d;4-IPw z4@)+C9IreU&P?S-wSHINY0L|e8`cGH{1~B?2wVDTv~b;9M>vU_)WZr^mP=$s9*kIK zm<#(HRrd>ly{PG22*A~pQK&B;NTE-|@uG*z+^Yx~fovW}3XSit)G>#`;ldGLQQB{M z9v&ty_0DO6h?;Z~KJbWeWwZ}6My3kKYGj4CEBQuSMGVIHzAOer)bR7=?GOffT?dca zP-yH4lMr`uxdWi(nsJhZm3BJnJ$~hBxY^{MG%BwX zI}$^_q=f1-?ga8_F*PgDrfq9xZkjXV=q$;MsI4BKI5RRbBw4WIm@J)#0RNuh`G^3N zq8&JHtNk(M%ae?y^`+lHT5@=;a5wn#{sYuJuO%k9%(tLl4zp&NH6Id~j6+_{t66zL z(+_`&rQZi!muLM!Zf`k1rn-5<}xZz@ClF!QCXFL~}k2rJj*4GTq!itmtZwAoq#qN_V9AZ+o6 zPvBDZ?hGwNS&>=ce_1!p4)|bMwJq92Hp~R4&bePRD&yI9Z94qhrehDDR;o+TucRJ>8$StFQ2f86ATwdjLV%_BNDU|jH{-4eFt z_?LDtLH7mJu?CJap%vm)eoM-?thXH8_MQs`VC+y@s5dDg=YI1p*I}ngf=O#+KI+cI`wC9OdJ=Syr29(hSlUF`JM%LZ`gO&jlZ@7|HPQ0;sL z;9>-N?(5o|iKcS_`zRpwF%}Jj?}(K`M>n^f;iu7-ErvRyOKC@EJeznSM4s+Yyb#?R zEX&t(K=SR6Z@Q}0lNB8Etk?~aRNB$Z5q&T;95n$Y%tyulUp zDvkI*B=GB(3T)XIKL9+sVG>pA5lDmI4hwaG%{W(`gNH<>-%qu@Gf-Wi7E2g4){-ER z(qmmoq{DW+V|da}fw8V9%k~nUzSr;>FYwe8ebpE0ns8CPAVtBAhv?@FqjtNm3BBCV zf7`+{g-KxK8WVuIdETxjH~`-ZYn!LhvlNC#qqz$3vAju~%IeFZ2TNGtRQ zFei@O*HP=S36yjg37+1Ily`nwXprkl=UY^*snpyYEK4QlFY*H#aIzMB(gEHkZIvYV z*J5o9 zMb?u5*(L&TVU4_LOA!T;b!ymen-v=tPjJS4O)R&B50!FTvz_eO;26^dr3mr6mzY|_ z(w}mZviK5i`tQ{7)Xi)c?=l`{yQ1Pf{;~?v|C65DM@^1OS(FbgelXY>zl>hR=C1}+ z+aG?ER*TRTGpmJ<<*c^0-K{=kYv~CLWw#(ab^gf^A%b}A?BKKqdDs@8@{g=%N2853 z@uyAFdPo3l2CX4^DRHgAXh|Tdu~URF@I(MA4C_=8s(ht~+>{nJh~;wfLS!^-;U0qv z>&BU7E&&6~dB;Q;aVDL;AIPUVCnQE}Z<93q!hSSki!D1WOj`0uU{PAvz=C`Q;2q;G zGqHR#UAV{V^0=a+?j5sX)*gFFwpBNtk}s}^jf_GS-Fyci#ab4@Se-1>rDEt%`+`j# z5#CO?|Mhuw3d0O9Iq+SycGxUe-?$R)u^&FelYxVAubOgypX(dLw`g3EbUMRcHaa*f zxTS|3-p<}i*veaRS~!U@sLfmC-6UjFpc)QSaNm(QJ5^4ODOz@)AqKs*>S^wpbZNIj zk6=&g?=W9cH{2o54d$FDnZNU!Y3BQ~5q|B8^?ysFlDDnKzL2zi%kWCB*pyQ_I0z&X z{SexPN(tTLh+?gZNMvykBaZunqjaIAe?$FfIKJCZWY`6b-CDfYKrwI=?$FN|$*G-NJz@5@EU*Q6vCqyU{hl+{w41H80>O=Oh*RAh;-zGQixnX-q zkks7E$`rrk%!G1R`RYJm;a)d=6IEJK=3qWFw7ZV&*=ds?PQXd1+`S!G)n#64D;%#` zH2xkQk34#Ks9d{qfi}N~^=FA;iB9fPv2fiMb4W@LW@u8Vf5)-9z|s5Kk4$**bQ58Z zZw-I&fjP#Jr6C5-#t7{nn!r2W0$eTnXm>P(<|EG*$ODwAdj9=>wbmkUUQ|80M?fI) z07Q9NKrkA%`2q*Y=i~m^N;yW8V_!T5!FP#YMtcRHJ!N|t{mTK~t_#d+7)Iz8kDfIBTf?=_|+~Z~X(cGutr3 z%7t~M$P38_OmR4X=k?3*{)YP&L)Qc3H7e&?17eg)-j9EnNBwE3PTwTcQmHE4`bX
diff --git a/renderers/react/src/components/content/Divider.tsx b/renderers/react/src/components/content/Divider.tsx index 924e6b470..010e7f0d4 100644 --- a/renderers/react/src/components/content/Divider.tsx +++ b/renderers/react/src/components/content/Divider.tsx @@ -14,11 +14,11 @@ * limitations under the License. */ -import { memo } from 'react'; +import {memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps } from '../../types'; -import { useA2UIComponent } from '../../hooks/useA2UIComponent'; -import { classMapToString, stylesToObject } from '../../lib/utils'; +import type {A2UIComponentProps} from '../../types'; +import {useA2UIComponent} from '../../hooks/useA2UIComponent'; +import {classMapToString, stylesToObject} from '../../lib/utils'; /** * Divider component - renders a visual separator line. @@ -28,13 +28,15 @@ import { classMapToString, stylesToObject } from '../../lib/utils'; *
← internal element *
*/ -export const Divider = memo(function Divider({ node, surfaceId }: A2UIComponentProps) { - const { theme } = useA2UIComponent(node, surfaceId); +export const Divider = memo(function Divider({ + node, + surfaceId, +}: A2UIComponentProps) { + const {theme} = useA2UIComponent(node, surfaceId); // Apply --weight CSS variable on root div (:host equivalent) for flex layouts - const hostStyle: React.CSSProperties = node.weight !== undefined - ? { '--weight': node.weight } as React.CSSProperties - : {}; + const hostStyle: React.CSSProperties = + node.weight !== undefined ? ({'--weight': node.weight} as React.CSSProperties) : {}; return (
diff --git a/renderers/react/src/components/content/Icon.tsx b/renderers/react/src/components/content/Icon.tsx index 7d711b2bf..be8a607ee 100644 --- a/renderers/react/src/components/content/Icon.tsx +++ b/renderers/react/src/components/content/Icon.tsx @@ -14,11 +14,11 @@ * limitations under the License. */ -import { memo } from 'react'; +import {memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps } from '../../types'; -import { useA2UIComponent } from '../../hooks/useA2UIComponent'; -import { classMapToString, stylesToObject } from '../../lib/utils'; +import type {A2UIComponentProps} from '../../types'; +import {useA2UIComponent} from '../../hooks/useA2UIComponent'; +import {classMapToString, stylesToObject} from '../../lib/utils'; /** * Convert camelCase to snake_case for Material Symbols font. @@ -40,8 +40,8 @@ function toSnakeCase(str: string): string { * * ``` */ -export const Icon = memo(function Icon({ node, surfaceId }: A2UIComponentProps) { - const { theme, resolveString } = useA2UIComponent(node, surfaceId); +export const Icon = memo(function Icon({node, surfaceId}: A2UIComponentProps) { + const {theme, resolveString} = useA2UIComponent(node, surfaceId); const props = node.properties; const iconName = resolveString(props.name); @@ -54,9 +54,8 @@ export const Icon = memo(function Icon({ node, surfaceId }: A2UIComponentProps diff --git a/renderers/react/src/components/content/Image.tsx b/renderers/react/src/components/content/Image.tsx index 4e29f7f18..95e1b8de7 100644 --- a/renderers/react/src/components/content/Image.tsx +++ b/renderers/react/src/components/content/Image.tsx @@ -14,11 +14,11 @@ * limitations under the License. */ -import { memo } from 'react'; +import {memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps } from '../../types'; -import { useA2UIComponent } from '../../hooks/useA2UIComponent'; -import { classMapToString, stylesToObject, mergeClassMaps } from '../../lib/utils'; +import type {A2UIComponentProps} from '../../types'; +import {useA2UIComponent} from '../../hooks/useA2UIComponent'; +import {classMapToString, stylesToObject, mergeClassMaps} from '../../lib/utils'; type UsageHint = 'icon' | 'avatar' | 'smallFeature' | 'mediumFeature' | 'largeFeature' | 'header'; type FitMode = 'contain' | 'cover' | 'fill' | 'none' | 'scale-down'; @@ -29,8 +29,8 @@ type FitMode = 'contain' | 'cover' | 'fill' | 'none' | 'scale-down'; * Supports usageHint values: icon, avatar, smallFeature, mediumFeature, largeFeature, header * Supports fit values: contain, cover, fill, none, scale-down (maps to object-fit via CSS variable) */ -export const Image = memo(function Image({ node, surfaceId }: A2UIComponentProps) { - const { theme, resolveString } = useA2UIComponent(node, surfaceId); +export const Image = memo(function Image({node, surfaceId}: A2UIComponentProps) { + const {theme, resolveString} = useA2UIComponent(node, surfaceId); const props = node.properties; const url = resolveString(props.url); @@ -55,16 +55,12 @@ export const Image = memo(function Image({ node, surfaceId }: A2UIComponentProps } // Apply --weight CSS variable on root div (:host equivalent) for flex layouts - const hostStyle: React.CSSProperties = node.weight !== undefined - ? { '--weight': node.weight } as React.CSSProperties - : {}; + const hostStyle: React.CSSProperties = + node.weight !== undefined ? ({'--weight': node.weight} as React.CSSProperties) : {}; return (
-
+
{altText
diff --git a/renderers/react/src/components/content/Text.tsx b/renderers/react/src/components/content/Text.tsx index 4d876c9ad..dc5da434c 100644 --- a/renderers/react/src/components/content/Text.tsx +++ b/renderers/react/src/components/content/Text.tsx @@ -14,11 +14,11 @@ * limitations under the License. */ -import { useMemo, memo } from 'react'; +import {useMemo, memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps } from '../../types'; -import { useA2UIComponent } from '../../hooks/useA2UIComponent'; -import { classMapToString, stylesToObject, mergeClassMaps } from '../../lib/utils'; +import type {A2UIComponentProps} from '../../types'; +import {useA2UIComponent} from '../../hooks/useA2UIComponent'; +import {classMapToString, stylesToObject, mergeClassMaps} from '../../lib/utils'; import MarkdownIt from 'markdown-it'; type UsageHint = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'caption' | 'body'; @@ -57,8 +57,12 @@ const markdownRenderer = new MarkdownIt(); */ const TAG_TO_TOKEN: Record = { p: 'paragraph', - h1: 'heading', h2: 'heading', h3: 'heading', - h4: 'heading', h5: 'heading', h6: 'heading', + h1: 'heading', + h2: 'heading', + h3: 'heading', + h4: 'heading', + h5: 'heading', + h6: 'heading', ul: 'bullet_list', ol: 'ordered_list', li: 'list_item', @@ -69,7 +73,9 @@ const TAG_TO_TOKEN: Record = { function toClassArray(classes: string[] | Record): string[] { if (Array.isArray(classes)) return classes; - return Object.entries(classes).filter(([, v]) => v).map(([k]) => k); + return Object.entries(classes) + .filter(([, v]) => v) + .map(([k]) => k); } /** @@ -115,7 +121,6 @@ function renderWithTheme(text: string, markdownTheme: Types.Theme['markdown']): return html; } - /** * Text component - renders text content with markdown support. * @@ -139,8 +144,8 @@ function renderWithTheme(text: string, markdownTheme: Types.Theme['markdown']): * * Note: Raw HTML is disabled for security. */ -export const Text = memo(function Text({ node, surfaceId }: A2UIComponentProps) { - const { theme, resolveString } = useA2UIComponent(node, surfaceId); +export const Text = memo(function Text({node, surfaceId}: A2UIComponentProps) { + const {theme, resolveString} = useA2UIComponent(node, surfaceId); const props = node.properties; const textValue = resolveString(props.text); @@ -195,7 +200,7 @@ export const Text = memo(function Text({ node, surfaceId }: A2UIComponentProps diff --git a/renderers/react/src/components/content/Video.tsx b/renderers/react/src/components/content/Video.tsx index 2ba60f4a9..cf3b674ef 100644 --- a/renderers/react/src/components/content/Video.tsx +++ b/renderers/react/src/components/content/Video.tsx @@ -14,24 +14,22 @@ * limitations under the License. */ -import { memo } from 'react'; +import {memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps } from '../../types'; -import { useA2UIComponent } from '../../hooks/useA2UIComponent'; -import { classMapToString, stylesToObject } from '../../lib/utils'; +import type {A2UIComponentProps} from '../../types'; +import {useA2UIComponent} from '../../hooks/useA2UIComponent'; +import {classMapToString, stylesToObject} from '../../lib/utils'; /** * Check if a URL is a YouTube URL and extract the video ID. */ function getYouTubeVideoId(url: string): string | null { - const patterns = [ - /(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([^&\s?]+)/, - ]; + const patterns = [/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([^&\s?]+)/]; for (const pattern of patterns) { const match = url.match(pattern); if (match && match.length > 1) { // Non-null assertion is safe here since we checked match.length > 1 - + return match[1]!; } } @@ -43,8 +41,8 @@ function getYouTubeVideoId(url: string): string | null { * * Supports regular video URLs and YouTube URLs (renders as embedded iframe). */ -export const Video = memo(function Video({ node, surfaceId }: A2UIComponentProps) { - const { theme, resolveString } = useA2UIComponent(node, surfaceId); +export const Video = memo(function Video({node, surfaceId}: A2UIComponentProps) { + const {theme, resolveString} = useA2UIComponent(node, surfaceId); const props = node.properties; const url = resolveString(props.url); @@ -56,9 +54,8 @@ export const Video = memo(function Video({ node, surfaceId }: A2UIComponentProps const youtubeId = getYouTubeVideoId(url); // Apply --weight CSS variable on root div (:host equivalent) for flex layouts - const hostStyle: React.CSSProperties = node.weight !== undefined - ? { '--weight': node.weight } as React.CSSProperties - : {}; + const hostStyle: React.CSSProperties = + node.weight !== undefined ? ({'--weight': node.weight} as React.CSSProperties) : {}; return (
@@ -72,7 +69,7 @@ export const Video = memo(function Video({ node, surfaceId }: A2UIComponentProps title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen - style={{ border: 'none', width: '100%', aspectRatio: '16/9' }} + style={{border: 'none', width: '100%', aspectRatio: '16/9'}} /> ) : (

k`>A|~d8D*qDqE=C<-`ddgDUi32 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 z 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 z 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�^4 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 Date: Fri, 6 Mar 2026 14:46:35 +0100 Subject: [PATCH 41/53] fix(react): match Lit Icon component font-size (24px) web_core structural styles define .g-icon at 20px, but the Lit Icon component overrides this to 24px in its scoped styles. Add the same override in componentSpecificStyles to maintain visual parity. --- renderers/react/src/styles/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/renderers/react/src/styles/index.ts b/renderers/react/src/styles/index.ts index 6c753df04..13b0b5815 100644 --- a/renderers/react/src/styles/index.ts +++ b/renderers/react/src/styles/index.ts @@ -124,6 +124,9 @@ export const componentSpecificStyles: string = ` min-height: 0; overflow: auto; } +:where(.a2ui-surface .a2ui-icon) .g-icon { + font-size: 24px; +} .a2ui-surface .a2ui-tabs { display: block; From 5eaa0a5fb4c3f3a98d9f5618567ef21c75c96d42 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 6 Mar 2026 15:53:08 +0100 Subject: [PATCH 42/53] feat(react): auto-initialize styles and catalog in A2UIProvider Move ensureInitialized() into A2UIProvider so users no longer need to manually call initializeDefaultCatalog() and injectStyles() before rendering. Both are idempotent so multiple providers are safe. --- renderers/react/src/core/A2UIProvider.tsx | 14 ++++++++++++++ renderers/react/src/core/A2UIViewer.tsx | 14 -------------- samples/client/react/shell/src/main.tsx | 8 -------- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/renderers/react/src/core/A2UIProvider.tsx b/renderers/react/src/core/A2UIProvider.tsx index 25f559d03..a11882258 100644 --- a/renderers/react/src/core/A2UIProvider.tsx +++ b/renderers/react/src/core/A2UIProvider.tsx @@ -10,8 +10,20 @@ import type * as Types from '@a2ui/web_core/types/types'; import { A2uiMessageProcessor } from '@a2ui/web_core/data/model-processor'; import type { A2UIContextValue, A2UIActions } from './store'; import { ThemeProvider } from '../theme/ThemeContext'; +import { initializeDefaultCatalog } from '../registry/defaultCatalog'; +import { injectStyles } from '../styles'; import type { OnActionCallback } from '../types'; +// Auto-initialize catalog and styles once on first import +let initialized = false; +function ensureInitialized() { + if (!initialized) { + initializeDefaultCatalog(); + injectStyles(); + initialized = true; + } +} + /** * Context for stable actions (never changes reference, prevents re-renders). * Components that only need to dispatch actions or read data won't re-render. @@ -63,6 +75,8 @@ export interface A2UIProviderProps { * ``` */ export function A2UIProvider({ onAction, theme, children }: A2UIProviderProps) { + ensureInitialized(); + // Create message processor only once using ref const processorRef = useRef(null); if (!processorRef.current) { diff --git a/renderers/react/src/core/A2UIViewer.tsx b/renderers/react/src/core/A2UIViewer.tsx index 7b0eb7784..0949d9728 100644 --- a/renderers/react/src/core/A2UIViewer.tsx +++ b/renderers/react/src/core/A2UIViewer.tsx @@ -4,9 +4,7 @@ import React, { useId, useMemo, useEffect, useRef } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import { A2UIProvider, useA2UIActions } from './A2UIProvider'; import { A2UIRenderer } from './A2UIRenderer'; -import { initializeDefaultCatalog } from '../registry/defaultCatalog'; import { litTheme } from '../theme/litTheme'; -import { injectStyles } from '../styles'; import type { OnActionCallback } from '../types'; /** @@ -42,16 +40,6 @@ export interface A2UIViewerProps { className?: string; } -// Initialize the component catalog and styles once -let initialized = false; -function ensureInitialized() { - if (!initialized) { - initializeDefaultCatalog(); - injectStyles(); // Inject structural CSS for litTheme utility classes - initialized = true; - } -} - /** * A2UIViewer renders an A2UI component tree from static JSON definitions. * @@ -82,8 +70,6 @@ export function A2UIViewer({ theme = litTheme, className, }: A2UIViewerProps) { - ensureInitialized(); - // Generate a stable surface ID based on the definition const baseId = useId(); const surfaceId = useMemo(() => { diff --git a/samples/client/react/shell/src/main.tsx b/samples/client/react/shell/src/main.tsx index af4682d70..6c14464c4 100644 --- a/samples/client/react/shell/src/main.tsx +++ b/samples/client/react/shell/src/main.tsx @@ -1,15 +1,7 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; -import { initializeDefaultCatalog } from '@a2ui/react'; -import { injectStyles } from '@a2ui/react/styles'; import { App } from './App'; -// Initialize the default component catalog -initializeDefaultCatalog(); - -// Inject A2UI structural CSS (required for theme utility classes) -injectStyles(); - ReactDOM.createRoot(document.getElementById('root')!).render( From a2960423607818b10334fb72206e90f3f32553e2 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 6 Mar 2026 16:12:04 +0100 Subject: [PATCH 43/53] chore: update sample app package-lock after web_core migration --- samples/client/react/shell/package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/client/react/shell/package-lock.json b/samples/client/react/shell/package-lock.json index b6745e14e..f88651261 100644 --- a/samples/client/react/shell/package-lock.json +++ b/samples/client/react/shell/package-lock.json @@ -26,7 +26,7 @@ "version": "0.8.0", "license": "Apache-2.0", "dependencies": { - "@a2ui/lit": "file:../lit", + "@a2ui/web_core": "^0.8.0", "clsx": "^2.1.0", "markdown-it": "^14.0.0" }, From c8e7716a879b95afd4cdd681caf10f516c8c5fd4 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Fri, 6 Mar 2026 18:56:06 +0100 Subject: [PATCH 44/53] fix(visual-parity): force Vite dep re-optimization on startup Prevents stale 504 errors when file: dependencies are rebuilt by setting optimizeDeps.force in both vite configs. --- renderers/react/visual-parity/lit/vite.config.ts | 2 ++ renderers/react/visual-parity/react/vite.config.ts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/renderers/react/visual-parity/lit/vite.config.ts b/renderers/react/visual-parity/lit/vite.config.ts index 5935a8011..ff6bf0a9a 100644 --- a/renderers/react/visual-parity/lit/vite.config.ts +++ b/renderers/react/visual-parity/lit/vite.config.ts @@ -7,6 +7,8 @@ export default defineConfig({ strictPort: true, }, optimizeDeps: { + // Always re-optimize on startup so rebuilds of file: deps don't cause 504s + force: true, // Don't pre-bundle @a2ui/lit or its deps to avoid duplicate module instances exclude: [ '@a2ui/lit', diff --git a/renderers/react/visual-parity/react/vite.config.ts b/renderers/react/visual-parity/react/vite.config.ts index 0674fcb92..87894cd9c 100644 --- a/renderers/react/visual-parity/react/vite.config.ts +++ b/renderers/react/visual-parity/react/vite.config.ts @@ -10,6 +10,8 @@ export default defineConfig({ strictPort: true, }, optimizeDeps: { + // Always re-optimize on startup so rebuilds of file: deps don't cause 504s + force: true, exclude: [ '@a2ui/react', '@a2ui/lit', From d355d6edcd9891e732be8387316fd71ff1aee666 Mon Sep 17 00:00:00 2001 From: Ava Mattie <6314286+ava-cassiopeia@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:17:15 +0000 Subject: [PATCH 45/53] Format main markdown file --- renderers/react/README.md | 191 +++++++++++++++++++------------------- 1 file changed, 98 insertions(+), 93 deletions(-) diff --git a/renderers/react/README.md b/renderers/react/README.md index c9c160437..3562b628c 100644 --- a/renderers/react/README.md +++ b/renderers/react/README.md @@ -1,21 +1,22 @@ # @a2ui/react -React renderer for A2UI (Agent-to-User Interface) - enables AI agents to generate rich, interactive user interfaces through declarative JSON. +React renderer for A2UI (Agent-to-User Interface) - enables AI agents to +generate rich, interactive user interfaces through declarative JSON. ## Table of Contents -- [Installation](#installation) -- [Quick Start](#quick-start) -- [Architecture](#architecture) -- [Components](#components) -- [Hooks](#hooks) -- [Theme System](#theme-system) -- [Component Registry](#component-registry) -- [Styles](#styles) -- [Development](#development) -- [Visual Parity Testing](#visual-parity-testing) -- [API Reference](#api-reference) -- [Contributing](#contributing) +- [Installation](#installation) +- [Quick Start](#quick-start) +- [Architecture](#architecture) +- [Components](#components) +- [Hooks](#hooks) +- [Theme System](#theme-system) +- [Component Registry](#component-registry) +- [Styles](#styles) +- [Development](#development) +- [Visual Parity Testing](#visual-parity-testing) +- [API Reference](#api-reference) +- [Contributing](#contributing) ## Installation @@ -23,9 +24,7 @@ React renderer for A2UI (Agent-to-User Interface) - enables AI agents to generat npm install @a2ui/react ``` -**Peer Dependencies:** -- React 18.x or 19.x -- React DOM 18.x or 19.x +**Peer Dependencies:** - React 18.x or 19.x - React DOM 18.x or 19.x ## Quick Start @@ -113,10 +112,15 @@ The React renderer uses a two-context architecture for optimal performance: **Why two contexts?** -- **A2UIActionsContext**: Contains stable action callbacks that never change reference. Components using `useA2UIActions()` won't re-render when data changes. -- **A2UIStateContext**: Contains a version counter that increments on state changes. Only components that need to react to data changes subscribe to this. +- **A2UIActionsContext**: Contains stable action callbacks that never change + reference. Components using `useA2UIActions()` won't re-render when data + changes. +- **A2UIStateContext**: Contains a version counter that increments on state + changes. Only components that need to react to data changes subscribe to + this. -This separation prevents unnecessary re-renders and provides fine-grained control over component updates. +This separation prevents unnecessary re-renders and provides fine-grained +control over component updates. ### Data Flow @@ -155,40 +159,41 @@ All components are wrapped with `React.memo()` for performance optimization. ### Content Components -| Component | Description | -|-----------|-------------| -| `Text` | Renders text with markdown support | -| `Image` | Displays images with various usage hints | -| `Icon` | Renders Material Symbols icons | -| `Divider` | Horizontal or vertical divider | -| `Video` | Video player | -| `AudioPlayer` | Audio player | +Component | Description +------------- | ---------------------------------------- +`Text` | Renders text with markdown support +`Image` | Displays images with various usage hints +`Icon` | Renders Material Symbols icons +`Divider` | Horizontal or vertical divider +`Video` | Video player +`AudioPlayer` | Audio player ### Layout Components -| Component | Description | -|-----------|-------------| -| `Column` | Vertical flex container | -| `Row` | Horizontal flex container | -| `Card` | Card container with styling | -| `List` | List container (vertical/horizontal) | -| `Tabs` | Tabbed interface | -| `Modal` | Modal dialog | +Component | Description +--------- | ------------------------------------ +`Column` | Vertical flex container +`Row` | Horizontal flex container +`Card` | Card container with styling +`List` | List container (vertical/horizontal) +`Tabs` | Tabbed interface +`Modal` | Modal dialog ### Interactive Components -| Component | Description | -|-----------|-------------| -| `Button` | Clickable button with action dispatch | -| `TextField` | Text input (single/multiline) | -| `CheckBox` | Checkbox input | -| `Slider` | Range slider | -| `DateTimeInput` | Date/time picker | -| `MultipleChoice` | Radio/checkbox group | +Component | Description +---------------- | ------------------------------------- +`Button` | Clickable button with action dispatch +`TextField` | Text input (single/multiline) +`CheckBox` | Checkbox input +`Slider` | Range slider +`DateTimeInput` | Date/time picker +`MultipleChoice` | Radio/checkbox group ### Component Structure -Each component mirrors the Lit renderer's Shadow DOM structure for visual parity: +Each component mirrors the Lit renderer's Shadow DOM structure for visual +parity: ```tsx // React component structure @@ -271,7 +276,8 @@ function MyComponent() { ### useA2UIComponent() -Internal hook for component implementations. Automatically subscribes to state changes so components with path bindings re-render when data updates. +Internal hook for component implementations. Automatically subscribes to state +changes so components with path bindings re-render when data updates. ```tsx import { useA2UIComponent } from '@a2ui/react'; @@ -293,7 +299,10 @@ function CustomComponent({ node, surfaceId }) { } ``` -**Path Binding Reactivity**: When a component uses `setValue()` to update the data model, all components reading from the same path via `resolveString()`, `resolveNumber()`, or `resolveBoolean()` will automatically re-render with the new value. +**Path Binding Reactivity**: When a component uses `setValue()` to update the +data model, all components reading from the same path via `resolveString()`, +`resolveNumber()`, or `resolveBoolean()` will automatically re-render with the +new value. ## Theme System @@ -398,7 +407,8 @@ registry.register('HeavyChart', { }); ``` -> **Note:** Small, commonly-used components (like Tabs, Modal) should be statically imported to avoid Vite cache issues during development. +> **Note:** Small, commonly-used components (like Tabs, Modal) should be +> statically imported to avoid Vite cache issues during development. ## Styles @@ -417,8 +427,10 @@ injectStyles(); The styles module provides: -- **structuralStyles**: Utility classes from Lit renderer (layout-*, typography-*, color-*) -- **componentSpecificStyles**: CSS that replicates Lit's Shadow DOM scoped styles +- **structuralStyles**: Utility classes from Lit renderer (layout-*, + typography-*, color-*) +- **componentSpecificStyles**: CSS that replicates Lit's Shadow DOM scoped + styles ```typescript import { structuralStyles, componentSpecificStyles } from '@a2ui/react/styles'; @@ -480,47 +492,37 @@ npm run lint ### Unit Tests -Uses [Vitest](https://vitest.dev/) + [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/). +Uses [Vitest](https://vitest.dev/) + +[React Testing Library](https://testing-library.com/docs/react-testing-library/intro/). ```bash npm test # Run once npm run test:watch # Watch mode ``` -**Structure:** -``` -tests/ -├── setup.ts # Initializes component catalog -├── helpers.tsx # TestWrapper, TestRenderer, message creators -└── components/ # Component tests (*.test.tsx) -``` +**Structure:** `tests/ ├── setup.ts # Initializes component catalog ├── +helpers.tsx # TestWrapper, TestRenderer, message creators └── components/ # +Component tests (*.test.tsx)` -**Example:** -```tsx -import { render, screen, fireEvent } from '@testing-library/react'; -import { TestWrapper, TestRenderer, createSimpleMessages } from '../helpers'; - -it('should dispatch action on click', () => { - const onAction = vi.fn(); - const messages = createSimpleMessages('btn-1', 'Button', { - child: 'text-1', - action: { name: 'submit' }, - }); - - render( - - - - ); +**Example:** ```tsx import { render, screen, fireEvent } from +'@testing-library/react'; import { TestWrapper, TestRenderer, +createSimpleMessages } from '../helpers'; - fireEvent.click(screen.getByRole('button')); - expect(onAction).toHaveBeenCalled(); -}); -``` +it('should dispatch action on click', () => { const onAction = vi.fn(); const +messages = createSimpleMessages('btn-1', 'Button', { child: 'text-1', action: { +name: 'submit' }, }); + +render( + ); + +fireEvent.click(screen.getByRole('button')); +expect(onAction).toHaveBeenCalled(); }); ``` ## Visual Parity Testing -The React renderer maintains visual parity with the Lit renderer (reference implementation). A comprehensive test suite compares pixel-perfect screenshots between both renderers. +The React renderer maintains visual parity with the Lit renderer (reference +implementation). A comprehensive test suite compares pixel-perfect screenshots +between both renderers. ### Running Visual Parity Tests @@ -550,14 +552,16 @@ npm run dev ### Documentation -- **[visual-parity/README.md](./visual-parity/README.md)** - Test suite usage and fixture creation -- **[visual-parity/PARITY.md](./visual-parity/PARITY.md)** - CSS transformation approach and implementation status +- **[visual-parity/README.md](./visual-parity/README.md)** - Test suite usage + and fixture creation +- **[visual-parity/PARITY.md](./visual-parity/PARITY.md)** - CSS + transformation approach and implementation status ### Key Concepts -1. **Structural Mirroring**: React components mirror Lit's Shadow DOM structure -2. **CSS Selector Transformation**: `:host` → `.a2ui-surface .a2ui-{component}` -3. **Specificity Matching**: Uses `:where()` to match Lit's low specificity +1. **Structural Mirroring**: React components mirror Lit's Shadow DOM structure +2. **CSS Selector Transformation**: `:host` → `.a2ui-surface .a2ui-{component}` +3. **Specificity Matching**: Uses `:where()` to match Lit's low specificity ## API Reference @@ -611,15 +615,16 @@ import type { ### Code Style -- All components use `React.memo()` for performance -- Use the two-context pattern for state management -- Follow the existing component structure for visual parity +- All components use `React.memo()` for performance +- Use the two-context pattern for state management +- Follow the existing component structure for visual parity ### Adding a New Component -1. Create component in `src/components/{category}/{ComponentName}.tsx` -2. Follow wrapper div + section structure (see [Component Structure](#component-structure)) -3. Register in `src/registry/defaultCatalog.ts` -4. Export from `src/index.ts` -5. Add unit tests in `tests/components/{ComponentName}.test.tsx` -6. Add visual parity fixtures in `visual-parity/fixtures/components/` +1. Create component in `src/components/{category}/{ComponentName}.tsx` +2. Follow wrapper div + section structure (see + [Component Structure](#component-structure)) +3. Register in `src/registry/defaultCatalog.ts` +4. Export from `src/index.ts` +5. Add unit tests in `tests/components/{ComponentName}.test.tsx` +6. Add visual parity fixtures in `visual-parity/fixtures/components/` From 06d01013962a6152ca0a9acc1adb5abb79e9ca61 Mon Sep 17 00:00:00 2001 From: Ava Mattie <6314286+ava-cassiopeia@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:20:05 +0000 Subject: [PATCH 46/53] foramt visual parity markdown file --- renderers/react/visual-parity/README.md | 88 ++++++++++++------------- 1 file changed, 41 insertions(+), 47 deletions(-) diff --git a/renderers/react/visual-parity/README.md b/renderers/react/visual-parity/README.md index 68845df5c..76a152827 100644 --- a/renderers/react/visual-parity/README.md +++ b/renderers/react/visual-parity/README.md @@ -1,13 +1,15 @@ # Visual Parity Tests -Visual parity tests ensure the React renderer produces pixel-identical output to the Lit renderer (the reference implementation). +Visual parity tests ensure the React renderer produces pixel-identical output to +the Lit renderer (the reference implementation). ## Overview -These tests compare screenshots of the same A2UI components rendered by both implementations: +These tests compare screenshots of the same A2UI components rendered by both +implementations: -- **Lit renderer** (Shadow DOM) - Reference implementation at `localhost:5002` -- **React renderer** (Light DOM) - Test subject at `localhost:5001` +- **Lit renderer** (Shadow DOM) - Reference implementation at `localhost:5002` +- **React renderer** (Light DOM) - Test subject at `localhost:5001` Tests pass when the pixel difference is ≤1%. @@ -42,18 +44,10 @@ Tests pass when the pixel difference is ≤1%. ### Prerequisites -1. Build the React renderer first: - ```bash - cd renderers/react - npm install - npm run build - ``` +1. Build the React renderer first: `bash cd renderers/react npm install npm run + build` -2. Install visual-parity dependencies: - ```bash - cd visual-parity - npm install - ``` +2. Install visual-parity dependencies: `bash cd visual-parity npm install` ### Running Tests @@ -87,9 +81,8 @@ npm run dev:react # localhost:5001 npm run dev:lit # localhost:5002 ``` -Then open: -- http://localhost:5001?fixture=buttonPrimary&theme=lit (React) -- http://localhost:5002?fixture=buttonPrimary&theme=lit (Lit) +Then open: - http://localhost:5001?fixture=buttonPrimary&theme=lit (React) - +http://localhost:5002?fixture=buttonPrimary&theme=lit (Lit) ## Project Structure @@ -204,24 +197,22 @@ interface ComponentFixture { Tests run across multiple themes to ensure theme switching works: -| Theme | Description | -|-------|-------------| -| `lit` | Default litTheme from @a2ui/react | -| `visualParity` | Alternate theme for testing | -| `minimal` | Stripped-down theme | +Theme | Description +-------------- | --------------------------------- +`lit` | Default litTheme from @a2ui/react +`visualParity` | Alternate theme for testing +`minimal` | Stripped-down theme -To test a specific theme: -```bash -npm test -- --grep "Theme: minimal" -``` +To test a specific theme: `bash npm test -- --grep "Theme: minimal"` ## Skipped Fixtures Some fixtures are skipped due to known implementation differences: -| Fixture | Reason | -|---------|--------| -| `multipleChoice*` | Implementation differs: React uses radio/checkboxes, Lit uses `` : ## Troubleshooting @@ -236,7 +227,8 @@ npm run dev:react # or dev:lit ### React Changes Not Reflected -The visual parity apps import from the **built** `@a2ui/react` package. After making changes: +The visual parity apps import from the **built** `@a2ui/react` package. After +making changes: ```bash # 1. Rebuild React renderer @@ -251,33 +243,35 @@ npm run dev:react ### Test Failures -When a test fails, Playwright saves screenshots to `test-results/`. Compare them to identify the visual difference. +When a test fails, Playwright saves screenshots to `test-results/`. Compare them +to identify the visual difference. + +To debug a specific fixture: ```bash -To debug a specific fixture: -```bash # Run with headed browser + npm test -- --grep "buttonPrimary" --headed # Or use UI mode -npm run test:ui -``` + +npm run test:ui ``` ## Key Modules -| Module | Purpose | -|--------|---------| -| `@playwright/test` | Browser automation and test framework | -| `pixelmatch` | Pixel-by-pixel image comparison | -| `pngjs` | PNG image parsing | -| `vite` | Dev server for React and Lit apps | +Module | Purpose +------------------ | ------------------------------------- +`@playwright/test` | Browser automation and test framework +`pixelmatch` | Pixel-by-pixel image comparison +`pngjs` | PNG image parsing +`vite` | Dev server for React and Lit apps ## Thresholds -| Parameter | Value | Purpose | -|-----------|-------|---------| -| `PIXEL_DIFF_THRESHOLD` | 0.01 (1%) | Per-pixel color tolerance | -| `MAX_DIFF_PERCENT` | 1% | Maximum % of pixels that can differ | +Parameter | Value | Purpose +---------------------- | --------- | ----------------------------------- +`PIXEL_DIFF_THRESHOLD` | 0.01 (1%) | Per-pixel color tolerance +`MAX_DIFF_PERCENT` | 1% | Maximum % of pixels that can differ ## Related Documentation -- [PARITY.md](./PARITY.md) - CSS transformation approach for React/Lit parity +- [PARITY.md](./PARITY.md) - CSS transformation approach for React/Lit parity From 4342dd16566d30c9193dffe6d282d0677df2d77b Mon Sep 17 00:00:00 2001 From: Ava Mattie <6314286+ava-cassiopeia@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:25:30 +0000 Subject: [PATCH 47/53] Add GH workflow for the React renderer --- .github/workflows/react_renderer.yml | 73 ++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .github/workflows/react_renderer.yml diff --git a/.github/workflows/react_renderer.yml b/.github/workflows/react_renderer.yml new file mode 100644 index 000000000..dbf2cd847 --- /dev/null +++ b/.github/workflows/react_renderer.yml @@ -0,0 +1,73 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: React renderer + +on: + push: + branches: [ main ] + paths-ignore: + - 'renderers/angular/**' + - 'renderers/flutter/**' + - 'renderers/lit/**' + - 'samples/agent/adk/**' + pull_request: + paths-ignore: + - 'renderers/angular/**' + - 'renderers/flutter/**' + - 'renderers/lit/**' + - 'samples/agent/adk/**' + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install top-level deps + working-directory: ./renderers/react + run: npm ci + + - name: Build React renderer + working-directory: ./renderers/react + run: npm run build + + - name: Test React renderer + working-directory: ./renderers/react + run: npm test + lint: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install top-level deps + working-directory: ./renderers/react + run: npm ci + + - name: Build React renderer and its dependencies + working-directory: ./renderers/react + run: npm run lint + From 575204536d2455fa69cae89d33c6a2b317ba05dd Mon Sep 17 00:00:00 2001 From: Ava Mattie <6314286+ava-cassiopeia@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:36:57 +0000 Subject: [PATCH 48/53] add Google OSS copyright notices to all relevant files --- renderers/react/eslint.config.js | 16 ++++++++++++++++ .../react/src/components/content/AudioPlayer.tsx | 16 ++++++++++++++++ .../react/src/components/content/Divider.tsx | 16 ++++++++++++++++ renderers/react/src/components/content/Icon.tsx | 16 ++++++++++++++++ renderers/react/src/components/content/Image.tsx | 16 ++++++++++++++++ renderers/react/src/components/content/Text.tsx | 16 ++++++++++++++++ renderers/react/src/components/content/Video.tsx | 16 ++++++++++++++++ renderers/react/src/components/content/index.ts | 16 ++++++++++++++++ .../react/src/components/interactive/Button.tsx | 16 ++++++++++++++++ .../src/components/interactive/CheckBox.tsx | 16 ++++++++++++++++ .../src/components/interactive/DateTimeInput.tsx | 16 ++++++++++++++++ .../components/interactive/MultipleChoice.tsx | 16 ++++++++++++++++ .../react/src/components/interactive/Slider.tsx | 16 ++++++++++++++++ .../src/components/interactive/TextField.tsx | 16 ++++++++++++++++ .../react/src/components/interactive/index.ts | 16 ++++++++++++++++ renderers/react/src/components/layout/Card.tsx | 16 ++++++++++++++++ renderers/react/src/components/layout/Column.tsx | 16 ++++++++++++++++ renderers/react/src/components/layout/List.tsx | 16 ++++++++++++++++ renderers/react/src/components/layout/Modal.tsx | 16 ++++++++++++++++ renderers/react/src/components/layout/Row.tsx | 16 ++++++++++++++++ renderers/react/src/components/layout/Tabs.tsx | 16 ++++++++++++++++ renderers/react/src/components/layout/index.ts | 16 ++++++++++++++++ renderers/react/src/core/A2UIProvider.tsx | 16 ++++++++++++++++ renderers/react/src/core/A2UIRenderer.tsx | 16 ++++++++++++++++ renderers/react/src/core/A2UIViewer.tsx | 16 ++++++++++++++++ renderers/react/src/core/ComponentNode.tsx | 16 ++++++++++++++++ renderers/react/src/core/store.ts | 16 ++++++++++++++++ renderers/react/src/hooks/useA2UI.ts | 16 ++++++++++++++++ renderers/react/src/hooks/useA2UIComponent.ts | 16 ++++++++++++++++ renderers/react/src/index.ts | 16 ++++++++++++++++ renderers/react/src/lib/utils.ts | 16 ++++++++++++++++ .../react/src/registry/ComponentRegistry.ts | 16 ++++++++++++++++ renderers/react/src/registry/defaultCatalog.ts | 16 ++++++++++++++++ renderers/react/src/styles/index.d.ts | 16 ++++++++++++++++ renderers/react/src/styles/index.ts | 16 ++++++++++++++++ renderers/react/src/styles/reset.ts | 16 ++++++++++++++++ renderers/react/src/theme/ThemeContext.tsx | 16 ++++++++++++++++ renderers/react/src/theme/litTheme.ts | 16 ++++++++++++++++ renderers/react/src/theme/utils.ts | 16 ++++++++++++++++ renderers/react/src/types.ts | 16 ++++++++++++++++ .../tests/integration/ThemeContext.test.tsx | 16 ++++++++++++++++ .../react/tests/integration/actions.test.tsx | 16 ++++++++++++++++ .../react/tests/integration/components.test.tsx | 16 ++++++++++++++++ .../tests/integration/data-binding.test.tsx | 16 ++++++++++++++++ renderers/react/tests/integration/hooks.test.tsx | 16 ++++++++++++++++ .../react/tests/integration/messages.test.tsx | 16 ++++++++++++++++ .../tests/integration/property-updates.test.tsx | 16 ++++++++++++++++ .../react/tests/integration/templates.test.tsx | 16 ++++++++++++++++ renderers/react/tests/setup.ts | 16 ++++++++++++++++ .../react/tests/unit/components/Button.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Card.test.tsx | 16 ++++++++++++++++ .../tests/unit/components/CheckBox.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Column.test.tsx | 16 ++++++++++++++++ .../tests/unit/components/DateTimeInput.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Divider.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Icon.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Image.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/List.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Modal.test.tsx | 16 ++++++++++++++++ .../unit/components/MultipleChoice.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Row.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Slider.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Tabs.test.tsx | 16 ++++++++++++++++ .../react/tests/unit/components/Text.test.tsx | 16 ++++++++++++++++ .../tests/unit/components/TextField.test.tsx | 16 ++++++++++++++++ renderers/react/tests/utils/assertions.ts | 16 ++++++++++++++++ renderers/react/tests/utils/index.ts | 16 ++++++++++++++++ renderers/react/tests/utils/messages.ts | 16 ++++++++++++++++ renderers/react/tests/utils/render.tsx | 16 ++++++++++++++++ renderers/react/tsup.config.ts | 16 ++++++++++++++++ .../fixtures/components/audioPlayer.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/button.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/card.ts | 16 ++++++++++++++++ .../fixtures/components/checkbox.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/column.ts | 16 ++++++++++++++++ .../fixtures/components/dateTimeInput.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/divider.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/icon.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/image.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/index.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/list.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/modal.ts | 16 ++++++++++++++++ .../fixtures/components/multipleChoice.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/row.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/slider.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/tabs.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/text.ts | 16 ++++++++++++++++ .../fixtures/components/textField.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/components/video.ts | 16 ++++++++++++++++ renderers/react/visual-parity/fixtures/index.ts | 16 ++++++++++++++++ .../react/visual-parity/fixtures/nested/index.ts | 16 ++++++++++++++++ .../visual-parity/fixtures/nested/layouts.ts | 16 ++++++++++++++++ .../react/visual-parity/fixtures/themes/index.ts | 16 ++++++++++++++++ .../fixtures/themes/minimalTheme.ts | 16 ++++++++++++++++ .../fixtures/themes/visualParityTheme.ts | 16 ++++++++++++++++ renderers/react/visual-parity/fixtures/types.ts | 16 ++++++++++++++++ renderers/react/visual-parity/lit/index.html | 16 ++++++++++++++++ renderers/react/visual-parity/lit/src/main.ts | 16 ++++++++++++++++ renderers/react/visual-parity/lit/vite.config.ts | 16 ++++++++++++++++ .../react/visual-parity/playwright.config.ts | 16 ++++++++++++++++ renderers/react/visual-parity/react/index.html | 16 ++++++++++++++++ .../visual-parity/react/src/FixturePage.tsx | 16 ++++++++++++++++ renderers/react/visual-parity/react/src/main.tsx | 16 ++++++++++++++++ .../react/visual-parity/react/vite.config.ts | 16 ++++++++++++++++ .../visual-parity/tests/visual-parity.spec.ts | 16 ++++++++++++++++ renderers/react/vitest.config.ts | 16 ++++++++++++++++ 106 files changed, 1696 insertions(+) diff --git a/renderers/react/eslint.config.js b/renderers/react/eslint.config.js index 740baf440..fcd0f636a 100644 --- a/renderers/react/eslint.config.js +++ b/renderers/react/eslint.config.js @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import js from '@eslint/js'; import tseslint from 'typescript-eslint'; import reactPlugin from 'eslint-plugin-react'; diff --git a/renderers/react/src/components/content/AudioPlayer.tsx b/renderers/react/src/components/content/AudioPlayer.tsx index 27bb27046..8ef6cdf10 100644 --- a/renderers/react/src/components/content/AudioPlayer.tsx +++ b/renderers/react/src/components/content/AudioPlayer.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/content/Divider.tsx b/renderers/react/src/components/content/Divider.tsx index 0c7e99b41..924e6b470 100644 --- a/renderers/react/src/components/content/Divider.tsx +++ b/renderers/react/src/components/content/Divider.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/content/Icon.tsx b/renderers/react/src/components/content/Icon.tsx index 4dd250061..7d711b2bf 100644 --- a/renderers/react/src/components/content/Icon.tsx +++ b/renderers/react/src/components/content/Icon.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/content/Image.tsx b/renderers/react/src/components/content/Image.tsx index e6597e38a..4e29f7f18 100644 --- a/renderers/react/src/components/content/Image.tsx +++ b/renderers/react/src/components/content/Image.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/content/Text.tsx b/renderers/react/src/components/content/Text.tsx index df872e31f..4d876c9ad 100644 --- a/renderers/react/src/components/content/Text.tsx +++ b/renderers/react/src/components/content/Text.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useMemo, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/content/Video.tsx b/renderers/react/src/components/content/Video.tsx index 121bda89f..2ba60f4a9 100644 --- a/renderers/react/src/components/content/Video.tsx +++ b/renderers/react/src/components/content/Video.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/content/index.ts b/renderers/react/src/components/content/index.ts index 4f8989e24..8d86c5e9c 100644 --- a/renderers/react/src/components/content/index.ts +++ b/renderers/react/src/components/content/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + export { Text } from './Text'; export { Image } from './Image'; export { Icon } from './Icon'; diff --git a/renderers/react/src/components/interactive/Button.tsx b/renderers/react/src/components/interactive/Button.tsx index 57f5f574f..dd6e79a9a 100644 --- a/renderers/react/src/components/interactive/Button.tsx +++ b/renderers/react/src/components/interactive/Button.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useCallback, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/interactive/CheckBox.tsx b/renderers/react/src/components/interactive/CheckBox.tsx index 89bf64174..49deb68e8 100644 --- a/renderers/react/src/components/interactive/CheckBox.tsx +++ b/renderers/react/src/components/interactive/CheckBox.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useState, useCallback, useEffect, useId, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/interactive/DateTimeInput.tsx b/renderers/react/src/components/interactive/DateTimeInput.tsx index 535a3867d..3594df35b 100644 --- a/renderers/react/src/components/interactive/DateTimeInput.tsx +++ b/renderers/react/src/components/interactive/DateTimeInput.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useState, useCallback, useEffect, useId, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/interactive/MultipleChoice.tsx b/renderers/react/src/components/interactive/MultipleChoice.tsx index 7e27adafa..96eb2c05a 100644 --- a/renderers/react/src/components/interactive/MultipleChoice.tsx +++ b/renderers/react/src/components/interactive/MultipleChoice.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useCallback, useId, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/interactive/Slider.tsx b/renderers/react/src/components/interactive/Slider.tsx index fec2b7d27..5e57e2567 100644 --- a/renderers/react/src/components/interactive/Slider.tsx +++ b/renderers/react/src/components/interactive/Slider.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useState, useCallback, useEffect, useId, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/interactive/TextField.tsx b/renderers/react/src/components/interactive/TextField.tsx index 6b667b602..13081b5c3 100644 --- a/renderers/react/src/components/interactive/TextField.tsx +++ b/renderers/react/src/components/interactive/TextField.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useState, useCallback, useEffect, useId, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/interactive/index.ts b/renderers/react/src/components/interactive/index.ts index 9c5c00f6b..0dd7e886e 100644 --- a/renderers/react/src/components/interactive/index.ts +++ b/renderers/react/src/components/interactive/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + export { Button } from './Button'; export { TextField } from './TextField'; export { CheckBox } from './CheckBox'; diff --git a/renderers/react/src/components/layout/Card.tsx b/renderers/react/src/components/layout/Card.tsx index b159acb05..ee6168266 100644 --- a/renderers/react/src/components/layout/Card.tsx +++ b/renderers/react/src/components/layout/Card.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/layout/Column.tsx b/renderers/react/src/components/layout/Column.tsx index f18fd968d..d4e777cac 100644 --- a/renderers/react/src/components/layout/Column.tsx +++ b/renderers/react/src/components/layout/Column.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/layout/List.tsx b/renderers/react/src/components/layout/List.tsx index 9c9c92b3e..370a41c1b 100644 --- a/renderers/react/src/components/layout/List.tsx +++ b/renderers/react/src/components/layout/List.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/layout/Modal.tsx b/renderers/react/src/components/layout/Modal.tsx index 017f92d9f..740ff1757 100644 --- a/renderers/react/src/components/layout/Modal.tsx +++ b/renderers/react/src/components/layout/Modal.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useState, useCallback, useRef, useEffect, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/layout/Row.tsx b/renderers/react/src/components/layout/Row.tsx index 8bbaf7766..08214066c 100644 --- a/renderers/react/src/components/layout/Row.tsx +++ b/renderers/react/src/components/layout/Row.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/layout/Tabs.tsx b/renderers/react/src/components/layout/Tabs.tsx index 3785a7830..b09e6912e 100644 --- a/renderers/react/src/components/layout/Tabs.tsx +++ b/renderers/react/src/components/layout/Tabs.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useState, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps } from '../../types'; diff --git a/renderers/react/src/components/layout/index.ts b/renderers/react/src/components/layout/index.ts index 28023efd6..7cdad93d7 100644 --- a/renderers/react/src/components/layout/index.ts +++ b/renderers/react/src/components/layout/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + export { Row } from './Row'; export { Column } from './Column'; export { List } from './List'; diff --git a/renderers/react/src/core/A2UIProvider.tsx b/renderers/react/src/core/A2UIProvider.tsx index a11882258..a01ffa84e 100644 --- a/renderers/react/src/core/A2UIProvider.tsx +++ b/renderers/react/src/core/A2UIProvider.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { createContext, useContext, diff --git a/renderers/react/src/core/A2UIRenderer.tsx b/renderers/react/src/core/A2UIRenderer.tsx index 2c44a6b9b..93ec02736 100644 --- a/renderers/react/src/core/A2UIRenderer.tsx +++ b/renderers/react/src/core/A2UIRenderer.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { Suspense, useMemo, memo, type ReactNode } from 'react'; import { useA2UI } from '../hooks/useA2UI'; import { ComponentNode } from './ComponentNode'; diff --git a/renderers/react/src/core/A2UIViewer.tsx b/renderers/react/src/core/A2UIViewer.tsx index 0949d9728..f2403b42b 100644 --- a/renderers/react/src/core/A2UIViewer.tsx +++ b/renderers/react/src/core/A2UIViewer.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + 'use client'; import React, { useId, useMemo, useEffect, useRef } from 'react'; diff --git a/renderers/react/src/core/ComponentNode.tsx b/renderers/react/src/core/ComponentNode.tsx index 86b665a14..27906e4bc 100644 --- a/renderers/react/src/core/ComponentNode.tsx +++ b/renderers/react/src/core/ComponentNode.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { Suspense, useMemo, memo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import { ComponentRegistry } from '../registry/ComponentRegistry'; diff --git a/renderers/react/src/core/store.ts b/renderers/react/src/core/store.ts index 946c7670d..95f1a3331 100644 --- a/renderers/react/src/core/store.ts +++ b/renderers/react/src/core/store.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import type * as Types from '@a2ui/web_core/types/types'; import type { OnActionCallback } from '../types'; diff --git a/renderers/react/src/hooks/useA2UI.ts b/renderers/react/src/hooks/useA2UI.ts index c6a741644..40c82be45 100644 --- a/renderers/react/src/hooks/useA2UI.ts +++ b/renderers/react/src/hooks/useA2UI.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import type * as Types from '@a2ui/web_core/types/types'; import { useA2UIActions, useA2UIState } from '../core/A2UIProvider'; diff --git a/renderers/react/src/hooks/useA2UIComponent.ts b/renderers/react/src/hooks/useA2UIComponent.ts index 57452a32d..777a697e8 100644 --- a/renderers/react/src/hooks/useA2UIComponent.ts +++ b/renderers/react/src/hooks/useA2UIComponent.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useCallback, useId, useMemo } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type * as Primitives from '@a2ui/web_core/types/primitives'; diff --git a/renderers/react/src/index.ts b/renderers/react/src/index.ts index 1ef980b1c..525046715 100644 --- a/renderers/react/src/index.ts +++ b/renderers/react/src/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + // Core components and provider export { A2UIProvider, diff --git a/renderers/react/src/lib/utils.ts b/renderers/react/src/lib/utils.ts index 56f0bb634..410053f56 100644 --- a/renderers/react/src/lib/utils.ts +++ b/renderers/react/src/lib/utils.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { clsx, type ClassValue } from 'clsx'; import * as Styles from '@a2ui/web_core/styles/index'; diff --git a/renderers/react/src/registry/ComponentRegistry.ts b/renderers/react/src/registry/ComponentRegistry.ts index 9f032e042..013abca4f 100644 --- a/renderers/react/src/registry/ComponentRegistry.ts +++ b/renderers/react/src/registry/ComponentRegistry.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { lazy, type ComponentType } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type { A2UIComponentProps, ComponentLoader, ComponentRegistration } from '../types'; diff --git a/renderers/react/src/registry/defaultCatalog.ts b/renderers/react/src/registry/defaultCatalog.ts index d36d0e5a1..672b197ec 100644 --- a/renderers/react/src/registry/defaultCatalog.ts +++ b/renderers/react/src/registry/defaultCatalog.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { ComponentRegistry } from './ComponentRegistry'; // Content components diff --git a/renderers/react/src/styles/index.d.ts b/renderers/react/src/styles/index.d.ts index 6ac5f4c8b..acfc690ca 100644 --- a/renderers/react/src/styles/index.d.ts +++ b/renderers/react/src/styles/index.d.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Structural CSS styles converted from Lit renderer. * Uses .a2ui-surface {} instead of :host {} for non-Shadow DOM usage. diff --git a/renderers/react/src/styles/index.ts b/renderers/react/src/styles/index.ts index 13b0b5815..642b04ec7 100644 --- a/renderers/react/src/styles/index.ts +++ b/renderers/react/src/styles/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import * as Styles from '@a2ui/web_core/styles/index'; import { resetStyles } from './reset'; diff --git a/renderers/react/src/styles/reset.ts b/renderers/react/src/styles/reset.ts index 63a265f80..c6e38ced9 100644 --- a/renderers/react/src/styles/reset.ts +++ b/renderers/react/src/styles/reset.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Browser default reset for A2UI surfaces. * diff --git a/renderers/react/src/theme/ThemeContext.tsx b/renderers/react/src/theme/ThemeContext.tsx index 42e99e370..96c496ea1 100644 --- a/renderers/react/src/theme/ThemeContext.tsx +++ b/renderers/react/src/theme/ThemeContext.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { createContext, useContext, type ReactNode } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import { defaultTheme } from './litTheme'; diff --git a/renderers/react/src/theme/litTheme.ts b/renderers/react/src/theme/litTheme.ts index 54477ce2c..e44fe742c 100644 --- a/renderers/react/src/theme/litTheme.ts +++ b/renderers/react/src/theme/litTheme.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import type * as Types from '@a2ui/web_core/types/types'; /** diff --git a/renderers/react/src/theme/utils.ts b/renderers/react/src/theme/utils.ts index 44d734f9e..9de8c5d4e 100644 --- a/renderers/react/src/theme/utils.ts +++ b/renderers/react/src/theme/utils.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Converts a theme class map (Record) to a className string. * diff --git a/renderers/react/src/types.ts b/renderers/react/src/types.ts index 7db73e3e0..49743b07a 100644 --- a/renderers/react/src/types.ts +++ b/renderers/react/src/types.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import type { ComponentType } from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type * as Primitives from '@a2ui/web_core/types/primitives'; diff --git a/renderers/react/tests/integration/ThemeContext.test.tsx b/renderers/react/tests/integration/ThemeContext.test.tsx index 06701db00..21444f55a 100644 --- a/renderers/react/tests/integration/ThemeContext.test.tsx +++ b/renderers/react/tests/integration/ThemeContext.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/integration/actions.test.tsx b/renderers/react/tests/integration/actions.test.tsx index 01d8f3275..8087ccad9 100644 --- a/renderers/react/tests/integration/actions.test.tsx +++ b/renderers/react/tests/integration/actions.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect, vi } from 'vitest'; import { render, screen, fireEvent } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/integration/components.test.tsx b/renderers/react/tests/integration/components.test.tsx index 4b40f475e..dcba83bc2 100644 --- a/renderers/react/tests/integration/components.test.tsx +++ b/renderers/react/tests/integration/components.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect, vi } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; diff --git a/renderers/react/tests/integration/data-binding.test.tsx b/renderers/react/tests/integration/data-binding.test.tsx index 3ad9e9b5a..879a6a27b 100644 --- a/renderers/react/tests/integration/data-binding.test.tsx +++ b/renderers/react/tests/integration/data-binding.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen, fireEvent, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; diff --git a/renderers/react/tests/integration/hooks.test.tsx b/renderers/react/tests/integration/hooks.test.tsx index aae6d2c44..44e1951dd 100644 --- a/renderers/react/tests/integration/hooks.test.tsx +++ b/renderers/react/tests/integration/hooks.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect, vi } from 'vitest'; import { render } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/integration/messages.test.tsx b/renderers/react/tests/integration/messages.test.tsx index 049a27d94..0fe4ce706 100644 --- a/renderers/react/tests/integration/messages.test.tsx +++ b/renderers/react/tests/integration/messages.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; diff --git a/renderers/react/tests/integration/property-updates.test.tsx b/renderers/react/tests/integration/property-updates.test.tsx index 8c23ae53c..710ff4270 100644 --- a/renderers/react/tests/integration/property-updates.test.tsx +++ b/renderers/react/tests/integration/property-updates.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; diff --git a/renderers/react/tests/integration/templates.test.tsx b/renderers/react/tests/integration/templates.test.tsx index 8bc3cc7a0..f2154f41b 100644 --- a/renderers/react/tests/integration/templates.test.tsx +++ b/renderers/react/tests/integration/templates.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect, vi } from 'vitest'; import { render, screen, fireEvent, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; diff --git a/renderers/react/tests/setup.ts b/renderers/react/tests/setup.ts index b22682cde..9098c3aba 100644 --- a/renderers/react/tests/setup.ts +++ b/renderers/react/tests/setup.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import '@testing-library/jest-dom/vitest'; import { beforeAll } from 'vitest'; import { initializeDefaultCatalog } from '../src'; diff --git a/renderers/react/tests/unit/components/Button.test.tsx b/renderers/react/tests/unit/components/Button.test.tsx index bb8e87621..0edda1d28 100644 --- a/renderers/react/tests/unit/components/Button.test.tsx +++ b/renderers/react/tests/unit/components/Button.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect, vi } from 'vitest'; import { render, screen, fireEvent } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Card.test.tsx b/renderers/react/tests/unit/components/Card.test.tsx index 3053d1fa3..d62f05e53 100644 --- a/renderers/react/tests/unit/components/Card.test.tsx +++ b/renderers/react/tests/unit/components/Card.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/CheckBox.test.tsx b/renderers/react/tests/unit/components/CheckBox.test.tsx index aa74ea718..42a91f129 100644 --- a/renderers/react/tests/unit/components/CheckBox.test.tsx +++ b/renderers/react/tests/unit/components/CheckBox.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen, fireEvent } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Column.test.tsx b/renderers/react/tests/unit/components/Column.test.tsx index 8a067a922..92f6cc1fb 100644 --- a/renderers/react/tests/unit/components/Column.test.tsx +++ b/renderers/react/tests/unit/components/Column.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/DateTimeInput.test.tsx b/renderers/react/tests/unit/components/DateTimeInput.test.tsx index 0dc9c6503..93ca9850d 100644 --- a/renderers/react/tests/unit/components/DateTimeInput.test.tsx +++ b/renderers/react/tests/unit/components/DateTimeInput.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, fireEvent } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Divider.test.tsx b/renderers/react/tests/unit/components/Divider.test.tsx index 13e7bb4e6..58900b01b 100644 --- a/renderers/react/tests/unit/components/Divider.test.tsx +++ b/renderers/react/tests/unit/components/Divider.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Icon.test.tsx b/renderers/react/tests/unit/components/Icon.test.tsx index 7c621e4c6..515316fe0 100644 --- a/renderers/react/tests/unit/components/Icon.test.tsx +++ b/renderers/react/tests/unit/components/Icon.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect, beforeEach } from 'vitest'; import { render, screen } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Image.test.tsx b/renderers/react/tests/unit/components/Image.test.tsx index 665a94610..bfa520918 100644 --- a/renderers/react/tests/unit/components/Image.test.tsx +++ b/renderers/react/tests/unit/components/Image.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/List.test.tsx b/renderers/react/tests/unit/components/List.test.tsx index 4cb538565..4f04896b2 100644 --- a/renderers/react/tests/unit/components/List.test.tsx +++ b/renderers/react/tests/unit/components/List.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Modal.test.tsx b/renderers/react/tests/unit/components/Modal.test.tsx index 297b84ddd..ee876ec54 100644 --- a/renderers/react/tests/unit/components/Modal.test.tsx +++ b/renderers/react/tests/unit/components/Modal.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; import { render, screen, fireEvent, waitFor } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/MultipleChoice.test.tsx b/renderers/react/tests/unit/components/MultipleChoice.test.tsx index 013199e13..6daa845da 100644 --- a/renderers/react/tests/unit/components/MultipleChoice.test.tsx +++ b/renderers/react/tests/unit/components/MultipleChoice.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, fireEvent } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Row.test.tsx b/renderers/react/tests/unit/components/Row.test.tsx index faf6b05de..4a5152f9d 100644 --- a/renderers/react/tests/unit/components/Row.test.tsx +++ b/renderers/react/tests/unit/components/Row.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Slider.test.tsx b/renderers/react/tests/unit/components/Slider.test.tsx index 6a5e6065e..8c75226af 100644 --- a/renderers/react/tests/unit/components/Slider.test.tsx +++ b/renderers/react/tests/unit/components/Slider.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, fireEvent } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Tabs.test.tsx b/renderers/react/tests/unit/components/Tabs.test.tsx index ec22016ee..e5e49d2b8 100644 --- a/renderers/react/tests/unit/components/Tabs.test.tsx +++ b/renderers/react/tests/unit/components/Tabs.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen, fireEvent } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/Text.test.tsx b/renderers/react/tests/unit/components/Text.test.tsx index 067e6c125..20edee325 100644 --- a/renderers/react/tests/unit/components/Text.test.tsx +++ b/renderers/react/tests/unit/components/Text.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/unit/components/TextField.test.tsx b/renderers/react/tests/unit/components/TextField.test.tsx index 83f2b1864..57b9f70b4 100644 --- a/renderers/react/tests/unit/components/TextField.test.tsx +++ b/renderers/react/tests/unit/components/TextField.test.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { describe, it, expect } from 'vitest'; import { render, screen, fireEvent } from '@testing-library/react'; import React from 'react'; diff --git a/renderers/react/tests/utils/assertions.ts b/renderers/react/tests/utils/assertions.ts index 825d6a32e..518274ce5 100644 --- a/renderers/react/tests/utils/assertions.ts +++ b/renderers/react/tests/utils/assertions.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import type { Mock } from 'vitest'; /** diff --git a/renderers/react/tests/utils/index.ts b/renderers/react/tests/utils/index.ts index 2fbef006b..6f483d65d 100644 --- a/renderers/react/tests/utils/index.ts +++ b/renderers/react/tests/utils/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + // Re-export all test utilities for convenient importing export * from './render'; export * from './messages'; diff --git a/renderers/react/tests/utils/messages.ts b/renderers/react/tests/utils/messages.ts index 6cd03c319..32f87a50e 100644 --- a/renderers/react/tests/utils/messages.ts +++ b/renderers/react/tests/utils/messages.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import type * as Types from '@a2ui/web_core/types/types'; /** diff --git a/renderers/react/tests/utils/render.tsx b/renderers/react/tests/utils/render.tsx index 04afeacba..96270d4f6 100644 --- a/renderers/react/tests/utils/render.tsx +++ b/renderers/react/tests/utils/render.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React, { useEffect, type ReactNode } from 'react'; import { A2UIProvider, A2UIRenderer, useA2UI } from '../../src'; import type * as Types from '@a2ui/web_core/types/types'; diff --git a/renderers/react/tsup.config.ts b/renderers/react/tsup.config.ts index 8d675f821..43f454650 100644 --- a/renderers/react/tsup.config.ts +++ b/renderers/react/tsup.config.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { defineConfig } from 'tsup'; export default defineConfig([ diff --git a/renderers/react/visual-parity/fixtures/components/audioPlayer.ts b/renderers/react/visual-parity/fixtures/components/audioPlayer.ts index 3a7ab9ab1..e8ad3d446 100644 --- a/renderers/react/visual-parity/fixtures/components/audioPlayer.ts +++ b/renderers/react/visual-parity/fixtures/components/audioPlayer.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * AudioPlayer component fixtures for visual parity testing. * diff --git a/renderers/react/visual-parity/fixtures/components/button.ts b/renderers/react/visual-parity/fixtures/components/button.ts index 998d24413..e0c06a408 100644 --- a/renderers/react/visual-parity/fixtures/components/button.ts +++ b/renderers/react/visual-parity/fixtures/components/button.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Button component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/card.ts b/renderers/react/visual-parity/fixtures/components/card.ts index 2c9c7c736..db01b5fc7 100644 --- a/renderers/react/visual-parity/fixtures/components/card.ts +++ b/renderers/react/visual-parity/fixtures/components/card.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Card component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/checkbox.ts b/renderers/react/visual-parity/fixtures/components/checkbox.ts index aa4539c81..75835574b 100644 --- a/renderers/react/visual-parity/fixtures/components/checkbox.ts +++ b/renderers/react/visual-parity/fixtures/components/checkbox.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * CheckBox component fixtures for visual parity testing. * diff --git a/renderers/react/visual-parity/fixtures/components/column.ts b/renderers/react/visual-parity/fixtures/components/column.ts index fa4dbd342..3a0ebd337 100644 --- a/renderers/react/visual-parity/fixtures/components/column.ts +++ b/renderers/react/visual-parity/fixtures/components/column.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Column component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/dateTimeInput.ts b/renderers/react/visual-parity/fixtures/components/dateTimeInput.ts index 6df552611..33ea5aaef 100644 --- a/renderers/react/visual-parity/fixtures/components/dateTimeInput.ts +++ b/renderers/react/visual-parity/fixtures/components/dateTimeInput.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * DateTimeInput component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/divider.ts b/renderers/react/visual-parity/fixtures/components/divider.ts index be6d7d516..01612a337 100644 --- a/renderers/react/visual-parity/fixtures/components/divider.ts +++ b/renderers/react/visual-parity/fixtures/components/divider.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Divider component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/icon.ts b/renderers/react/visual-parity/fixtures/components/icon.ts index b6c4905b8..2fdaac8f2 100644 --- a/renderers/react/visual-parity/fixtures/components/icon.ts +++ b/renderers/react/visual-parity/fixtures/components/icon.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Icon component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/image.ts b/renderers/react/visual-parity/fixtures/components/image.ts index f80c3a432..9a05d99fe 100644 --- a/renderers/react/visual-parity/fixtures/components/image.ts +++ b/renderers/react/visual-parity/fixtures/components/image.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Image component fixtures for visual parity testing. * Uses picsum.photos for placeholder images (same as a2ui-composer). diff --git a/renderers/react/visual-parity/fixtures/components/index.ts b/renderers/react/visual-parity/fixtures/components/index.ts index 2020a2317..51ecee833 100644 --- a/renderers/react/visual-parity/fixtures/components/index.ts +++ b/renderers/react/visual-parity/fixtures/components/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Component fixtures aggregation. */ diff --git a/renderers/react/visual-parity/fixtures/components/list.ts b/renderers/react/visual-parity/fixtures/components/list.ts index 74444308a..ebc935ec8 100644 --- a/renderers/react/visual-parity/fixtures/components/list.ts +++ b/renderers/react/visual-parity/fixtures/components/list.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * List component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/modal.ts b/renderers/react/visual-parity/fixtures/components/modal.ts index 315f0e95c..213553731 100644 --- a/renderers/react/visual-parity/fixtures/components/modal.ts +++ b/renderers/react/visual-parity/fixtures/components/modal.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Modal component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/multipleChoice.ts b/renderers/react/visual-parity/fixtures/components/multipleChoice.ts index bcdd2e958..515271362 100644 --- a/renderers/react/visual-parity/fixtures/components/multipleChoice.ts +++ b/renderers/react/visual-parity/fixtures/components/multipleChoice.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * MultipleChoice component fixtures for visual parity testing. * diff --git a/renderers/react/visual-parity/fixtures/components/row.ts b/renderers/react/visual-parity/fixtures/components/row.ts index d3e99db84..c74724db9 100644 --- a/renderers/react/visual-parity/fixtures/components/row.ts +++ b/renderers/react/visual-parity/fixtures/components/row.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Row component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/slider.ts b/renderers/react/visual-parity/fixtures/components/slider.ts index d9249a8b5..7e19152de 100644 --- a/renderers/react/visual-parity/fixtures/components/slider.ts +++ b/renderers/react/visual-parity/fixtures/components/slider.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Slider component fixtures for visual parity testing. * diff --git a/renderers/react/visual-parity/fixtures/components/tabs.ts b/renderers/react/visual-parity/fixtures/components/tabs.ts index bde89a58e..6bbdbc118 100644 --- a/renderers/react/visual-parity/fixtures/components/tabs.ts +++ b/renderers/react/visual-parity/fixtures/components/tabs.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Tabs component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/text.ts b/renderers/react/visual-parity/fixtures/components/text.ts index a1daf1e43..997c1dc14 100644 --- a/renderers/react/visual-parity/fixtures/components/text.ts +++ b/renderers/react/visual-parity/fixtures/components/text.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Text component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/textField.ts b/renderers/react/visual-parity/fixtures/components/textField.ts index 294d2023d..3ecce6992 100644 --- a/renderers/react/visual-parity/fixtures/components/textField.ts +++ b/renderers/react/visual-parity/fixtures/components/textField.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * TextField component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/components/video.ts b/renderers/react/visual-parity/fixtures/components/video.ts index 2f4f279c2..b60c376a5 100644 --- a/renderers/react/visual-parity/fixtures/components/video.ts +++ b/renderers/react/visual-parity/fixtures/components/video.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Video component fixtures for visual parity testing. */ diff --git a/renderers/react/visual-parity/fixtures/index.ts b/renderers/react/visual-parity/fixtures/index.ts index c4b403042..3fc301723 100644 --- a/renderers/react/visual-parity/fixtures/index.ts +++ b/renderers/react/visual-parity/fixtures/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Shared component fixtures for visual parity testing. * These fixtures are used by both React and Lit minimal pages. diff --git a/renderers/react/visual-parity/fixtures/nested/index.ts b/renderers/react/visual-parity/fixtures/nested/index.ts index 9f79e4e07..9eb0a39da 100644 --- a/renderers/react/visual-parity/fixtures/nested/index.ts +++ b/renderers/react/visual-parity/fixtures/nested/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Nested layout fixtures aggregation. */ diff --git a/renderers/react/visual-parity/fixtures/nested/layouts.ts b/renderers/react/visual-parity/fixtures/nested/layouts.ts index be44f6099..bc1d7022c 100644 --- a/renderers/react/visual-parity/fixtures/nested/layouts.ts +++ b/renderers/react/visual-parity/fixtures/nested/layouts.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Nested layout fixtures for visual parity testing. * Tests complex compositions of multiple components. diff --git a/renderers/react/visual-parity/fixtures/themes/index.ts b/renderers/react/visual-parity/fixtures/themes/index.ts index 24f307ee7..bc3e585fb 100644 --- a/renderers/react/visual-parity/fixtures/themes/index.ts +++ b/renderers/react/visual-parity/fixtures/themes/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Theme registry for visual parity tests. * Maps theme names to theme objects for URL-based theme selection. diff --git a/renderers/react/visual-parity/fixtures/themes/minimalTheme.ts b/renderers/react/visual-parity/fixtures/themes/minimalTheme.ts index f04ae2302..44dfea09c 100644 --- a/renderers/react/visual-parity/fixtures/themes/minimalTheme.ts +++ b/renderers/react/visual-parity/fixtures/themes/minimalTheme.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Minimal theme for visual parity tests. * A stripped-down theme using neutral colors and basic styling. diff --git a/renderers/react/visual-parity/fixtures/themes/visualParityTheme.ts b/renderers/react/visual-parity/fixtures/themes/visualParityTheme.ts index 956133949..89cfb61fe 100644 --- a/renderers/react/visual-parity/fixtures/themes/visualParityTheme.ts +++ b/renderers/react/visual-parity/fixtures/themes/visualParityTheme.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Visual parity theme for visual parity tests. * This is an alternate theme designed for testing theme switching. diff --git a/renderers/react/visual-parity/fixtures/types.ts b/renderers/react/visual-parity/fixtures/types.ts index df89a0cef..dfa9dfc70 100644 --- a/renderers/react/visual-parity/fixtures/types.ts +++ b/renderers/react/visual-parity/fixtures/types.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /** * Type definitions for component fixtures. */ diff --git a/renderers/react/visual-parity/lit/index.html b/renderers/react/visual-parity/lit/index.html index 4c56f31ba..10957335e 100644 --- a/renderers/react/visual-parity/lit/index.html +++ b/renderers/react/visual-parity/lit/index.html @@ -1,4 +1,20 @@ + + diff --git a/renderers/react/visual-parity/lit/src/main.ts b/renderers/react/visual-parity/lit/src/main.ts index 4d5d50c57..06031a05f 100644 --- a/renderers/react/visual-parity/lit/src/main.ts +++ b/renderers/react/visual-parity/lit/src/main.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { v0_8 } from '@a2ui/lit'; import * as UI from '@a2ui/lit/ui'; import { LitElement, html } from 'lit'; diff --git a/renderers/react/visual-parity/lit/vite.config.ts b/renderers/react/visual-parity/lit/vite.config.ts index ff6bf0a9a..d29920277 100644 --- a/renderers/react/visual-parity/lit/vite.config.ts +++ b/renderers/react/visual-parity/lit/vite.config.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { defineConfig } from 'vite'; export default defineConfig({ diff --git a/renderers/react/visual-parity/playwright.config.ts b/renderers/react/visual-parity/playwright.config.ts index 9db6c73d1..7526e246e 100644 --- a/renderers/react/visual-parity/playwright.config.ts +++ b/renderers/react/visual-parity/playwright.config.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { defineConfig, devices } from '@playwright/test'; /** diff --git a/renderers/react/visual-parity/react/index.html b/renderers/react/visual-parity/react/index.html index 5d44770b3..7dbb3db8f 100644 --- a/renderers/react/visual-parity/react/index.html +++ b/renderers/react/visual-parity/react/index.html @@ -1,4 +1,20 @@ + + diff --git a/renderers/react/visual-parity/react/src/FixturePage.tsx b/renderers/react/visual-parity/react/src/FixturePage.tsx index 45d7dd1f5..6f9df5220 100644 --- a/renderers/react/visual-parity/react/src/FixturePage.tsx +++ b/renderers/react/visual-parity/react/src/FixturePage.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React, { useEffect, useState } from 'react'; import { useA2UI, A2UIRenderer } from '@a2ui/react'; import type { Types } from '@a2ui/lit/0.8'; diff --git a/renderers/react/visual-parity/react/src/main.tsx b/renderers/react/visual-parity/react/src/main.tsx index d8b36089e..94a1ac9f4 100644 --- a/renderers/react/visual-parity/react/src/main.tsx +++ b/renderers/react/visual-parity/react/src/main.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React from 'react'; import ReactDOM from 'react-dom/client'; import { A2UIProvider, initializeDefaultCatalog } from '@a2ui/react'; diff --git a/renderers/react/visual-parity/react/vite.config.ts b/renderers/react/visual-parity/react/vite.config.ts index 87894cd9c..e3cb339d8 100644 --- a/renderers/react/visual-parity/react/vite.config.ts +++ b/renderers/react/visual-parity/react/vite.config.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import path from 'path'; diff --git a/renderers/react/visual-parity/tests/visual-parity.spec.ts b/renderers/react/visual-parity/tests/visual-parity.spec.ts index a7ffee8af..8c29f4035 100644 --- a/renderers/react/visual-parity/tests/visual-parity.spec.ts +++ b/renderers/react/visual-parity/tests/visual-parity.spec.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { test, expect } from '@playwright/test'; import { PNG } from 'pngjs'; import pixelmatch from 'pixelmatch'; diff --git a/renderers/react/vitest.config.ts b/renderers/react/vitest.config.ts index 3fa5ea5f0..51cded8c7 100644 --- a/renderers/react/vitest.config.ts +++ b/renderers/react/vitest.config.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { defineConfig } from 'vitest/config'; export default defineConfig({ From cec2d93ef47db221b636c3bf41030aa2f1960979 Mon Sep 17 00:00:00 2001 From: Ava Mattie <6314286+ava-cassiopeia@users.noreply.github.com> Date: Mon, 9 Mar 2026 09:13:53 -0600 Subject: [PATCH 49/53] Update formatter to match the Google TS style guide --- renderers/react/.prettierrc | 2 +- renderers/react/eslint.config.js | 3 + renderers/react/package-lock.json | 1319 ++++++++++++++++- renderers/react/package.json | 1 + .../src/components/content/AudioPlayer.tsx | 20 +- .../react/src/components/content/Divider.tsx | 20 +- .../react/src/components/content/Icon.tsx | 17 +- .../react/src/components/content/Image.tsx | 22 +- .../react/src/components/content/Text.tsx | 32 +- .../react/src/components/content/Video.tsx | 25 +- .../react/src/components/content/index.ts | 12 +- .../src/components/interactive/Button.tsx | 22 +- .../src/components/interactive/CheckBox.tsx | 25 +- .../components/interactive/DateTimeInput.tsx | 29 +- .../components/interactive/MultipleChoice.tsx | 27 +- .../src/components/interactive/Slider.tsx | 33 +- .../src/components/interactive/TextField.tsx | 32 +- .../react/src/components/interactive/index.ts | 12 +- .../react/src/components/layout/Card.tsx | 33 +- .../react/src/components/layout/Column.tsx | 43 +- .../react/src/components/layout/List.tsx | 33 +- .../react/src/components/layout/Modal.tsx | 21 +- renderers/react/src/components/layout/Row.tsx | 40 +- .../react/src/components/layout/Tabs.tsx | 89 +- .../react/src/components/layout/index.ts | 12 +- renderers/react/src/core/A2UIProvider.tsx | 29 +- renderers/react/src/core/A2UIRenderer.tsx | 20 +- renderers/react/src/core/A2UIViewer.tsx | 36 +- renderers/react/src/core/ComponentNode.tsx | 6 +- renderers/react/src/core/store.ts | 2 +- renderers/react/src/hooks/useA2UI.ts | 2 +- renderers/react/src/hooks/useA2UIComponent.ts | 17 +- renderers/react/src/index.ts | 73 +- renderers/react/src/lib/utils.ts | 4 +- .../react/src/registry/ComponentRegistry.ts | 4 +- .../react/src/registry/defaultCatalog.ts | 74 +- renderers/react/src/styles/index.ts | 2 +- renderers/react/src/theme/ThemeContext.tsx | 12 +- renderers/react/src/theme/litTheme.ts | 2 +- renderers/react/src/types.ts | 11 +- 40 files changed, 1748 insertions(+), 470 deletions(-) diff --git a/renderers/react/.prettierrc b/renderers/react/.prettierrc index d74e3c1c2..e3f98b825 100644 --- a/renderers/react/.prettierrc +++ b/renderers/react/.prettierrc @@ -4,6 +4,6 @@ "tabWidth": 2, "trailingComma": "es5", "printWidth": 100, - "bracketSpacing": true, + "bracketSpacing": false, "jsxSingleQuote": false } diff --git a/renderers/react/eslint.config.js b/renderers/react/eslint.config.js index fcd0f636a..5d0ef5fa5 100644 --- a/renderers/react/eslint.config.js +++ b/renderers/react/eslint.config.js @@ -27,6 +27,9 @@ export default tseslint.config( // TypeScript recommended rules ...tseslint.configs.recommended, + // Google + ...require('gts'), + // React configuration { files: ['**/*.{ts,tsx}'], diff --git a/renderers/react/package-lock.json b/renderers/react/package-lock.json index e628991ed..68d1059ca 100644 --- a/renderers/react/package-lock.json +++ b/renderers/react/package-lock.json @@ -24,6 +24,7 @@ "eslint-config-prettier": "^10.0.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^5.0.0", + "gts": "^7.0.0", "jsdom": "^28.0.0", "prettier": "^3.4.0", "react": "^18.3.0", @@ -125,7 +126,6 @@ "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", @@ -141,7 +141,6 @@ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -983,6 +982,19 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.57.1", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", @@ -1481,6 +1493,20 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/prop-types": { "version": "15.7.15", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", @@ -1939,13 +1965,28 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -2125,6 +2166,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/assertion-error": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", @@ -2275,6 +2326,34 @@ "node": ">=6" } }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/chai": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", @@ -2318,6 +2397,13 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, "node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -2334,6 +2420,29 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -2542,6 +2651,43 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/decimal.js": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", @@ -2638,6 +2784,27 @@ "node": ">= 0.4" } }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", + "integrity": "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -2650,6 +2817,16 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, "node_modules/es-abstract": { "version": "1.24.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", @@ -2949,6 +3126,35 @@ } } }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/eslint-config-prettier": { "version": "10.1.8", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", @@ -2965,6 +3171,112 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-plugin-es-x": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-n": { + "version": "17.24.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.24.0.tgz", + "integrity": "sha512-/gC7/KAYmfNnPNOb3eu8vw+TdVnV0zhdQwexsw6FLXbhzroVj20vRn2qL8lDWDGnAQ2J8DhdfvXxX9EoxvERvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.5.0", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "globrex": "^0.1.2", + "ignore": "^5.3.2", + "semver": "^7.6.3", + "ts-declaration-location": "^1.0.6" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz", + "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.1", + "synckit": "^0.11.12" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/eslint-plugin-react": { "version": "7.37.5", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", @@ -3115,6 +3427,30 @@ "node": ">=0.10.0" } }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, "node_modules/expect-type": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", @@ -3125,6 +3461,21 @@ "node": ">=12.0.0" } }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3132,6 +3483,13 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3164,6 +3522,32 @@ } } }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -3348,6 +3732,19 @@ "node": ">= 0.4" } }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -3366,6 +3763,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-tsconfig": { + "version": "4.13.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", + "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3409,6 +3819,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true, + "license": "MIT" + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -3422,12 +3839,63 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, - "license": "MIT", + "license": "ISC" + }, + "node_modules/gts": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gts/-/gts-7.0.0.tgz", + "integrity": "sha512-5Sb73zpklh7GyYRd14QUwa6+4n99b7JqECc+bS2fRYlSK40SXu7Po3//q4jBAP/CQwR+VbUPiOLxJf5zpp4Ajw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/js": "^9.37.0", + "@typescript-eslint/eslint-plugin": "^8.46.1", + "@typescript-eslint/parser": "^8.46.1", + "chalk": "^4.1.2", + "eslint": "^9.37.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-n": "^17.23.1", + "eslint-plugin-prettier": "^5.5.4", + "execa": "^5.0.0", + "inquirer": "^7.3.3", + "json5": "^2.1.3", + "meow": "^9.0.0", + "ncp": "^2.0.0", + "prettier": "^3.6.2", + "typescript-eslint": "^8.46.1", + "write-file-atomic": "^6.0.0" + }, + "bin": { + "gts": "build/src/cli.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "typescript": ">=5" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3516,6 +3984,32 @@ "node": ">= 0.4" } }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/html-encoding-sniffer": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", @@ -3557,6 +4051,29 @@ "node": ">= 14" } }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3614,6 +4131,31 @@ "node": ">=8" } }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", @@ -3647,6 +4189,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, "node_modules/is-async-function": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", @@ -3790,6 +4339,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-generator-function": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", @@ -3866,6 +4425,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -3921,6 +4490,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-string": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", @@ -4127,6 +4709,13 @@ "dev": true, "license": "MIT" }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -4141,6 +4730,19 @@ "dev": true, "license": "MIT" }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -4167,6 +4769,16 @@ "json-buffer": "3.0.1" } }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4236,6 +4848,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -4287,6 +4906,19 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -4327,6 +4959,63 @@ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "license": "MIT" }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -4350,6 +5039,21 @@ "node": "*" } }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/mlly": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", @@ -4370,6 +5074,13 @@ "dev": true, "license": "MIT" }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -4408,6 +5119,58 @@ "dev": true, "license": "MIT" }, + "node_modules/ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "dev": true, + "license": "MIT", + "bin": { + "ncp": "bin/ncp" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -4527,6 +5290,22 @@ ], "license": "MIT" }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -4545,6 +5324,16 @@ "node": ">= 0.8.0" } }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", @@ -4595,6 +5384,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4608,6 +5407,25 @@ "node": ">=6" } }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse5": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", @@ -4818,6 +5636,19 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -4872,6 +5703,16 @@ "node": ">=6" } }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -4907,10 +5748,171 @@ "license": "MIT", "peer": true }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", "engines": { @@ -5017,6 +6019,30 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/rollup": { "version": "4.57.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", @@ -5062,6 +6088,29 @@ "fsevents": "~2.3.2" } }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -5117,6 +6166,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -5305,6 +6361,13 @@ "dev": true, "license": "ISC" }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/source-map": { "version": "0.7.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", @@ -5325,6 +6388,42 @@ "node": ">=0.10.0" } }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -5353,6 +6452,21 @@ "node": ">= 0.4" } }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.matchall": { "version": "4.0.12", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", @@ -5451,6 +6565,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -5533,6 +6670,36 @@ "dev": true, "license": "MIT" }, + "node_modules/synckit": { + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", + "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -5556,6 +6723,13 @@ "node": ">=0.8" } }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -5617,6 +6791,19 @@ "dev": true, "license": "MIT" }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/tough-cookie": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", @@ -5653,6 +6840,16 @@ "tree-kill": "cli.js" } }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/ts-api-utils": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", @@ -5666,6 +6863,29 @@ "typescript": ">=4.8.4" } }, + "node_modules/ts-declaration-location": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz", + "integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==", + "dev": true, + "funding": [ + { + "type": "ko-fi", + "url": "https://ko-fi.com/rebeccastevens" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/ts-declaration-location" + } + ], + "license": "BSD-3-Clause", + "dependencies": { + "picomatch": "^4.0.2" + }, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -5673,6 +6893,13 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, "node_modules/tsup": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", @@ -5739,6 +6966,19 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -5907,6 +7147,17 @@ "punycode": "^2.1.0" } }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "node_modules/vite": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", @@ -6250,6 +7501,33 @@ "node": ">=0.10.0" } }, + "node_modules/write-file-atomic": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz", + "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", @@ -6267,6 +7545,23 @@ "dev": true, "license": "MIT" }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/renderers/react/package.json b/renderers/react/package.json index 04e91c475..921eeca17 100644 --- a/renderers/react/package.json +++ b/renderers/react/package.json @@ -67,6 +67,7 @@ "eslint-config-prettier": "^10.0.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^5.0.0", + "gts": "^7.0.0", "jsdom": "^28.0.0", "prettier": "^3.4.0", "react": "^18.3.0", diff --git a/renderers/react/src/components/content/AudioPlayer.tsx b/renderers/react/src/components/content/AudioPlayer.tsx index 8ef6cdf10..280c241f8 100644 --- a/renderers/react/src/components/content/AudioPlayer.tsx +++ b/renderers/react/src/components/content/AudioPlayer.tsx @@ -14,17 +14,20 @@ * limitations under the License. */ -import { memo } from 'react'; +import {memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps } from '../../types'; -import { useA2UIComponent } from '../../hooks/useA2UIComponent'; -import { classMapToString, stylesToObject } from '../../lib/utils'; +import type {A2UIComponentProps} from '../../types'; +import {useA2UIComponent} from '../../hooks/useA2UIComponent'; +import {classMapToString, stylesToObject} from '../../lib/utils'; /** * AudioPlayer component - renders an audio player with optional description. */ -export const AudioPlayer = memo(function AudioPlayer({ node, surfaceId }: A2UIComponentProps) { - const { theme, resolveString } = useA2UIComponent(node, surfaceId); +export const AudioPlayer = memo(function AudioPlayer({ + node, + surfaceId, +}: A2UIComponentProps) { + const {theme, resolveString} = useA2UIComponent(node, surfaceId); const props = node.properties; const url = resolveString(props.url); @@ -35,9 +38,8 @@ export const AudioPlayer = memo(function AudioPlayer({ node, surfaceId }: A2UICo } // Apply --weight CSS variable on root div (:host equivalent) for flex layouts - const hostStyle: React.CSSProperties = node.weight !== undefined - ? { '--weight': node.weight } as React.CSSProperties - : {}; + const hostStyle: React.CSSProperties = + node.weight !== undefined ? ({'--weight': node.weight} as React.CSSProperties) : {}; return (

diff --git a/renderers/react/src/components/layout/Modal.tsx b/renderers/react/src/components/layout/Modal.tsx index 740ff1757..b20b2e6ce 100644 --- a/renderers/react/src/components/layout/Modal.tsx +++ b/renderers/react/src/components/layout/Modal.tsx @@ -14,12 +14,12 @@ * limitations under the License. */ -import { useState, useCallback, useRef, useEffect, memo } from 'react'; +import {useState, useCallback, useRef, useEffect, memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps } from '../../types'; -import { useA2UIComponent } from '../../hooks/useA2UIComponent'; -import { classMapToString, stylesToObject } from '../../lib/utils'; -import { ComponentNode } from '../../core/ComponentNode'; +import type {A2UIComponentProps} from '../../types'; +import {useA2UIComponent} from '../../hooks/useA2UIComponent'; +import {classMapToString, stylesToObject} from '../../lib/utils'; +import {ComponentNode} from '../../core/ComponentNode'; /** * Modal component - displays content in a dialog overlay. @@ -31,8 +31,8 @@ import { ComponentNode } from '../../core/ComponentNode'; * The dialog is rendered in place (no portal) so it stays inside .a2ui-surface * and CSS selectors work correctly. showModal() handles the top-layer overlay. */ -export const Modal = memo(function Modal({ node, surfaceId }: A2UIComponentProps) { - const { theme } = useA2UIComponent(node, surfaceId); +export const Modal = memo(function Modal({node, surfaceId}: A2UIComponentProps) { + const {theme} = useA2UIComponent(node, surfaceId); const props = node.properties; const [isOpen, setIsOpen] = useState(false); @@ -84,15 +84,14 @@ export const Modal = memo(function Modal({ node, surfaceId }: A2UIComponentProps ); // Apply --weight CSS variable on root div (:host equivalent) for flex layouts - const hostStyle: React.CSSProperties = node.weight !== undefined - ? { '--weight': node.weight } as React.CSSProperties - : {}; + const hostStyle: React.CSSProperties = + node.weight !== undefined ? ({'--weight': node.weight} as React.CSSProperties) : {}; // Match Lit's render approach: closed shows section with entry, open shows dialog if (!isOpen) { return (
-
+
diff --git a/renderers/react/src/components/layout/Row.tsx b/renderers/react/src/components/layout/Row.tsx index 08214066c..a38b012d1 100644 --- a/renderers/react/src/components/layout/Row.tsx +++ b/renderers/react/src/components/layout/Row.tsx @@ -14,20 +14,20 @@ * limitations under the License. */ -import { memo } from 'react'; +import {memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps } from '../../types'; -import { useA2UIComponent } from '../../hooks/useA2UIComponent'; -import { classMapToString, stylesToObject } from '../../lib/utils'; -import { ComponentNode } from '../../core/ComponentNode'; +import type {A2UIComponentProps} from '../../types'; +import {useA2UIComponent} from '../../hooks/useA2UIComponent'; +import {classMapToString, stylesToObject} from '../../lib/utils'; +import {ComponentNode} from '../../core/ComponentNode'; /** * Row component - arranges children horizontally using flexbox. * * Supports distribution (justify-content) and alignment (align-items) properties. */ -export const Row = memo(function Row({ node, surfaceId }: A2UIComponentProps) { - const { theme } = useA2UIComponent(node, surfaceId); +export const Row = memo(function Row({node, surfaceId}: A2UIComponentProps) { + const {theme} = useA2UIComponent(node, surfaceId); const props = node.properties; // Match Lit's default values @@ -37,23 +37,29 @@ export const Row = memo(function Row({ node, surfaceId }: A2UIComponentProps +
{children.map((child, index) => { - const childId = typeof child === 'object' && child !== null && 'id' in child - ? (child as Types.AnyComponentNode).id - : `child-${index}`; - const childNode = typeof child === 'object' && child !== null && 'type' in child - ? (child as Types.AnyComponentNode) - : null; + const childId = + typeof child === 'object' && child !== null && 'id' in child + ? (child as Types.AnyComponentNode).id + : `child-${index}`; + const childNode = + typeof child === 'object' && child !== null && 'type' in child + ? (child as Types.AnyComponentNode) + : null; return ; })}
diff --git a/renderers/react/src/components/layout/Tabs.tsx b/renderers/react/src/components/layout/Tabs.tsx index b09e6912e..e4067ef20 100644 --- a/renderers/react/src/components/layout/Tabs.tsx +++ b/renderers/react/src/components/layout/Tabs.tsx @@ -14,18 +14,18 @@ * limitations under the License. */ -import { useState, memo } from 'react'; +import {useState, memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps } from '../../types'; -import { useA2UIComponent } from '../../hooks/useA2UIComponent'; -import { classMapToString, stylesToObject, mergeClassMaps } from '../../lib/utils'; -import { ComponentNode } from '../../core/ComponentNode'; +import type {A2UIComponentProps} from '../../types'; +import {useA2UIComponent} from '../../hooks/useA2UIComponent'; +import {classMapToString, stylesToObject, mergeClassMaps} from '../../lib/utils'; +import {ComponentNode} from '../../core/ComponentNode'; /** * Tabs component - displays content in switchable tabs. */ -export const Tabs = memo(function Tabs({ node, surfaceId }: A2UIComponentProps) { - const { theme, resolveString } = useA2UIComponent(node, surfaceId); +export const Tabs = memo(function Tabs({node, surfaceId}: A2UIComponentProps) { + const {theme, resolveString} = useA2UIComponent(node, surfaceId); const props = node.properties; const [selectedIndex, setSelectedIndex] = useState(0); @@ -33,54 +33,47 @@ export const Tabs = memo(function Tabs({ node, surfaceId }: A2UIComponentProps -
- {/* Tab buttons - uses Tabs.element for the container */} -
- {tabItems.map((tab, index) => { - const title = resolveString(tab.title); - const isSelected = index === selectedIndex; + {/* Tab buttons - uses Tabs.element for the container */} +
+ {tabItems.map((tab, index) => { + const title = resolveString(tab.title); + const isSelected = index === selectedIndex; - // Lit merges all + selected classes when selected - const classes = isSelected - ? mergeClassMaps( - theme.components.Tabs.controls.all, - theme.components.Tabs.controls.selected - ) - : theme.components.Tabs.controls.all; + // Lit merges all + selected classes when selected + const classes = isSelected + ? mergeClassMaps( + theme.components.Tabs.controls.all, + theme.components.Tabs.controls.selected + ) + : theme.components.Tabs.controls.all; - return ( - - ); - })} -
+ return ( + + ); + })} +
- {/* Tab content */} - {tabItems[selectedIndex] && ( - - )} -
+ {/* Tab content */} + {tabItems[selectedIndex] && ( + + )} +
); }); diff --git a/renderers/react/src/components/layout/index.ts b/renderers/react/src/components/layout/index.ts index 7cdad93d7..1add6cea7 100644 --- a/renderers/react/src/components/layout/index.ts +++ b/renderers/react/src/components/layout/index.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -export { Row } from './Row'; -export { Column } from './Column'; -export { List } from './List'; -export { Card } from './Card'; -export { Tabs } from './Tabs'; -export { Modal } from './Modal'; +export {Row} from './Row'; +export {Column} from './Column'; +export {List} from './List'; +export {Card} from './Card'; +export {Tabs} from './Tabs'; +export {Modal} from './Modal'; diff --git a/renderers/react/src/core/A2UIProvider.tsx b/renderers/react/src/core/A2UIProvider.tsx index a01ffa84e..045bb122f 100644 --- a/renderers/react/src/core/A2UIProvider.tsx +++ b/renderers/react/src/core/A2UIProvider.tsx @@ -14,21 +14,14 @@ * limitations under the License. */ -import { - createContext, - useContext, - useRef, - useState, - useMemo, - type ReactNode, -} from 'react'; +import {createContext, useContext, useRef, useState, useMemo, type ReactNode} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import { A2uiMessageProcessor } from '@a2ui/web_core/data/model-processor'; -import type { A2UIContextValue, A2UIActions } from './store'; -import { ThemeProvider } from '../theme/ThemeContext'; -import { initializeDefaultCatalog } from '../registry/defaultCatalog'; -import { injectStyles } from '../styles'; -import type { OnActionCallback } from '../types'; +import {A2uiMessageProcessor} from '@a2ui/web_core/data/model-processor'; +import type {A2UIContextValue, A2UIActions} from './store'; +import {ThemeProvider} from '../theme/ThemeContext'; +import {initializeDefaultCatalog} from '../registry/defaultCatalog'; +import {injectStyles} from '../styles'; +import type {OnActionCallback} from '../types'; // Auto-initialize catalog and styles once on first import let initialized = false; @@ -50,7 +43,7 @@ const A2UIActionsContext = createContext(null); * Context for reactive state (changes trigger re-renders). * Only components that need to react to state changes subscribe to this. */ -const A2UIStateContext = createContext<{ version: number } | null>(null); +const A2UIStateContext = createContext<{version: number} | null>(null); /** * Props for the A2UIProvider component. @@ -90,7 +83,7 @@ export interface A2UIProviderProps { * } * ``` */ -export function A2UIProvider({ onAction, theme, children }: A2UIProviderProps) { +export function A2UIProvider({onAction, theme, children}: A2UIProviderProps) { ensureInitialized(); // Create message processor only once using ref @@ -157,7 +150,7 @@ export function A2UIProvider({ onAction, theme, children }: A2UIProviderProps) { const actions = actionsRef.current; // State context value - only changes when version changes - const stateValue = useMemo(() => ({ version }), [version]); + const stateValue = useMemo(() => ({version}), [version]); return ( @@ -190,7 +183,7 @@ export function useA2UIActions(): A2UIActions { * @returns Current version number * @throws If used outside of an A2UIProvider */ -export function useA2UIState(): { version: number } { +export function useA2UIState(): {version: number} { const state = useContext(A2UIStateContext); if (!state) { throw new Error('useA2UIState must be used within an A2UIProvider'); diff --git a/renderers/react/src/core/A2UIRenderer.tsx b/renderers/react/src/core/A2UIRenderer.tsx index 93ec02736..a674bd2f9 100644 --- a/renderers/react/src/core/A2UIRenderer.tsx +++ b/renderers/react/src/core/A2UIRenderer.tsx @@ -14,16 +14,16 @@ * limitations under the License. */ -import { Suspense, useMemo, memo, type ReactNode } from 'react'; -import { useA2UI } from '../hooks/useA2UI'; -import { ComponentNode } from './ComponentNode'; -import { type ComponentRegistry } from '../registry/ComponentRegistry'; -import { cn } from '../lib/utils'; +import {Suspense, useMemo, memo, type ReactNode} from 'react'; +import {useA2UI} from '../hooks/useA2UI'; +import {ComponentNode} from './ComponentNode'; +import {type ComponentRegistry} from '../registry/ComponentRegistry'; +import {cn} from '../lib/utils'; /** Default loading fallback - memoized to prevent recreation */ const DefaultLoadingFallback = memo(function DefaultLoadingFallback() { return ( -
+
Loading...
); @@ -68,7 +68,7 @@ export const A2UIRenderer = memo(function A2UIRenderer({ loadingFallback, registry, }: A2UIRendererProps) { - const { getSurface, version } = useA2UI(); + const {getSurface, version} = useA2UI(); // Get surface - this will re-render when version changes const surface = getSurface(surfaceId); @@ -133,11 +133,7 @@ export const A2UIRenderer = memo(function A2UIRenderer({ data-version={version} > - +
); diff --git a/renderers/react/src/core/A2UIViewer.tsx b/renderers/react/src/core/A2UIViewer.tsx index f2403b42b..fae5413dc 100644 --- a/renderers/react/src/core/A2UIViewer.tsx +++ b/renderers/react/src/core/A2UIViewer.tsx @@ -16,12 +16,12 @@ 'use client'; -import React, { useId, useMemo, useEffect, useRef } from 'react'; +import React, {useId, useMemo, useEffect, useRef} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import { A2UIProvider, useA2UIActions } from './A2UIProvider'; -import { A2UIRenderer } from './A2UIRenderer'; -import { litTheme } from '../theme/litTheme'; -import type { OnActionCallback } from '../types'; +import {A2UIProvider, useA2UIActions} from './A2UIProvider'; +import {A2UIRenderer} from './A2UIRenderer'; +import {litTheme} from '../theme/litTheme'; +import type {OnActionCallback} from '../types'; /** * Component instance format for static A2UI definitions. @@ -143,7 +143,7 @@ function A2UIViewerInner({ data: Record; className?: string; }) { - const { processMessages } = useA2UIActions(); + const {processMessages} = useA2UIActions(); const lastProcessedRef = useRef(''); // Process messages when props change @@ -153,8 +153,8 @@ function A2UIViewerInner({ lastProcessedRef.current = key; const messages: Types.ServerToClientMessage[] = [ - { beginRendering: { surfaceId, root, styles: {} } }, - { surfaceUpdate: { surfaceId, components } }, + {beginRendering: {surfaceId, root, styles: {}}}, + {surfaceUpdate: {surfaceId, components}}, ]; // Add data model updates @@ -162,7 +162,7 @@ function A2UIViewerInner({ const contents = objectToValueMaps(data); if (contents.length > 0) { messages.push({ - dataModelUpdate: { surfaceId, path: '/', contents }, + dataModelUpdate: {surfaceId, path: '/', contents}, }); } } @@ -190,28 +190,26 @@ function objectToValueMaps(obj: Record): Types.ValueMap[] { */ function valueToValueMap(key: string, value: unknown): Types.ValueMap { if (typeof value === 'string') { - return { key, valueString: value }; + return {key, valueString: value}; } if (typeof value === 'number') { - return { key, valueNumber: value }; + return {key, valueNumber: value}; } if (typeof value === 'boolean') { - return { key, valueBoolean: value }; + return {key, valueBoolean: value}; } if (value === null || value === undefined) { - return { key }; + return {key}; } if (Array.isArray(value)) { - const valueMap = value.map((item, index) => - valueToValueMap(String(index), item) - ); - return { key, valueMap }; + const valueMap = value.map((item, index) => valueToValueMap(String(index), item)); + return {key, valueMap}; } if (typeof value === 'object') { const valueMap = objectToValueMaps(value as Record); - return { key, valueMap }; + return {key, valueMap}; } - return { key }; + return {key}; } export default A2UIViewer; diff --git a/renderers/react/src/core/ComponentNode.tsx b/renderers/react/src/core/ComponentNode.tsx index 27906e4bc..acb2cf4af 100644 --- a/renderers/react/src/core/ComponentNode.tsx +++ b/renderers/react/src/core/ComponentNode.tsx @@ -14,14 +14,14 @@ * limitations under the License. */ -import { Suspense, useMemo, memo } from 'react'; +import {Suspense, useMemo, memo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import { ComponentRegistry } from '../registry/ComponentRegistry'; +import {ComponentRegistry} from '../registry/ComponentRegistry'; /** Memoized loading fallback to avoid recreating on each render */ const LoadingFallback = memo(function LoadingFallback() { return ( -
+
Loading...
); diff --git a/renderers/react/src/core/store.ts b/renderers/react/src/core/store.ts index 95f1a3331..b568b2c8b 100644 --- a/renderers/react/src/core/store.ts +++ b/renderers/react/src/core/store.ts @@ -15,7 +15,7 @@ */ import type * as Types from '@a2ui/web_core/types/types'; -import type { OnActionCallback } from '../types'; +import type {OnActionCallback} from '../types'; /** * Stable actions that never change (won't cause re-renders). diff --git a/renderers/react/src/hooks/useA2UI.ts b/renderers/react/src/hooks/useA2UI.ts index 40c82be45..82529b6e9 100644 --- a/renderers/react/src/hooks/useA2UI.ts +++ b/renderers/react/src/hooks/useA2UI.ts @@ -15,7 +15,7 @@ */ import type * as Types from '@a2ui/web_core/types/types'; -import { useA2UIActions, useA2UIState } from '../core/A2UIProvider'; +import {useA2UIActions, useA2UIState} from '../core/A2UIProvider'; /** * Result returned by the useA2UI hook. diff --git a/renderers/react/src/hooks/useA2UIComponent.ts b/renderers/react/src/hooks/useA2UIComponent.ts index 777a697e8..03fbb2bb4 100644 --- a/renderers/react/src/hooks/useA2UIComponent.ts +++ b/renderers/react/src/hooks/useA2UIComponent.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { useCallback, useId, useMemo } from 'react'; +import {useCallback, useId, useMemo} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type * as Primitives from '@a2ui/web_core/types/primitives'; -import { useA2UIActions, useA2UIState } from '../core/A2UIProvider'; -import { useTheme } from '../theme/ThemeContext'; +import {useA2UIActions, useA2UIState} from '../core/A2UIProvider'; +import {useTheme} from '../theme/ThemeContext'; /** * Result returned by the useA2UIComponent hook. @@ -240,6 +240,15 @@ export function useA2UIComponent( sendAction, getUniqueId, }), - [theme, resolveString, resolveNumber, resolveBoolean, setValue, getValue, sendAction, getUniqueId] + [ + theme, + resolveString, + resolveNumber, + resolveBoolean, + setValue, + getValue, + sendAction, + getUniqueId, + ] ); } diff --git a/renderers/react/src/index.ts b/renderers/react/src/index.ts index 525046715..4ed8c4a87 100644 --- a/renderers/react/src/index.ts +++ b/renderers/react/src/index.ts @@ -15,35 +15,30 @@ */ // Core components and provider -export { - A2UIProvider, - useA2UIActions, - useA2UIState, - useA2UIContext, -} from './core/A2UIProvider'; -export type { A2UIProviderProps } from './core/A2UIProvider'; -export { A2UIRenderer } from './core/A2UIRenderer'; -export type { A2UIRendererProps } from './core/A2UIRenderer'; -export { A2UIViewer } from './core/A2UIViewer'; -export type { A2UIViewerProps, ComponentInstance, A2UIActionEvent } from './core/A2UIViewer'; -export { ComponentNode } from './core/ComponentNode'; +export {A2UIProvider, useA2UIActions, useA2UIState, useA2UIContext} from './core/A2UIProvider'; +export type {A2UIProviderProps} from './core/A2UIProvider'; +export {A2UIRenderer} from './core/A2UIRenderer'; +export type {A2UIRendererProps} from './core/A2UIRenderer'; +export {A2UIViewer} from './core/A2UIViewer'; +export type {A2UIViewerProps, ComponentInstance, A2UIActionEvent} from './core/A2UIViewer'; +export {ComponentNode} from './core/ComponentNode'; // Hooks -export { useA2UI } from './hooks/useA2UI'; -export type { UseA2UIResult } from './hooks/useA2UI'; -export { useA2UIComponent } from './hooks/useA2UIComponent'; -export type { UseA2UIComponentResult } from './hooks/useA2UIComponent'; +export {useA2UI} from './hooks/useA2UI'; +export type {UseA2UIResult} from './hooks/useA2UI'; +export {useA2UIComponent} from './hooks/useA2UIComponent'; +export type {UseA2UIComponentResult} from './hooks/useA2UIComponent'; // Registry -export { ComponentRegistry } from './registry/ComponentRegistry'; -export { registerDefaultCatalog, initializeDefaultCatalog } from './registry/defaultCatalog'; +export {ComponentRegistry} from './registry/ComponentRegistry'; +export {registerDefaultCatalog, initializeDefaultCatalog} from './registry/defaultCatalog'; // Theme -export { ThemeProvider, useTheme, useThemeOptional } from './theme/ThemeContext'; -export { litTheme, defaultTheme } from './theme/litTheme'; +export {ThemeProvider, useTheme, useThemeOptional} from './theme/ThemeContext'; +export {litTheme, defaultTheme} from './theme/litTheme'; // Utilities -export { cn, classMapToString, stylesToObject } from './lib/utils'; +export {cn, classMapToString, stylesToObject} from './lib/utils'; // Types - re-export from types export type { @@ -69,25 +64,25 @@ export type { } from './types'; // Content components -export { Text } from './components/content/Text'; -export { Image } from './components/content/Image'; -export { Icon } from './components/content/Icon'; -export { Divider } from './components/content/Divider'; -export { Video } from './components/content/Video'; -export { AudioPlayer } from './components/content/AudioPlayer'; +export {Text} from './components/content/Text'; +export {Image} from './components/content/Image'; +export {Icon} from './components/content/Icon'; +export {Divider} from './components/content/Divider'; +export {Video} from './components/content/Video'; +export {AudioPlayer} from './components/content/AudioPlayer'; // Layout components -export { Row } from './components/layout/Row'; -export { Column } from './components/layout/Column'; -export { List } from './components/layout/List'; -export { Card } from './components/layout/Card'; -export { Tabs } from './components/layout/Tabs'; -export { Modal } from './components/layout/Modal'; +export {Row} from './components/layout/Row'; +export {Column} from './components/layout/Column'; +export {List} from './components/layout/List'; +export {Card} from './components/layout/Card'; +export {Tabs} from './components/layout/Tabs'; +export {Modal} from './components/layout/Modal'; // Interactive components -export { Button } from './components/interactive/Button'; -export { TextField } from './components/interactive/TextField'; -export { CheckBox } from './components/interactive/CheckBox'; -export { Slider } from './components/interactive/Slider'; -export { DateTimeInput } from './components/interactive/DateTimeInput'; -export { MultipleChoice } from './components/interactive/MultipleChoice'; +export {Button} from './components/interactive/Button'; +export {TextField} from './components/interactive/TextField'; +export {CheckBox} from './components/interactive/CheckBox'; +export {Slider} from './components/interactive/Slider'; +export {DateTimeInput} from './components/interactive/DateTimeInput'; +export {MultipleChoice} from './components/interactive/MultipleChoice'; diff --git a/renderers/react/src/lib/utils.ts b/renderers/react/src/lib/utils.ts index 410053f56..4d3091436 100644 --- a/renderers/react/src/lib/utils.ts +++ b/renderers/react/src/lib/utils.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { clsx, type ClassValue } from 'clsx'; +import {clsx, type ClassValue} from 'clsx'; import * as Styles from '@a2ui/web_core/styles/index'; /** @@ -38,7 +38,7 @@ export function cn(...inputs: ClassValue[]): string { * @param classMap - An object where keys are class names and values are booleans * @returns A space-separated string of class names where the value is true */ -export { classMapToString, stylesToObject } from '../theme/utils'; +export {classMapToString, stylesToObject} from '../theme/utils'; /** * Merges multiple class maps into a single class map. diff --git a/renderers/react/src/registry/ComponentRegistry.ts b/renderers/react/src/registry/ComponentRegistry.ts index 013abca4f..d1223c2eb 100644 --- a/renderers/react/src/registry/ComponentRegistry.ts +++ b/renderers/react/src/registry/ComponentRegistry.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import { lazy, type ComponentType } from 'react'; +import {lazy, type ComponentType} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import type { A2UIComponentProps, ComponentLoader, ComponentRegistration } from '../types'; +import type {A2UIComponentProps, ComponentLoader, ComponentRegistration} from '../types'; /** * Registry for A2UI components. Allows registration of custom components diff --git a/renderers/react/src/registry/defaultCatalog.ts b/renderers/react/src/registry/defaultCatalog.ts index 672b197ec..b7036addc 100644 --- a/renderers/react/src/registry/defaultCatalog.ts +++ b/renderers/react/src/registry/defaultCatalog.ts @@ -14,31 +14,31 @@ * limitations under the License. */ -import { ComponentRegistry } from './ComponentRegistry'; +import {ComponentRegistry} from './ComponentRegistry'; // Content components -import { Text } from '../components/content/Text'; -import { Image } from '../components/content/Image'; -import { Icon } from '../components/content/Icon'; -import { Divider } from '../components/content/Divider'; -import { Video } from '../components/content/Video'; -import { AudioPlayer } from '../components/content/AudioPlayer'; +import {Text} from '../components/content/Text'; +import {Image} from '../components/content/Image'; +import {Icon} from '../components/content/Icon'; +import {Divider} from '../components/content/Divider'; +import {Video} from '../components/content/Video'; +import {AudioPlayer} from '../components/content/AudioPlayer'; // Layout components -import { Row } from '../components/layout/Row'; -import { Column } from '../components/layout/Column'; -import { List } from '../components/layout/List'; -import { Card } from '../components/layout/Card'; -import { Tabs } from '../components/layout/Tabs'; -import { Modal } from '../components/layout/Modal'; +import {Row} from '../components/layout/Row'; +import {Column} from '../components/layout/Column'; +import {List} from '../components/layout/List'; +import {Card} from '../components/layout/Card'; +import {Tabs} from '../components/layout/Tabs'; +import {Modal} from '../components/layout/Modal'; // Interactive components -import { Button } from '../components/interactive/Button'; -import { TextField } from '../components/interactive/TextField'; -import { CheckBox } from '../components/interactive/CheckBox'; -import { Slider } from '../components/interactive/Slider'; -import { DateTimeInput } from '../components/interactive/DateTimeInput'; -import { MultipleChoice } from '../components/interactive/MultipleChoice'; +import {Button} from '../components/interactive/Button'; +import {TextField} from '../components/interactive/TextField'; +import {CheckBox} from '../components/interactive/CheckBox'; +import {Slider} from '../components/interactive/Slider'; +import {DateTimeInput} from '../components/interactive/DateTimeInput'; +import {MultipleChoice} from '../components/interactive/MultipleChoice'; /** * Registers all standard A2UI components in the registry. @@ -47,30 +47,30 @@ import { MultipleChoice } from '../components/interactive/MultipleChoice'; */ export function registerDefaultCatalog(registry: ComponentRegistry): void { // Content components (small, load immediately) - registry.register('Text', { component: Text }); - registry.register('Image', { component: Image }); - registry.register('Icon', { component: Icon }); - registry.register('Divider', { component: Divider }); - registry.register('Video', { component: Video }); - registry.register('AudioPlayer', { component: AudioPlayer }); + registry.register('Text', {component: Text}); + registry.register('Image', {component: Image}); + registry.register('Icon', {component: Icon}); + registry.register('Divider', {component: Divider}); + registry.register('Video', {component: Video}); + registry.register('AudioPlayer', {component: AudioPlayer}); // Layout components - registry.register('Row', { component: Row }); - registry.register('Column', { component: Column }); - registry.register('List', { component: List }); - registry.register('Card', { component: Card }); + registry.register('Row', {component: Row}); + registry.register('Column', {component: Column}); + registry.register('List', {component: List}); + registry.register('Card', {component: Card}); // Additional layout components - registry.register('Tabs', { component: Tabs }); - registry.register('Modal', { component: Modal }); + registry.register('Tabs', {component: Tabs}); + registry.register('Modal', {component: Modal}); // Interactive components - registry.register('Button', { component: Button }); - registry.register('TextField', { component: TextField }); - registry.register('CheckBox', { component: CheckBox }); - registry.register('Slider', { component: Slider }); - registry.register('DateTimeInput', { component: DateTimeInput }); - registry.register('MultipleChoice', { component: MultipleChoice }); + registry.register('Button', {component: Button}); + registry.register('TextField', {component: TextField}); + registry.register('CheckBox', {component: CheckBox}); + registry.register('Slider', {component: Slider}); + registry.register('DateTimeInput', {component: DateTimeInput}); + registry.register('MultipleChoice', {component: MultipleChoice}); } /** diff --git a/renderers/react/src/styles/index.ts b/renderers/react/src/styles/index.ts index 642b04ec7..f7f41ac44 100644 --- a/renderers/react/src/styles/index.ts +++ b/renderers/react/src/styles/index.ts @@ -15,7 +15,7 @@ */ import * as Styles from '@a2ui/web_core/styles/index'; -import { resetStyles } from './reset'; +import {resetStyles} from './reset'; /** * Structural CSS styles from the Lit renderer, converted for global DOM use. diff --git a/renderers/react/src/theme/ThemeContext.tsx b/renderers/react/src/theme/ThemeContext.tsx index 96c496ea1..cb3b5fec9 100644 --- a/renderers/react/src/theme/ThemeContext.tsx +++ b/renderers/react/src/theme/ThemeContext.tsx @@ -14,9 +14,9 @@ * limitations under the License. */ -import { createContext, useContext, type ReactNode } from 'react'; +import {createContext, useContext, type ReactNode} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; -import { defaultTheme } from './litTheme'; +import {defaultTheme} from './litTheme'; /** * React context for the A2UI theme. @@ -36,12 +36,8 @@ export interface ThemeProviderProps { /** * Provider component that makes the A2UI theme available to descendant components. */ -export function ThemeProvider({ theme, children }: ThemeProviderProps) { - return ( - - {children} - - ); +export function ThemeProvider({theme, children}: ThemeProviderProps) { + return {children}; } /** diff --git a/renderers/react/src/theme/litTheme.ts b/renderers/react/src/theme/litTheme.ts index e44fe742c..ccb94d10f 100644 --- a/renderers/react/src/theme/litTheme.ts +++ b/renderers/react/src/theme/litTheme.ts @@ -188,7 +188,7 @@ export const litTheme: Types.Theme = { 'layout-w-100': true, 'layout-h-100': true, }, - avatar: { 'is-avatar': true }, + avatar: {'is-avatar': true}, header: {}, icon: {}, largeFeature: {}, diff --git a/renderers/react/src/types.ts b/renderers/react/src/types.ts index 49743b07a..7c3be2851 100644 --- a/renderers/react/src/types.ts +++ b/renderers/react/src/types.ts @@ -14,12 +14,12 @@ * limitations under the License. */ -import type { ComponentType } from 'react'; +import type {ComponentType} from 'react'; import type * as Types from '@a2ui/web_core/types/types'; import type * as Primitives from '@a2ui/web_core/types/primitives'; // Re-export the Types and Primitives namespaces for convenience -export type { Types, Primitives }; +export type {Types, Primitives}; // Re-export commonly used types from Types namespace export type AnyComponentNode = Types.AnyComponentNode; @@ -50,9 +50,10 @@ export interface A2UIComponentProps = () => Promise<{ - default: ComponentType>; -}>; +export type ComponentLoader = + () => Promise<{ + default: ComponentType>; + }>; /** * Registration entry for a component in the registry. From 20c8232a342dc76468257648e0e091145d5e3639 Mon Sep 17 00:00:00 2001 From: Ava Mattie <6314286+ava-cassiopeia@users.noreply.github.com> Date: Mon, 9 Mar 2026 13:01:00 -0600 Subject: [PATCH 50/53] Clarify gts import with a better comment --- renderers/react/eslint.config.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/renderers/react/eslint.config.js b/renderers/react/eslint.config.js index 5d0ef5fa5..6a256d464 100644 --- a/renderers/react/eslint.config.js +++ b/renderers/react/eslint.config.js @@ -27,7 +27,9 @@ export default tseslint.config( // TypeScript recommended rules ...tseslint.configs.recommended, - // Google + // Google TypeScript style guide plugin. + // See: https://github.com/google/gts + // And: https://google.github.io/styleguide/tsguide.html ...require('gts'), // React configuration From 26f4dde9336ea790e7ef12732218615addba49b4 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Tue, 10 Mar 2026 17:00:20 +0100 Subject: [PATCH 51/53] fix(lint): fix ESLint config and resolve lint errors - Replace require('gts') with ESM import in eslint.config.js - Disable prefer-arrow-callback to preserve React.memo display names - Exclude .d.ts files from linting - Fix floating promise in A2UIProvider dispatch --- renderers/react/eslint.config.js | 6 ++++-- renderers/react/src/core/A2UIProvider.tsx | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/renderers/react/eslint.config.js b/renderers/react/eslint.config.js index 6a256d464..c8a26f23d 100644 --- a/renderers/react/eslint.config.js +++ b/renderers/react/eslint.config.js @@ -19,6 +19,7 @@ import tseslint from 'typescript-eslint'; import reactPlugin from 'eslint-plugin-react'; import reactHooksPlugin from 'eslint-plugin-react-hooks'; import prettierConfig from 'eslint-config-prettier'; +import gts from 'gts'; export default tseslint.config( // Base JS recommended rules @@ -30,7 +31,7 @@ export default tseslint.config( // Google TypeScript style guide plugin. // See: https://github.com/google/gts // And: https://google.github.io/styleguide/tsguide.html - ...require('gts'), + ...gts, // React configuration { @@ -83,6 +84,7 @@ export default tseslint.config( 'no-console': ['warn', { allow: ['warn', 'error'] }], 'prefer-const': 'error', 'no-var': 'error', + 'prefer-arrow-callback': 'off', }, }, @@ -100,6 +102,6 @@ export default tseslint.config( // Ignored paths { - ignores: ['dist/**', 'node_modules/**', 'visual-parity/**'], + ignores: ['dist/**', 'node_modules/**', 'visual-parity/**', '**/*.d.ts'], } ); diff --git a/renderers/react/src/core/A2UIProvider.tsx b/renderers/react/src/core/A2UIProvider.tsx index 045bb122f..5a0f2b397 100644 --- a/renderers/react/src/core/A2UIProvider.tsx +++ b/renderers/react/src/core/A2UIProvider.tsx @@ -121,7 +121,7 @@ export function A2UIProvider({onAction, theme, children}: A2UIProviderProps) { dispatch: (message: Types.A2UIClientEventMessage) => { if (onActionRef.current) { - onActionRef.current(message); + void onActionRef.current(message); } }, From 6ecde0c44f7ce080f98595df75babf6d2a54d073 Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Tue, 10 Mar 2026 17:11:44 +0100 Subject: [PATCH 52/53] chore: remove CODEOWNERS, deleted upstream in #803 --- .github/CODEOWNERS | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 820dc39e7..000000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,28 +0,0 @@ -# CODEOWNERS file -# -# It allows us to define individuals or teams that are responsible for code in the repository. -# -# Syntax: -# pattern owner1 owner2 -# -# The pattern is a glob pattern relative to the root of the repository. -# Owners can be: -# - A GitHub username (e.g., @octocat) -# - An organization team (e.g., @org/team-name) -# - An email address (e.g., octocat@github.com) - -# Default ownership (is overriden by specfic rules below) -* @dmandar @gspencergoog @jacobsimionato @nan-yu @ditman @zeroasterisk @yjbanov - -# Agents -/agent_sdks/ @nan-yu @dmandar @gspencergoog - -# Renderers -/renderers/angular/ @ditman @ava-cassiopeia @crisbeto -/renderers/lit/ @ditman @ava-cassiopeia @paullewis -/renderers/react/ @lukasmoschitz -/renderers/web_core/ @ditman @ava-cassiopeia @jacobsimionato -/renderers/markdown/ @ditman - -# Specifications -/specification/ @gspencergoog @jacobsimionato From 279e79952039a51182393df2c6c5a731f50318eb Mon Sep 17 00:00:00 2001 From: Lukas Moschitz Date: Tue, 10 Mar 2026 18:19:56 +0100 Subject: [PATCH 53/53] chore: add Google OSS copyright notices to sample app --- samples/client/react/shell/index.html | 16 ++++++++++++++++ samples/client/react/shell/src/App.css | 16 ++++++++++++++++ samples/client/react/shell/src/App.tsx | 16 ++++++++++++++++ samples/client/react/shell/src/client.ts | 16 ++++++++++++++++ samples/client/react/shell/src/configs/index.ts | 16 ++++++++++++++++ .../client/react/shell/src/configs/restaurant.ts | 16 ++++++++++++++++ samples/client/react/shell/src/configs/types.ts | 16 ++++++++++++++++ samples/client/react/shell/src/main.tsx | 16 ++++++++++++++++ samples/client/react/shell/src/mock/index.ts | 16 ++++++++++++++++ .../react/shell/src/mock/restaurantMessages.ts | 16 ++++++++++++++++ .../react/shell/src/theme/default-theme.ts | 16 ++++++++++++++++ samples/client/react/shell/vite.config.ts | 16 ++++++++++++++++ 12 files changed, 192 insertions(+) diff --git a/samples/client/react/shell/index.html b/samples/client/react/shell/index.html index 053f54ebb..426fd124e 100644 --- a/samples/client/react/shell/index.html +++ b/samples/client/react/shell/index.html @@ -1,3 +1,19 @@ + + diff --git a/samples/client/react/shell/src/App.css b/samples/client/react/shell/src/App.css index 1dd0186b3..f59dd5715 100644 --- a/samples/client/react/shell/src/App.css +++ b/samples/client/react/shell/src/App.css @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /* * Shell styles - exact port of Lit shell's static styles (app.ts) * Transformation: :host → .shell, nested CSS → flat CSS diff --git a/samples/client/react/shell/src/App.tsx b/samples/client/react/shell/src/App.tsx index 0ec88f1fc..bead5acff 100644 --- a/samples/client/react/shell/src/App.tsx +++ b/samples/client/react/shell/src/App.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { useState, useEffect, useCallback, useMemo, useRef, FormEvent } from 'react'; import { A2UIProvider, diff --git a/samples/client/react/shell/src/client.ts b/samples/client/react/shell/src/client.ts index e7e1a00aa..d5249a29a 100644 --- a/samples/client/react/shell/src/client.ts +++ b/samples/client/react/shell/src/client.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { Part, SendMessageSuccessResponse, Task } from '@a2a-js/sdk'; import { A2AClient } from '@a2a-js/sdk/client'; import type { Types } from '@a2ui/react'; diff --git a/samples/client/react/shell/src/configs/index.ts b/samples/client/react/shell/src/configs/index.ts index 30544013f..740c67334 100644 --- a/samples/client/react/shell/src/configs/index.ts +++ b/samples/client/react/shell/src/configs/index.ts @@ -1,2 +1,18 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + export * from './types'; export { config as restaurantConfig } from './restaurant'; diff --git a/samples/client/react/shell/src/configs/restaurant.ts b/samples/client/react/shell/src/configs/restaurant.ts index aab06a6e5..a513fab7e 100644 --- a/samples/client/react/shell/src/configs/restaurant.ts +++ b/samples/client/react/shell/src/configs/restaurant.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { AppConfig } from './types'; export const config: AppConfig = { diff --git a/samples/client/react/shell/src/configs/types.ts b/samples/client/react/shell/src/configs/types.ts index ee655b80d..788df93c6 100644 --- a/samples/client/react/shell/src/configs/types.ts +++ b/samples/client/react/shell/src/configs/types.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import type { Theme } from '@a2ui/react'; /** diff --git a/samples/client/react/shell/src/main.tsx b/samples/client/react/shell/src/main.tsx index 6c14464c4..19fff3f06 100644 --- a/samples/client/react/shell/src/main.tsx +++ b/samples/client/react/shell/src/main.tsx @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React from 'react'; import ReactDOM from 'react-dom/client'; import { App } from './App'; diff --git a/samples/client/react/shell/src/mock/index.ts b/samples/client/react/shell/src/mock/index.ts index 6beceae1f..883e40ecf 100644 --- a/samples/client/react/shell/src/mock/index.ts +++ b/samples/client/react/shell/src/mock/index.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + export { createRestaurantListMessages, createBookingFormMessages, diff --git a/samples/client/react/shell/src/mock/restaurantMessages.ts b/samples/client/react/shell/src/mock/restaurantMessages.ts index 0ab8bec09..0926816fc 100644 --- a/samples/client/react/shell/src/mock/restaurantMessages.ts +++ b/samples/client/react/shell/src/mock/restaurantMessages.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import type { Types } from '@a2ui/react'; /** diff --git a/samples/client/react/shell/src/theme/default-theme.ts b/samples/client/react/shell/src/theme/default-theme.ts index 9c170b02a..e6b5bf9e7 100644 --- a/samples/client/react/shell/src/theme/default-theme.ts +++ b/samples/client/react/shell/src/theme/default-theme.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import type { Theme } from '@a2ui/react'; /** diff --git a/samples/client/react/shell/vite.config.ts b/samples/client/react/shell/vite.config.ts index bb338b26a..4cdfa72e2 100644 --- a/samples/client/react/shell/vite.config.ts +++ b/samples/client/react/shell/vite.config.ts @@ -1,3 +1,19 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react';