| from typing import Any, Literal | |
| from pydantic import BaseModel, Field | |
| from .assets import BBox, Provenance | |
| class PaletteTokens(BaseModel): | |
| background: str | |
| surface: str | |
| primary: str | |
| secondary: str | |
| accent: str | |
| text_dark: str | |
| text_light: str = "#FFFFFF" | |
| data_series: list[str] = Field(default_factory=list) | |
| provenance: dict[str, Any] = Field(default_factory=dict) | |
| class OcrLine(BaseModel): | |
| id: str | |
| text: str | |
| bbox: BBox | |
| confidence: float | |
| reading_order: int | |
| region_type: str = "text_line" | |
| class OcrView(BaseModel): | |
| markdown: str | |
| lines: list[OcrLine] | |
| tables: list[dict[str, Any]] = Field(default_factory=list) | |
| class GroundedObject(BaseModel): | |
| label: str | |
| bbox: BBox | |
| confidence: float | |
| class VisualViewEnvelope(BaseModel): | |
| view_type: Literal["fingerprint", "palette", "presentation_theme", "ocr", "objects", "chart_ir"] | |
| payload: dict[str, Any] | |
| confidence: float | |
| provenance: list[Provenance] | |