UNPKG

hb-vue-theme

Version:

Custom PrimeVue 4 theme with 'hb' prefix using design tokens and PrimeFlex

112 lines (111 loc) 3.15 kB
import { hbPreset as l } from "./tokens.esm.js"; function m(s = {}) { const { autoInstall: r = !0, force: n = !1, target: i = document.documentElement, customTokens: a = {} } = s, c = { preset: { ...l, tokens: { ...l.tokens, ...a } }, isInstalled: !1, install() { if (this.isInstalled && !n) return console.warn("HB Theme is already installed. Use force: true to reinstall."), !1; try { return Object.entries(this.preset.tokens).forEach(([t, e]) => { i.style.setProperty(t, e); }), this.applyPrimeFlexUtilities(), this.isInstalled = !0, console.log("✅ HB Theme installed successfully!"), !0; } catch (t) { return console.error("❌ Failed to install HB Theme:", t), !1; } }, applyPrimeFlexUtilities() { const t = this.preset.utilities || {}; let e = document.getElementById("hb-primeflex-utilities"); e || (e = document.createElement("style"), e.id = "hb-primeflex-utilities", document.head.appendChild(e)); const o = Object.entries(t).map(([u, h]) => `.${u} { ${h} }`).join(` `); e.textContent = o; }, uninstall() { try { Object.keys(this.preset.tokens).forEach((e) => { i.style.removeProperty(e); }); const t = document.getElementById("hb-primeflex-utilities"); return t && t.remove(), this.isInstalled = !1, console.log("✅ HB Theme uninstalled successfully!"), !0; } catch (t) { return console.error("❌ Failed to uninstall HB Theme:", t), !1; } }, update(t) { try { return Object.entries(t).forEach(([e, o]) => { i.style.setProperty(e, o); }), console.log("✅ HB Theme updated successfully!"), !0; } catch (e) { return console.error("❌ Failed to update HB Theme:", e), !1; } }, getInfo() { return { name: this.preset.name, version: this.preset.version, description: this.preset.description, author: this.preset.author, license: this.preset.license, isInstalled: this.isInstalled, tokenCount: Object.keys(this.preset.tokens).length, utilityCount: Object.keys(this.preset.utilities || {}).length }; } }; return r && c.install(), c; } const f = { install(s, r = {}) { const n = m(r); s.config.globalProperties.$hbTheme = n, s.provide("hbTheme", n); } }, b = l; function y(s = {}, r = {}) { return { ...l, tokens: { ...l.tokens, ...s }, utilities: { ...l.utilities, ...r }, customTokens: s, customUtilities: r }; } function g(s = l) { return `:root { ${Object.entries(s.tokens).map(([n, i]) => ` ${n}: ${i};`).join(` `)} }`; } function k(s = l) { return Object.entries(s.tokens).map(([n, i]) => `${n.replace("--hb-", "$hb-").replace(/-/g, "-")}: ${i};`).join(` `); } export { f as HBThemePlugin, y as createCustomPreset, m as default, g as exportAsCSS, k as exportAsSCSS, b as hbThemePreset, m as installHBTheme }; //# sourceMappingURL=preset.esm.js.map