UNPKG

mdui

Version:

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

110 lines (109 loc) 4.06 kB
import '@mdui/shared/icons/check.js'; import '@mdui/shared/icons/clear.js'; 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-chip>Chip</mdui-chip> * ``` * * @event focus - 获得焦点时触发 * @event blur - 失去焦点时触发 * @event invalid - 表单字段验证未通过时触发 * @event change - 选中状态变更时触发 * @event delete - 点击删除图标时触发 * * @slot - 纸片文本 * @slot icon - 左侧元素 * @slot end-icon - 右侧元素 * @slot selected-icon - 选中状态下的左侧元素 * @slot delete-icon - 可删除时的右侧删除元素 * * @csspart button - 内部的 `<button>` 或 `<a>` 元素 * @csspart label - 纸片文本 * @csspart icon - 左侧图标 * @csspart end-icon - 右侧图标 * @csspart selected-icon - 选中状态下的左侧图标 * @csspart delete-icon - 可删除时的右侧删除图标 * @csspart loading - 加载中状态的 `<mdui-circular-progress>` 元素 * * @cssprop --shape-corner - 组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner) */ export declare class Chip extends ButtonBase<ChipEventMap> { static styles: CSSResultGroup; /** * 纸片的形状。可选值包括: * * * `assist`:用于显示与当前上下文相关的辅助操作,如在点餐页面提供分享、收藏等功能 * * `filter`:用于对内容进行筛选,如在搜索结果页过滤搜索结果 * * `input`:用于表示用户输入的信息片段,如在 Gmail 的“收件人”字段中的联系人 * * `suggestion`:用于提供动态生成的推荐信息,以简化用户操作,如在聊天应用中预测用户可能想发送的信息 */ variant: /*用于显示与当前上下文相关的辅助操作,如在点餐页面提供分享、收藏等功能*/ 'assist' | /*用于对内容进行筛选,如在搜索结果页过滤搜索结果*/ 'filter' | /*用于表示用户输入的信息片段,如在 Gmail 的“收件人”字段中的联系人*/ 'input' | /*用于提供动态生成的推荐信息,以简化用户操作,如在聊天应用中预测用户可能想发送的信息*/ 'suggestion'; /** * 是否显示阴影 */ elevated: boolean; /** * 是否可选中 */ selectable: boolean; /** * 是否已选中 */ selected: boolean; /** * 是否可删除。为 `true` 时,纸片右侧会显示删除图标 */ deletable: boolean; /** * 左侧的 Material Icons 图标名。也可以通过 `slot="icon"` 设置 */ icon?: string; /** * 选中状态下左侧的 Material Icons 图标名。也可以通过 `slot="selected-icon"` 设置 */ selectedIcon?: string; /** * 右侧的 Material Icons 图标名。也可以通过 `slot="end-icon"` 设置 */ endIcon?: string; /** * 可删除时,右侧删除图标的 Material Icons 图标名。也可以通过 `slot="delete-icon"` 设置 */ deleteIcon?: string; private readonly rippleRef; private readonly hasSlotController; constructor(); protected get rippleElement(): Ripple; private onSelectedChange; protected firstUpdated(changedProperties: PropertyValues): void; protected render(): TemplateResult; private onClick; private onKeyDown; /** * 点击删除按钮 */ private onDelete; private renderIcon; private renderLabel; private renderEndIcon; private renderDeleteIcon; private renderInner; } export interface ChipEventMap { focus: FocusEvent; blur: FocusEvent; invalid: CustomEvent<void>; change: CustomEvent<void>; delete: CustomEvent<void>; } declare global { interface HTMLElementTagNameMap { 'mdui-chip': Chip; } }