/**
* TyTag Web Component — tag/chip with slots and semantic flavors.
*/
import type { Flavor, Size, TyTagElement } from "../types/common.js";
import { TyComponent } from "../base/ty-component.js";
import type { PropertyChange } from "../utils/property-manager.js";
interface TagState {
flavor: Flavor;
size: Size;
value: string;
selected: boolean;
pill: boolean;
clickable: boolean;
dismissible: boolean;
disabled: boolean;
}
/**
* Ty Tag Component
*
* @example
* ```html
* Primary Tag
* Success Tag
* Clickable Tag
* Selected Tag
* ```
*/
export declare class TyTag extends TyComponent implements TyTagElement {
static formAssociated: boolean;
protected static properties: {
flavor: {
type: "string";
visual: boolean;
default: string;
};
size: {
type: "string";
visual: boolean;
default: Size;
validate: (v: any) => boolean;
coerce: (v: any) => any;
};
value: {
type: "string";
visual: boolean;
default: string;
};
selected: {
type: "boolean";
visual: boolean;
default: boolean;
};
pill: {
type: "boolean";
visual: boolean;
default: boolean;
aliases: {
"not-pill": boolean;
};
};
clickable: {
type: "boolean";
visual: boolean;
default: boolean;
};
dismissible: {
type: "boolean";
visual: boolean;
default: boolean;
};
disabled: {
type: "boolean";
visual: boolean;
default: boolean;
};
};
private _cleanup;
private _customFlavorSheet;
constructor();
/** TyComponent calls render() automatically after this hook. */
protected onConnect(): void;
/**
* Custom (non-built-in) flavors: generate the same --tag-* wiring the
* built-in flavors get, pointed at the user's design tokens
* (--ty-bg-X / --ty-color-X / --ty-border-X). See utils/flavor-sheet.ts
* for why this is an adopted sheet and how page-level overrides survive.
*/
private _syncCustomFlavor;
protected onDisconnect(): void;
/**
* Handle property changes - called BEFORE render
*/
protected onPropertiesChanged(changes: PropertyChange[]): void;
private handleClick;
private handleDismiss;
private handleKeydown;
private dispatchTagEvent;
private cleanupEventListeners;
private setupEventListeners;
protected render(): void;
get flavor(): Flavor;
set flavor(value: Flavor);
get size(): Size;
set size(value: Size);
get value(): string;
set value(val: string);
get selected(): boolean;
set selected(value: boolean);
get pill(): boolean;
set pill(value: boolean);
get clickable(): boolean;
set clickable(value: boolean);
get dismissible(): boolean;
set dismissible(value: boolean);
get disabled(): boolean;
set disabled(value: boolean);
}
export {};