@zeix/ui-element
Version:
UIElement - a HTML-first library for reactive Web Components
32 lines (28 loc) • 517 B
text/typescript
import {
asInteger,
type Component,
component,
fromDOM,
fromEvents,
getText,
setText,
} from '../../..'
export type BasicCounterProps = {
readonly count: number
}
export default component(
'basic-counter',
{
count: fromEvents<number>(
'button',
{ click: ({ value }) => ++value },
fromDOM({ span: getText() }, asInteger()),
),
},
(_, { first }) => [first('span', setText('count'))],
)
declare global {
interface HTMLElementTagNameMap {
'basic-counter': Component<BasicCounterProps>
}
}