j3w1/theme implementation brief — chart theme: j3w1-theme 1.1.0 profile: default sourceDigest: sha256-C+iD5Q7l0XPU/boMj003wPbPLBOq3C3ZM7s4OfzJ6mc= pin: https://raw.githubusercontent.com/j3w1/theme/v1.1.0/exports/components/chart.json spec: spec/components/chart.md site: https://j3w1.github.io/theme/reference/#c-chart maturity: stable priority: R2 Summary: A one-series numeric chart with an always-visible complete data table. Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens. Tokens (resolved): root.bg #100c0c ({color.surface.default}) use root.text #e99499 ({color.text.default}) use root.border #a3676b ({color.border.control}) use-and-report (D-007) heading.text #ffa2a7 ({color.text.bright}) use secondary.text #bd787d ({color.text.muted}) use control.bg #000000 ({color.surface.input}) use control.focus #e53935 ({color.interaction.focus.ring}) use dependency.role-border-width-default 1px ({border.width.default}) use dependency.role-color-chart-axis #9e231f ({color.chart.axis}) use dependency.role-color-chart-grid #2b0e0d ({color.chart.grid}) use dependency.role-color-chart-label #bd787d ({color.chart.label}) use series.primary #f73f35 ({color.chart.series-2}) use header.text #ffa2a7 ({color.text.bright}) use row.text #e99499 ({color.text.default}) use dependency.role-radius-none 0px ({radius.none}) use dependency.role-space-12 12px ({space.12}) use dependency.role-space-2 2px ({space.2}) use dependency.role-space-8 8px ({space.8}) use State dependency disclosures: D-007 States: default, empty, loading default: Red primary series (`color.chart.series-2`), with canonical axis and label roles. [Complete labelled data table.] empty: Plot and rows are absent. [Explicit No data available text.] loading: Existing data remains readable under a busy indicator. [aria-busy with named loading text from the host.] Keyboard: Tab: Visit any scrollable data region. Points do not add unnecessary tab stops. ARIA: Native figure, accessible SVG and table Responsive: Wrap labels and actions without changing source order. Use logical spacing in RTL. Preserve native target sizes at both densities; only bounded data regions may scroll horizontally. Portability: Show one bounded numeric series with its complete textual data table. Labels and exact values carry the meaning without color. The API accepts finite non-negative values; it rejects invalid data rather than silently inventing missing numbers. native: Use equivalent native semantics and approved roles; record any unsupported behavior as a mapping deviation. Rules: use only these values; no invented colours; radius 0; borders 1px (2px emphasis); focus is a 1px dashed ring, selection is a fill; do not restyle unrelated elements; report deviations per agents/consume.md; record theme.lock.json at the pinned revision.