43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
// src/css-var.ts
|
|
function isDecimal(value) {
|
|
return !Number.isInteger(parseFloat(value.toString()));
|
|
}
|
|
function replaceWhiteSpace(value, replaceValue = "-") {
|
|
return value.replace(/\s+/g, replaceValue);
|
|
}
|
|
function escape(value) {
|
|
const valueStr = replaceWhiteSpace(value.toString());
|
|
if (valueStr.includes("\\."))
|
|
return value;
|
|
return isDecimal(value) ? valueStr.replace(".", `\\.`) : value;
|
|
}
|
|
function addPrefix(value, prefix = "") {
|
|
return [prefix, escape(value)].filter(Boolean).join("-");
|
|
}
|
|
function toVarRef(name, fallback) {
|
|
return `var(${escape(name)}${fallback ? `, ${fallback}` : ""})`;
|
|
}
|
|
function toVar(value, prefix = "") {
|
|
return `--${addPrefix(value, prefix)}`;
|
|
}
|
|
function cssVar(name, options) {
|
|
const cssVariable = toVar(name, options == null ? void 0 : options.prefix);
|
|
return {
|
|
variable: cssVariable,
|
|
reference: toVarRef(cssVariable, getFallback(options == null ? void 0 : options.fallback))
|
|
};
|
|
}
|
|
function getFallback(fallback) {
|
|
if (typeof fallback === "string")
|
|
return fallback;
|
|
return fallback == null ? void 0 : fallback.reference;
|
|
}
|
|
|
|
export {
|
|
isDecimal,
|
|
addPrefix,
|
|
toVarRef,
|
|
toVar,
|
|
cssVar
|
|
};
|
|
//# sourceMappingURL=chunk-WSAJBJJ4.mjs.map
|