205 lines
6.5 KiB
JavaScript
205 lines
6.5 KiB
JavaScript
// node_modules/style-value-types/dist/es/utils.mjs
|
|
var clamp = (min, max) => (v) => Math.max(Math.min(v, max), min);
|
|
var sanitize = (v) => v % 1 ? Number(v.toFixed(5)) : v;
|
|
var floatRegex = /(-)?([\d]*\.?[\d])+/g;
|
|
var colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi;
|
|
var singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;
|
|
function isString(v) {
|
|
return typeof v === "string";
|
|
}
|
|
|
|
// node_modules/style-value-types/dist/es/numbers/index.mjs
|
|
var number = {
|
|
test: (v) => typeof v === "number",
|
|
parse: parseFloat,
|
|
transform: (v) => v
|
|
};
|
|
var alpha = Object.assign(Object.assign({}, number), { transform: clamp(0, 1) });
|
|
var scale = Object.assign(Object.assign({}, number), { default: 1 });
|
|
|
|
// node_modules/style-value-types/dist/es/numbers/units.mjs
|
|
var createUnitType = (unit) => ({
|
|
test: (v) => isString(v) && v.endsWith(unit) && v.split(" ").length === 1,
|
|
parse: parseFloat,
|
|
transform: (v) => `${v}${unit}`
|
|
});
|
|
var degrees = createUnitType("deg");
|
|
var percent = createUnitType("%");
|
|
var px = createUnitType("px");
|
|
var vh = createUnitType("vh");
|
|
var vw = createUnitType("vw");
|
|
var progressPercentage = Object.assign(Object.assign({}, percent), { parse: (v) => percent.parse(v) / 100, transform: (v) => percent.transform(v * 100) });
|
|
|
|
// node_modules/style-value-types/dist/es/color/utils.mjs
|
|
var isColorString = (type, testProp) => (v) => {
|
|
return Boolean(isString(v) && singleColorRegex.test(v) && v.startsWith(type) || testProp && Object.prototype.hasOwnProperty.call(v, testProp));
|
|
};
|
|
var splitColor = (aName, bName, cName) => (v) => {
|
|
if (!isString(v))
|
|
return v;
|
|
const [a, b, c, alpha2] = v.match(floatRegex);
|
|
return {
|
|
[aName]: parseFloat(a),
|
|
[bName]: parseFloat(b),
|
|
[cName]: parseFloat(c),
|
|
alpha: alpha2 !== void 0 ? parseFloat(alpha2) : 1
|
|
};
|
|
};
|
|
|
|
// node_modules/style-value-types/dist/es/color/hsla.mjs
|
|
var hsla = {
|
|
test: isColorString("hsl", "hue"),
|
|
parse: splitColor("hue", "saturation", "lightness"),
|
|
transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {
|
|
return "hsla(" + Math.round(hue) + ", " + percent.transform(sanitize(saturation)) + ", " + percent.transform(sanitize(lightness)) + ", " + sanitize(alpha.transform(alpha$1)) + ")";
|
|
}
|
|
};
|
|
|
|
// node_modules/style-value-types/dist/es/color/rgba.mjs
|
|
var clampRgbUnit = clamp(0, 255);
|
|
var rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });
|
|
var rgba = {
|
|
test: isColorString("rgb", "red"),
|
|
parse: splitColor("red", "green", "blue"),
|
|
transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => "rgba(" + rgbUnit.transform(red) + ", " + rgbUnit.transform(green) + ", " + rgbUnit.transform(blue) + ", " + sanitize(alpha.transform(alpha$1)) + ")"
|
|
};
|
|
|
|
// node_modules/style-value-types/dist/es/color/hex.mjs
|
|
function parseHex(v) {
|
|
let r = "";
|
|
let g = "";
|
|
let b = "";
|
|
let a = "";
|
|
if (v.length > 5) {
|
|
r = v.substr(1, 2);
|
|
g = v.substr(3, 2);
|
|
b = v.substr(5, 2);
|
|
a = v.substr(7, 2);
|
|
} else {
|
|
r = v.substr(1, 1);
|
|
g = v.substr(2, 1);
|
|
b = v.substr(3, 1);
|
|
a = v.substr(4, 1);
|
|
r += r;
|
|
g += g;
|
|
b += b;
|
|
a += a;
|
|
}
|
|
return {
|
|
red: parseInt(r, 16),
|
|
green: parseInt(g, 16),
|
|
blue: parseInt(b, 16),
|
|
alpha: a ? parseInt(a, 16) / 255 : 1
|
|
};
|
|
}
|
|
var hex = {
|
|
test: isColorString("#"),
|
|
parse: parseHex,
|
|
transform: rgba.transform
|
|
};
|
|
|
|
// node_modules/style-value-types/dist/es/color/index.mjs
|
|
var color = {
|
|
test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),
|
|
parse: (v) => {
|
|
if (rgba.test(v)) {
|
|
return rgba.parse(v);
|
|
} else if (hsla.test(v)) {
|
|
return hsla.parse(v);
|
|
} else {
|
|
return hex.parse(v);
|
|
}
|
|
},
|
|
transform: (v) => {
|
|
return isString(v) ? v : v.hasOwnProperty("red") ? rgba.transform(v) : hsla.transform(v);
|
|
}
|
|
};
|
|
|
|
// node_modules/style-value-types/dist/es/complex/index.mjs
|
|
var colorToken = "${c}";
|
|
var numberToken = "${n}";
|
|
function test(v) {
|
|
var _a, _b, _c, _d;
|
|
return isNaN(v) && isString(v) && ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0;
|
|
}
|
|
function analyse(v) {
|
|
if (typeof v === "number")
|
|
v = `${v}`;
|
|
const values = [];
|
|
let numColors = 0;
|
|
const colors = v.match(colorRegex);
|
|
if (colors) {
|
|
numColors = colors.length;
|
|
v = v.replace(colorRegex, colorToken);
|
|
values.push(...colors.map(color.parse));
|
|
}
|
|
const numbers = v.match(floatRegex);
|
|
if (numbers) {
|
|
v = v.replace(floatRegex, numberToken);
|
|
values.push(...numbers.map(number.parse));
|
|
}
|
|
return { values, numColors, tokenised: v };
|
|
}
|
|
function parse(v) {
|
|
return analyse(v).values;
|
|
}
|
|
function createTransformer(v) {
|
|
const { values, numColors, tokenised } = analyse(v);
|
|
const numValues = values.length;
|
|
return (v2) => {
|
|
let output = tokenised;
|
|
for (let i = 0; i < numValues; i++) {
|
|
output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v2[i]) : sanitize(v2[i]));
|
|
}
|
|
return output;
|
|
};
|
|
}
|
|
var convertNumbersToZero = (v) => typeof v === "number" ? 0 : v;
|
|
function getAnimatableNone(v) {
|
|
const parsed = parse(v);
|
|
const transformer = createTransformer(v);
|
|
return transformer(parsed.map(convertNumbersToZero));
|
|
}
|
|
var complex = { test, parse, createTransformer, getAnimatableNone };
|
|
|
|
// node_modules/style-value-types/dist/es/complex/filter.mjs
|
|
var maxDefaults = /* @__PURE__ */ new Set(["brightness", "contrast", "saturate", "opacity"]);
|
|
function applyDefaultFilter(v) {
|
|
let [name, value] = v.slice(0, -1).split("(");
|
|
if (name === "drop-shadow")
|
|
return v;
|
|
const [number2] = value.match(floatRegex) || [];
|
|
if (!number2)
|
|
return v;
|
|
const unit = value.replace(number2, "");
|
|
let defaultValue = maxDefaults.has(name) ? 1 : 0;
|
|
if (number2 !== value)
|
|
defaultValue *= 100;
|
|
return name + "(" + defaultValue + unit + ")";
|
|
}
|
|
var functionRegex = /([a-z-]*)\(.*?\)/g;
|
|
var filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v) => {
|
|
const functions = v.match(functionRegex);
|
|
return functions ? functions.map(applyDefaultFilter).join(" ") : v;
|
|
} });
|
|
|
|
export {
|
|
number,
|
|
alpha,
|
|
scale,
|
|
degrees,
|
|
percent,
|
|
px,
|
|
vh,
|
|
vw,
|
|
progressPercentage,
|
|
hsla,
|
|
rgbUnit,
|
|
rgba,
|
|
hex,
|
|
color,
|
|
complex,
|
|
filter
|
|
};
|
|
//# sourceMappingURL=chunk-NXTUI3FV.js.map
|