@club-employes/utopia
Version:
🎨 Modern Vue 3 design system with multi-brand theming, design tokens, and 30+ components. Supports Club Employés & Gifteo brands with light/dark modes.
55 lines (54 loc) • 1.8 kB
TypeScript
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
interface Column {
key: string;
label: string;
sortable?: boolean;
width?: string;
align?: 'left' | 'center' | 'right';
formatter?: (value: any) => string;
}
interface Props {
columns: Column[];
data: any[];
title?: string;
loading?: boolean;
selectable?: boolean;
striped?: boolean;
hoverable?: boolean;
rowKey?: string | ((row: any) => string);
}
declare function __VLS_template(): {
attrs: Partial<{}>;
slots: Partial<Record<`cell-${string}`, (_: {
value: any;
row: any;
column: Column;
index: number;
}) => any>> & {
header?(_: {}): any;
empty?(_: {}): any;
};
refs: {};
rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
"row-click": (row: any, index: number) => any;
"sort-change": (sortKey: string, sortOrder: "desc" | "asc" | null) => any;
}, string, PublicProps, Readonly<Props> & Readonly<{
"onRow-click"?: ((row: any, index: number) => any) | undefined;
"onSort-change"?: ((sortKey: string, sortOrder: "desc" | "asc" | null) => any) | undefined;
}>, {
loading: boolean;
selectable: boolean;
striped: boolean;
hoverable: boolean;
rowKey: string | ((row: any) => string);
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};