48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
import { M as Fragment, Qn as toRef, W as createBaseVNode, ar as normalizeClass, er as toValue } from "./vue.runtime.esm-bundler-BvoXUmaf.js";
|
|
import { c as getCurrentInstanceName, l as propsFactory } from "./defineComponent-DB6xIcDy.js";
|
|
import { n as useColor } from "./color-B6vuQruj.js";
|
|
//#region node_modules/vuetify/lib/composables/variant.js
|
|
var allowedVariants = [
|
|
"elevated",
|
|
"flat",
|
|
"tonal",
|
|
"outlined",
|
|
"text",
|
|
"plain"
|
|
];
|
|
function genOverlays(isClickable, name) {
|
|
return createBaseVNode(Fragment, null, [isClickable && createBaseVNode("span", {
|
|
"key": "overlay",
|
|
"class": normalizeClass(`${name}__overlay`)
|
|
}, null), createBaseVNode("span", {
|
|
"key": "underlay",
|
|
"class": normalizeClass(`${name}__underlay`)
|
|
}, null)]);
|
|
}
|
|
var makeVariantProps = propsFactory({
|
|
color: String,
|
|
variant: {
|
|
type: String,
|
|
default: "elevated",
|
|
validator: (v) => allowedVariants.includes(v)
|
|
}
|
|
}, "variant");
|
|
function useVariant(props, name = getCurrentInstanceName()) {
|
|
const variantClasses = toRef(() => {
|
|
const { variant } = toValue(props);
|
|
return `${name}--variant-${variant}`;
|
|
});
|
|
const { colorClasses, colorStyles } = useColor(() => {
|
|
const { variant, color } = toValue(props);
|
|
return { [["elevated", "flat"].includes(variant) ? "background" : "text"]: color };
|
|
});
|
|
return {
|
|
colorClasses,
|
|
colorStyles,
|
|
variantClasses
|
|
};
|
|
}
|
|
//#endregion
|
|
export { makeVariantProps as n, useVariant as r, genOverlays as t };
|
|
|
|
//# sourceMappingURL=variant-CqXtG9Ih.js.map
|