import { WithDisposable } from '@blockeditor/lit';
import { LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { type LastProps } from '../../../../surface-block/managers/edit-session.js';
import type { EdgelessPageBlockComponent } from '../../edgeless-page-block.js';
import { type MenuPopper } from './common/create-popper.js';
@customElement('edgeless-tool-button')
export class EdgelessToolButton<
Menu extends LitElement = LitElement,
Type extends keyof LastProps = 'shape',
States extends readonly (keyof LastProps[Type])[] = [],
> extends WithDisposable(LitElement) {
@property({ attribute: false })
edgeless!: EdgelessPageBlockComponent;
@property({ attribute: false })
active = false;
protected _type!: Type;
protected _states!: States;
protected _menu: MenuPopper