feat: add config

This commit is contained in:
2023-03-26 15:49:59 +08:00
parent 59e8b4d56e
commit 2b2ef3a3fb
6 changed files with 185 additions and 15 deletions

View File

@ -1,8 +1,8 @@
import type { CSSInterpolation, Theme } from '@antd-tiny-vue/cssinjs'
import { createTheme, useCacheToken, useStyleRegister } from '@antd-tiny-vue/cssinjs'
import { createInjectionState } from '@v-c/utils'
import { createInjectionState, objectType, someType } from '@v-c/utils'
import type { ComputedRef, VNodeChild } from 'vue'
import { computed } from 'vue'
import { computed, defineComponent } from 'vue'
import version from '../version'
import type { AliasToken, GlobalToken, MapToken, OverrideToken, PresetColorKey, PresetColorType, SeedToken } from './interface'
import { PresetColors } from './interface'
@ -54,6 +54,21 @@ const [useDesignTokenProvider, useDesignTokenInject] = createInjectionState((tok
return token
})
export const DesignTokenProviderContext = defineComponent({
props: {
token: objectType<AliasToken>(),
theme: objectType<Theme<SeedToken, MapToken>>(),
components: objectType<OverrideToken>(),
hashed: someType<string | boolean>([String, Boolean])
},
setup(props, { slots }) {
useDesignTokenProvider(props)
return () => {
return slots.default?.()
}
}
})
export { useDesignTokenProvider }
export const useDesignTokenState = () => useDesignTokenInject() ?? defaultConfig