OptionalcariesWhether the visual caries-depth encoding (per-surface depth picker + the
opacity/contour depth tier in the render) is active. Default true; set
false to render caried surfaces at the SVG default with no depth tier.
OptionalchildrenThe composed UI (surfaces + shell layout).
OptionaldarkOverride dark mode state (controlled mode).
OptionaldiscolorationDetail level for the per-tooth discoloration control: "simple" (yes/no
toggle) or "complex" (choose the discoloration cause, default).
OptionalenableEnable ICDAS II per-surface caries scoring (0–6). When enabled, the depth selector/popup expose ICDAS codes 1–6 and the surface indicator shows a numeric badge; otherwise the 3-level scale is used.
OptionalenableWhen true, enables per-tooth notes. Double-click a tooth to add/edit a note. Notes are shown in hover tooltips and included in JSON export/import.
OptionalfillingFilling-complexity level for the Fillings card: "simple" (one material
per tooth, no per-surface picker) or "complex" (per-surface materials,
default). Contrast with settings.panels — this one mirrors the
fillingComplexity engine flag (Settings → Fillings). When provided, the
value overrides the engine/UI default; when omitted, whatever the engine
holds (module default or a prior setFillingComplexity call) stays put.
OptionalfillingWhether filling-defect findings are enabled on the Fillings card. Default
true. Mirrors the fillingDefectEnabled engine flag (Settings →
Fillings); same controlled/standalone contract as fillingComplexity.
OptionalfillingAvailable filling materials as a Record<material, boolean> over
"amalgam" | "composite" | "gic" | "temporary" (unknown keys are
ignored). Default: all four available. Mirrors the fillingMaterialAvail
engine map (Settings → Fillings). Hosts may pass an inline literal — the
sync effect keys on a canonical serialized form, so re-renders with
identical content do not re-fire.
OptionalfissureWhether fissure-sealing is offered on the Fillings card. Default true.
Mirrors the fissureSealingEnabled engine flag (Settings → Fillings);
same controlled/standalone contract as fillingComplexity.
OptionallanguageOverride the UI language (controlled mode).
OptionalnumberingOverride the tooth numbering system (controlled mode).
OptionalonCallback when the user toggles dark mode.
OptionalonCalled after the user changes the filling-complexity level in the
Settings modal: (value: FillingComplexity) => void. Not fired for
prop-driven restores. The write-back counterpart of fillingComplexity.
OptionalonSee onFillingComplexityChange — the defect toggle's counterpart.
OptionalonCalled after the user toggles a material in the Settings modal:
(material: string, enabled: boolean) => void — per-material, mirroring
the engine's setFillingMaterialAvailability setter (no whole-record
change ever happens). Not fired for prop-driven restores.
OptionalonSee onFillingComplexityChange — the fissure-sealing toggle's counterpart.
OptionalonCallback when the user changes the language.
OptionalonCallback when the user changes the numbering system.
OptionalpluginsCustom SVG plugins for extending the odontogram with additional visual overlays and per-tooth custom state. See OdontogramPlugin.
OptionalpulpPulp-diagnosis detail level for the pulp control:
"simple" (healthy / pulpitis), "aae" (4 AAE pulp diagnoses, default) or
"latin" (9 practical-Latin subtypes). A stored value round-trips at every
level; the level only governs how the pulp control presents it.
OptionalradiographicRadiographic-depth granularity for the per-surface picker: "off"
(hidden, default), "threeLevel" (superficial/middle/deep) or "detailed"
(E1..D3). When off, the per-surface radiographic badge is not shown.
OptionalreadWhen true, disables all interactions (click, touch, keyboard). Useful for print/report/view modes.
OptionalrootRoot-caries granularity for the per-tooth picker: "simple" (none /
present, default) or "severity" (the full none/active/arrested/
active-cavitated enum). Non-collapsing across modes.
OptionalscreenTooth-number size of the on-screen grid; same contract as screenToothSpacing.
OptionalscreenInter-tooth spacing of the on-screen grid (Settings → Odontogram). Mirrors
the screenToothSpacing engine flag; same controlled/standalone contract
as fillingComplexity.
OptionalsecondarySecondary-caries (CARS) granularity for the per-surface score picker:
"simple" ([0,3]), "standard" ([0,1,3,6], default) or "full" ([0..6]).
A stored score round-trips at every mode; the mode only governs the offered
option list. (The mode UI lives in the Settings modal; this prop is the
controlled entry point.)
OptionalselectionSelection-ring border style; same contract as screenToothSpacing.
OptionalselectionSelection-ring colour as #rrggbb; same contract as screenToothSpacing.
OptionalshowWhether the Orthodontics panel (#orthoCard) is shown. Default true.
Composes with the panel's own imperative ortho-eligibility gate (hidden
when no selected tooth is ortho-eligible) — both must be satisfied for
the panel to render.
OptionalshowWhether the Statuses panel (#statusCard) is shown. Default true. The
panel visibility is a settings-driven wrapper around the section — the
section's own imperative collapse/expand behavior is unaffected.
OptionalsurfaceSurface-notation mode for caries/filling surface letters + captions:
"full" (default) makes them position-aware (incisal on an anterior
tooth, labial on an anterior buccal surface, palatal on an upper lingual
surface) or "simple" (always the tooth-independent B/O/L set).
OptionalthemeCustom theme configuration. Overrides the default color palette via
CSS custom properties (--odon-*). See OdontogramThemeConfig.
OptionaltoothWhether the tooth-information panel is shown; same contract as screenToothSpacing.
OptionalwearDetail level for the per-tooth wear control: "simple" (yes/no toggle for
attrition) or "complex" (wear type per edge and cervix, default).
Props for OdontogramProvider — the full former
OdontogramShell(App) props surface plus the composedchildren. All state/behavior props are optional: when omitted the provider operates in standalone mode with internal state; when provided it operates in controlled mode and delegates state to the parent.