ds-smart-ui
Version:
Smart UI is a React component library that helps you build accessible and responsive web applications.
1,652 lines (1,650 loc) • 4.75 MB
JavaScript
var HE = Object.defineProperty;
var UE = (e, t, o) => t in e ? HE(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o;
var zi = (e, t, o) => UE(e, typeof t != "symbol" ? t + "" : t, o);
import * as S from "react";
import Kt, { useMemo as We, cloneElement as va, forwardRef as Co, isValidElement as ya, Children as Ch, useContext as mh, useRef as gt, useState as He, useId as KE, useReducer as XE, useEffect as Ot, useLayoutEffect as pd, Fragment as il, useCallback as kt, memo as hd, createElement as fi, PureComponent as zE, createContext as qE, Component as ZE } from "react";
import * as _E from "react-dom";
import Ai, { flushSync as $E, createPortal as Ih } from "react-dom";
function ev(e) {
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
}
var Su = { exports: {} }, qi = {};
/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var tg;
function tv() {
if (tg) return qi;
tg = 1;
var e = Kt, t = Symbol.for("react.element"), o = Symbol.for("react.fragment"), r = Object.prototype.hasOwnProperty, i = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, a = { key: !0, ref: !0, __self: !0, __source: !0 };
function s(l, c, u) {
var d, A = {}, g = null, p = null;
u !== void 0 && (g = "" + u), c.key !== void 0 && (g = "" + c.key), c.ref !== void 0 && (p = c.ref);
for (d in c) r.call(c, d) && !a.hasOwnProperty(d) && (A[d] = c[d]);
if (l && l.defaultProps) for (d in c = l.defaultProps, c) A[d] === void 0 && (A[d] = c[d]);
return { $$typeof: t, type: l, key: g, ref: p, props: A, _owner: i.current };
}
return qi.Fragment = o, qi.jsx = s, qi.jsxs = s, qi;
}
var Zi = {};
/**
* @license React
* react-jsx-runtime.development.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var og;
function ov() {
return og || (og = 1, process.env.NODE_ENV !== "production" && function() {
var e = Kt, t = Symbol.for("react.element"), o = Symbol.for("react.portal"), r = Symbol.for("react.fragment"), i = Symbol.for("react.strict_mode"), a = Symbol.for("react.profiler"), s = Symbol.for("react.provider"), l = Symbol.for("react.context"), c = Symbol.for("react.forward_ref"), u = Symbol.for("react.suspense"), d = Symbol.for("react.suspense_list"), A = Symbol.for("react.memo"), g = Symbol.for("react.lazy"), p = Symbol.for("react.offscreen"), h = Symbol.iterator, C = "@@iterator";
function m(Z) {
if (Z === null || typeof Z != "object")
return null;
var Ie = h && Z[h] || Z[C];
return typeof Ie == "function" ? Ie : null;
}
var I = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
function v(Z) {
{
for (var Ie = arguments.length, Re = new Array(Ie > 1 ? Ie - 1 : 0), ze = 1; ze < Ie; ze++)
Re[ze - 1] = arguments[ze];
E("error", Z, Re);
}
}
function E(Z, Ie, Re) {
{
var ze = I.ReactDebugCurrentFrame, Bt = ze.getStackAddendum();
Bt !== "" && (Ie += "%s", Re = Re.concat([Bt]));
var ge = Re.map(function(ue) {
return String(ue);
});
ge.unshift("Warning: " + Ie), Function.prototype.apply.call(console[Z], console, ge);
}
}
var y = !1, b = !1, x = !1, R = !1, w = !1, P;
P = Symbol.for("react.module.reference");
function B(Z) {
return !!(typeof Z == "string" || typeof Z == "function" || Z === r || Z === a || w || Z === i || Z === u || Z === d || R || Z === p || y || b || x || typeof Z == "object" && Z !== null && (Z.$$typeof === g || Z.$$typeof === A || Z.$$typeof === s || Z.$$typeof === l || Z.$$typeof === c || // This needs to include all possible module reference object
// types supported by any Flight configuration anywhere since
// we don't know which Flight build this will end up being used
// with.
Z.$$typeof === P || Z.getModuleId !== void 0));
}
function Q(Z, Ie, Re) {
var ze = Z.displayName;
if (ze)
return ze;
var Bt = Ie.displayName || Ie.name || "";
return Bt !== "" ? Re + "(" + Bt + ")" : Re;
}
function F(Z) {
return Z.displayName || "Context";
}
function k(Z) {
if (Z == null)
return null;
if (typeof Z.tag == "number" && v("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof Z == "function")
return Z.displayName || Z.name || null;
if (typeof Z == "string")
return Z;
switch (Z) {
case r:
return "Fragment";
case o:
return "Portal";
case a:
return "Profiler";
case i:
return "StrictMode";
case u:
return "Suspense";
case d:
return "SuspenseList";
}
if (typeof Z == "object")
switch (Z.$$typeof) {
case l:
var Ie = Z;
return F(Ie) + ".Consumer";
case s:
var Re = Z;
return F(Re._context) + ".Provider";
case c:
return Q(Z, Z.render, "ForwardRef");
case A:
var ze = Z.displayName || null;
return ze !== null ? ze : k(Z.type) || "Memo";
case g: {
var Bt = Z, ge = Bt._payload, ue = Bt._init;
try {
return k(ue(ge));
} catch {
return null;
}
}
}
return null;
}
var M = Object.assign, T = 0, D, L, j, J, O, G, q;
function U() {
}
U.__reactDisabledLog = !0;
function $() {
{
if (T === 0) {
D = console.log, L = console.info, j = console.warn, J = console.error, O = console.group, G = console.groupCollapsed, q = console.groupEnd;
var Z = {
configurable: !0,
enumerable: !0,
value: U,
writable: !0
};
Object.defineProperties(console, {
info: Z,
log: Z,
warn: Z,
error: Z,
group: Z,
groupCollapsed: Z,
groupEnd: Z
});
}
T++;
}
}
function K() {
{
if (T--, T === 0) {
var Z = {
configurable: !0,
enumerable: !0,
writable: !0
};
Object.defineProperties(console, {
log: M({}, Z, {
value: D
}),
info: M({}, Z, {
value: L
}),
warn: M({}, Z, {
value: j
}),
error: M({}, Z, {
value: J
}),
group: M({}, Z, {
value: O
}),
groupCollapsed: M({}, Z, {
value: G
}),
groupEnd: M({}, Z, {
value: q
})
});
}
T < 0 && v("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
}
}
var H = I.ReactCurrentDispatcher, ee;
function W(Z, Ie, Re) {
{
if (ee === void 0)
try {
throw Error();
} catch (Bt) {
var ze = Bt.stack.trim().match(/\n( *(at )?)/);
ee = ze && ze[1] || "";
}
return `
` + ee + Z;
}
}
var X = !1, te;
{
var ne = typeof WeakMap == "function" ? WeakMap : Map;
te = new ne();
}
function V(Z, Ie) {
if (!Z || X)
return "";
{
var Re = te.get(Z);
if (Re !== void 0)
return Re;
}
var ze;
X = !0;
var Bt = Error.prepareStackTrace;
Error.prepareStackTrace = void 0;
var ge;
ge = H.current, H.current = null, $();
try {
if (Ie) {
var ue = function() {
throw Error();
};
if (Object.defineProperty(ue.prototype, "props", {
set: function() {
throw Error();
}
}), typeof Reflect == "object" && Reflect.construct) {
try {
Reflect.construct(ue, []);
} catch (bo) {
ze = bo;
}
Reflect.construct(Z, [], ue);
} else {
try {
ue.call();
} catch (bo) {
ze = bo;
}
Z.call(ue.prototype);
}
} else {
try {
throw Error();
} catch (bo) {
ze = bo;
}
Z();
}
} catch (bo) {
if (bo && ze && typeof bo.stack == "string") {
for (var ye = bo.stack.split(`
`), tt = ze.stack.split(`
`), qe = ye.length - 1, st = tt.length - 1; qe >= 1 && st >= 0 && ye[qe] !== tt[st]; )
st--;
for (; qe >= 1 && st >= 0; qe--, st--)
if (ye[qe] !== tt[st]) {
if (qe !== 1 || st !== 1)
do
if (qe--, st--, st < 0 || ye[qe] !== tt[st]) {
var Rt = `
` + ye[qe].replace(" at new ", " at ");
return Z.displayName && Rt.includes("<anonymous>") && (Rt = Rt.replace("<anonymous>", Z.displayName)), typeof Z == "function" && te.set(Z, Rt), Rt;
}
while (qe >= 1 && st >= 0);
break;
}
}
} finally {
X = !1, H.current = ge, K(), Error.prepareStackTrace = Bt;
}
var Zt = Z ? Z.displayName || Z.name : "", Lo = Zt ? W(Zt) : "";
return typeof Z == "function" && te.set(Z, Lo), Lo;
}
function z(Z, Ie, Re) {
return V(Z, !1);
}
function re(Z) {
var Ie = Z.prototype;
return !!(Ie && Ie.isReactComponent);
}
function ae(Z, Ie, Re) {
if (Z == null)
return "";
if (typeof Z == "function")
return V(Z, re(Z));
if (typeof Z == "string")
return W(Z);
switch (Z) {
case u:
return W("Suspense");
case d:
return W("SuspenseList");
}
if (typeof Z == "object")
switch (Z.$$typeof) {
case c:
return z(Z.render);
case A:
return ae(Z.type, Ie, Re);
case g: {
var ze = Z, Bt = ze._payload, ge = ze._init;
try {
return ae(ge(Bt), Ie, Re);
} catch {
}
}
}
return "";
}
var se = Object.prototype.hasOwnProperty, Y = {}, oe = I.ReactDebugCurrentFrame;
function ie(Z) {
if (Z) {
var Ie = Z._owner, Re = ae(Z.type, Z._source, Ie ? Ie.type : null);
oe.setExtraStackFrame(Re);
} else
oe.setExtraStackFrame(null);
}
function ce(Z, Ie, Re, ze, Bt) {
{
var ge = Function.call.bind(se);
for (var ue in Z)
if (ge(Z, ue)) {
var ye = void 0;
try {
if (typeof Z[ue] != "function") {
var tt = Error((ze || "React class") + ": " + Re + " type `" + ue + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof Z[ue] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
throw tt.name = "Invariant Violation", tt;
}
ye = Z[ue](Ie, ue, ze, Re, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
} catch (qe) {
ye = qe;
}
ye && !(ye instanceof Error) && (ie(Bt), v("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", ze || "React class", Re, ue, typeof ye), ie(null)), ye instanceof Error && !(ye.message in Y) && (Y[ye.message] = !0, ie(Bt), v("Failed %s type: %s", Re, ye.message), ie(null));
}
}
}
var Ce = Array.isArray;
function fe(Z) {
return Ce(Z);
}
function De(Z) {
{
var Ie = typeof Symbol == "function" && Symbol.toStringTag, Re = Ie && Z[Symbol.toStringTag] || Z.constructor.name || "Object";
return Re;
}
}
function Le(Z) {
try {
return le(Z), !1;
} catch {
return !0;
}
}
function le(Z) {
return "" + Z;
}
function Ae(Z) {
if (Le(Z))
return v("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", De(Z)), le(Z);
}
var Be = I.ReactCurrentOwner, Fe = {
key: !0,
ref: !0,
__self: !0,
__source: !0
}, Qe, ve;
function Se(Z) {
if (se.call(Z, "ref")) {
var Ie = Object.getOwnPropertyDescriptor(Z, "ref").get;
if (Ie && Ie.isReactWarning)
return !1;
}
return Z.ref !== void 0;
}
function nt(Z) {
if (se.call(Z, "key")) {
var Ie = Object.getOwnPropertyDescriptor(Z, "key").get;
if (Ie && Ie.isReactWarning)
return !1;
}
return Z.key !== void 0;
}
function Ve(Z, Ie) {
typeof Z.ref == "string" && Be.current;
}
function $e(Z, Ie) {
{
var Re = function() {
Qe || (Qe = !0, v("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", Ie));
};
Re.isReactWarning = !0, Object.defineProperty(Z, "key", {
get: Re,
configurable: !0
});
}
}
function Me(Z, Ie) {
{
var Re = function() {
ve || (ve = !0, v("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", Ie));
};
Re.isReactWarning = !0, Object.defineProperty(Z, "ref", {
get: Re,
configurable: !0
});
}
}
var pe = function(Z, Ie, Re, ze, Bt, ge, ue) {
var ye = {
// This tag allows us to uniquely identify this as a React Element
$$typeof: t,
// Built-in properties that belong on the element
type: Z,
key: Ie,
ref: Re,
props: ue,
// Record the component responsible for creating this element.
_owner: ge
};
return ye._store = {}, Object.defineProperty(ye._store, "validated", {
configurable: !1,
enumerable: !1,
writable: !0,
value: !1
}), Object.defineProperty(ye, "_self", {
configurable: !1,
enumerable: !1,
writable: !1,
value: ze
}), Object.defineProperty(ye, "_source", {
configurable: !1,
enumerable: !1,
writable: !1,
value: Bt
}), Object.freeze && (Object.freeze(ye.props), Object.freeze(ye)), ye;
};
function ke(Z, Ie, Re, ze, Bt) {
{
var ge, ue = {}, ye = null, tt = null;
Re !== void 0 && (Ae(Re), ye = "" + Re), nt(Ie) && (Ae(Ie.key), ye = "" + Ie.key), Se(Ie) && (tt = Ie.ref, Ve(Ie, Bt));
for (ge in Ie)
se.call(Ie, ge) && !Fe.hasOwnProperty(ge) && (ue[ge] = Ie[ge]);
if (Z && Z.defaultProps) {
var qe = Z.defaultProps;
for (ge in qe)
ue[ge] === void 0 && (ue[ge] = qe[ge]);
}
if (ye || tt) {
var st = typeof Z == "function" ? Z.displayName || Z.name || "Unknown" : Z;
ye && $e(ue, st), tt && Me(ue, st);
}
return pe(Z, ye, tt, Bt, ze, Be.current, ue);
}
}
var je = I.ReactCurrentOwner, Ne = I.ReactDebugCurrentFrame;
function Ye(Z) {
if (Z) {
var Ie = Z._owner, Re = ae(Z.type, Z._source, Ie ? Ie.type : null);
Ne.setExtraStackFrame(Re);
} else
Ne.setExtraStackFrame(null);
}
var yt;
yt = !1;
function be(Z) {
return typeof Z == "object" && Z !== null && Z.$$typeof === t;
}
function Je() {
{
if (je.current) {
var Z = k(je.current.type);
if (Z)
return `
Check the render method of \`` + Z + "`.";
}
return "";
}
}
function Ct(Z) {
return "";
}
var Ht = {};
function jt(Z) {
{
var Ie = Je();
if (!Ie) {
var Re = typeof Z == "string" ? Z : Z.displayName || Z.name;
Re && (Ie = `
Check the top-level render call using <` + Re + ">.");
}
return Ie;
}
}
function _e(Z, Ie) {
{
if (!Z._store || Z._store.validated || Z.key != null)
return;
Z._store.validated = !0;
var Re = jt(Ie);
if (Ht[Re])
return;
Ht[Re] = !0;
var ze = "";
Z && Z._owner && Z._owner !== je.current && (ze = " It was passed a child from " + k(Z._owner.type) + "."), Ye(Z), v('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', Re, ze), Ye(null);
}
}
function qt(Z, Ie) {
{
if (typeof Z != "object")
return;
if (fe(Z))
for (var Re = 0; Re < Z.length; Re++) {
var ze = Z[Re];
be(ze) && _e(ze, Ie);
}
else if (be(Z))
Z._store && (Z._store.validated = !0);
else if (Z) {
var Bt = m(Z);
if (typeof Bt == "function" && Bt !== Z.entries)
for (var ge = Bt.call(Z), ue; !(ue = ge.next()).done; )
be(ue.value) && _e(ue.value, Ie);
}
}
}
function vn(Z) {
{
var Ie = Z.type;
if (Ie == null || typeof Ie == "string")
return;
var Re;
if (typeof Ie == "function")
Re = Ie.propTypes;
else if (typeof Ie == "object" && (Ie.$$typeof === c || // Note: Memo only checks outer props here.
// Inner props are checked in the reconciler.
Ie.$$typeof === A))
Re = Ie.propTypes;
else
return;
if (Re) {
var ze = k(Ie);
ce(Re, Z.props, "prop", ze, Z);
} else if (Ie.PropTypes !== void 0 && !yt) {
yt = !0;
var Bt = k(Ie);
v("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", Bt || "Unknown");
}
typeof Ie.getDefaultProps == "function" && !Ie.getDefaultProps.isReactClassApproved && v("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
}
}
function gn(Z) {
{
for (var Ie = Object.keys(Z.props), Re = 0; Re < Ie.length; Re++) {
var ze = Ie[Re];
if (ze !== "children" && ze !== "key") {
Ye(Z), v("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", ze), Ye(null);
break;
}
}
Z.ref !== null && (Ye(Z), v("Invalid attribute `ref` supplied to `React.Fragment`."), Ye(null));
}
}
var yn = {};
function Bn(Z, Ie, Re, ze, Bt, ge) {
{
var ue = B(Z);
if (!ue) {
var ye = "";
(Z === void 0 || typeof Z == "object" && Z !== null && Object.keys(Z).length === 0) && (ye += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
var tt = Ct();
tt ? ye += tt : ye += Je();
var qe;
Z === null ? qe = "null" : fe(Z) ? qe = "array" : Z !== void 0 && Z.$$typeof === t ? (qe = "<" + (k(Z.type) || "Unknown") + " />", ye = " Did you accidentally export a JSX literal instead of a component?") : qe = typeof Z, v("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", qe, ye);
}
var st = ke(Z, Ie, Re, Bt, ge);
if (st == null)
return st;
if (ue) {
var Rt = Ie.children;
if (Rt !== void 0)
if (ze)
if (fe(Rt)) {
for (var Zt = 0; Zt < Rt.length; Zt++)
qt(Rt[Zt], Z);
Object.freeze && Object.freeze(Rt);
} else
v("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
else
qt(Rt, Z);
}
if (se.call(Ie, "key")) {
var Lo = k(Z), bo = Object.keys(Ie).filter(function(Xr) {
return Xr !== "key";
}), Ur = bo.length > 0 ? "{key: someKey, " + bo.join(": ..., ") + ": ...}" : "{key: someKey}";
if (!yn[Lo + Ur]) {
var Kr = bo.length > 0 ? "{" + bo.join(": ..., ") + ": ...}" : "{}";
v(`A props object containing a "key" prop is being spread into JSX:
let props = %s;
<%s {...props} />
React keys must be passed directly to JSX without using spread:
let props = %s;
<%s key={someKey} {...props} />`, Ur, Lo, Kr, Lo), yn[Lo + Ur] = !0;
}
}
return Z === r ? gn(st) : vn(st), st;
}
}
function et(Z, Ie, Re) {
return Bn(Z, Ie, Re, !0);
}
function or(Z, Ie, Re) {
return Bn(Z, Ie, Re, !1);
}
var Yt = or, ro = et;
Zi.Fragment = r, Zi.jsx = Yt, Zi.jsxs = ro;
}()), Zi;
}
process.env.NODE_ENV === "production" ? Su.exports = tv() : Su.exports = ov();
var f = Su.exports;
const OJ = ({
name: e = "",
icon: t,
color: o = "#1E88E5",
bgColor: r = "#E5F1FF",
size: i = "md",
src: a,
alt: s = "Avatar",
id: l,
...c
}) => {
const u = We(() => {
if (!e.trim()) return "";
const p = e.trim().split(/\s+/);
let h = p[0][0];
return p.length >= 2 && (h += p[1][0]), h.toUpperCase();
}, [e]), d = {
sm: 32,
md: 40,
lg: 50,
xl: 70
}, A = typeof i == "string" ? d[i] || d.md : i, g = A * 0.4;
return /* @__PURE__ */ f.jsx(
"div",
{
id: l ? `${l}-avatar` : "avatar",
className: "flex items-center justify-center rounded-full font-bold select-none overflow-hidden",
style: {
width: A,
height: A,
backgroundColor: r,
color: o,
fontSize: g
},
children: a ? /* @__PURE__ */ f.jsx(
"img",
{
src: a,
alt: s,
className: "w-full h-full object-cover",
id: l ? `${l}-avatar-img` : "avatar-img",
...c
}
) : t ? Kt.cloneElement(t, {
style: { fontSize: A * 0.6, color: o },
id: l ? `${l}-avatar-icon` : "avatar-icon"
}) : /* @__PURE__ */ f.jsx(
"span",
{
id: l ? `${l}-${u}-avatar-initials` : `${u}-avatar-initials`,
children: u
}
)
}
);
}, nv = "_typography__underline_g14sq_219", rv = "_typography__italic_g14sq_235", io = {
"typography--h1": "_typography--h1_g14sq_1",
"typography--h2": "_typography--h2_g14sq_11",
"typography--h3": "_typography--h3_g14sq_23",
"typography--h4": "_typography--h4_g14sq_35",
"typography--h5": "_typography--h5_g14sq_47",
"typography--h6": "_typography--h6_g14sq_59",
"typography--b16": "_typography--b16_g14sq_71",
"typography--b14": "_typography--b14_g14sq_83",
"typography--b12": "_typography--b12_g14sq_95",
"typography--b10": "_typography--b10_g14sq_107",
"typography--b8": "_typography--b8_g14sq_119",
"typography--p1": "_typography--p1_g14sq_131",
"typography--p2": "_typography--p2_g14sq_145",
"typography--p3": "_typography--p3_g14sq_159",
"typography--overline": "_typography--overline_g14sq_173",
"typography__font--medium": "_typography__font--medium_g14sq_189",
"typography__font--bold": "_typography__font--bold_g14sq_199",
"typography__font--regular": "_typography__font--regular_g14sq_209",
typography__underline: nv,
"typography__line--through": "_typography__line--through_g14sq_227",
typography__italic: rv
};
function bh(e) {
var t, o, r = "";
if (typeof e == "string" || typeof e == "number") r += e;
else if (typeof e == "object") if (Array.isArray(e)) {
var i = e.length;
for (t = 0; t < i; t++) e[t] && (o = bh(e[t])) && (r && (r += " "), r += o);
} else for (o in e) e[o] && (r && (r += " "), r += o);
return r;
}
function he() {
for (var e, t, o = 0, r = "", i = arguments.length; o < i; o++) (e = arguments[o]) && (t = bh(e)) && (r && (r += " "), r += t);
return r;
}
const Cd = "-", iv = (e) => {
const t = sv(e), {
conflictingClassGroups: o,
conflictingClassGroupModifiers: r
} = e;
return {
getClassGroupId: (s) => {
const l = s.split(Cd);
return l[0] === "" && l.length !== 1 && l.shift(), Eh(l, t) || av(s);
},
getConflictingClassGroupIds: (s, l) => {
const c = o[s] || [];
return l && r[s] ? [...c, ...r[s]] : c;
}
};
}, Eh = (e, t) => {
var s;
if (e.length === 0)
return t.classGroupId;
const o = e[0], r = t.nextPart.get(o), i = r ? Eh(e.slice(1), r) : void 0;
if (i)
return i;
if (t.validators.length === 0)
return;
const a = e.join(Cd);
return (s = t.validators.find(({
validator: l
}) => l(a))) == null ? void 0 : s.classGroupId;
}, ng = /^\[(.+)\]$/, av = (e) => {
if (ng.test(e)) {
const t = ng.exec(e)[1], o = t == null ? void 0 : t.substring(0, t.indexOf(":"));
if (o)
return "arbitrary.." + o;
}
}, sv = (e) => {
const {
theme: t,
prefix: o
} = e, r = {
nextPart: /* @__PURE__ */ new Map(),
validators: []
};
return cv(Object.entries(e.classGroups), o).forEach(([a, s]) => {
Ru(s, r, a, t);
}), r;
}, Ru = (e, t, o, r) => {
e.forEach((i) => {
if (typeof i == "string") {
const a = i === "" ? t : rg(t, i);
a.classGroupId = o;
return;
}
if (typeof i == "function") {
if (lv(i)) {
Ru(i(r), t, o, r);
return;
}
t.validators.push({
validator: i,
classGroupId: o
});
return;
}
Object.entries(i).forEach(([a, s]) => {
Ru(s, rg(t, a), o, r);
});
});
}, rg = (e, t) => {
let o = e;
return t.split(Cd).forEach((r) => {
o.nextPart.has(r) || o.nextPart.set(r, {
nextPart: /* @__PURE__ */ new Map(),
validators: []
}), o = o.nextPart.get(r);
}), o;
}, lv = (e) => e.isThemeGetter, cv = (e, t) => t ? e.map(([o, r]) => {
const i = r.map((a) => typeof a == "string" ? t + a : typeof a == "object" ? Object.fromEntries(Object.entries(a).map(([s, l]) => [t + s, l])) : a);
return [o, i];
}) : e, uv = (e) => {
if (e < 1)
return {
get: () => {
},
set: () => {
}
};
let t = 0, o = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
const i = (a, s) => {
o.set(a, s), t++, t > e && (t = 0, r = o, o = /* @__PURE__ */ new Map());
};
return {
get(a) {
let s = o.get(a);
if (s !== void 0)
return s;
if ((s = r.get(a)) !== void 0)
return i(a, s), s;
},
set(a, s) {
o.has(a) ? o.set(a, s) : i(a, s);
}
};
}, vh = "!", dv = (e) => {
const {
separator: t,
experimentalParseClassName: o
} = e, r = t.length === 1, i = t[0], a = t.length, s = (l) => {
const c = [];
let u = 0, d = 0, A;
for (let m = 0; m < l.length; m++) {
let I = l[m];
if (u === 0) {
if (I === i && (r || l.slice(m, m + a) === t)) {
c.push(l.slice(d, m)), d = m + a;
continue;
}
if (I === "/") {
A = m;
continue;
}
}
I === "[" ? u++ : I === "]" && u--;
}
const g = c.length === 0 ? l : l.substring(d), p = g.startsWith(vh), h = p ? g.substring(1) : g, C = A && A > d ? A - d : void 0;
return {
modifiers: c,
hasImportantModifier: p,
baseClassName: h,
maybePostfixModifierPosition: C
};
};
return o ? (l) => o({
className: l,
parseClassName: s
}) : s;
}, Av = (e) => {
if (e.length <= 1)
return e;
const t = [];
let o = [];
return e.forEach((r) => {
r[0] === "[" ? (t.push(...o.sort(), r), o = []) : o.push(r);
}), t.push(...o.sort()), t;
}, gv = (e) => ({
cache: uv(e.cacheSize),
parseClassName: dv(e),
...iv(e)
}), fv = /\s+/, pv = (e, t) => {
const {
parseClassName: o,
getClassGroupId: r,
getConflictingClassGroupIds: i
} = t, a = [], s = e.trim().split(fv);
let l = "";
for (let c = s.length - 1; c >= 0; c -= 1) {
const u = s[c], {
modifiers: d,
hasImportantModifier: A,
baseClassName: g,
maybePostfixModifierPosition: p
} = o(u);
let h = !!p, C = r(h ? g.substring(0, p) : g);
if (!C) {
if (!h) {
l = u + (l.length > 0 ? " " + l : l);
continue;
}
if (C = r(g), !C) {
l = u + (l.length > 0 ? " " + l : l);
continue;
}
h = !1;
}
const m = Av(d).join(":"), I = A ? m + vh : m, v = I + C;
if (a.includes(v))
continue;
a.push(v);
const E = i(C, h);
for (let y = 0; y < E.length; ++y) {
const b = E[y];
a.push(I + b);
}
l = u + (l.length > 0 ? " " + l : l);
}
return l;
};
function hv() {
let e = 0, t, o, r = "";
for (; e < arguments.length; )
(t = arguments[e++]) && (o = yh(t)) && (r && (r += " "), r += o);
return r;
}
const yh = (e) => {
if (typeof e == "string")
return e;
let t, o = "";
for (let r = 0; r < e.length; r++)
e[r] && (t = yh(e[r])) && (o && (o += " "), o += t);
return o;
};
function Cv(e, ...t) {
let o, r, i, a = s;
function s(c) {
const u = t.reduce((d, A) => A(d), e());
return o = gv(u), r = o.cache.get, i = o.cache.set, a = l, l(c);
}
function l(c) {
const u = r(c);
if (u)
return u;
const d = pv(c, o);
return i(c, d), d;
}
return function() {
return a(hv.apply(null, arguments));
};
}
const Wt = (e) => {
const t = (o) => o[e] || [];
return t.isThemeGetter = !0, t;
}, Bh = /^\[(?:([a-z-]+):)?(.+)\]$/i, mv = /^\d+\/\d+$/, Iv = /* @__PURE__ */ new Set(["px", "full", "screen"]), bv = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Ev = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, vv = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, yv = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Bv = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, Ln = (e) => pi(e) || Iv.has(e) || mv.test(e), rr = (e) => Vi(e, "length", kv), pi = (e) => !!e && !Number.isNaN(Number(e)), Dc = (e) => Vi(e, "number", pi), _i = (e) => !!e && Number.isInteger(Number(e)), Sv = (e) => e.endsWith("%") && pi(e.slice(0, -1)), ft = (e) => Bh.test(e), ir = (e) => bv.test(e), Rv = /* @__PURE__ */ new Set(["length", "size", "percentage"]), xv = (e) => Vi(e, Rv, Sh), wv = (e) => Vi(e, "position", Sh), Qv = /* @__PURE__ */ new Set(["image", "url"]), Pv = (e) => Vi(e, Qv, Dv), Fv = (e) => Vi(e, "", Mv), $i = () => !0, Vi = (e, t, o) => {
const r = Bh.exec(e);
return r ? r[1] ? typeof t == "string" ? r[1] === t : t.has(r[1]) : o(r[2]) : !1;
}, kv = (e) => (
// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
// For example, `hsl(0 0% 0%)` would be classified as a length without this check.
// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
Ev.test(e) && !vv.test(e)
), Sh = () => !1, Mv = (e) => yv.test(e), Dv = (e) => Bv.test(e), Tv = () => {
const e = Wt("colors"), t = Wt("spacing"), o = Wt("blur"), r = Wt("brightness"), i = Wt("borderColor"), a = Wt("borderRadius"), s = Wt("borderSpacing"), l = Wt("borderWidth"), c = Wt("contrast"), u = Wt("grayscale"), d = Wt("hueRotate"), A = Wt("invert"), g = Wt("gap"), p = Wt("gradientColorStops"), h = Wt("gradientColorStopPositions"), C = Wt("inset"), m = Wt("margin"), I = Wt("opacity"), v = Wt("padding"), E = Wt("saturate"), y = Wt("scale"), b = Wt("sepia"), x = Wt("skew"), R = Wt("space"), w = Wt("translate"), P = () => ["auto", "contain", "none"], B = () => ["auto", "hidden", "clip", "visible", "scroll"], Q = () => ["auto", ft, t], F = () => [ft, t], k = () => ["", Ln, rr], M = () => ["auto", pi, ft], T = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], D = () => ["solid", "dashed", "dotted", "double", "none"], L = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], j = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], J = () => ["", "0", ft], O = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], G = () => [pi, ft];
return {
cacheSize: 500,
separator: ":",
theme: {
colors: [$i],
spacing: [Ln, rr],
blur: ["none", "", ir, ft],
brightness: G(),
borderColor: [e],
borderRadius: ["none", "", "full", ir, ft],
borderSpacing: F(),
borderWidth: k(),
contrast: G(),
grayscale: J(),
hueRotate: G(),
invert: J(),
gap: F(),
gradientColorStops: [e],
gradientColorStopPositions: [Sv, rr],
inset: Q(),
margin: Q(),
opacity: G(),
padding: F(),
saturate: G(),
scale: G(),
sepia: J(),
skew: G(),
space: F(),
translate: F()
},
classGroups: {
// Layout
/**
* Aspect Ratio
* @see https://tailwindcss.com/docs/aspect-ratio
*/
aspect: [{
aspect: ["auto", "square", "video", ft]
}],
/**
* Container
* @see https://tailwindcss.com/docs/container
*/
container: ["container"],
/**
* Columns
* @see https://tailwindcss.com/docs/columns
*/
columns: [{
columns: [ir]
}],
/**
* Break After
* @see https://tailwindcss.com/docs/break-after
*/
"break-after": [{
"break-after": O()
}],
/**
* Break Before
* @see https://tailwindcss.com/docs/break-before
*/
"break-before": [{
"break-before": O()
}],
/**
* Break Inside
* @see https://tailwindcss.com/docs/break-inside
*/
"break-inside": [{
"break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
}],
/**
* Box Decoration Break
* @see https://tailwindcss.com/docs/box-decoration-break
*/
"box-decoration": [{
"box-decoration": ["slice", "clone"]
}],
/**
* Box Sizing
* @see https://tailwindcss.com/docs/box-sizing
*/
box: [{
box: ["border", "content"]
}],
/**
* Display
* @see https://tailwindcss.com/docs/display
*/
display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
/**
* Floats
* @see https://tailwindcss.com/docs/float
*/
float: [{
float: ["right", "left", "none", "start", "end"]
}],
/**
* Clear
* @see https://tailwindcss.com/docs/clear
*/
clear: [{
clear: ["left", "right", "both", "none", "start", "end"]
}],
/**
* Isolation
* @see https://tailwindcss.com/docs/isolation
*/
isolation: ["isolate", "isolation-auto"],
/**
* Object Fit
* @see https://tailwindcss.com/docs/object-fit
*/
"object-fit": [{
object: ["contain", "cover", "fill", "none", "scale-down"]
}],
/**
* Object Position
* @see https://tailwindcss.com/docs/object-position
*/
"object-position": [{
object: [...T(), ft]
}],
/**
* Overflow
* @see https://tailwindcss.com/docs/overflow
*/
overflow: [{
overflow: B()
}],
/**
* Overflow X
* @see https://tailwindcss.com/docs/overflow
*/
"overflow-x": [{
"overflow-x": B()
}],
/**
* Overflow Y
* @see https://tailwindcss.com/docs/overflow
*/
"overflow-y": [{
"overflow-y": B()
}],
/**
* Overscroll Behavior
* @see https://tailwindcss.com/docs/overscroll-behavior
*/
overscroll: [{
overscroll: P()
}],
/**
* Overscroll Behavior X
* @see https://tailwindcss.com/docs/overscroll-behavior
*/
"overscroll-x": [{
"overscroll-x": P()
}],
/**
* Overscroll Behavior Y
* @see https://tailwindcss.com/docs/overscroll-behavior
*/
"overscroll-y": [{
"overscroll-y": P()
}],
/**
* Position
* @see https://tailwindcss.com/docs/position
*/
position: ["static", "fixed", "absolute", "relative", "sticky"],
/**
* Top / Right / Bottom / Left
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
inset: [{
inset: [C]
}],
/**
* Right / Left
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
"inset-x": [{
"inset-x": [C]
}],
/**
* Top / Bottom
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
"inset-y": [{
"inset-y": [C]
}],
/**
* Start
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
start: [{
start: [C]
}],
/**
* End
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
end: [{
end: [C]
}],
/**
* Top
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
top: [{
top: [C]
}],
/**
* Right
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
right: [{
right: [C]
}],
/**
* Bottom
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
bottom: [{
bottom: [C]
}],
/**
* Left
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
left: [{
left: [C]
}],
/**
* Visibility
* @see https://tailwindcss.com/docs/visibility
*/
visibility: ["visible", "invisible", "collapse"],
/**
* Z-Index
* @see https://tailwindcss.com/docs/z-index
*/
z: [{
z: ["auto", _i, ft]
}],
// Flexbox and Grid
/**
* Flex Basis
* @see https://tailwindcss.com/docs/flex-basis
*/
basis: [{
basis: Q()
}],
/**
* Flex Direction
* @see https://tailwindcss.com/docs/flex-direction
*/
"flex-direction": [{
flex: ["row", "row-reverse", "col", "col-reverse"]
}],
/**
* Flex Wrap
* @see https://tailwindcss.com/docs/flex-wrap
*/
"flex-wrap": [{
flex: ["wrap", "wrap-reverse", "nowrap"]
}],
/**
* Flex
* @see https://tailwindcss.com/docs/flex
*/
flex: [{
flex: ["1", "auto", "initial", "none", ft]
}],
/**
* Flex Grow
* @see https://tailwindcss.com/docs/flex-grow
*/
grow: [{
grow: J()
}],
/**
* Flex Shrink
* @see https://tailwindcss.com/docs/flex-shrink
*/
shrink: [{
shrink: J()
}],
/**
* Order
* @see https://tailwindcss.com/docs/order
*/
order: [{
order: ["first", "last", "none", _i, ft]
}],
/**
* Grid Template Columns
* @see https://tailwindcss.com/docs/grid-template-columns
*/
"grid-cols": [{
"grid-cols": [$i]
}],
/**
* Grid Column Start / End
* @see https://tailwindcss.com/docs/grid-column
*/
"col-start-end": [{
col: ["auto", {
span: ["full", _i, ft]
}, ft]
}],
/**
* Grid Column Start
* @see https://tailwindcss.com/docs/grid-column
*/
"col-start": [{
"col-start": M()
}],
/**
* Grid Column End
* @see https://tailwindcss.com/docs/grid-column
*/
"col-end": [{
"col-end": M()
}],
/**
* Grid Template Rows
* @see https://tailwindcss.com/docs/grid-template-rows
*/
"grid-rows": [{
"grid-rows": [$i]
}],
/**
* Grid Row Start / End
* @see https://tailwindcss.com/docs/grid-row
*/
"row-start-end": [{
row: ["auto", {
span: [_i, ft]
}, ft]
}],
/**
* Grid Row Start
* @see https://tailwindcss.com/docs/grid-row
*/
"row-start": [{
"row-start": M()
}],
/**
* Grid Row End
* @see https://tailwindcss.com/docs/grid-row
*/
"row-end": [{
"row-end": M()
}],
/**
* Grid Auto Flow
* @see https://tailwindcss.com/docs/grid-auto-flow
*/
"grid-flow": [{
"grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
}],
/**
* Grid Auto Columns
* @see https://tailwindcss.com/docs/grid-auto-columns
*/
"auto-cols": [{
"auto-cols": ["auto", "min", "max", "fr", ft]
}],
/**
* Grid Auto Rows
* @see https://tailwindcss.com/docs/grid-auto-rows
*/
"auto-rows": [{
"auto-rows": ["auto", "min", "max", "fr", ft]
}],
/**
* Gap
* @see https://tailwindcss.com/docs/gap
*/
gap: [{
gap: [g]
}],
/**
* Gap X
* @see https://tailwindcss.com/docs/gap
*/
"gap-x": [{
"gap-x": [g]
}],
/**
* Gap Y
* @see https://tailwindcss.com/docs/gap
*/
"gap-y": [{
"gap-y": [g]
}],
/**
* Justify Content
* @see https://tailwindcss.com/docs/justify-content
*/
"justify-content": [{
justify: ["normal", ...j()]
}],
/**
* Justify Items
* @see https://tailwindcss.com/docs/justify-items
*/
"justify-items": [{
"justify-items": ["start", "end", "center", "stretch"]
}],
/**
* Justify Self
* @see https://tailwindcss.com/docs/justify-self
*/
"justify-self": [{
"justify-self": ["auto", "start", "end", "center", "stretch"]
}],
/**
* Align Content
* @see https://tailwindcss.com/docs/align-content
*/
"align-content": [{
content: ["normal", ...j(), "baseline"]
}],
/**
* Align Items
* @see https://tailwindcss.com/docs/align-items
*/
"align-items": [{
items: ["start", "end", "center", "baseline", "stretch"]
}],
/**
* Align Self
* @see https://tailwindcss.com/docs/align-self
*/
"align-self": [{
self: ["auto", "start", "end", "center", "stretch", "baseline"]
}],
/**
* Place Content
* @see https://tailwindcss.com/docs/place-content
*/
"place-content": [{
"place-content": [...j(), "baseline"]
}],
/**
* Place Items
* @see https://tailwindcss.com/docs/place-items
*/
"place-items": [{
"place-items": ["start", "end", "center", "baseline", "stretch"]
}],
/**
* Place Self
* @see https://tailwindcss.com/docs/place-self
*/
"place-self": [{
"place-self": ["auto", "start", "end", "center", "stretch"]
}],
// Spacing
/**
* Padding
* @see https://tailwindcss.com/docs/padding
*/
p: [{
p: [v]
}],
/**
* Padding X
* @see https://tailwindcss.com/docs/padding
*/
px: [{
px: [v]
}],
/**
* Padding Y
* @see https://tailwindcss.com/docs/padding
*/
py: [{
py: [v]
}],
/**
* Padding Start
* @see https://tailwindcss.com/docs/padding
*/
ps: [{
ps: [v]
}],
/**
* Padding End
* @see https://tailwindcss.com/docs/padding
*/
pe: [{
pe: [v]
}],
/**
* Padding Top
* @see https://tailwindcss.com/docs/padding
*/
pt: [{
pt: [v]
}],
/**
* Padding Right
* @see https://tailwindcss.com/docs/padding
*/
pr: [{
pr: [v]
}],
/**
* Padding Bottom
* @see https://tailwindcss.com/docs/padding
*/
pb: [{
pb: [v]
}],
/**
* Padding Left
* @see https://tailwindcss.com/docs/padding
*/
pl: [{
pl: [v]
}],
/**
* Margin
* @see https://tailwindcss.com/docs/margin
*/
m: [{
m: [m]
}],
/**
* Margin X
* @see https://tailwindcss.com/docs/margin
*/
mx: [{
mx: [m]
}],
/**
* Margin Y
* @see https://tailwindcss.com/docs/margin
*/
my: [{
my: [m]
}],
/**
* Margin Start
* @see https://tailwindcss.com/docs/margin
*/
ms: [{
ms: [m]
}],
/**
* Margin End
* @see https://tailwindcss.com/docs/margin
*/
me: [{
me: [m]
}],
/**
* Margin Top
* @see https://tailwindcss.com/docs/margin
*/
mt: [{
mt: [m]
}],
/**
* Margin Right
* @see https://tailwindcss.com/docs/margin
*/
mr: [{
mr: [m]
}],
/**
* Margin Bottom
* @see https://tailwindcss.com/docs/margin
*/
mb: [{
mb: [m]
}],
/**
* Margin Left
* @see https://tailwindcss.com/docs/margin
*/
ml: [{
ml: [m]
}],
/**
* Space Between X
* @see https://tailwindcss.com/docs/space
*/
"space-x": [{
"space-x": [R]
}],
/**
* Space Between X Reverse
* @see https://tailwindcss.com/docs/space
*/
"space-x-reverse": ["space-x-reverse"],
/**
* Space Between Y
* @see https://tailwindcss.com/docs/space
*/
"space-y": [{
"space-y": [R]
}],
/**
* Space Between Y Reverse
* @see https://tailwindcss.com/docs/space
*/
"space-y-reverse": ["space-y-reverse"],
// Sizing
/**
* Width
* @see https://tailwindcss.com/docs/width
*/
w: [{
w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", ft, t]
}],
/**
* Min-Width
* @see https://tailwindcss.com/docs/min-width
*/
"min-w": [{
"min-w": [ft, t, "min", "max", "fit"]
}],
/**
* Max-Width
* @see https://tailwindcss.com/docs/max-width
*/
"max-w": [{
"max-w": [ft, t, "none", "full", "min", "max", "fit", "prose", {
screen: [ir]
}, ir]
}],
/**
* Height
* @see https://tailwindcss.com/docs/height
*/
h: [{
h: [ft, t, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
}],
/**
* Min-Height
* @see https://tailwindcss.com/docs/min-height
*/
"min-h": [{
"min-h": [ft, t, "min", "max", "fit", "svh", "lvh", "dvh"]
}],
/**
* Max-Height
* @see https://tailwindcss.com/docs/max-height
*/
"max-h": [{
"max-h": [ft, t, "min", "max", "fit", "svh", "lvh", "dvh"]
}],
/**
* Size
* @see https://tailwindcss.com/docs/size
*/
size: [{
size: [ft, t, "auto", "min", "max", "fit"]
}],
// Typography
/**
* Font Size
* @see https://tailwindcss.com/docs/font-size
*/
"font-size": [{
text: ["base", ir, rr]
}],
/**
* Font Smoothing
* @see https://tailwindcss.com/docs/font-smoothing
*/
"font-smoothing": ["antialiased", "subpixel-antialiased"],
/**
* Font Style
* @see https://tailwindcss.com/docs/font-style
*/
"font-style": ["italic", "not-italic"],
/**
* Font Weight
* @see https://tailwindcss.com/docs/font-weight
*/
"font-weight": [{
font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", Dc]
}],
/**
* Font Family
* @see https://tailwindcss.com/docs/font-family
*/
"font-family": [{
font: [$