{
  "name": "oxygenui",
  "homepage": "https://oxygenui.design",
  "items": [
    {
      "name": "utils",
      "type": "registry:lib",
      "title": "Utils",
      "description": "Class-name merge helper shared by every Oxygen component.",
      "categories": [],
      "url": "https://oxygenui.design/r/utils.json"
    },
    {
      "name": "tokens",
      "type": "registry:style",
      "title": "Oxygen tokens",
      "description": "Semantic clinical status tokens, three density modes, and light/dark themes. Required by every Oxygen component.",
      "categories": [],
      "url": "https://oxygenui.design/r/tokens.json"
    },
    {
      "name": "absent-value",
      "type": "registry:component",
      "title": "Absent Value",
      "description": "Renders the absence of a clinical value as a statement rather than a blank. Distinguishes not-asked, declined, masked, pending, and error — reasons that mean different things and must not share a dash.",
      "categories": [
        "primitive",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/absent-value.json"
    },
    {
      "name": "action-gate",
      "type": "registry:component",
      "title": "Action Gate",
      "description": "Two-step confirmation for consequential clinical actions. States the specific consequence and names the patient, escalates friction for irreversible actions, and emits a structured audit event.",
      "categories": [
        "primitive",
        "system"
      ],
      "url": "https://oxygenui.design/r/action-gate.json"
    },
    {
      "name": "alert-banner",
      "type": "registry:component",
      "title": "Alert Banner",
      "description": "Severity tiers as an interruption budget. Only critical may take focus, the specific finding is stated rather than a category, and dismissal captures a reason so rules can be measured.",
      "categories": [
        "primitive",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/alert-banner.json"
    },
    {
      "name": "allergy-list",
      "type": "registry:component",
      "title": "Allergy List",
      "description": "Allergies and intolerances from FHIR AllergyIntolerance. Distinguishes a recorded no-known-allergies assertion from an empty list, because one means asked-and-answered and the other means nobody asked.",
      "categories": [
        "clinical-data",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/allergy-list.json"
    },
    {
      "name": "app-shell",
      "type": "registry:component",
      "title": "App Shell",
      "description": "Outermost frame composed from the user's permissions rather than rendered-then-disabled. Patient context is a landmark, context changes are guarded, and session expiry warns before it acts.",
      "categories": [
        "navigation",
        "system"
      ],
      "url": "https://oxygenui.design/r/app-shell.json"
    },
    {
      "name": "appointment-card",
      "type": "registry:component",
      "title": "Appointment Card",
      "description": "Scheduled appointment from a FHIR Appointment resource. Time zone is a required prop rather than inferred from the browser, and no-show is treated as distinct from cancelled.",
      "categories": [
        "scheduling"
      ],
      "url": "https://oxygenui.design/r/appointment-card.json"
    },
    {
      "name": "care-team",
      "type": "registry:component",
      "title": "Care Team Panel",
      "description": "Everyone involved and who is actually reachable now. Coverage sits beside the assignment rather than replacing it, and non-clinical members are first-class.",
      "categories": [
        "patient-identity",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/care-team.json"
    },
    {
      "name": "clinical-skeleton",
      "type": "registry:component",
      "title": "Clinical Skeleton",
      "description": "Loading placeholders shaped like layout, never like a value, plus a progressive section that keeps partial failure and stale cache visible instead of silently omitting content.",
      "categories": [
        "primitive",
        "system"
      ],
      "url": "https://oxygenui.design/r/clinical-skeleton.json"
    },
    {
      "name": "clinical-time",
      "type": "registry:component",
      "title": "Clinical Time",
      "description": "A clinical instant with a required time zone. Preserves FHIR partial-date precision, keeps absolute time always available, and flags future timestamps as the data errors they usually are.",
      "categories": [
        "primitive",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/clinical-time.json"
    },
    {
      "name": "clinical-value",
      "type": "registry:component",
      "title": "Clinical Value",
      "description": "One measured quantity, unit, comparator, and interpretation as a single atomic element. Preserves reported precision and never lets a value drift apart from its unit.",
      "categories": [
        "primitive",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/clinical-value.json"
    },
    {
      "name": "code-status",
      "type": "registry:component",
      "title": "Code Status",
      "description": "Resuscitation status, advance directives, and healthcare proxy. Unknown is a loud state, never a silent default to full code, and conflicting directives are surfaced rather than resolved.",
      "categories": [
        "patient-identity",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/code-status.json"
    },
    {
      "name": "concept-chip",
      "type": "registry:component",
      "title": "Concept Chip",
      "description": "A coded clinical concept with its coding one interaction away. Marks text-only concepts, unrecognised systems, and codes outside an expected value set.",
      "categories": [
        "primitive",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/concept-chip.json"
    },
    {
      "name": "condition-list",
      "type": "registry:component",
      "title": "Condition List",
      "description": "Problem list from FHIR Condition resources. Separates active from resolved, preserves vague onset as recorded, and never presents a provisional diagnosis as confirmed.",
      "categories": [
        "clinical-data",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/condition-list.json"
    },
    {
      "name": "coverage-card",
      "type": "registry:component",
      "title": "Coverage Card",
      "description": "Insurance coverage from a FHIR Coverage resource. Effective state is derived from status and period together, so a coverage marked active but past its end date reads as lapsed.",
      "categories": [
        "billing-and-coverage"
      ],
      "url": "https://oxygenui.design/r/coverage-card.json"
    },
    {
      "name": "density-provider",
      "type": "registry:component",
      "title": "Density Provider",
      "description": "Sets the spacing and target-size contract for a subtree. Three modes, nestable, and clamped to the WCAG 2.2 target-size floor so clinical density can never shrink a control below the accessible minimum.",
      "categories": [
        "primitive",
        "system"
      ],
      "url": "https://oxygenui.design/r/density-provider.json"
    },
    {
      "name": "dose-input",
      "type": "registry:component",
      "title": "Dose Input",
      "description": "Numeric entry for doses with ISMP formatting rules, plausibility warnings separated from hard maximums, and weight-based calculation that shows its arithmetic.",
      "categories": [
        "primitive",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/dose-input.json"
    },
    {
      "name": "empty-state",
      "type": "registry:component",
      "title": "Empty State",
      "description": "Distinguishes never-recorded, filtered-to-empty, source-unavailable, restricted, and pending. An unavailable section is never rendered as an empty one.",
      "categories": [
        "primitive",
        "system"
      ],
      "url": "https://oxygenui.design/r/empty-state.json"
    },
    {
      "name": "error-boundary",
      "type": "registry:component",
      "title": "Error Boundary",
      "description": "Contains a failure to one section and never renders a partial record as a complete one. Reports without PHI, and marks boundaries whose failure invalidates the surrounding screen.",
      "categories": [
        "primitive",
        "system"
      ],
      "url": "https://oxygenui.design/r/error-boundary.json"
    },
    {
      "name": "identity-token",
      "type": "registry:component",
      "title": "Identity Token",
      "description": "Compact, privacy-aware representation of a person. Photos require asserted consent, deceased and restricted are text, and initials infer nothing demographic.",
      "categories": [
        "primitive",
        "patient-identity"
      ],
      "url": "https://oxygenui.design/r/identity-token.json"
    },
    {
      "name": "medication-card",
      "type": "registry:component",
      "title": "Medication Card",
      "description": "Medication order from a FHIR MedicationRequest. On-hold, stopped, completed, and expired each get their own label and tone rather than one greyed-out style, because they lead to opposite next actions.",
      "categories": [
        "medication",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/medication-card.json"
    },
    {
      "name": "patient-banner",
      "type": "registry:component",
      "title": "Patient Banner",
      "description": "Persistent patient identity header driven by a FHIR R4 Patient resource. Handles restricted records, deceased status, masked identifiers, and missing demographics.",
      "categories": [
        "patient-identity",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/patient-banner.json"
    },
    {
      "name": "patient-snapshot",
      "type": "registry:component",
      "title": "Patient Snapshot",
      "description": "One-screen pre-encounter summary. Each section carries its own recency and failure, truncation is counted rather than silent, and changes since last review lead.",
      "categories": [
        "patient-identity",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/patient-snapshot.json"
    },
    {
      "name": "precautions-bar",
      "type": "registry:component",
      "title": "Precautions Bar",
      "description": "What staff must do before entering the room, ordered by required action. Lapsed precautions are dropped rather than greyed, and behavioral flags describe the approach, not the person.",
      "categories": [
        "patient-identity",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/precautions-bar.json"
    },
    {
      "name": "provenance",
      "type": "registry:component",
      "title": "Provenance Tag",
      "description": "Who recorded a datum, when, from what source, and whether it has been amended. Separates event time from charting time and states an absent source rather than guessing.",
      "categories": [
        "primitive",
        "system"
      ],
      "url": "https://oxygenui.design/r/provenance.json"
    },
    {
      "name": "reference-range",
      "type": "registry:component",
      "title": "Reference Range",
      "description": "Positions a result against its own reference range. Refuses to draw when no numeric bound was stated, and marks off-scale and one-sided ranges rather than implying bounds nobody gave.",
      "categories": [
        "primitive",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/reference-range.json"
    },
    {
      "name": "restricted-shield",
      "type": "registry:component",
      "title": "Restricted Shield",
      "description": "Wraps content restricted by sensitivity policy. Redacted by default, discloses only with a stated reason, re-hides on a timer, and can conceal that content exists at all.",
      "categories": [
        "primitive",
        "system",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/restricted-shield.json"
    },
    {
      "name": "status-badge",
      "type": "registry:component",
      "title": "Status Badge",
      "description": "Shared severity and status chip used by every Oxygen component, so critical reads identically on a lab result, a medication, and an allergy. Label is required — there is no icon-only variant.",
      "categories": [
        "primitive"
      ],
      "url": "https://oxygenui.design/r/status-badge.json"
    },
    {
      "name": "unsaved-guard",
      "type": "registry:component",
      "title": "Unsaved Guard",
      "description": "Central registry that stops clinical documentation being lost to a navigation, a patient switch, or a closed tab. Distinguishes recoverable drafts from work that exists only in this tab.",
      "categories": [
        "primitive",
        "system"
      ],
      "url": "https://oxygenui.design/r/unsaved-guard.json"
    },
    {
      "name": "vitals-panel",
      "type": "registry:component",
      "title": "Observation Panel",
      "description": "Results table for FHIR R4 Observation resources. Renders values, units, reference ranges, and interpretation — with uninterpreted results shown as uninterpreted, never as normal.",
      "categories": [
        "clinical-data",
        "clinical"
      ],
      "url": "https://oxygenui.design/r/vitals-panel.json"
    }
  ]
}
