UNPKG

@indielayer/ui

Version:

Indielayer UI Components with Tailwind CSS build for Vue 3

30 lines (29 loc) 1.61 kB
import { type Slots, type UnwrapNestedRefs, type UnwrapRef, type MaybeRef, type CSSProperties } from 'vue'; import { type ColorComposition } from './useColors'; import { type CSSComposition } from './useCSS'; import type { ComponentThemes } from 'src/theme'; export type Stylish = false | null | undefined | string | CSSProperties; export type StyleValue = Stylish | Array<Stylish>; export type ThemeVueClass = string | Record<string, boolean> | (string | Record<string, boolean>)[]; export type ThemeClasses<P, K extends string = string, D = undefined> = Record<K, string | ((params: ThemeParams<P, D>) => ThemeVueClass)>; export type ThemeStyles<P, D> = StyleValue | ((params: ThemeParams<P, D>) => StyleValue); export interface ThemeComponent<P = object, K extends string = string, D = object> { classes?: Partial<ThemeClasses<P, K, D>>; styles?: ThemeStyles<P, D>; } export type ThemeParams<P = Record<string, any>, D = Record<string, any>> = { props: UnwrapRef<P>; slots: Slots; colors: ColorComposition; css: CSSComposition; rtl?: boolean; data: UnwrapNestedRefs<D>; }; export declare const useTheme: <P extends object = object, K extends string = string, D extends object = object>(namespace: keyof ComponentThemes, defaultTheme?: ThemeComponent<P, K, D>, props?: MaybeRef<P>, data?: D) => { classPrefix: import("vue").ComputedRef<string>; className: import("vue").ComputedRef<string>; colors: ColorComposition; classes: import("vue").ComputedRef<Record<K, ThemeVueClass>>; styles: import("vue").ComputedRef<StyleValue>; css: CSSComposition; };