vue-amazing-ui
Version:
An Amazing Vue3 UI Components Library, Using TypeScript.
37 lines (36 loc) • 1.69 kB
JavaScript
import { defineComponent as c, computed as r, createElementBlock as l, openBlock as p, normalizeStyle as m, renderSlot as b } from "vue";
var a = /* @__PURE__ */ ((t) => (t.primary = "rgba(22, 199, 255, 0.6)", t.info = "rgba(22, 199, 255, 0.6)", t.success = "rgba(82, 196, 26, 0.6)", t.warning = "rgba(250, 173, 20, 0.6)", t.error = "rgba(255, 77, 79, 0.6)", t))(a || {}), i = /* @__PURE__ */ ((t) => (t.primary = "#1677ff", t.info = "#1677ff", t.success = "#52c41a", t.warning = "#faad14", t.error = "#ff4d4f", t))(i || {});
const $ = /* @__PURE__ */ c({
__name: "GradientText",
props: {
gradient: { default: void 0 },
size: { default: 14 },
weight: { default: 400 },
type: { default: "primary" }
},
setup(t) {
const e = t, o = r(() => typeof e.gradient == "string" ? {
backgroundImage: e.gradient
} : {}), f = r(() => typeof e.gradient == "object" && e.gradient.deg ? d(e.gradient.deg) ? `${e.gradient.deg}deg` : e.gradient.deg : "252deg"), s = r(() => typeof e.gradient == "object" ? e.gradient.from : a[e.type]), u = r(() => typeof e.gradient == "object" ? e.gradient.to : i[e.type]), g = r(() => {
if (typeof e.size == "number")
return `${e.size}px`;
if (typeof e.size == "string")
return e.size;
});
function d(n) {
return typeof n == "number";
}
return (n, v) => (p(), l("span", {
class: "gradient-text-wrap",
style: m([
`--rotate: ${f.value}; --color-start: ${s.value}; --color-end: ${u.value}; --font-size: ${g.value}; --font-weight: ${n.weight};`,
o.value
])
}, [
b(n.$slots, "default", {}, void 0, !0)
], 4));
}
});
export {
$ as default
};