/**
* TyTag Web Component
* PORTED FROM: clj/ty/components/tag.cljs
* Tag component 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";
/**
* Component internal state (for typing TyComponent)
*/
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: string;
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;
constructor();
/**
* Called when component connects to DOM
* TyComponent already handled pre-connection property capture
* TyComponent will call render() automatically after this hook
*/
protected onConnect(): void;
/**
* Called when component disconnects from DOM
*/
protected onDisconnect(): void;
/**
* Handle property changes - called BEFORE render
*/
protected onPropertiesChanged(_changes: PropertyChange[]): void;
/**
* Handle tag click events
*/
private handleClick;
/**
* Handle tag dismiss events
*/
private handleDismiss;
/**
* Handle keyboard interactions
*/
private handleKeydown;
/**
* Dispatch custom tag events
*/
private dispatchTagEvent;
/**
* Clean up existing event listeners
*/
private cleanupEventListeners;
/**
* Setup event listeners for tag interactions
*/
private setupEventListeners;
/**
* Render the tag component
*/
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 {};
//# sourceMappingURL=tag.d.ts.map