• Turn a per-root setup into a full enhancer with the shared lifecycle every Hydrateless component needs: root discovery (including the container itself), idempotent de-duplication, option merging (defaults, then the root's data-hl-* attributes, then caller options), automatic listener and observer teardown, re-enhancement after destroy, and a uniform handle exposing each instance's imperative API. This is the single contract all enhancers are built on. Calling an enhancer with no container outside a browser is a safe no-op that returns an empty handle.

    Type Parameters

    • Options extends object = Record<string, never>
    • Api = null

    Parameters

    Returns Enhancer<Options, Api>