# Context A compound component system for displaying AI model context window usage, token consumption, and cost estimation. The `Context` component provides a comprehensive view of AI model usage through a compound component system. It displays context window utilization, token consumption breakdown (input, output, reasoning, cache), and cost estimation in an interactive hover card interface. See `scripts/context.tsx` for this example. ## Installation ```bash npx ai-elements@latest add context ``` ## Features - **Compound Component Architecture**: Flexible composition of context display elements - **Visual Progress Indicator**: Circular SVG progress ring showing context usage percentage - **Token Breakdown**: Detailed view of input, output, reasoning, and cached tokens - **Cost Estimation**: Real-time cost calculation using the `tokenlens` library - **Intelligent Formatting**: Automatic token count formatting (K, M, B suffixes) - **Interactive Hover Card**: Detailed information revealed on hover - **Context Provider Pattern**: Clean data flow through React Context API - **TypeScript Support**: Full type definitions for all components - **Accessible Design**: Proper ARIA labels and semantic HTML - **Theme Integration**: Uses currentColor for automatic theme adaptation ## Props ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `maxTokens` | `number` | - | The total context window size in tokens. | | `usedTokens` | `number` | - | The number of tokens currently used. | | `usage` | `LanguageModelUsage` | - | Detailed token usage breakdown from the AI SDK (input, output, reasoning, cached tokens). | | `modelId` | `ModelId` | - | Model identifier for cost calculation (e.g., | | `...props` | `ComponentProps` | - | Any other props are spread to the HoverCard component. | ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `children` | `React.ReactNode` | - | Custom trigger element. If not provided, renders a default button with percentage and icon. | | `...props` | `ComponentProps