laif-ds
Version:
Design System di Laif con componenti React basati su principi di Atomic Design
307 lines (306 loc) • 9.17 kB
JavaScript
"use client";
import k, { extend as I } from "./define.js";
function u() {
}
var b = 0.7, y = 1 / b, o = "\\s*([+-]?\\d+)\\s*", g = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", n = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", j = /^#([0-9a-f]{3,8})$/, O = new RegExp(`^rgb\\(${o},${o},${o}\\)$`), z = new RegExp(`^rgb\\(${n},${n},${n}\\)$`), L = new RegExp(`^rgba\\(${o},${o},${o},${g}\\)$`), A = new RegExp(`^rgba\\(${n},${n},${n},${g}\\)$`), B = new RegExp(`^hsl\\(${g},${n},${n}\\)$`), D = new RegExp(`^hsla\\(${g},${n},${n},${g}\\)$`), v = {
aliceblue: 15792383,
antiquewhite: 16444375,
aqua: 65535,
aquamarine: 8388564,
azure: 15794175,
beige: 16119260,
bisque: 16770244,
black: 0,
blanchedalmond: 16772045,
blue: 255,
blueviolet: 9055202,
brown: 10824234,
burlywood: 14596231,
cadetblue: 6266528,
chartreuse: 8388352,
chocolate: 13789470,
coral: 16744272,
cornflowerblue: 6591981,
cornsilk: 16775388,
crimson: 14423100,
cyan: 65535,
darkblue: 139,
darkcyan: 35723,
darkgoldenrod: 12092939,
darkgray: 11119017,
darkgreen: 25600,
darkgrey: 11119017,
darkkhaki: 12433259,
darkmagenta: 9109643,
darkolivegreen: 5597999,
darkorange: 16747520,
darkorchid: 10040012,
darkred: 9109504,
darksalmon: 15308410,
darkseagreen: 9419919,
darkslateblue: 4734347,
darkslategray: 3100495,
darkslategrey: 3100495,
darkturquoise: 52945,
darkviolet: 9699539,
deeppink: 16716947,
deepskyblue: 49151,
dimgray: 6908265,
dimgrey: 6908265,
dodgerblue: 2003199,
firebrick: 11674146,
floralwhite: 16775920,
forestgreen: 2263842,
fuchsia: 16711935,
gainsboro: 14474460,
ghostwhite: 16316671,
gold: 16766720,
goldenrod: 14329120,
gray: 8421504,
green: 32768,
greenyellow: 11403055,
grey: 8421504,
honeydew: 15794160,
hotpink: 16738740,
indianred: 13458524,
indigo: 4915330,
ivory: 16777200,
khaki: 15787660,
lavender: 15132410,
lavenderblush: 16773365,
lawngreen: 8190976,
lemonchiffon: 16775885,
lightblue: 11393254,
lightcoral: 15761536,
lightcyan: 14745599,
lightgoldenrodyellow: 16448210,
lightgray: 13882323,
lightgreen: 9498256,
lightgrey: 13882323,
lightpink: 16758465,
lightsalmon: 16752762,
lightseagreen: 2142890,
lightskyblue: 8900346,
lightslategray: 7833753,
lightslategrey: 7833753,
lightsteelblue: 11584734,
lightyellow: 16777184,
lime: 65280,
limegreen: 3329330,
linen: 16445670,
magenta: 16711935,
maroon: 8388608,
mediumaquamarine: 6737322,
mediumblue: 205,
mediumorchid: 12211667,
mediumpurple: 9662683,
mediumseagreen: 3978097,
mediumslateblue: 8087790,
mediumspringgreen: 64154,
mediumturquoise: 4772300,
mediumvioletred: 13047173,
midnightblue: 1644912,
mintcream: 16121850,
mistyrose: 16770273,
moccasin: 16770229,
navajowhite: 16768685,
navy: 128,
oldlace: 16643558,
olive: 8421376,
olivedrab: 7048739,
orange: 16753920,
orangered: 16729344,
orchid: 14315734,
palegoldenrod: 15657130,
palegreen: 10025880,
paleturquoise: 11529966,
palevioletred: 14381203,
papayawhip: 16773077,
peachpuff: 16767673,
peru: 13468991,
pink: 16761035,
plum: 14524637,
powderblue: 11591910,
purple: 8388736,
rebeccapurple: 6697881,
red: 16711680,
rosybrown: 12357519,
royalblue: 4286945,
saddlebrown: 9127187,
salmon: 16416882,
sandybrown: 16032864,
seagreen: 3050327,
seashell: 16774638,
sienna: 10506797,
silver: 12632256,
skyblue: 8900331,
slateblue: 6970061,
slategray: 7372944,
slategrey: 7372944,
snow: 16775930,
springgreen: 65407,
steelblue: 4620980,
tan: 13808780,
teal: 32896,
thistle: 14204888,
tomato: 16737095,
turquoise: 4251856,
violet: 15631086,
wheat: 16113331,
white: 16777215,
whitesmoke: 16119285,
yellow: 16776960,
yellowgreen: 10145074
};
k(u, H, {
copy(e) {
return Object.assign(new this.constructor(), this, e);
},
displayable() {
return this.rgb().displayable();
},
hex: R,
// Deprecated! Use color.formatHex.
formatHex: R,
formatHex8: F,
formatHsl: G,
formatRgb: M,
toString: M
});
function R() {
return this.rgb().formatHex();
}
function F() {
return this.rgb().formatHex8();
}
function G() {
return S(this).formatHsl();
}
function M() {
return this.rgb().formatRgb();
}
function H(e) {
var r, t;
return e = (e + "").trim().toLowerCase(), (r = j.exec(e)) ? (t = r[1].length, r = parseInt(r[1], 16), t === 6 ? q(r) : t === 3 ? new a(r >> 8 & 15 | r >> 4 & 240, r >> 4 & 15 | r & 240, (r & 15) << 4 | r & 15, 1) : t === 8 ? m(r >> 24 & 255, r >> 16 & 255, r >> 8 & 255, (r & 255) / 255) : t === 4 ? m(r >> 12 & 15 | r >> 8 & 240, r >> 8 & 15 | r >> 4 & 240, r >> 4 & 15 | r & 240, ((r & 15) << 4 | r & 15) / 255) : null) : (r = O.exec(e)) ? new a(r[1], r[2], r[3], 1) : (r = z.exec(e)) ? new a(r[1] * 255 / 100, r[2] * 255 / 100, r[3] * 255 / 100, 1) : (r = L.exec(e)) ? m(r[1], r[2], r[3], r[4]) : (r = A.exec(e)) ? m(r[1] * 255 / 100, r[2] * 255 / 100, r[3] * 255 / 100, r[4]) : (r = B.exec(e)) ? P(r[1], r[2] / 100, r[3] / 100, 1) : (r = D.exec(e)) ? P(r[1], r[2] / 100, r[3] / 100, r[4]) : v.hasOwnProperty(e) ? q(v[e]) : e === "transparent" ? new a(NaN, NaN, NaN, 0) : null;
}
function q(e) {
return new a(e >> 16 & 255, e >> 8 & 255, e & 255, 1);
}
function m(e, r, t, f) {
return f <= 0 && (e = r = t = NaN), new a(e, r, t, f);
}
function J(e) {
return e instanceof u || (e = H(e)), e ? (e = e.rgb(), new a(e.r, e.g, e.b, e.opacity)) : new a();
}
function K(e, r, t, f) {
return arguments.length === 1 ? J(e) : new a(e, r, t, f ?? 1);
}
function a(e, r, t, f) {
this.r = +e, this.g = +r, this.b = +t, this.opacity = +f;
}
k(a, K, I(u, {
brighter(e) {
return e = e == null ? y : Math.pow(y, e), new a(this.r * e, this.g * e, this.b * e, this.opacity);
},
darker(e) {
return e = e == null ? b : Math.pow(b, e), new a(this.r * e, this.g * e, this.b * e, this.opacity);
},
rgb() {
return this;
},
clamp() {
return new a(h(this.r), h(this.g), h(this.b), $(this.opacity));
},
displayable() {
return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;
},
hex: E,
// Deprecated! Use color.formatHex.
formatHex: E,
formatHex8: Q,
formatRgb: _,
toString: _
}));
function E() {
return `#${l(this.r)}${l(this.g)}${l(this.b)}`;
}
function Q() {
return `#${l(this.r)}${l(this.g)}${l(this.b)}${l((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
}
function _() {
const e = $(this.opacity);
return `${e === 1 ? "rgb(" : "rgba("}${h(this.r)}, ${h(this.g)}, ${h(this.b)}${e === 1 ? ")" : `, ${e})`}`;
}
function $(e) {
return isNaN(e) ? 1 : Math.max(0, Math.min(1, e));
}
function h(e) {
return Math.max(0, Math.min(255, Math.round(e) || 0));
}
function l(e) {
return e = h(e), (e < 16 ? "0" : "") + e.toString(16);
}
function P(e, r, t, f) {
return f <= 0 ? e = r = t = NaN : t <= 0 || t >= 1 ? e = r = NaN : r <= 0 && (e = NaN), new i(e, r, t, f);
}
function S(e) {
if (e instanceof i) return new i(e.h, e.s, e.l, e.opacity);
if (e instanceof u || (e = H(e)), !e) return new i();
if (e instanceof i) return e;
e = e.rgb();
var r = e.r / 255, t = e.g / 255, f = e.b / 255, x = Math.min(r, t, f), d = Math.max(r, t, f), c = NaN, s = d - x, p = (d + x) / 2;
return s ? (r === d ? c = (t - f) / s + (t < f) * 6 : t === d ? c = (f - r) / s + 2 : c = (r - t) / s + 4, s /= p < 0.5 ? d + x : 2 - d - x, c *= 60) : s = p > 0 && p < 1 ? 0 : c, new i(c, s, p, e.opacity);
}
function T(e, r, t, f) {
return arguments.length === 1 ? S(e) : new i(e, r, t, f ?? 1);
}
function i(e, r, t, f) {
this.h = +e, this.s = +r, this.l = +t, this.opacity = +f;
}
k(i, T, I(u, {
brighter(e) {
return e = e == null ? y : Math.pow(y, e), new i(this.h, this.s, this.l * e, this.opacity);
},
darker(e) {
return e = e == null ? b : Math.pow(b, e), new i(this.h, this.s, this.l * e, this.opacity);
},
rgb() {
var e = this.h % 360 + (this.h < 0) * 360, r = isNaN(e) || isNaN(this.s) ? 0 : this.s, t = this.l, f = t + (t < 0.5 ? t : 1 - t) * r, x = 2 * t - f;
return new a(
N(e >= 240 ? e - 240 : e + 120, x, f),
N(e, x, f),
N(e < 120 ? e + 240 : e - 120, x, f),
this.opacity
);
},
clamp() {
return new i(C(this.h), w(this.s), w(this.l), $(this.opacity));
},
displayable() {
return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
},
formatHsl() {
const e = $(this.opacity);
return `${e === 1 ? "hsl(" : "hsla("}${C(this.h)}, ${w(this.s) * 100}%, ${w(this.l) * 100}%${e === 1 ? ")" : `, ${e})`}`;
}
}));
function C(e) {
return e = (e || 0) % 360, e < 0 ? e + 360 : e;
}
function w(e) {
return Math.max(0, Math.min(1, e || 0));
}
function N(e, r, t) {
return (e < 60 ? r + (t - r) * e / 60 : e < 180 ? t : e < 240 ? r + (t - r) * (240 - e) / 60 : r) * 255;
}
export {
u as Color,
a as Rgb,
y as brighter,
b as darker,
H as default,
T as hsl,
S as hslConvert,
K as rgb,
J as rgbConvert
};