Active Foundation

Search documentation

Search all pages, headings and text, in the current package or topic or in all documentation.

Capabilities

What each chart family supports, per capability, and where the limits are.

@workspace/active-charts 6.0.0Status unknowncontent differs from the recorded release 6.0.0baseline ce081dc3

The package's own guide

This page is the package's docs/CAPABILITIES.md, included unchanged from the package as it is in Foundation. Links to the package's internal design documents keep their text.

Every chart familyClient

Peildatum: 2026-10-07. Dit is de ene gedateerde autoriteit voor wat @workspace/active-charts ondersteunt, met welk bewijs en met welke bekende beperking. Een claim elders in de documentatie die hier niet staat, is geen claim. Het document doet geen uitspraak over andere bibliotheken; de vergelijking staat in COMPETITIVE-ANALYSIS.md. Hoe een optie precies heet en welke voorrang zij heeft, staat in API.md; hier staat wat er werkt en waarop dat rust.

Level 1 is de enterprise-algemene basis: wat een chartbibliotheek voor bedrijfsdashboards en rapporten binnen de beoogde scope van dit pakket moet kunnen, elk met reproduceerbaar bewijs (ADR-040). Level 2 is de geautoriseerde uitbreiding daarop: selectie, gekoppelde weergaven en de compound-navigator (ADR-041 scope, ADR-042 contracten). De thema's daarna beschrijven de configureerbaarheid en de familiedekking die binnen dezelfde contracten zijn toegevoegd. De presentatiebudgetten (ADR-037, ADR-038) staan in QUALITY-BUDGETS.md; de prestatiebudgetten en de trigger voor een andere renderer of incrementele updates in PERFORMANCE.md ยง Budgetten.

Drie dingen worden uit elkaar gehouden:

  1. Implementatie: gebouwd en in het publieke contract.

  2. Geautomatiseerd bewijs: tests die in deze repository opnieuw draaien.

  3. Menselijk AT-bewijs: opgenomen runs met een echte schermlezer.

Menselijk AT-bewijs ontbreekt nog. De runs op de W6-matrix (NVDA met Chrome of Edge, VoiceOver met Safari) zijn niet uitgevoerd (ROADMAP AC-V4). Alle toegankelijkheidsregels hieronder rusten op geautomatiseerd bewijs: rollen, namen, tabellen, toetsenbord en aankondigingen in een echte browser. Er wordt niets geclaimd over hoe een schermlezer het voorleest. Dat geldt voor elk thema in dit document.

Bewijssoorten#

Elke code is hier รฉรฉn keer gedefinieerd en betekent overal hetzelfde. Een naam van een bouwstap (BC2, T5, P8A) is nooit een bewijscode; waar zo'n naam nog voorkomt, is het herkomst.

CodeWat
UnitVitest in jsdom: pure logica, gerenderde componenten en interactie, typecontracten (*.test-d.tsx): pnpm --filter @workspace/active-charts test
BrowserEchte browser via Playwright, zonder retries: Chromium volledig, Firefox op de @cross-engine-subset (test:browser: gedrag, consumentencorpus, screenshotmatrix, metingen)
BenchBenchmark met budgetten, Chromium, geen retries: benchmark:browser (PERFORMANCE.md)
MutatieMutatieproef: een bewuste breuk van de invariant laat een test falen; de gedode en equivalente mutanten staan per afsluiting in DONE.md
ContractBron- of registercontract in Vitest, waar een runtimeproef onpraktisch is
GateRepositorygate in pnpm check (packages/repo-tools/src/checks/), met eigen gedragsproef
DocUitvoerbare documentatie: elk TypeScript-voorbeeld van README, API, recepten en ACCESSIBILITY wordt tegen de publieke API getypecheckt (src/__tests__/doc-examples.test.ts)

Status zegt alleen wat vandaag geldt: ondersteund (in het publieke contract en bewezen), gedeeltelijk, gemeten (een meting zonder belofte), bewijs, geen belofte of niet aanwezig. Elk thema sluit af met de bekende beperkingen die niet bij รฉรฉn rij horen: wat bewust niet of nog niet bestaat.

Level 1: de enterprise-algemene basis#

