按钮

尝试一下

w-btn(key="ui.confirm" icon="Home")
import { configs, WidgetBtn } from 'abm-ui';
import { $ } from 'abm-utils';

const btn = $<WidgetBtn>('w-btn')!;

btn.on('active', (event) => {
	emit('active');
	update('checked', btn.checked);
	console.log(event);
});

const { emit, update } = window.register({
	events: ['active'],
	attrs: [
		{
			id: 'key',
			type: 'string',
			value: btn.key ?? '',
			action(v) {
				btn.key = v ? v : undefined;
			},
		},
		{
			id: 'icon',
			type: 'string',
			value: btn.icon ?? '',
			action(v) {
				btn.icon = v ? v : undefined;
			},
		},
		{
			id: 'delay',
			type: 'number',
			value: 0,
			action(v) {
				btn.delay = v;
			},
			min: 0,
			default: 0,
		},
		{
			id: 'progress',
			type: 'number',
			value: 0,
			min: 0,
			max: 100,
			default: 0,
			action(v) {
				btn.progress = v;
			},
		},
		{
			id: 'state',
			type: 'enum',
			value: '',
			options: ['', 'primary', 'danger', 'toggle'],
			action(v) {
				btn.state = v;
			},
		},
		{
			id: 'checked',
			type: 'boolean',
			value: false,
			action(v) {
				btn.checked = v;
			},
		},
		{
			id: 'flat',
			type: 'boolean',
			value: false,
			action(v) {
				btn.flat = v;
			},
		},
		{
			id: 'rounded',
			type: 'boolean',
			value: false,
			action(v) {
				btn.rounded = v;
			},
		},
		{
			id: 'disabled',
			type: 'boolean',
			value: false,
			action(v) {
				btn.disabled = v;
			},
		},
		{
			id: 'color',
			type: 'color',
			value: configs.theme.color,
			action(v) {
				btn.color = v;
			},
		},
	],
});

接口

WIP...