import { DataTableColumn } from './useDataTable';
export type DataTableSize = 's' | 'm';
export interface DataTableFilterTag {
/** Stable id used when emitting `remove-filter`. */
id: string;
/** Visible tag label. */
label: string;
}
export interface DataTableUi {
/** Scroll wrapper around the table. */
root?: string;
/** Clip region around the native `
`. Owns overflow when `scrollHeight` is set. */
scroller?: string;
/** Native `` element. */
table?: string;
/** Native `` when `caption` is set. */
caption?: string;
/** Header row group. */
thead?: string;
/** Body row group. */
tbody?: string;
/** Body row. */
tr?: string;
/** Header cell. */
th?: string;
/** Body cell. */
td?: string;
/** Empty-state cell when `value` is empty. */
empty?: string;
/** Wrapper inside the empty cell (title, description, action). */
emptyContent?: string;
/** Empty-state title (`emptyMessage`). */
emptyTitle?: string;
/** Empty-state description (`emptyDescription`). */
emptyDescription?: string;
/** Wrapper around the empty action. */
emptyAction?: string;
/** Built-in empty-state action button (`emptyActionLabel`). */
emptyActionButton?: string;
/** Icon inside the built-in empty-state action button. */
emptyActionIcon?: string;
/** Loading overlay. */
loading?: string;
/** Wrapper above the table for the `header` slot. */
header?: string;
/** Wrapper below the table for the `footer` slot. */
footer?: string;
/** Native `` when any column has a footer. */
tfoot?: string;
/** Footer cell. */
tf?: string;
/** Sort toggle inside a sortable header cell. */
sortButton?: string;
/** Selection column header and body cells. */
selection?: string;
/** Native checkbox or radio in the selection column. */
selectionInput?: string;
/** Expander column header and body cells. */
expansion?: string;
/** Expand/collapse toggle in the expander column. */
expansionButton?: string;
/** Chevron icon inside the expander toggle. */
expansionIcon?: string;
/** Expanded-content cell (`#expansion` slot). */
expansionPanel?: string;
/** Body row when it is selected. */
trSelected?: string;
/** Wrapper around AzPagination when `paginator` is true. */
paginator?: string;
/** Built-in toolbar root when `toolbar` is true. */
toolbar?: string;
/** Main toolbar row (selection, toggle, search, actions). */
toolbarRow?: string;
/** Left cluster of the toolbar row (selection status). */
toolbarStart?: string;
/** Right cluster of the toolbar row (toggle, search, actions). */
toolbarEnd?: string;
/** Selection count cluster. */
toolbarSelection?: string;
/** "{count} selected" label. */
toolbarSelectionCount?: string;
/** Default search field when `globalFilter` is bound. */
toolbarSearch?: string;
/** Magnifying-glass icon inside the search field. */
toolbarSearchIcon?: string;
/** Native search input. */
toolbarSearchInput?: string;
/** Actions cluster (filter, settings, primary, negative). */
toolbarActions?: string;
/** Bulk-selection banner under the main row. */
toolbarBanner?: string;
/** Banner body copy. */
toolbarBannerText?: string;
/** Banner action link (select all / clear). */
toolbarBannerAction?: string;
/** Active filter tags row. */
toolbarTags?: string;
/** Single filter tag pill. */
toolbarTag?: string;
/** Dismiss control inside a filter tag. */
toolbarTagRemove?: string;
/** Reset link after the filter tags. */
toolbarTagsReset?: string;
}
export declare const defaultDataTableUi: {
readonly root: "relative w-full font-sans";
readonly scroller: "relative w-full overflow-x-auto";
readonly table: "w-full min-w-full border-collapse text-sm text-fg";
readonly caption: "caption-top mb-2 text-start text-sm text-[color:var(--color-text-secondary)] font-sans";
readonly thead: "border-b border-edge bg-surface-muted";
readonly tbody: "bg-surface";
readonly tr: string;
readonly th: "text-start align-middle font-semibold text-fg";
readonly td: "text-start align-middle text-fg";
readonly empty: "text-center";
readonly emptyContent: "flex flex-col items-center gap-2 font-sans";
readonly emptyTitle: "m-0 font-semibold text-fg";
readonly emptyDescription: "m-0 text-sm text-[color:var(--color-text-secondary)]";
readonly emptyAction: "mt-2";
readonly emptyActionButton: string;
readonly emptyActionIcon: "text-xl leading-none";
readonly loading: "absolute inset-0 grid place-items-center bg-surface/70 font-sans text-sm text-fg";
readonly header: "mb-3 font-sans";
readonly footer: "mt-3 font-sans";
readonly tfoot: "border-t border-edge bg-surface-muted";
readonly tf: "text-start align-middle font-semibold text-fg";
readonly sortButton: string;
readonly selection: "w-10 text-center";
readonly selectionInput: string;
readonly expansion: "w-10 text-center";
readonly expansionButton: string;
readonly expansionIcon: "h-3.5 w-3.5 shrink-0 transition-transform motion-reduce:transition-none";
readonly expansionPanel: "text-start align-middle text-fg bg-surface-muted";
readonly trSelected: "bg-[color-mix(in_srgb,var(--color-text-accent)_10%,transparent)]";
readonly paginator: "mt-3 flex justify-end font-sans";
readonly toolbar: "mb-3 flex flex-col gap-2 font-sans";
readonly toolbarRow: "flex flex-wrap items-center gap-x-4 gap-y-2";
readonly toolbarStart: "flex min-w-0 shrink-0 flex-wrap items-center gap-2";
readonly toolbarEnd: "flex min-w-0 flex-1 flex-wrap items-center justify-end gap-3";
readonly toolbarSelection: "inline-flex items-center gap-2 text-sm text-fg";
readonly toolbarSelectionCount: "whitespace-nowrap font-semibold";
readonly toolbarSearch: "relative inline-flex w-full min-w-[12rem] max-w-sm items-center sm:flex-1";
readonly toolbarSearchIcon: string;
readonly toolbarSearchInput: string;
readonly toolbarActions: "inline-flex flex-wrap items-center gap-2";
readonly toolbarBanner: string;
readonly toolbarBannerText: "m-0";
readonly toolbarBannerAction: string;
readonly toolbarTags: "flex flex-wrap items-center gap-2";
readonly toolbarTag: string;
readonly toolbarTagRemove: string;
readonly toolbarTagsReset: string;
};
export declare const dataTableVariants: {
readonly size: {
readonly s: {
readonly th: "px-3 py-2";
readonly td: "px-3 py-2";
readonly empty: "px-3 py-10";
};
readonly m: {
readonly th: "px-4 py-3";
readonly td: "px-4 py-3";
readonly empty: "px-4 py-14";
};
};
readonly striped: {
readonly true: {
readonly tr: "even:bg-surface-muted";
};
};
readonly gridlines: {
readonly true: {
readonly th: "border border-edge";
readonly td: "border border-edge";
readonly empty: "border border-edge";
readonly tf: "border border-edge";
};
};
readonly scrollable: {
readonly true: {
readonly scroller: string;
};
};
readonly stickyHeader: {
readonly true: {
readonly thead: "sticky top-0 z-10";
readonly tfoot: "sticky bottom-0 z-10";
};
};
};
export declare const alignClass: {
readonly start: "text-start";
readonly center: "text-center";
readonly end: "text-end";
};
export declare const sortIconClass = "h-3.5 w-3.5 shrink-0";
export interface DataTableClassOptions {
size: DataTableSize;
striped?: boolean;
gridlines?: boolean;
scrollHeight?: string;
stickyHeader?: boolean;
hasFrozenColumns?: boolean;
ui?: DataTableUi;
}
export declare const dataTableClasses: (options: DataTableClassOptions) => {
root: string;
scroller: string;
table: string;
caption: string;
thead: string;
tbody: string;
tfoot: string;
empty: string;
emptyContent: string;
emptyTitle: string;
emptyDescription: string;
emptyAction: string;
emptyActionButton: string;
emptyActionIcon: (icon?: string) => string;
loading: string;
header: string;
footer: string;
paginator: string;
toolbar: string;
toolbarRow: string;
toolbarStart: string;
toolbarEnd: string;
toolbarSelection: string;
toolbarSelectionCount: string;
toolbarSearch: string;
toolbarSearchIcon: string;
toolbarSearchInput: string;
toolbarActions: string;
toolbarBanner: string;
toolbarBannerText: string;
toolbarBannerAction: string;
toolbarTags: string;
toolbarTag: string;
toolbarTagRemove: string;
toolbarTagsReset: string;
sortButton: string;
selectionInput: string;
row: (selected: boolean) => string;
selectionTh: string;
selectionTd: string;
selectionTf: string;
expansionTh: string;
expansionTd: string;
expansionTf: string;
expansionButton: string;
expansionIcon: (expanded: boolean) => string;
expansionPanel: string;
th: (column: DataTableColumn) => string;
td: (column: DataTableColumn) => string;
tf: (column: DataTableColumn) => string;
};
//# sourceMappingURL=ui.d.ts.map