basic-status.ts ts

import {
	type Component,
	asEnum,
	component,
	setText,
	toggleClass,
} from '../../..'

export type BasicStatusProps = {
	status: string
}

const STATUS_OPTIONS: [string, ...string[]] = ['success', 'warning', 'error']

export default component(
	'basic-status',
	{
		status: asEnum(STATUS_OPTIONS),
	},
	el => [
		setText('status'),
		...STATUS_OPTIONS.map(status =>
			toggleClass<BasicStatusProps>(status, () => el.status === status),
		),
	],
)

declare global {
	interface HTMLElementTagNameMap {
		'basic-status': Component<BasicStatusProps>
	}
}