CapaciteitStatusBewijsBekende beperking
Lijn, spline, area, staaf/kolom, scatter/bubble, taart/donut, combinatieondersteundUnit, Browser, Mutatieโ€”
Stapelen met gemengde tekens; verborgen serie herstapelt (W2)ondersteundUnit, Browser, Mutatieโ€”
Percentagestapels uit ruwe waarden, staaf en area (W9); het aandeel hoort alleen bij het lid (ADR-048)ondersteundUnit, Browser, Bench, Mutatiede navigator toont de ruwe waarden, niet de aandelen (bewust, ADR-042); ruw tegenover getoond per pad: ARCHITECTURE ยง 8.7
Ingezoomde waterval behoudt het lopende totaal van de bronrijen, ook naast een percentagestapel (PH3-02, ADR-048)ondersteundUnit, Browser, Mutatieโ€”
Categorie-, tijd-, ordinal-time-, log-, sqrt- en omgekeerde assenondersteundUnit, Browserโ€”
Twee y-assen: รฉรฉn binding voor domein, tekening, hit, tooltip, tabel, referentielijnondersteundUnit, Browser, Bench, Mutatiemeer dan twee assen en onafhankelijke x-assen: buiten scope (ADR-041); wrappers geven beide y-assen รฉรฉn yAxis; het label van een referentielijn staat boven de series (PH6-01)
Waarheidsgetrouwe reductie en groepering (W3, W4)ondersteundUnit, Browser, BenchCanvas en incrementele updates bestaan niet; de trigger staat in PERFORMANCE ยง Budgetten
Tooltip (single, shared, split, pin), ook op compound-glyphsondersteundUnit, Browserbereikvlak, bereikstaaf, boxplot en histogram nemen alleen single (ADR-085, API ยง 3.1); de gedeelde tooltip snapt binnen zijn afstand (bewust)
Legenda: toggle, isoleren, dynamische series, dichte legendaondersteundUnit, Browser, Mutatieโ€”
Headless legenda (ADR-105): useChartLegend() en legendLink op elke familie met een discrete legenda; entries op identiteit met sleutel zoals getekend en beschikbare acties; รฉรฉn legendaroute, ook voor de host; onLegendChange op identiteitondersteundUnit, Browser, Mutatiealleen discrete sleutels (een kwantitatieve sleutel blijft in de chart); geen gecontroleerde zichtbaarheid
Toetsenbord per archetype, compound als รฉรฉn stopondersteundUnit, Browsermenselijke AT-runs ontbreken
Datavervanger (schermlezertabel) voor elke ondersteunde familieondersteundUnit, Browser, Mutatiesparkline decoratief (W6); menselijke AT-runs ontbreken
Aankondigingen (legenda, zoom, stappen, compound, gegroepeerd, contextmenu); de recentste bron spreekt (ADR-052)ondersteundUnit, Browser, Mutatiemenselijke AT-runs ontbreken; de standalone families kondigen hun contextmenu niet aan
Eรฉn contextmenu in elke familie behalve de Sparkline, op Base UI zoals de grid (ADR-087): toetsenbord, aanwijzer, lange druk en een optionele menuknop; hostitems eerst met รฉรฉn bevroren context (element, legenda-item of chart); kopiรซren, reset zoom, reeksen (verbergen, alleen dit, alles), export; scalairen alleen export; 44 px onder een grove aanwijzerondersteundUnit, Browser, Mutatieโ€”
Export SVG/PNG/PDF met voltooiing en falen, stil beeld, rapporttekst (W11); legenda en rapporttekst leesbaar in PDF onder oklch()-tokens (FAM-V2-T6)ondersteundUnit, Browser, MutatiePDF-tekst: zie de rij PDF-tekst en exportfonts; zonder exportfontset: PNG-hostfont alleen bij same-origin @font-face met url() (met een set: de rij SVG- en PNG-exportfonts); export draait in de browser; materialisatiegrens: API ยง 4
Exportresultaat (ADR-105): elke export geeft haar ene bestand (ChartExportResult), gedownload of met download: false alleen teruggegeven; onExportComplete(result); font-fallback; de formaten van het exportsubmenu per chart (contextMenu.features.export)ondersteundUnit, Browser, Mutatieโ€”
Export over een datawijziging: รฉรฉn moment; legenda en tekening uit dezelfde commit (ADR-053)ondersteundUnit, Browser, MutatieCSV schrijft de rijen van de laatste commit bij de aanroep; wat na het capture-moment verandert, staat niet in het bestand
Niet-Latijns schrift (Cyrillisch, Grieks, Arabisch, Japans, Koreaans) in SVG en PNG; PDF: zie de rij PDF-tekst en exportfontsbewijs, geen belofteBrowser (Chromium; SVG ook Firefox)PNG zonder exportfontset: tekens buiten het ingebedde webfont tekenen in het standaardfont van de browser, niet in een local()-terugval van de pagina (CH-6 in de inherit-modus; met een set deterministisch); PDF weigert Arabisch
PDF-tekst en exportfonts (ADR-058): รฉรฉn exportfontmodel (ChartExportFonts: bytes of een lazy hostloader, gewichten en stijlen, families in terugvalvolgorde); ChartDefaults.exportFonts, een expliciete aanroep wint, 'inherit' slaat over, ook in het contextmenu; per tekstelement de eerste familie die het volledig dekt; zonder fonts Helvetica met alleen WinAnsi; getypeerde weigering (ChartExportError.code) van complexe schriften, combinerende tekens, joiners en selectors, emoji en het supplementaire vlakondersteundUnit, Bench (Chromium; @cross-engine Firefox)alleen TrueType (geen WOFF, WOFF2, CFF of collectie; geen variabele assen); geen terugval per teken binnen รฉรฉn element; geen vormgeving: gevormde PDF is hostbezit (L3b); een exportfont met een andere metriek dan het live font kan tekst verschuiven (geen herlay-out)
SVG- en PNG-exportfonts (ADR-059): dezelfde ChartExportFonts en dezelfde voorrang, ook in beide contextmenu's; SVG noemt de families vรณรณr de live stack en bedt met embedInSvg elke face in als @font-face-data-URL; PNG bedt elke face van elke familie in en valt per glyph terug over de families van de host vรณรณr een systeemfont; TrueType, OpenType CFF, WOFF en WOFF2; geen netwerk, loaders vรณรณr het capture-momentondersteundUnit, Bench (Chromium; @cross-engine Firefox)zonder set blijft PNG best effort (CH-6 in de inherit-modus); geen herlay-out; de browser kiest per glyph en vormt, het pakket niet; ingebedde faces in SVG gelden in browsers, andere kijkers mogen ze negeren; collecties en onbekende bytes geweigerd; bewezen in Chromium en Firefox, niet in Safari
Exportgarantietrappen (ADR-060): L0 CSV (elk schrift, logisch, zonder richtingstekens); L1 live (browser); L2 SVG en PNG; L3a PDF (ingebedde TrueType, Latijn, Grieks, Cyrillisch, Armeens, Georgisch, Han, Kana, Hangul; de rest geweigerd met een code); L3b-raster en L3b-print als hostrecepten; per schrift en route in EXPORT-GUARANTEES.mdondersteundContract (export-script-matrix.contract.test.ts tegen charts en grid), Bench (e2e/export-fonts.spec.ts, Chromium en @cross-engine Firefox)L3b is geen pakketfunctie; L3b-print is eenmaal in een onderzoeksharnas geverifieerd (Chromium 153, Windows) en blijft een hostclaim; een PDF met Arabisch, Hebreeuws, Indisch schrift of emoji is een hostroute
CSV ruw, ook voor hiรซrarchie, stroom, organigram, tijdlijn, scalair, sparkline (W4, W11)ondersteundUnit, Browser, Mutatieโ€”
Richting en bidi (ADR-056): dir expliciet of geรซrfd, nooit uit de locale; contextmenu, tooltip en schermlezertabel dragen de richting; namen en waarden geรฏsoleerd; export behoudt direction/unicode-bidi; CSV zonder bidi-tekensondersteundUnit, Bench (Chromium, Firefox)โ€”
RTL-chrome (ADR-057): gespiegelde legenda en legendapijlen, tooltip aan de inline-eindzijde, contextmenu en submenu met gespiegelde toetsen, richtingsbewuste ankers, referentielabel aan het inline-einde, rapporttekst en legenda in de export; assen, datavolgorde, navigator en plottoetsen onveranderdondersteund binnen de geteste reikwijdteUnit, Bench (Chromium; @cross-engine Firefox)geautomatiseerd browserbewijs, geen menselijke AT-sessie en geen fysiek apparaat; Playwright-WebKit is niet geclaimd
Tekstmeting en segmentatie (ADR-057): labels gemeten in het geschilderde font (gewicht, stijl, richting, letterafstand, kerning), opnieuw na een fontlading; graphemeveilig afkappen; rapportafbreking met CJK-breekpunten en zonder breuk bij NBSP/NNBSPondersteundUnit, Bench (Chromium, Firefox)meting is die van de renderende browser; geen variabele-fontassen, geen regelbreekmotor
Afnemer buiten deze repository (ADR-061): uit een verpakt artefact in een schone Vite + React-app zonder werkruimte, Next, active-ui, Tailwind of hoststylesheet: rendering, legenda, tooltip, contextmenu, schermlezertabel, rtl-chrome, twaalf schriften, locales met inheemse cijfers, en de exporttrappen van ADR-060bewijs, geen belofteBrowser (Chromium, Firefox, WebKit, in een tijdelijke afnemer)eenmalige proef, geen staande suite; de artefactbouw zelf is geen product; menselijke AT en moedertaallezer niet gedaan (AC-V4, PORT-V1)
Lege toestand en niet-beschikbare toestand bij contractschendende invoer (W12)ondersteundUnit, Browser, Mutatiealleen de genoemde contracten worden getoetst (ADR-040); onverwachte fouten gaan naar de error boundary van de host
Woorden van de host, geen Engelse terugval (W13); Engels alleen als bewust meegegeven englishChartTranslatorondersteundUnit, Mutatieeen host die een verkeerde vertaler meegeeft wordt niet gezien (ADR-028, ADR-051)
Leesbaarheid op smalle breedte: tekstvloer, degradatie, randlabels (W8, PH5-01)ondersteundBrowser, Mutatieโ€”
Categorisch palet, donkere modus, onderscheid, on-fill; stabiel onder accentthema's (W7, W18)ondersteundBrowser, Mutatieโ€”
Geforceerde kleuren en verminderde beweging over elke familie: lijnen met streeppatroon, staven, bins en watervalstappen in systeemkleuren met passende legendasleutels (CH-26), heatmapklassen als naam (CH-27), kaarsen hol op en gevuld neer, bereikstaven per reeks (CH-28), foutstaven, de losse familiesondersteundBrowser, Mutatiearea-vullingen zijn omtrekken; vanaf de zesde staafreeks herhalen de systeemkleuren; alleen Chromium- en Firefox-emulatie, geen Windows Hoog contrast (AC-V6)
Opruimen na unmount: observers, timers, frames, listeners, ontkoppelde DOM, heap; ook een dicht dashboard met exports (FAM-V2-T6)ondersteundBrowser, Bench, Mutatieheapmeting alleen Chromium, als trend binnen een tolerantie (cleanupsuite 2 MB over drie cycli; dichtheidsbench 12 cycli)
Dicht dashboard (24 charts, ~14.800 getekende markeringen) binnen het compositiebudget; gesimuleerd zwakker profiel (4x, 6x) gemetengemetenBenchCPU-throttling in Chromium, geen fysiek toestel; geen budget voor het gesimuleerde profiel (PERFORMANCE.md)
Gedocumenteerde prestatiebudgetten voor de aanvaarde workloadsondersteundBenchรฉรฉn machine; een ander toestel is een andere meting
Touch en smalle breedte: scrollen tegen slepen, pinch, pan, lange druk, navigator-brush, draaien; 390 en 320 pxbewijs, geen belofteBrowser (geรซmuleerd in Chromium), Mutatiegeen fysiek toestel; geen ondersteuningsbelofte; bewijsrecord in accessibility/EVIDENCE.md
Uitvoerbare documentatievoorbeeldenondersteundDoclijsten en fragmenten zijn gemarkeerd en worden niet gecompileerd
Menselijk schermlezerbewijs (NVDA, VoiceOver)niet aanwezigโ€”AC-V4: uitvoering door een mens (accessibility/BROWSER-AT-CHECKLIST.md ยง Human handoff)

