@alegendstale/holly-components
Version:
Reusable UI components created using lit
113 lines (112 loc) • 2.72 kB
JavaScript
import o, { x11 as c } from "./colorsea-wrapper.js";
import { CopyFormat as f, defaultSettings as n } from "../components/color-palette/color-palette-utils.js";
function l(e) {
let r = {};
for (const [t, i] of Object.entries(e)) {
const a = n[t];
if (t in n)
i !== a && (r = { ...r, [t]: i });
else {
if (i instanceof Array && i.length === 0) break;
r = { ...r, [t]: i };
}
}
return Object.keys(r).length !== 0 ? r : void 0;
}
function g(e) {
for (const [r, t] of Object.entries(e)) {
if (!(r in n)) return !0;
if (t !== n[r])
return !1;
}
return !0;
}
function h(e) {
const r = l(e);
if (r) return JSON.stringify(r);
}
function v(e) {
return JSON.parse(
`{
"height": ${e.height},
"direction": "${e.direction}",
"gradient": ${e.gradient},
"preventHover": ${e.preventHover},
"hideText": ${e.hideText},
"override": ${e.override},
"aliases": ${JSON.stringify(e.aliases)}
}`
);
}
function p(e) {
return e.includes("-") ? e.substring(e.lastIndexOf("/") + 1).split("-").map((r) => "#" + r) : e.substring(e.lastIndexOf("/") + 1).match(/.{1,6}/g)?.map((r) => "#" + r) || [];
}
function m(e) {
return {
height: e.height,
width: e.width,
direction: e.direction,
gradient: e.gradient,
preventHover: e.preventHover,
hideText: e.hideText,
override: e.override,
aliases: []
};
}
function S(e) {
return typeof e == "string" ? `\`\`\`palette
${e}
\`\`\`
` : e.settings ? `\`\`\`palette
${s(e.colors)}
${JSON.stringify(e.settings)}
\`\`\`
` : `\`\`\`palette
${s(e.colors)}
\`\`\`
`;
}
function y(e) {
const r = o(e);
return r.rgb()[0] * 0.299 + r.rgb()[1] * 0.587 + r.rgb()[2] * 0.114 > 186 ? "#000000" : "#ffffff";
}
function s(e) {
let r = "";
for (const t of e)
r += t + `
`;
return r.trim();
}
async function b(e, r) {
let t = e;
r === f.Value && !e.includes("`") && (t.includes("#") ? t = t.split("#")[1] : t.includes("(") && (t = t.split("(")[1].split(")")[0])), await navigator.clipboard.writeText(t);
}
function x(e) {
return Math.max(10, 16 - e);
}
function $(e) {
try {
return o.useNames(c), o(e, void 0, { thowParseError: !0 }), !0;
} catch {
return !1;
}
}
function O(e) {
const t = new DOMParser().parseFromString(e, "image/svg+xml");
return t.querySelector("svg") ?? t.querySelector("parsererror");
}
export {
g as areSettingsDefault,
v as convertStringSettings,
b as copyToClipboard,
S as createPaletteBlock,
x as getAdjustedFontSize,
y as getForegroundColor,
l as getModifiedSettings,
h as getModifiedSettingsAsString,
$ as isColorValid,
O as parseSVG,
p as parseUrl,
m as pluginToPaletteSettings,
s as toNString
};