Skip to content

Custom-element registration

Import a definition entrypoint for each enhanced element:

import '@timelessui/components/define/ui-dialog'
import '@timelessui/components/define/ui-tabs'

The aggregate entrypoint registers every public custom element:

import '@timelessui/components/define'

Class-only imports such as @timelessui/components/dialog do not call customElements.define, so they remain safe in server code and test utilities. Definition entrypoints detect conflicting constructors and avoid registering the same Timeless class twice in one browser realm.