```python
import math


def explode_kit(catalog: dict, kit: str, want: int) -> dict:
    """Total the base parts an order of a kit consumes."""
    if kit not in catalog:
        raise ValueError(f"the catalog does not define {kit}")
    
    def consume_parts(kit_name, quantity):
        recipe = catalog[kit_name]
        makes = recipe['makes']
        parts = recipe['parts']
        
        runs_needed = math.ceil(quantity / makes)
        for component, count in parts.items():
            if component in catalog:
                consume_parts(component, runs_needed * count)
            else:
                if component not in totals:
                    totals[component] = 0
                totals[component] += runs_needed * count
    
    totals = {}
    consume_parts(kit, want)
    return totals
```