Level 2: selectie, gekoppelde weergaven en navigator#

Scope ADR-041, contracten ADR-042. De selectie op de losse families staat onder ยง Activering en selectie.

CapaciteitStatusBewijsBekende beperking
Selectie van items, gecontroleerd en ongecontroleerd, op logische identiteitondersteundUnit, Browser, Bench, Mutatie<Chart>, de dertien Cartesische wrappers en de negen losse families van ยง Activering en selectie; organigram, tijdlijn, scalairen en sparkline niet
Eรฉn seriesId per serie: een gedeclareerde id botst nooit met een afgeleide of positionele identiteit (ADR-049)ondersteundUnit, Browser, Mutatieeen herhaalde identiteit heet naar haar volgorde (#2); een serie zonder waardesleutel naar haar positie
Selectie en activering met aanwijzer en toetsenbord; focus is geen selectieondersteundUnit, Browser, Mutatiemenselijke AT-runs ontbreken
Geselecteerde toestand niet-visueel: tabel, aankondiging, beschrijving; geforceerde kleurenondersteundUnit, Browser, Mutatiemenselijke AT-runs ontbreken
Gegroepeerde bucket als item met interval; verborgen, weggezoomd of hergroepeerd is inactiefondersteundUnit, Browser, Mutatieโ€”
Events onSelectionChange en onItemActivate, geen eventbusondersteundUnit, Browserโ€”
Gecontroleerde waarheid en invoerbron (ADR-105): requested op selectie en inklappen, de hostprop is de waarheid; pointer, touch en keyboard als bronondersteundUnit, Browser, Mutatieโ€”
Gekoppelde positie en x-bereik op waarde in een SyncGroup, ook met andere rijen en matenondersteundUnit, Browser, Bench, Mutatieselectie wordt niet gekoppeld; alleen categorie, getal en tijd van dezelfde semantiek
Geen terugkoppeling; een lid dat verdwijnt laat niets achter; niet-leden onberoerdondersteundUnit, Browser, Mutatieโ€”
Navigator tekent compound-series met hun omvang, verborgen series niet, gaten en pieken behoudenondersteundUnit, Browser, Bench, Mutatieโ€” (de brush leest zijn pixels door de schaal, valt ook bij onregelmatige rijen op de lijn en volgt reversed; CH-7)
Navigatorbereik, groepering, tooltip, tabel, toetsenbord en koppeling lezen hetzelfde vensterondersteundBrowser, Mutatieโ€”

Waardebetekenis en labels#

Besluiten: ADR-089 (waardebetekenis, wrapperpariteit), ADR-091 (labelrollen, terugloop), ADR-103 (staafplaatsing, trechtercontext). Detail: API ยง 10.

CapaciteitStatusBewijsBekende beperking
valueSemantics (ChartValueSemantics) op de twaalf numerieke losse families: labels, schalen, uitlezing, tooltip, tabel en aankondiging in รฉรฉn declaratie; rolformatter en tooltip.valueFormatter winnen; een aandeel blijft procent; CSV en Copy value ruwondersteundUnit, Browser, Mutatienaam van tegel, boog en knoop krijgt geen waarde erbij
Cartesische datalabels (staaf, waterval, lijn, scatter, histogram) zonder formatter lezen de waardesemantiek van serie of y-as, anders het kale getal (CH-21); het aandeel in de taart- en trechtertooltip is altijd procent, ook zonder declaratie en naast tooltip.valueFormatter (CH-22)ondersteundUnit, Mutatieeen percentagestapel houdt zijn aandeellabels
Wrapperpariteit: puntlabels op lijn, scatter en histogram; visible en showInLegend op elke wrapperserieconfig; annotations op elke Cartesische wrapper, op de vier liggende families alleen rechtopondersteundUnit, Browser, Mutatieeen wrapper met รฉรฉn serie neemt geen visible; een vlak, bereik, box, dumbbell, lollipop of financieel glyph tekent geen waardelabel
Labelrollen: vlak en lollipop (label), bereikstaaf, bereikvlak en dumbbell (label.endpoints, rol in de formattercontext), rollen vast onder een omgekeerde as en liggend, met asruimte; de vlakwaarden van alle reeksen en de stapeltotalen van een plot nemen รฉรฉn botsingsbeslissing (NEW-01)ondersteundUnit, Browser, Mutatieรฉรฉn plaats per label, geen binnenplaatsing; lollipop, bereik en dumbbell beslissen per reeks; een buitenlabel kan op het merk van een andere familie vallen (CH-25)
Terugloop van categorielabels (wrap): heel teruggelopen, dan draaien, dan de laatste regel afgekapt; volle naam in <title>; rtl en CJK; lay-out reserveert de regels; tijd- en getalassen ongewijzigdondersteundUnit, Browser, Mutatiegeen afbreekstreepjes; de definitieve ronde loopt niet verder terug dan de voorlopige reserveerde
Staaf: 'inside-end' en 'inside-base' op semantische einden voor beide tekens, beide oriรซntaties, een omgekeerde as, stapel- en procentstapelsegmenten; zonder ruimte naar buiten (auto) of verborgen; geen kleiner fontondersteundUnit, Browser, Mutatieniet op de waterval (bewust, ADR-103)
Staaf: label per reeks in BarChart vervangt het chartlabel als heel object; wrapper en <Chart> plaatsen gelijkondersteundUnit, Browser, Mutatieโ€”
Trechter: dataLabels.formatter(value, context?) met rij, bronindex, shareOfFirst en shareOfPrevious over de zichtbare stappen; รฉรฉn tekst in label, tabel en aankondiging; tooltip en CSV ongewijzigdondersteundUnit, Browser, Mutatiegeen ingebouwde modus "aandeel van de vorige": de context draagt het getal (bewust)

Identiteit, markers en legenda#

Besluiten: ADR-090 (markervormen, legenda), ADR-091 (exportlegenda), ADR-093 (renderpariteit, toegankelijke naam). Detail: API ยง 10.7.

CapaciteitStatusBewijsBekende beperking
Markervormen (MarkerShape: cirkel, vierkant, ruit, driehoek, omgekeerde driehoek) op lijn- en vlakmarkers, scatter en bubbel, lollipop, dumbbell, radarhoekpunten en tijdlijn; elke vorm heeft het oppervlak van de cirkel; legendasleutel, tooltipsleutel, aandachtsknoop, toetsenbordcue, export en geforceerde kleuren volgen de vormondersteundUnit, Browser, Mutatiegeen vorm per datum, geen beeld of pad; de aanwijzer treft het dichtstbijzijnde punt, niet de getekende omtrek
Automatische markervorm alleen waar kleur niet volstaat: vanaf het zevende standaardpaletslot of waar een hostpalet zich herhaalt (de trigger van het streeppatroon, ADR-038); expliciet wint; een kleur krijgt binnen vier herhalingen nooit twee keer dezelfde vormondersteundUnit, Browser, Mutatiedumbbell, radar en tijdlijn alleen expliciet
legend.align (start, center, end) langs elke zijde, logisch onder rtl, ook in de exportondersteundUnit, Browser, Mutatiegeen offsets of zwevende legenda (beleid)
Stapelvolgorde als leesvolgorde: legenda en gedeelde tooltip van een gestapelde staaf of vlak lezen de stapel zoals het oog hem ziet, ook bij negatieve, gemengde en procentstapels, liggend en onder rtlondersteundUnit, Browser, Mutatiede legenda leest รฉรฉn volgorde voor alle categorieรซn; een lid met beide tekens leest aan de positieve kant
Smalle terugval van een zijlegenda: onder de chart waar ernaast minder dan 240 px overblijft, terug zodra er ruimte is, zonder heen-en-weer; export volgt de tekening; een kolom wordt niet smaller dan haar breedste naam (CH-16)ondersteundUnit, Browser, Mutatiede drempel is รฉรฉn vaste ondergrens voor elke familie, geen meting van de plot per familie
Exportlegenda met het streeppatroon van een lijn (expliciet of automatisch), ook met een markervorm, in SVG, PNG en PDF (CH-23)ondersteundUnit, Browser, Mutatieโ€”
Legenda-renderpariteit van OHLC, boxplot, bereikvlak en bereikstaaf (QR-2)ondersteundBrowserโ€”
Toegankelijke naam en identiteit: scalaire naam met bereik, ontbrekend categorisch is "(no value)", hiรซrarchie-id's los van het label, lege naam is geen naam, de sparkline benoembaar (CH-10)ondersteundUnit, Browser, Mutatieโ€”

Assen, zoom en dradenkruis#

Besluiten: ADR-093; zachte grenzen staan onder ยง Overlays, foutstaven en zones.

CapaciteitStatusBewijsBekende beperking
Zoom (slepen, wiel, pannen, knijpen, navigator) volgt omgekeerde, logaritmische en ongelijk verdeelde schalen; een vastgepinde tooltip blijft op zijn rij (CH-7, CH-8)ondersteundUnit, Browser, Mutatieโ€”
Een losse asgrens voorbij de data keert de as niet om (genegeerd en gemeld); een niet-eindige grens is ongeldig (CH-12)ondersteundUnit, Browser, Mutatieโ€”
Dradenkruis: hulplijn en aflezing noemen dezelfde grootheid, per oriรซntatie (LAB-AT4); een gestapeld segment en een watervalstap lezen de aswaarde aan hun einde (CH-29)ondersteundUnit, Browser, Mutatieโ€”

Stapels#

Besluiten: ADR-091, ADR-093. Mengtekens en percentagestapels: ยง Level 1. Detail: API ยง 10.8.

CapaciteitStatusBewijsBekende beperking
stackGroup op staaf- en vlakreeksen: staafgroepen naast elkaar in de categorie, elk met eigen basislijn, procentbasis, tooltiptotaal en stapeltotaal; vlakgroepen elk vanaf de eigen basislijnondersteundUnit, Browser, Mutatiegeen geneste groepen; vlakgroepen tekenen over dezelfde x
Staafkolommen zonder stackGroup: een stapel naast ongestapelde staven krijgt eigen kolommen; een totaal of vlakwaarde wijkt voor een vreemde staaf (CH-24, CH-25)ondersteundUnit, Browser, Mutatiede labellagen per reeks (lollipop, bereik, dumbbell) toetsen geen vreemde merken
stackTotal: รฉรฉn netto totaal per stapel en categorie, voorbij het einde waar het teken heen wijst, in de tabel en de aankondiging, met asruimte aan het domeineinde; niet op een procentstapelondersteundUnit, Browser, Mutatieรฉรฉn plaats: botst of past het niet, dan verdwijnt het; geen totaal op een vlakstapel

Kleur, verf per datum en kwantitatieve schalen#

Besluiten: ADR-092 (kleurstops, klassen, verf per datum), ADR-094 (verf op de overige natuurlijke merken), ADR-098 (gedeelde kleurschaal, kleur naar maat, belgrootte, heatmapassen). Detail: API ยง 10.9 en ยง 10.13. Bewijs onder meer in __tests__/t5-quantitative-scales.test.tsx en e2e/t5-scales.spec.ts.

CapaciteitStatusBewijsBekende beperking
Eรฉn publieke QuantitativeColorScale (lineair met eigen colors, stops, klassen), gedeeld door heatmap, treemap en sunburst; de heatmap tekent haar standaardkleuren als voorheenondersteundUnit, Mutatieโ€”
Kleurstops ('stops'): N kleuren op waarden, onregelmatig, de eerste en laatste stop zijn de uiteinden met โ‰ค/โ‰ฅ; twee en drie stops verven exact als sequentieel en divergerend; de gradiรซnt tekent elke stopondersteundUnit, Browser, Mutatieโ€”
Benoemde klassen ('classes', [from, to)): klasselegenda onder of naast de matrix, de klasse in tooltip, tabel, aankondiging en beschrijving; een waarde buiten elke klasse neutraal en benoemd, ontbrekend blijft leeg; overlap en gaten gemeldondersteundUnit, Browser, Mutatiede klasselegenda staat alleen onder of rechts; geen klasse in CSV (ruwe waarden)
Kleur naar maat op treemap en sunburst: colorMeasure + colorValue, domein over de hele boom, eigen waarde per datamerk, neutraal "no value", sleutel met onderschriftondersteundUnit, Browser, Mutatieโ€”
Labels op de werkelijke maatvulling (4,5:1 gemeten); drillen herschaalt niets; tooltip, tabel, aankondiging en CSV noemen de maat; export SVG, PNG en PDF zoals het schermondersteundBrowser, Mutatieโ€”
Heatmapassen: xAxis/yAxis met titel, formatter, datumnotatie, order, reversed; รฉรฉn weergegeven volgorde voor alle lezers; gemeten goten (1440 tot 320 px, rtl, CJK)ondersteundUnit, Browser, Mutatiegeen scrollen of virtualisatie
Belgrootte over de volledige data: zoom, pan en hergroepering veranderen geen straal; sizeDomain klemt met ware waarden; ontbrekende grootte op markergrootte; een groottekolom in de datatabel, "(no value)" bij een ontbrekende grootteondersteundUnit, Browser, Mutatiealleen de wortelafbeelding (bewust)
Groottesleutel (sizeLegend, opt-in): door de straalfunctie van de merken, na de reekslegenda, in de export; weggelaten als dubbelzinnig bij verschillende schalenondersteundUnit, Browser, Mutatiegeen sleutel per reeks (bewust, ADR-098)
Veilige verf per datum (paint) op staaf- en scatterreeksen, lijn- en vlakmarkers (marker.paint) en taartpunten: รฉรฉn lezing per item voor merk, binnenlabelcontrast, tooltipsleutel en export; geforceerde kleuren overschrijven haar; de reekslegenda blijft de reekskleur, een taartsleutel volgt haar puntondersteundUnit, Browser, Mutatie"alleen verf" is runtime afgedwongen, niet in het type; alleen vulling, geen rand (W-FV-1)
Verf per datum op lollipop (kop; de steel volgt), bereikstaaf (interval) en dumbbell (per einde, role), en per item op trechter, radiale staaf en nightingale: merk, legendasleutel, tooltip, export en labelcontrast volgenondersteundUnit, Browser, Mutatiede dumbbellconnector blijft de reekslijn
Eรฉn resolveraanroep per item, ook over vele aanwijzerbewegingen (5.000 scatterpunten, 2.000 lollipopkoppen); scatter-10k met en zonder verf binnen de ruisondersteundBrowser, Mutatiegemeten op een drukke machine; PF-V2 staat hier los van
Geforceerde kleuren: gradiรซntbalk, klassestalen en maatvullingen klappen in tot Canvas met rand; groottesleutel in CanvasTextondersteundBrowser, Mutatiealleen Chromium- en Firefox-emulatie, geen echte HCM

Bekende beperkingen:

  • Geen logaritmische kleurschaal (uitgesteld, ADR-098).

  • Geen labels op gedeclareerde stops of tickintervallen op de gradiรซntbalk.

  • Geen generieke colorAxis over families, geen legenda voor meerdere schalen en geen kleurschaal per hiรซrarchieniveau.

  • Geen kleur naar maat op scatter; geen bivariate kleur; geen sizeByAbsoluteValue.

  • Geen verf per datum op boxplot en bereikvlak; kaars, OHLC en waterval verven naar rol (ADR-085). Verf is alleen vulling, nooit een rand (W-FV-1); geen drempelzones op staaf of scatter (zones: ยง Overlays, foutstaven en zones).

Radiale hoeken#

Besluiten: ADR-095 (hoekconventie), ADR-093 (radar). Detail: API ยง 10.10.

CapaciteitStatusBewijsBekende beperking
Eรฉn radiale klok: graden met de klok mee vanaf 12 uur, startAngle + endAngle, op radiale staaf en gauge; startAngle op taart en nightingaleondersteundUnit, Browser, Mutatiegeen gedeeltelijke taart of roos (endAngle), geen starthoek op sunburst en radar (uitgesteld)
Volle cirkel uit het ruwe verschil (0 โ†’ 360, 90 โ†’ 450, -90 โ†’ 270); omgekeerd, leeg of niet-eindig: รฉรฉn diagnose en de familiestandaard; meer dan รฉรฉn slag: de volle cirkelondersteundUnit, Browser, Mutatiede gauge kent geen volle cirkel (bewust)
Standaardtekening van radiale staaf, gauge, taart, nightingale, sunburst en radar ongewijzigd door de conventieondersteundUnit, Browserโ€”
Taart: รฉรฉn snijhoekmodel voor snijden, sectorlabels, callouts, toetsenbordtick en tooltipanker; draaien verandert geen legenda-, toetsenbord-, tabel- of aankondigingsvolgordeondersteundUnit, Browser, Mutatieโ€”
padAngle in graden op taart en nightingaleondersteundUnit, Mutatiehet type blijft number: een oude radiaalwaarde valt niet op bij het compileren
RTL en donker laten de radiale geometrie ongewijzigd; SVG-, PNG- en PDF-export dragen de schermgeometrieondersteundUnit, Browserde straal van een taart met callouts volgt de tekstmeting (minder dan 1 px verschil tussen LTR en RTL)
Veeg: start op de opgeloste start, het eigen aandeel van een slag over de hele duur, om het draaipunt (SVG-masker, Chromium en Firefox); in rust geen masker; gereduceerde beweging tekent meteen de rusttoestandondersteundUnit, Browser, Mutatieโ€”
Radar: ontbrekend is een gat, de schaal volgt de zichtbare data, een expliciete grens wordt geopenbaard; de legenda telt op bij height (CH-20)ondersteundUnit, Browser, Mutatiegeen optie om over een gat te verbinden

Overlays, foutstaven en zones#

Besluit: ADR-096. Detail: API ยง 10.11.

CapaciteitStatusBewijsBekende beperking
Foutstaven op lijn, scatter (ook x op een numerieke x-as) en staaf, staand en liggend, en <Chart>: errorBars: {lowKey, highKey}, neutrale inkt, kappen op getoonde grenzen, open einde aan de plotrand bij een expliciete grens of โ‰ค 0 op logondersteundUnit, Browser, Mutatieniet op stapels of vlakken (bewust)
De foutgrenzen in het automatische domein, de tooltip (enkel, gedeeld, gesplitst), de tabel, de aankondiging, CSV en kopiรซren als tabel; een buitenlabel voorbij de snorhaarondersteundUnit, Browser, Mutatieโ€”
Een reeks met foutstaven wordt niet gereduceerd en niet gegroepeerd (diagnose)ondersteundUnit, Mutatieeen dichte scatter met foutstaven kost verf per aanwijzerbeweging (PF-V3)
softMin/softMax op numerieke assen: verbreden, nooit versmallen; volgorde bijdragen โ†’ zacht โ†’ expliciet โ†’ labelruimte โ†’ nice โ†’ zoom; ongeldig genegeerd met een diagnoseondersteundUnit, Mutatieโ€”
Zones op lijn en vlak (zones: {axis?, ranges}), [from, to): de verf wisselt waar het getekende pad de grens kruist, op elke curve, omgekeerde en log-as, x op number, time en ordinal-timeondersteundUnit, Browser, Mutatiegeen x-zones op een categorie-as
Vlakzones: vulling en lijn per gebied (y naar hoogte, x naar positie); gestapeld vlak alleen xondersteundUnit, Browser, Mutatiey-zones op een stapel genegeerd (bewust)
Markers volgen de zone van hun waarde; benoemde zones in tooltip, tabel en aankondiging; geforceerde kleuren: systeemkleur van de reeks, de streep blijft; SVG, PNG en PDF tekenen dezelfde bandenondersteundUnit, Browser, Mutatieโ€”
Zonder errorBars, softMin/softMax en zones tekent elke chart als voorheenondersteundUnit, Browserโ€”

Bekende beperkingen:

  • Geen x-foutstaaf op een lijn; geen foutstaven op lollipop, dumbbell of de bereikfamilies.

  • Geen zones op staven of scatterpunten; geen vlakvulling tot een drempel; geen zonesleutel in de legenda.

  • Geen stijlknoppen voor foutstaven of zones (kaplengte, breedte, dekking, hoverstijl): neutrale inkt is beleid.

  • Een zachte grens op een tijd-, ordinal-time- of categorie-as wordt genegeerd met een diagnose (bewust).

Samengestelde reeksen en oriรซntatie#

Besluit: ADR-101. Detail: API ยง 10.15. Bewijs onder meer in __tests__/t4-compound-grouping.test.tsx, het typecontract __tests__/t4-option-contract.test-d.tsx en e2e/t4-compound.spec.ts.

CapaciteitStatusBewijsBekende beperking
Meerdere reeksen op RangeBarChart, RangeAreaChart, BoxPlotChart en DumbbellChart (series), uit de enkelvoudige sleutels รณf uit seriesondersteundUnit, Browser, Mutatieโ€”
Bereikstaven, boxen en halters van รฉรฉn familie, oriรซntatie en as automatisch naast elkaar in reeksvolgorde, binnen hun categorie; een verborgen reeks geeft haar vak terug; families groeperen niet met elkaarondersteundUnit, Browser, Mutatiegeen groeperingsoptie, geen vakbreedte of -opvulling (bewust)
Bereikvlakken over elkaar in reeksvolgorde, de latere boven, elk met eigen dekking en randen; gaten per reeksondersteundUnit, Browser, Mutatiegeen liggend bereikvlak (bewust)
Liggende boxplot (horizontal): dezelfde vijf statistieken, rollen en woorden; liggend geen navigator en geen annotatiesondersteundUnit, Browser, Mutatieโ€”
De aanwijzer vindt het gegroepeerde glyph dat hij ziet; het toetsenbord stapt categorie, reeks, dan laag voor hoog; een verborgen reeks is geen stapondersteundUnit, Browser, Mutatieโ€”
Meerdere halters: รฉรฉn legenda-item per reeks met een gepaarde sleutel van haar twee eindkleuren (scherm en export); tooltip, aankondiging en tabel noemen de reeks eerstondersteundUnit, Browser, Mutatieโ€”
Eindpuntlabels van bereikstaaf, bereikvlak en halter in de ene botsingsbeslissing van de plot; elk label bij zijn eigen glyph; geen kleiner fontondersteundUnit, Browser, Mutatieโ€”
Dichte groepen: geen reeksgrens en geen "geen ruimte"-staat; glyphs blijven in hun categorie op 1200, 768, 390 en 320 px; labels wijken eerstondersteundBrowser, Mutatiezeer smalle glyphs op de telefoon (bewust)
Omgekeerde as: de doos tussen Q1 en Q3 in beide oriรซntaties; eindpuntlabels houden hun rolondersteundUnit, Browser, Mutatieโ€”
Geforceerde kleuren: gegroepeerde bereikstaven in hun systeemkleuren per reeks (CH-28) en hun plaats; boxen, haltermarkers, randen en beide sleutels van een gepaard item zichtbaarondersteundBrowservanaf de zesde reeks herhalen de systeemkleuren; plaats en naam blijven
Export: SVG, PNG en PDF tekenen gegroepeerde en liggende geometrie zoals het scherm, met de gepaarde sleutel; CSV de ruwe rijenondersteundBrowser, Mutatieโ€”

Bekende beperkingen:

  • Geen update-animatie van de waarden op dumbbell, lollipop, boxplot, bereikstaaf en bereikvlak: zij hertekenen (LAB-AT10); hun gegroepeerde vakken schuiven wel bij verbergen en tonen (ADR-104).

  • Geen gedeelde of gesplitste tooltip op bereikvlak, bereikstaaf en boxplot (ADR-085); geen legenda-item per rol bij meerdere reeksen.

  • Bereikstaaf: geen binnenlabels, geen minPointLength.

  • Boxplot: geen kapverhouding, geen gemiddelde, geen inkeping (notch), geen verf per datum.

  • Bereikvlak: geen eigen randlijnen per zijde, geen markers, geen connectMissingData.

  • Geen violin, jitter of swarm en geen statistische generatie: de host levert de vijf statistieken.

Hiรซrarchie en stroom#

Besluiten: ADR-099, ADR-093 (paden in rtl). Detail: API ยง 10.14. Bewijs onder meer in __tests__/t6-hierarchy-flow.test.tsx en e2e/t6-hierarchy-flow.spec.ts.

CapaciteitStatusBewijsBekende beperking
Eรฉn labelbeleid voor treemap en sunburst: label.secondary ('share', 'value' in valueSemantics, 'none'), heel of niet; treemap alleen bladtegelsondersteundUnit, Browser, Mutatiegeen hostveld of formatter als tweede regel (bewust)
label.levels: zichtbaarheid per niveau, geteld vanaf de getoonde wortel (drilldown herbasiseert); lezers houden elke naam en waardeondersteundUnit, Browser, Mutatiegeen stijl per niveau (bewust)
Sunburst: tweede regel alleen waar de ring haar heel draagt, binnen de boog gemetenondersteundUnit, Browser, Mutatieop dunne buitenringen meestal afwezig (geometrie)
Een kop voor elke interne treemapknoop, een kopband alleen waar een kop staat (ook niet op de getoonde wortel); elke geneste groep een eigen toetsenbordelement (N3, CH-34)ondersteundUnit, Browser, Mutatieโ€”
Het drillpad op identiteit; een vervangen boom tekent uit zijn huidige knopen, een verdwenen pad landt op het diepste overgebleven niveau (N2)ondersteundUnit, Mutatieโ€”
Hiรซrarchiepaden lezen in ltr en rtl, met de kruimel naar het inline einde (CH-11)ondersteundUnit, Browser, Mutatieโ€”
Sankey nodeAlignment (justify, source, sink, center); labels, hover en menu volgen de knoop; geometrie spiegelt niet in rtlondersteundUnit, Browser, Mutatiegeen expliciete kolom per knoop
Sankey linkColor (source, target, gradient); de eigen color van een link wint; gradiรซnt als gevulde band in SVG, PNG en PDF (axiale shading)ondersteundUnit, Browser, Mutatiegeforceerde kleuren houden de geschreven tinten, zoals elke identiteitsvulling (bevestigd)
Sankey nodeOrder (auto, input); de tabel houdt de volgorde van linksondersteundUnit, Browser, Mutatiegeen waardesortering (bewust)
Het sankeytoetsenbord stapt per getekende kolom (layer), van boven naar beneden (N1)ondersteundUnit, Browser, Mutatieโ€”
Organigram collapsible, gecontroleerd en ongecontroleerd, op host-id; dubbele id ongeldig; zichtbare boom in layout, lijnen en pasgrenzenondersteundUnit, Browser, Mutatieeen kaart zonder id kan niet inklappen
Eรฉn schakelgrammatica: badge met aantal, Enter en Spatie, menu (Collapse, Expand, Expand all below); de kaart schakelt nooit; focus naar de dichtstbijzijnde zichtbare voorouderondersteundUnit, Browser, Mutatiegeen animatie van een deelboom (bewust)
Organigram cardFields (ten hoogste drie, op sleutel), van onderen weggelaten, nooit kleiner font; tooltip, tabel en CSV houden elk veld; 1200 tot 320 px binnen de kaartondersteundUnit, Browser, Mutatiegeen automatische kaarthoogte, geen afbeelding
Export organigram: zichtbare boom, onderschrift over het ingeklapte deel; CSV en tabel de hele organisatieondersteundBrowser, Mutatieโ€”

Bekende beperkingen:

  • Geen totaal in het midden van een sunburst: het centrum houdt de naam van de gedrilde knoop.

  • Geen styler of dekkingsknop per sankeylink (bewust: de aandachtsgrammatica bezit de dekking).

  • Geen alternatieve organigramlayouts (hangend, gestapeld); geen eigen knoop- of kaartrenderers.

Scalairen: schaal, doel en replay#

Besluit: ADR-100. Detail: API ยง 3.5. Bewijs onder meer in __tests__/t7-scalar-scales-targets.test.tsx en e2e/t7-scalar.spec.ts.

CapaciteitStatusBewijsBekende beperking
Eรฉn schaal op meter, lineaire meter en bullet: scale (true: ronde waarden naar de lengte van boog of baan, nooit fijner dan de waardesemantiek; {ticks: [...]}: precies deze waarden, buiten het bereik niet getekend en gemeld); zonder scale ongewijzigdondersteundUnit, Browser, Mutatieโ€”
Schaalwoorden: uiteinden en doelwoord altijd, een tussenlabel wijkt (eerst om de andere), zijn streepje blijft; nooit een kleiner font; 1200, 768, 390 en 320 px zonder overlap en binnen de chartondersteundUnit, Browser, Mutatieโ€”
Eรฉn doel: target als getal of {value, label} op meter, lineaire meter en bullet; het label vervangt het woord "Doel", het getal blijft; CSV houdt het getalondersteundUnit, Browser, Mutatieโ€”
Doel buiten de schaal: het merk stopt aan het uiteinde, woord, naam en tabel houden het ware getal (naam en tabel: "boven/onder de schaal"); een niet-eindig doel wordt niet getekend of genoemd (diagnose); doel 0 overal genoemdondersteundUnit, Browser, Mutatiegeen eigen merk buiten de schaal (bewust)
Waarde buiten de schaal: de naam noemt de ware waarde "boven/onder het bereik", zonder afgeklemd aandeel; het aandeel van het doel alleen waar het iets betekentondersteundUnit, Mutatieโ€”
Meter indicator: 'needle' | 'bar' (exclusief): de balk smaller dan de band, van startAngle naar de waarde, in de on-fill-tint; zones, doel en uitlezing blijven; het doel boven naald en balkondersteundUnit, Browser, Mutatieโ€”
Meter replay: een onzichtbaar trefgebied om de spil (geen cursor), en Replay animation in het menu waar de host het houdt (features.replay); terug naar het begin, dan de intrede naar de huidige waarde; genegeerd zolang de meter beweegt; niets onder verminderde beweging; contextMenu={false} laat de spil werkenondersteundUnit, Browser, Mutatiezonder menu-item alleen aanwijzer en aanraking (bewust: het is geen essentiรซle functie)
Export: schaal, doel en balk in SVG, PNG en PDF zoals het scherm; een export tijdens een replay schrijft de rustwaarde; het trefgebied gaat nooit meeondersteundBrowser, Mutatieโ€”
Geforceerde kleuren: naald, balk, markeringen en doelen CanvasText, streepjes GrayText, teksten CanvasText; de zones houden hun tintenondersteundBrowseralleen emulatie

Bekende beperkingen:

  • Eรฉn doel per scalair; geen tweede vergelijkend merk.

  • Geen tickaantal of -interval, geen kleine streepjes, geen tickformatter en geen stijl per streepje of doel.

  • Geen zichtbare namen van meterzones of bulletbanden (de lezers noemen ze wel).

  • Geen naald en balk tegelijk, geen gesegmenteerde boog, geen stijl voor radiale voortgang; de lineaire meter vult niet naar zone.

  • Geen logaritmische scalaire schaal; geen multi-bullet op een gedeelde as.

  • Geen gebeurtenis bij het einde van een replay en geen generieke replay-API (onAnimationComplete vuurt niet opnieuw).

Activering en selectie#

Besluiten: ADR-042 (betekenis, Cartesisch: ยง Level 2), ADR-102 (de losse families). Detail: API ยง 2.1 en ยง 2.1.1. Bewijs onder meer in __tests__/t8-*-selection.test.tsx en e2e/t8-selection.spec.ts.

CapaciteitStatusBewijsBekende beperking
selection, selectedItems, defaultSelectedItems, onSelectionChange en onItemActivate op taart, trechter, radiale staaf, nightingale, radar, heatmap, treemap, sunburst en sankey, met de betekenis van ADR-042ondersteundUnit, Browser, Mutatieorganigram, tijdlijn, scalairen en sparkline niet (bewust)
Eรฉn ChartItemRef in vier vormen: item van een reeks, cel, knoop, link; รฉรฉn vergelijking, nooit een positie of labelondersteundUnit, Browser, Mutatieeen host die een verwijzing als reeksitem leest, vernauwt ('seriesId' in ref, kind)
Een klik of tik selecteert en activeert daarna; Spatie selecteert, Enter activeert; activering zonder selectie en selectie zonder handler; zonder de props verandert er nietsondersteundUnit, Browser, Mutatieโ€”
Radar: het hoekpunt als item; het toetsenbord met PageUp en PageDown op รฉรฉn hoekpuntondersteundUnit, Browser, Mutatiealleen met selectie of activering aan; anders blijft het toetsenbord op de variabele
Heatmap: een cel met een rij; een lege kruising is geen item; identiteit op de waarden, ongevoelig voor asvolgordeondersteundUnit, Browser, Mutatieโ€”
Treemap en sunburst: alleen bladeren op hun host-id; een ouder blijft drillen; een uitgedrild blad is inactiefondersteundUnit, Browser, Mutatieeen blad zonder id is alleen te activeren
Sankey: knopen en links; LinkDatum.id, anders bron en doel; parallelle links zonder id รฉรฉn item met รฉรฉn melding; Spatie selecteert, Enter doorloopt, Shift+Enter activeert; aandacht van een link op dezelfde identiteitondersteundUnit, Browser, Mutatieโ€”
Gecontroleerd en ongecontroleerd; niet getekend is inactief, niet verwijderd; alleen ongecontroleerd snoeit, รฉรฉn keer met updateondersteundUnit, Mutatieโ€”
Het driehoekje op het item, zonder andere vulling, maat of plaats; geforceerde kleuren Highlight; 390 en 320 px binnen de chart, de pagina groeit nietondersteundUnit, Browser, Mutatieโ€”
Naam, aankondiging, tabel en selectedItemCount noemen de geselecteerde getekende items; geen aria-selected op role="img"ondersteundUnit, Browsereen sankeyknoop heeft geen tabelrij
Export en print in rust: geen driehoekje in SVG, PNG, PDF of print; CSV ruwondersteundUnit, Browser, Mutatieโ€”
Op omvang (2.500 cellen, 2.000 bladeren, 500 links) een selectiewijziging binnen de kosten van een gewone hover op dezelfde chart, niet groeiend met het aantal geselecteerdegemetenBrowsereen interactie hertekent de hele familie (ook een hover; ROADMAP PF-V4)

Bekende beperkingen:

  • Geen ouder- of groepsselectie op treemap en sunburst; geen automatische selectie van voorouders of afstammelingen.

  • Geen ingebouwde menu-items Selecteren en Deselecteren in het contextmenu.

  • Geen selectie op reeksniveau en geen bereik-, lasso-, brush- of sleepselectie.

  • Dubbelklikken heeft geen betekenis.

  • Geen stijlopties voor de selectie; geen zin met het aantal geselecteerde items in de beschrijving; geen selectiekolom in CSV.

  • Geen generiek selectiemodel voor grafen buiten de sankey.

Familie-enkelingen#

Besluiten: ADR-103 (histogram, tijdlijn, kaars, sparkline), ADR-097 (watervalsoorten). Staafplaatsing en trechtercontext: ยง Waardebetekenis en labels. Detail: API ยง 10.12 en ยง 10.16. Bewijs onder meer in __tests__/t9-family-singles.test.tsx, t9-option-contract.test-d.tsx, t9-waterfall-kinds.test.tsx, e2e/t9-singles.spec.ts en e2e/t9-waterfall.spec.ts.

CapaciteitStatusBewijsBekende beperking
Histogram: รฉรฉn binregel (binCount, binWidth of bins); een onbruikbare regel geeft een diagnose en de standaardtelling (API ยง 10.16)ondersteundUnit, Browser, Mutatieโ€”
Histogram: areaProportional bij telling en som tekent ongelijke bins naar oppervlak; label, tooltipwaarde, aankondiging en tabel houden de hoeveelheid (API ยง 10.16)ondersteundUnit, Browser, Mutatieniet bij een gemiddelde; de y-astitel is van de host
Tijdlijn: ordinaal blijft de standaard; timeAxis met machine-time per event plaatst op tijd, gelijke tijden op รฉรฉn x, markers nooit verschoven; toetsenbord, tabel en aankondiging in tijdvolgorde, gelijke tijden in hostvolgorde; CSV in hostvolgorde met time; รฉรฉn event zonder tijd: de hele chart ordinaal met รฉรฉn diagnoseondersteundUnit, Browser, Mutatiesamenvallende markers zijn voor de aanwijzer รฉรฉn doel (toetsenbord en tabel bereiken elk event)
Candlestick: bodyStrokeWidth (standaard 1, 0 mag) in de richtingskleur, de lont ongewijzigd; geforceerde kleuren houden een rand van 1 px op een randloos lichaam, hol tegenover gevuld blijftondersteundUnit, Browser, Mutatieโ€”
Sparkline: domain exact (geen opvulling, geen nul) op lijn, vlak en staaf; gedeeld domein tekent gelijke waarden op gelijke hoogte; buiten het domein tot de rand, punten buiten niet getekend, CSV ruw; ongeldig: diagnose en automatischondersteundUnit, Browser, Mutatieโ€”
Sparkline: een staaf leest vanaf nul; het automatische domein van een staafsparkline reikt tot nul, dat van lijn en vlak niet; een hostdomein wordt nooit verbreedondersteundUnit, Browser, Mutatieโ€”
Export van deze opties: SVG schrijft de schermgeometrie van elk geval; PNG en PDF dragen de lichaamsrand; CSV ruwondersteundBrowser, Mutatieโ€”
Waterval: รฉรฉn rolveld kindKey met change, subtotal, totalondersteundUnit, Mutatiegeen totalen op positie zonder datarij (bewust)
Waterval: zwevend subtotaal (nettobeweging sinds het vorige subtotaal of totaal), totaal vanaf nul; beide waar ook, herhaald, gevolgd door mutaties; het saldo verandert nietondersteundUnit, Browser, Mutatieโ€”
Waterval: afgeleid bedrag; een afwijkende eigen waarde, een onbekende soort en een niet-eindige mutatie geven een ontwikkeldiagnose; een ontbrekende mutatie tekent nietsondersteundUnit, Mutatieโ€”
Waterval: label, tooltip, tabel (soortkolom), aankondiging, dradenkruis en kopieer-waarde lezen dezelfde soort en hetzelfde bedrag; zoom hernoemt nietsondersteundUnit, Browser, Mutatieโ€”
Waterval: subtotaal in de verf van het totaal; geforceerde kleuren GrayText; bruggen alleen op saldi; omgekeerde as; SVG, PNG en PDF zoals het scherm; CSV ruw met de soortkolomondersteundUnit, Browser, Mutatiegeen eigen subtotaalverf (bewust)

Bekende beperkingen:

  • Histogram: geen binoorsprong en geen benoemde binregels; geen KDE of normaalcurve (hostsamenstelling), geen cumulatief histogram, geen bins op tijdwaarden.

  • Trechter: geen ingebouwde modus "aandeel van de vorige" (de context draagt het getal); geen piramide en geen liggende trechter.

  • Tijdlijn: geen Gantt, geen periode-events, geen verticale oriรซntatie; geen tijdas met streepjes; geen aanwijzing voor samenvallende markers.

  • Candlestick: geen breedte per richting; geen holle variant in gewone weergave.

  • Sparkline: geen eenzijdige of zachte grenzen; geen tooltip, referentielijn of negatieve kleur.

  • Waterval: geen liggende of gestapelde waterval; geen annotaties; geen breedte of streep voor de bruggen; geen stijlknoppen voor het subtotaal; geen binnenlabels.

Beweging: profiel en klassen#

Besluit: ADR-104 met zijn aanvullingen. Detail: API ยง 2.4, ARCHITECTURE ยง 7.10. Metrieken: QUALITY-BUDGETS ยง 7.

CapaciteitStatusBewijsBekende beperking
animation als profiel (calm, responsive) plus de klassen entrance, update, exit, tooltip, attention, replay; serialiseerbaar, benoemde curvesondersteundUnit, Type, Mutatieโ€”
Voorrang profiel โ†’ ChartDefaults โ†’ grafiek โ†’ serie (entrance, exit) โ†’ gereduceerde beweging, klasse voor klasse samengevoegd; ook een plain <Chart>ondersteundUnit, Browser, Mutatieโ€”
animation: false en gereduceerde beweging: elke interpolatie ogenblikkelijk (ook herschikking, replay en discrete zoom), alle interactie en elk resultaat blijftondersteundUnit, Browser, Mutatieโ€”
Validatie: niet-eindig of negatief valt terug op het profiel; tooltip en aandacht โ‰ค 600 ms, geometrie โ‰ค 3.000 ms; รฉรฉn ontwikkeldiagnoseondersteundUnit, Mutatieโ€”
Tooltip: inhoud in het eerste frame, invagen en uitvagen op de tooltipduur, glijden tussen merken binnen รฉรฉn zijde, direct bij een zijdewissel of bij volgen, terugkeer zonder knipperondersteundUnit, Browser, Mutatiede gesplitste tooltip glijdt niet (elk vak hangt aan een steel)
Locators (crosshair, knopen, cues, heatmaprugmarkeringen) direct op hun plaats; vertrek samen met de tooltipondersteundBrowser, Mutatieโ€”
Aandacht: wissel en vrijgave (1,8 ร— de wissel), ook bij een legendavoorbeeld; alleen dekkingondersteundBrowser, Mutatieorganigram en tijdlijn kennen geen aandachtsovergang
Kleursleutelmarkering van de heatmap reist naar de nieuwe waarde; de waarde staat meteen in de tooltipondersteundBrowser, Mutatieโ€”
Update standaard aan op elke updatefamilie, vanaf de getekende stand, met de curve van de klasseondersteundUnit, Browser, Mutatiegeen eerlijk paar voor een gewijzigd aantal punten: dan geldt d3-interpolate-path
Gegroepeerde vakken (staaf, bereikstaaf, boxplot, halter): exit in het eigen vak, daarna schuiven de buren; hitgebied en labels bewegen meeondersteundUnit, Browser, Mutatieeen teruggekeerde reeks staat meteen in haar eindvak
Replay van de meter: 35 % terug, 65 % omhoog op de replayklasse; waarde en toegankelijke naam blijven de rustwaardeondersteundUnit, Browser, Mutatieeen verzoek tijdens een lopende beweging wordt genegeerd
Oriรซntatiewijziging: direct in de nieuwe ligging, geen beweging ertussenondersteundUnit, Mutatieโ€”
Export tijdens een beweging (entrance, update, herschikking, replay, discrete zoom) wacht tot rust; geen tooltip, locator, aandacht of markering in de export, SVG, PNG en PDFondersteundUnit, Browser, Mutatieโ€”
Aanraking: een tik toont de kaart en zij blijft; een glijdende vinger draagt een aanwijzergebonden kaart direct; een tweede vinger is geen hoverondersteundUnit, Browsergeรซmuleerd in Chromium; een echt toestel is AC-V5
  • Geen none-profiel, geen presets, geen vrije cubic-bezier, geen easing per interactieklasse, geen override van gereduceerde beweging en geen aparte knop voor de herschikking of de replayverdeling (ADR-104).

Theming: het CSS-tokencontract en zijn grenzen#

Besluiten: ADR-043 (tokencontract, pakketdefaults, zelfgeladen stylesheet), ADR-044 (kleurbeslissingen in het levende element, capture-transactie), ADR-045 (geen visuele thema-API), ADR-046 (hostpalet is hostbezit), ADR-047 (paletkopieรซn, privรฉ-eigendom), ADR-050 (stylesheetactivering, tekstmeting in de scope). Detail: API ยง 13.

CapaciteitStatusBewijsBekende beperking
Eรฉn tokencontract: publieke token over privรฉ-pakketdefault; geen --color-*-alias gelezenondersteundUnit, Contract, Browser, Mutatiede aliasveeg ziet alleen wat de scenario's renderen
Volledige pakketdefaults licht en donker, zonder host-stylesheet, binnen de budgettenondersteundContract, Browser, Mutatiegemeten op de eigen oppervlakken van het package; hostwaarden meet de host
Eรฉn geaggregeerd stylesheet, door de entry geladen; geen Tailwind-scan of designsysteemimport nodigondersteundContract, Browser, Mutatiegeen publiek stylesheet-subpad (publicatiewerk)
Centrale hostoverride bereikt Cartesische en losse charts, in elke stylesheetvolgordeondersteundBrowser, Mutatieโ€”
Geen visuele thema-API: geen theme, geen ChartThemeOverride, geen kleur op <ChartDefaults> (ADR-045)ondersteundUnit, Mutatieโ€”
Chartlokale colors en expliciete serie-, datum- en annotatiekleuren, ook in SVG- en PNG-export (ADR-045)ondersteundUnit, Browser, Mutatieโ€”
Gescoopte CSS-override bereikt Cartesische en losse charts, alleen binnen haar scope (ADR-045)ondersteundBrowser, Mutatieโ€”
Bullet: waardebalk als contrasterende markering over banden en track, zonder eigen rol (ADR-045)ondersteundUnit, Mutatieongemeten (server, eerste render) het donkere on-fill-token
Afnemers dragen geen eigen palet en geen UI-intentiekleur als categorie (ADR-045)ondersteundGate, Mutatieeen kleur die via een variabele uit een ander bestand komt, ziet de gate niet
Afnemers declareren geen paletkopie in een stylesheet of stijlobject; รฉรฉn slot of een semantische rol blijft een gescoopte override (ADR-047)ondersteundGate, Mutatieeen palet via setProperty of een berekende sleutel ziet de gate niet
Wat het package declareert of schrijft, staat onder --ac-; de publieke --chart-*-namen zijn van de host (ADR-047)ondersteundContract, Mutatieโ€”
Een hostpalet wijzigt niets in het package: de pakketdefaults blijven merkneutraal en letterlijk (ADR-046)ondersteundContract, Browser, Mutatiewat het palet van de host is, beslist en meet de host
On-fill-beslissingen lossen op in het chartelement: een gescoopte override telt mee (ADR-044)ondersteundUnit, Browser, Mutatieโ€”
Moduswissel, accentwissel, centrale tokenwijziging en gescoopte override zonder remount (ADR-044)ondersteundUnit, Browser, Mutatieeen CSSOM-wijziging vraagt invalidateChartStyles(); de paint volgt wel vanzelf
Heatmapcellen en gradiรซntlegenda tonen รฉรฉn schaal, in licht en donkerondersteundUnit, Browser, Mutatieโ€”
SVG-, PNG- en PDF-export tonen de weergave van het moment waarop zij oplossen, ook na een wissel; een stijlwissel vรณรณr of tijdens de capture geeft รฉรฉn generatie (ADR-044)ondersteundUnit, Browser, Mutatiestijl die alleen uit een stylesheetregel komt (focusring, print) gaat niet mee; drie pogingen, dan een fout
Server-render en hydratatie zonder stijllezing tijdens de render; een niet-gemounte chart schat zijn labels (ADR-050)ondersteundUnit, Mutatieโ€”
Stylesheetactivering (media, disabled, rel, type, href, title in <head>; een <link> die laadt of niet laadt) invalideert vanzelf, ook tijdens een export (ADR-050)ondersteundUnit, Browser, Mutatiestylesheets buiten <head>, CSSOM-vlaggen en andere mediavoorwaarden vragen invalidateChartStyles() (API ยง 13)
Tick- en datalabels gemeten in het font van de eigen scope: fontvariabele, geรซrfde familie en gewicht; zustercharts verschillen (ADR-050)ondersteundUnit, Browser, Mutatietaart, gauge, funnel, nightingale, radial bar, bullet, labelachtergrond en heatmapcellabel schatten heuristisch

Buiten scope#

Niet geautoriseerd en geparkeerd (ADR-041): meer dan twee assen, willekeurige assen aan รฉรฉn kant, onafhankelijke x-assen, generieke drilldown, rijkere of bewerkbare annotaties, extra indicatoren, brede generics voor callbackcontexten en een publiek plugin-ecosysteem (ROADMAP.md ยง 5.4 en ยง 5.5). Een andere renderer en live data wachten op de trigger in PERFORMANCE.md ยง Budgetten en besluit A2. Specialistische families en tools vallen buiten de beoogde scope (ROADMAP ยง 5.1 en ยง 6); maps en geografische charts voorlopig ook (ADR-062).

This page as Markdown