UNPKG

mdui

Version:

实现 material you 设计规范的 Web Components 组件库

73 lines (72 loc) 2.64 kB
import { ButtonBase } from '../button/button-base.js'; import '../icon.js'; import type { Ripple } from '../ripple/index.js'; import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit'; /** * @summary 图标按钮组件 * * ```html * <mdui-button-icon icon="search"></mdui-button-icon> * ``` * * @event focus - 获得焦点时触发 * @event blur - 失去焦点时触发 * @event change - 选中状态变更时触发 * @event invalid - 表单字段验证未通过时触发 * * @slot - 图标组件 * @slot selected-icon 选中状态显示的图标元素 * * @csspart button - 内部的 `<button>` 或 `<a>` 元素 * @csspart icon - 未选中状态的图标 * @csspart selected-icon 选中状态的图标 * @csspart loading - 加载中状态的 `<mdui-circular-progress>` 元素 * * @cssprop --shape-corner - 组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner) */ export declare class ButtonIcon extends ButtonBase<ButtonIconEventMap> { static styles: CSSResultGroup; /** * 图标按钮的形状。可选值包括: * * * `standard`:适用于最低优先级的操作 * * `filled`:视觉效果强烈,适用于高优先级的操作 * * `tonal`:视觉效果介于 `filled` 和 `outlined` 之间,适用于中高优先级的操作 * * `outlined`:适用于中等优先级的操作 */ variant: /*适用于最低优先级的操作*/ 'standard' | /*视觉效果强烈,适用于高优先级的操作*/ 'filled' | /*视觉效果介于 `filled` 和 `outlined` 之间,适用于中高优先级的操作*/ 'tonal' | /*适用于中等优先级的操作*/ 'outlined'; /** * Material Icons 图标名。也可以通过 default slot 设置 */ icon?: string; /** * 选中状态的 Material Icons 图标名。也可以通过 `slot="selected-icon"` 设置 */ selectedIcon?: string; /** * 是否可选中 */ selectable: boolean; /** * 是否已被选中 */ selected: boolean; private readonly rippleRef; private readonly hasSlotController; protected get rippleElement(): Ripple; private onSelectedChange; protected firstUpdated(changedProperties: PropertyValues): void; protected render(): TemplateResult; private renderIcon; } export interface ButtonIconEventMap { focus: FocusEvent; blur: FocusEvent; change: CustomEvent<void>; invalid: CustomEvent<void>; } declare global { interface HTMLElementTagNameMap { 'mdui-button-icon': ButtonIcon; } }