UNPKG

@zeix/ui-element

Version:

UIElement - a HTML-first library for reactive Web Components

42 lines (37 loc) 702 B
import { requireDescendant } from '../../..' import { type Component, RESET, asBoolean, asString, component, setProperty, setText, } from '../../../' export type BasicButtonProps = { disabled: boolean label: string badge: string } export default component( 'basic-button', { disabled: asBoolean(), label: asString(RESET), badge: asString(), }, (el, { first }) => { requireDescendant(el, 'button') requireDescendant(el, '.label') return [ first('button', setProperty('disabled')), first('.label', setText('label')), first('.badge', setText('badge')), ] }, ) declare global { interface HTMLElementTagNameMap { 'basic-button': Component<BasicButtonProps> } }