12345678910111213141516171819202122232425262728293031323334353637 |
- import { createVNode as _createVNode } from "vue";
- // Styles
- import "./VThemeProvider.css";
- // Composables
- import { makeComponentProps } from "../../composables/component.mjs";
- import { makeTagProps } from "../../composables/tag.mjs";
- import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
- import { genericComponent, propsFactory } from "../../util/index.mjs";
- export const makeVThemeProviderProps = propsFactory({
- withBackground: Boolean,
- ...makeComponentProps(),
- ...makeThemeProps(),
- ...makeTagProps()
- }, 'VThemeProvider');
- export const VThemeProvider = genericComponent()({
- name: 'VThemeProvider',
- props: makeVThemeProviderProps(),
- setup(props, _ref) {
- let {
- slots
- } = _ref;
- const {
- themeClasses
- } = provideTheme(props);
- return () => {
- if (!props.withBackground) return slots.default?.();
- return _createVNode(props.tag, {
- "class": ['v-theme-provider', themeClasses.value, props.class],
- "style": props.style
- }, {
- default: () => [slots.default?.()]
- });
- };
- }
- });
- //# sourceMappingURL=VThemeProvider.mjs.map
|