UNPKG

ipink-themejs

Version:

Theme for ui, 根据自定义的颜色值导出一套常用的Map合集, 字号、圆角、边框、字色、背景色、...

48 lines (46 loc) 1.88 kB
import { SeedOption, ColorToken } from 'ipink-theme'; import { StoreDefinition } from 'pinia'; export type ThemeStoreId = "themeStore"; export type ThemeStoreState = { /** @desc 主题ID **/ id: string; /** @desc 模式ID light | dark **/ modeId: "light" | "dark"; /** @desc 生成后的主题列表: createThemeList({ themeList, useDark: true }) => MapToken[], useDark: boolean 默认不生成暗黑模式, 需要手动开启 **/ themeList: ColorToken[]; useDark: boolean; }; export type ThemeStoreGetters = { /** @desc 主题内容: MapToken **/ theme: (state: ThemeStoreState) => ColorToken | undefined; /** @desc 主题模式: Dark | Light **/ mode: (state: ThemeStoreState) => "light" | "dark"; }; export type ThemeStoreActions = { /** @desc 切换主题模式 **/ changeMode: () => void; /** @desc 切换主题 **/ change: (id: string) => void; /** @desc 根据 ID 获取指定的主题 **/ get: (id: string) => ColorToken | undefined; /** @desc 添加一个主题 **/ add: (seed: SeedOption, dir?: "push" | "unshift" | undefined) => number; /** @desc 添加一个主题集合 **/ addList: (seed: SeedOption[], dir?: "push" | "unshift" | undefined) => number; /** @desc 根据 ID 删除指定主题 **/ del: (id: string) => number; /** @desc 传入一个排序函数对主题进行排序 **/ sort: (func: Function) => ColorToken[]; /** @desc 初始化默认的主题列表, 会覆盖掉内置主题 **/ init: (tList: SeedOption[]) => number; }; export type ThemeStoreOptions = { state: () => ThemeStoreState; getters: ThemeStoreGetters; actions: ThemeStoreActions; persist?: boolean; }; /** * Pinia ^2.1.7 */ export declare const useThemeStore: StoreDefinition<ThemeStoreId, ThemeStoreState, ThemeStoreGetters, ThemeStoreActions>;