mirror of
https://github.com/storytold/placeholder-artcraft.git
synced 2026-10-17 00:13:00 +00:00
0daf83dba9
Need to remove secrets before entire repo can be made public.
2807 lines
79 KiB
JavaScript
2807 lines
79 KiB
JavaScript
import { jsxs as je, jsx as ce } from "react/jsx-runtime";
|
|
import * as ie from "react";
|
|
import P, { useState as N, useEffect as Q, useLayoutEffect as nt, useRef as S, forwardRef as ot, useCallback as _, Fragment as X, isValidElement as st, cloneElement as lt, createElement as it, useContext as pe, createContext as Ee, useMemo as Me } from "react";
|
|
var at = Object.defineProperty, ct = (e, t, r) => t in e ? at(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, ye = (e, t, r) => (ct(e, typeof t != "symbol" ? t + "" : t, r), r);
|
|
let dt = class {
|
|
constructor() {
|
|
ye(this, "current", this.detect()), ye(this, "handoffState", "pending"), ye(this, "currentId", 0);
|
|
}
|
|
set(t) {
|
|
this.current !== t && (this.handoffState = "pending", this.currentId = 0, this.current = t);
|
|
}
|
|
reset() {
|
|
this.set(this.detect());
|
|
}
|
|
nextId() {
|
|
return ++this.currentId;
|
|
}
|
|
get isServer() {
|
|
return this.current === "server";
|
|
}
|
|
get isClient() {
|
|
return this.current === "client";
|
|
}
|
|
detect() {
|
|
return typeof window > "u" || typeof document > "u" ? "server" : "client";
|
|
}
|
|
handoff() {
|
|
this.handoffState === "pending" && (this.handoffState = "complete");
|
|
}
|
|
get isHandoffComplete() {
|
|
return this.handoffState === "complete";
|
|
}
|
|
}, ue = new dt();
|
|
function ut(e) {
|
|
typeof queueMicrotask == "function" ? queueMicrotask(e) : Promise.resolve().then(e).catch((t) => setTimeout(() => {
|
|
throw t;
|
|
}));
|
|
}
|
|
function fe() {
|
|
let e = [], t = { addEventListener(r, n, o, s) {
|
|
return r.addEventListener(n, o, s), t.add(() => r.removeEventListener(n, o, s));
|
|
}, requestAnimationFrame(...r) {
|
|
let n = requestAnimationFrame(...r);
|
|
return t.add(() => cancelAnimationFrame(n));
|
|
}, nextFrame(...r) {
|
|
return t.requestAnimationFrame(() => t.requestAnimationFrame(...r));
|
|
}, setTimeout(...r) {
|
|
let n = setTimeout(...r);
|
|
return t.add(() => clearTimeout(n));
|
|
}, microTask(...r) {
|
|
let n = { current: !0 };
|
|
return ut(() => {
|
|
n.current && r[0]();
|
|
}), t.add(() => {
|
|
n.current = !1;
|
|
});
|
|
}, style(r, n, o) {
|
|
let s = r.style.getPropertyValue(n);
|
|
return Object.assign(r.style, { [n]: o }), this.add(() => {
|
|
Object.assign(r.style, { [n]: s });
|
|
});
|
|
}, group(r) {
|
|
let n = fe();
|
|
return r(n), this.add(() => n.dispose());
|
|
}, add(r) {
|
|
return e.includes(r) || e.push(r), () => {
|
|
let n = e.indexOf(r);
|
|
if (n >= 0) for (let o of e.splice(n, 1)) o();
|
|
};
|
|
}, dispose() {
|
|
for (let r of e.splice(0)) r();
|
|
} };
|
|
return t;
|
|
}
|
|
function Oe() {
|
|
let [e] = N(fe);
|
|
return Q(() => () => e.dispose(), [e]), e;
|
|
}
|
|
let H = (e, t) => {
|
|
ue.isServer ? Q(e, t) : nt(e, t);
|
|
};
|
|
function Ie(e) {
|
|
let t = S(e);
|
|
return H(() => {
|
|
t.current = e;
|
|
}, [e]), t;
|
|
}
|
|
let O = function(e) {
|
|
let t = Ie(e);
|
|
return P.useCallback((...r) => t.current(...r), [t]);
|
|
};
|
|
function Ce(...e) {
|
|
return Array.from(new Set(e.flatMap((t) => typeof t == "string" ? t.split(" ") : []))).filter(Boolean).join(" ");
|
|
}
|
|
function ge(e, t, ...r) {
|
|
if (e in t) {
|
|
let o = t[e];
|
|
return typeof o == "function" ? o(...r) : o;
|
|
}
|
|
let n = new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map((o) => `"${o}"`).join(", ")}.`);
|
|
throw Error.captureStackTrace && Error.captureStackTrace(n, ge), n;
|
|
}
|
|
var Le = ((e) => (e[e.None = 0] = "None", e[e.RenderStrategy = 1] = "RenderStrategy", e[e.Static = 2] = "Static", e))(Le || {}), G = ((e) => (e[e.Unmount = 0] = "Unmount", e[e.Hidden = 1] = "Hidden", e))(G || {});
|
|
function Ge() {
|
|
let e = ft();
|
|
return _((t) => pt({ mergeRefs: e, ...t }), [e]);
|
|
}
|
|
function pt({ ourProps: e, theirProps: t, slot: r, defaultTag: n, features: o, visible: s = !0, name: a, mergeRefs: l }) {
|
|
l = l ?? gt;
|
|
let i = He(t, e);
|
|
if (s) return de(i, r, n, a, l);
|
|
let u = o ?? 0;
|
|
if (u & 2) {
|
|
let { static: c = !1, ...f } = i;
|
|
if (c) return de(f, r, n, a, l);
|
|
}
|
|
if (u & 1) {
|
|
let { unmount: c = !0, ...f } = i;
|
|
return ge(c ? 0 : 1, { 0() {
|
|
return null;
|
|
}, 1() {
|
|
return de({ ...f, hidden: !0, style: { display: "none" } }, r, n, a, l);
|
|
} });
|
|
}
|
|
return de(i, r, n, a, l);
|
|
}
|
|
function de(e, t = {}, r, n, o) {
|
|
let { as: s = r, children: a, refName: l = "ref", ...i } = we(e, ["unmount", "static"]), u = e.ref !== void 0 ? { [l]: e.ref } : {}, c = typeof a == "function" ? a(t) : a;
|
|
"className" in i && i.className && typeof i.className == "function" && (i.className = i.className(t)), i["aria-labelledby"] && i["aria-labelledby"] === i.id && (i["aria-labelledby"] = void 0);
|
|
let f = {};
|
|
if (t) {
|
|
let h = !1, m = [];
|
|
for (let [p, g] of Object.entries(t)) typeof g == "boolean" && (h = !0), g === !0 && m.push(p.replace(/([A-Z])/g, (d) => `-${d.toLowerCase()}`));
|
|
if (h) {
|
|
f["data-headlessui-state"] = m.join(" ");
|
|
for (let p of m) f[`data-${p}`] = "";
|
|
}
|
|
}
|
|
if (s === X && (Object.keys(q(i)).length > 0 || Object.keys(q(f)).length > 0)) if (!st(c) || Array.isArray(c) && c.length > 1) {
|
|
if (Object.keys(q(i)).length > 0) throw new Error(['Passing props on "Fragment"!', "", `The current component <${n} /> is rendering a "Fragment".`, "However we need to passthrough the following props:", Object.keys(q(i)).concat(Object.keys(q(f))).map((h) => ` - ${h}`).join(`
|
|
`), "", "You can apply a few solutions:", ['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".', "Render a single element as the child so that we can forward the props onto that element."].map((h) => ` - ${h}`).join(`
|
|
`)].join(`
|
|
`));
|
|
} else {
|
|
let h = c.props, m = h == null ? void 0 : h.className, p = typeof m == "function" ? (...v) => Ce(m(...v), i.className) : Ce(m, i.className), g = p ? { className: p } : {}, d = He(c.props, q(we(i, ["ref"])));
|
|
for (let v in f) v in d && delete f[v];
|
|
return lt(c, Object.assign({}, d, f, u, { ref: o(mt(c), u.ref) }, g));
|
|
}
|
|
return it(s, Object.assign({}, we(i, ["ref"]), s !== X && u, s !== X && f), c);
|
|
}
|
|
function ft() {
|
|
let e = S([]), t = _((r) => {
|
|
for (let n of e.current) n != null && (typeof n == "function" ? n(r) : n.current = r);
|
|
}, []);
|
|
return (...r) => {
|
|
if (!r.every((n) => n == null)) return e.current = r, t;
|
|
};
|
|
}
|
|
function gt(...e) {
|
|
return e.every((t) => t == null) ? void 0 : (t) => {
|
|
for (let r of e) r != null && (typeof r == "function" ? r(t) : r.current = t);
|
|
};
|
|
}
|
|
function He(...e) {
|
|
if (e.length === 0) return {};
|
|
if (e.length === 1) return e[0];
|
|
let t = {}, r = {};
|
|
for (let n of e) for (let o in n) o.startsWith("on") && typeof n[o] == "function" ? (r[o] != null || (r[o] = []), r[o].push(n[o])) : t[o] = n[o];
|
|
if (t.disabled || t["aria-disabled"]) for (let n in r) /^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(n) && (r[n] = [(o) => {
|
|
var s;
|
|
return (s = o == null ? void 0 : o.preventDefault) == null ? void 0 : s.call(o);
|
|
}]);
|
|
for (let n in r) Object.assign(t, { [n](o, ...s) {
|
|
let a = r[n];
|
|
for (let l of a) {
|
|
if ((o instanceof Event || (o == null ? void 0 : o.nativeEvent) instanceof Event) && o.defaultPrevented) return;
|
|
l(o, ...s);
|
|
}
|
|
} });
|
|
return t;
|
|
}
|
|
function Ae(e) {
|
|
var t;
|
|
return Object.assign(ot(e), { displayName: (t = e.displayName) != null ? t : e.name });
|
|
}
|
|
function q(e) {
|
|
let t = Object.assign({}, e);
|
|
for (let r in t) t[r] === void 0 && delete t[r];
|
|
return t;
|
|
}
|
|
function we(e, t = []) {
|
|
let r = Object.assign({}, e);
|
|
for (let n of t) n in r && delete r[n];
|
|
return r;
|
|
}
|
|
function mt(e) {
|
|
return P.version.split(".")[0] >= "19" ? e.props.ref : e.ref;
|
|
}
|
|
let bt = Symbol();
|
|
function Ue(...e) {
|
|
let t = S(e);
|
|
Q(() => {
|
|
t.current = e;
|
|
}, [e]);
|
|
let r = O((n) => {
|
|
for (let o of t.current) o != null && (typeof o == "function" ? o(n) : o.current = n);
|
|
});
|
|
return e.every((n) => n == null || (n == null ? void 0 : n[bt])) ? void 0 : r;
|
|
}
|
|
function ht(e = 0) {
|
|
let [t, r] = N(e), n = _((i) => r(i), [t]), o = _((i) => r((u) => u | i), [t]), s = _((i) => (t & i) === i, [t]), a = _((i) => r((u) => u & ~i), [r]), l = _((i) => r((u) => u ^ i), [r]);
|
|
return { flags: t, setFlag: n, addFlag: o, hasFlag: s, removeFlag: a, toggleFlag: l };
|
|
}
|
|
var ze, $e;
|
|
typeof process < "u" && typeof globalThis < "u" && typeof Element < "u" && ((ze = process == null ? void 0 : process.env) == null ? void 0 : ze.NODE_ENV) === "test" && typeof (($e = Element == null ? void 0 : Element.prototype) == null ? void 0 : $e.getAnimations) > "u" && (Element.prototype.getAnimations = function() {
|
|
return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.", "Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.", "", "Example usage:", "```js", "import { mockAnimationsApi } from 'jsdom-testing-mocks'", "mockAnimationsApi()", "```"].join(`
|
|
`)), [];
|
|
});
|
|
var vt = ((e) => (e[e.None = 0] = "None", e[e.Closed = 1] = "Closed", e[e.Enter = 2] = "Enter", e[e.Leave = 4] = "Leave", e))(vt || {});
|
|
function yt(e) {
|
|
let t = {};
|
|
for (let r in e) e[r] === !0 && (t[`data-${r}`] = "");
|
|
return t;
|
|
}
|
|
function wt(e, t, r, n) {
|
|
let [o, s] = N(r), { hasFlag: a, addFlag: l, removeFlag: i } = ht(e && o ? 3 : 0), u = S(!1), c = S(!1), f = Oe();
|
|
return H(() => {
|
|
var h;
|
|
if (e) {
|
|
if (r && s(!0), !t) {
|
|
r && l(3);
|
|
return;
|
|
}
|
|
return (h = n == null ? void 0 : n.start) == null || h.call(n, r), xt(t, { inFlight: u, prepare() {
|
|
c.current ? c.current = !1 : c.current = u.current, u.current = !0, !c.current && (r ? (l(3), i(4)) : (l(4), i(2)));
|
|
}, run() {
|
|
c.current ? r ? (i(3), l(4)) : (i(4), l(3)) : r ? i(1) : l(1);
|
|
}, done() {
|
|
var m;
|
|
c.current && typeof t.getAnimations == "function" && t.getAnimations().length > 0 || (u.current = !1, i(7), r || s(!1), (m = n == null ? void 0 : n.end) == null || m.call(n, r));
|
|
} });
|
|
}
|
|
}, [e, r, t, f]), e ? [o, { closed: a(1), enter: a(2), leave: a(4), transition: a(2) || a(4) }] : [r, { closed: void 0, enter: void 0, leave: void 0, transition: void 0 }];
|
|
}
|
|
function xt(e, { prepare: t, run: r, done: n, inFlight: o }) {
|
|
let s = fe();
|
|
return kt(e, { prepare: t, inFlight: o }), s.nextFrame(() => {
|
|
r(), s.requestAnimationFrame(() => {
|
|
s.add(Ct(e, n));
|
|
});
|
|
}), s.dispose;
|
|
}
|
|
function Ct(e, t) {
|
|
var r, n;
|
|
let o = fe();
|
|
if (!e) return o.dispose;
|
|
let s = !1;
|
|
o.add(() => {
|
|
s = !0;
|
|
});
|
|
let a = (n = (r = e.getAnimations) == null ? void 0 : r.call(e).filter((l) => l instanceof CSSTransition)) != null ? n : [];
|
|
return a.length === 0 ? (t(), o.dispose) : (Promise.allSettled(a.map((l) => l.finished)).then(() => {
|
|
s || t();
|
|
}), o.dispose);
|
|
}
|
|
function kt(e, { inFlight: t, prepare: r }) {
|
|
if (t != null && t.current) {
|
|
r();
|
|
return;
|
|
}
|
|
let n = e.style.transition;
|
|
e.style.transition = "none", r(), e.offsetHeight, e.style.transition = n;
|
|
}
|
|
let Te = Ee(null);
|
|
Te.displayName = "OpenClosedContext";
|
|
var B = ((e) => (e[e.Open = 1] = "Open", e[e.Closed = 2] = "Closed", e[e.Closing = 4] = "Closing", e[e.Opening = 8] = "Opening", e))(B || {});
|
|
function Ve() {
|
|
return pe(Te);
|
|
}
|
|
function St({ value: e, children: t }) {
|
|
return P.createElement(Te.Provider, { value: e }, t);
|
|
}
|
|
function Et() {
|
|
let e = typeof document > "u";
|
|
return "useSyncExternalStore" in ie ? ((t) => t.useSyncExternalStore)(ie)(() => () => {
|
|
}, () => !1, () => !e) : !1;
|
|
}
|
|
function We() {
|
|
let e = Et(), [t, r] = ie.useState(ue.isHandoffComplete);
|
|
return t && ue.isHandoffComplete === !1 && r(!1), ie.useEffect(() => {
|
|
t !== !0 && r(!0);
|
|
}, [t]), ie.useEffect(() => ue.handoff(), []), e ? !1 : t;
|
|
}
|
|
function At() {
|
|
let e = S(!1);
|
|
return H(() => (e.current = !0, () => {
|
|
e.current = !1;
|
|
}), []), e;
|
|
}
|
|
function qe(e) {
|
|
var t;
|
|
return !!(e.enter || e.enterFrom || e.enterTo || e.leave || e.leaveFrom || e.leaveTo) || ((t = e.as) != null ? t : Be) !== X || P.Children.count(e.children) === 1;
|
|
}
|
|
let me = Ee(null);
|
|
me.displayName = "TransitionContext";
|
|
var Tt = ((e) => (e.Visible = "visible", e.Hidden = "hidden", e))(Tt || {});
|
|
function Pt() {
|
|
let e = pe(me);
|
|
if (e === null) throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
|
|
return e;
|
|
}
|
|
function jt() {
|
|
let e = pe(be);
|
|
if (e === null) throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
|
|
return e;
|
|
}
|
|
let be = Ee(null);
|
|
be.displayName = "NestingContext";
|
|
function he(e) {
|
|
return "children" in e ? he(e.children) : e.current.filter(({ el: t }) => t.current !== null).filter(({ state: t }) => t === "visible").length > 0;
|
|
}
|
|
function _e(e, t) {
|
|
let r = Ie(e), n = S([]), o = At(), s = Oe(), a = O((m, p = G.Hidden) => {
|
|
let g = n.current.findIndex(({ el: d }) => d === m);
|
|
g !== -1 && (ge(p, { [G.Unmount]() {
|
|
n.current.splice(g, 1);
|
|
}, [G.Hidden]() {
|
|
n.current[g].state = "hidden";
|
|
} }), s.microTask(() => {
|
|
var d;
|
|
!he(n) && o.current && ((d = r.current) == null || d.call(r));
|
|
}));
|
|
}), l = O((m) => {
|
|
let p = n.current.find(({ el: g }) => g === m);
|
|
return p ? p.state !== "visible" && (p.state = "visible") : n.current.push({ el: m, state: "visible" }), () => a(m, G.Unmount);
|
|
}), i = S([]), u = S(Promise.resolve()), c = S({ enter: [], leave: [] }), f = O((m, p, g) => {
|
|
i.current.splice(0), t && (t.chains.current[p] = t.chains.current[p].filter(([d]) => d !== m)), t == null || t.chains.current[p].push([m, new Promise((d) => {
|
|
i.current.push(d);
|
|
})]), t == null || t.chains.current[p].push([m, new Promise((d) => {
|
|
Promise.all(c.current[p].map(([v, k]) => k)).then(() => d());
|
|
})]), p === "enter" ? u.current = u.current.then(() => t == null ? void 0 : t.wait.current).then(() => g(p)) : g(p);
|
|
}), h = O((m, p, g) => {
|
|
Promise.all(c.current[p].splice(0).map(([d, v]) => v)).then(() => {
|
|
var d;
|
|
(d = i.current.shift()) == null || d();
|
|
}).then(() => g(p));
|
|
});
|
|
return Me(() => ({ children: n, register: l, unregister: a, onStart: f, onStop: h, wait: u, chains: c }), [l, a, n, f, h, c, u]);
|
|
}
|
|
let Be = X, Xe = Le.RenderStrategy;
|
|
function zt(e, t) {
|
|
var r, n;
|
|
let { transition: o = !0, beforeEnter: s, afterEnter: a, beforeLeave: l, afterLeave: i, enter: u, enterFrom: c, enterTo: f, entered: h, leave: m, leaveFrom: p, leaveTo: g, ...d } = e, [v, k] = N(null), C = S(null), y = qe(e), A = Ue(...y ? [C, t, k] : t === null ? [] : [t]), R = (r = d.unmount) == null || r ? G.Unmount : G.Hidden, { show: E, appear: ee, initial: Y } = Pt(), [T, U] = N(E ? "visible" : "hidden"), w = jt(), { register: V, unregister: F } = w;
|
|
H(() => V(C), [V, C]), H(() => {
|
|
if (R === G.Hidden && C.current) {
|
|
if (E && T !== "visible") {
|
|
U("visible");
|
|
return;
|
|
}
|
|
return ge(T, { hidden: () => F(C), visible: () => V(C) });
|
|
}
|
|
}, [T, C, V, F, E, R]);
|
|
let K = We();
|
|
H(() => {
|
|
if (y && K && T === "visible" && C.current === null) throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?");
|
|
}, [C, T, K, y]);
|
|
let Z = Y && !ee, te = ee && E && Y, W = S(!1), $ = _e(() => {
|
|
W.current || (U("hidden"), F(C));
|
|
}, w), re = O((ve) => {
|
|
W.current = !0;
|
|
let ae = ve ? "enter" : "leave";
|
|
$.onStart(C, ae, (oe) => {
|
|
oe === "enter" ? s == null || s() : oe === "leave" && (l == null || l());
|
|
});
|
|
}), j = O((ve) => {
|
|
let ae = ve ? "enter" : "leave";
|
|
W.current = !1, $.onStop(C, ae, (oe) => {
|
|
oe === "enter" ? a == null || a() : oe === "leave" && (i == null || i());
|
|
}), ae === "leave" && !he($) && (U("hidden"), F(C));
|
|
});
|
|
Q(() => {
|
|
y && o || (re(E), j(E));
|
|
}, [E, y, o]);
|
|
let et = !(!o || !y || !K || Z), [, z] = wt(et, v, E, { start: re, end: j }), tt = q({ ref: A, className: ((n = Ce(d.className, te && u, te && c, z.enter && u, z.enter && z.closed && c, z.enter && !z.closed && f, z.leave && m, z.leave && !z.closed && p, z.leave && z.closed && g, !z.transition && E && h)) == null ? void 0 : n.trim()) || void 0, ...yt(z) }), ne = 0;
|
|
T === "visible" && (ne |= B.Open), T === "hidden" && (ne |= B.Closed), E && T === "hidden" && (ne |= B.Opening), !E && T === "visible" && (ne |= B.Closing);
|
|
let rt = Ge();
|
|
return P.createElement(be.Provider, { value: $ }, P.createElement(St, { value: ne }, rt({ ourProps: tt, theirProps: d, defaultTag: Be, features: Xe, visible: T === "visible", name: "Transition.Child" })));
|
|
}
|
|
function $t(e, t) {
|
|
let { show: r, appear: n = !1, unmount: o = !0, ...s } = e, a = S(null), l = qe(e), i = Ue(...l ? [a, t] : t === null ? [] : [t]);
|
|
We();
|
|
let u = Ve();
|
|
if (r === void 0 && u !== null && (r = (u & B.Open) === B.Open), r === void 0) throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");
|
|
let [c, f] = N(r ? "visible" : "hidden"), h = _e(() => {
|
|
r || f("hidden");
|
|
}), [m, p] = N(!0), g = S([r]);
|
|
H(() => {
|
|
m !== !1 && g.current[g.current.length - 1] !== r && (g.current.push(r), p(!1));
|
|
}, [g, r]);
|
|
let d = Me(() => ({ show: r, appear: n, initial: m }), [r, n, m]);
|
|
H(() => {
|
|
r ? f("visible") : !he(h) && a.current !== null && f("hidden");
|
|
}, [r, h]);
|
|
let v = { unmount: o }, k = O(() => {
|
|
var A;
|
|
m && p(!1), (A = e.beforeEnter) == null || A.call(e);
|
|
}), C = O(() => {
|
|
var A;
|
|
m && p(!1), (A = e.beforeLeave) == null || A.call(e);
|
|
}), y = Ge();
|
|
return P.createElement(be.Provider, { value: h }, P.createElement(me.Provider, { value: d }, y({ ourProps: { ...v, as: X, children: P.createElement(Ye, { ref: i, ...v, ...s, beforeEnter: k, beforeLeave: C }) }, theirProps: {}, defaultTag: X, features: Xe, visible: c === "visible", name: "Transition" })));
|
|
}
|
|
function Nt(e, t) {
|
|
let r = pe(me) !== null, n = Ve() !== null;
|
|
return P.createElement(P.Fragment, null, !r && n ? P.createElement(ke, { ref: t, ...e }) : P.createElement(Ye, { ref: t, ...e }));
|
|
}
|
|
let ke = Ae($t), Ye = Ae(zt), Rt = Ae(Nt), Ft = Object.assign(ke, { Child: Rt, Root: ke });
|
|
const Pe = "-", Mt = (e) => {
|
|
const t = It(e), {
|
|
conflictingClassGroups: r,
|
|
conflictingClassGroupModifiers: n
|
|
} = e;
|
|
return {
|
|
getClassGroupId: (a) => {
|
|
const l = a.split(Pe);
|
|
return l[0] === "" && l.length !== 1 && l.shift(), Ke(l, t) || Ot(a);
|
|
},
|
|
getConflictingClassGroupIds: (a, l) => {
|
|
const i = r[a] || [];
|
|
return l && n[a] ? [...i, ...n[a]] : i;
|
|
}
|
|
};
|
|
}, Ke = (e, t) => {
|
|
var a;
|
|
if (e.length === 0)
|
|
return t.classGroupId;
|
|
const r = e[0], n = t.nextPart.get(r), o = n ? Ke(e.slice(1), n) : void 0;
|
|
if (o)
|
|
return o;
|
|
if (t.validators.length === 0)
|
|
return;
|
|
const s = e.join(Pe);
|
|
return (a = t.validators.find(({
|
|
validator: l
|
|
}) => l(s))) == null ? void 0 : a.classGroupId;
|
|
}, Ne = /^\[(.+)\]$/, Ot = (e) => {
|
|
if (Ne.test(e)) {
|
|
const t = Ne.exec(e)[1], r = t == null ? void 0 : t.substring(0, t.indexOf(":"));
|
|
if (r)
|
|
return "arbitrary.." + r;
|
|
}
|
|
}, It = (e) => {
|
|
const {
|
|
theme: t,
|
|
prefix: r
|
|
} = e, n = {
|
|
nextPart: /* @__PURE__ */ new Map(),
|
|
validators: []
|
|
};
|
|
return Gt(Object.entries(e.classGroups), r).forEach(([s, a]) => {
|
|
Se(a, n, s, t);
|
|
}), n;
|
|
}, Se = (e, t, r, n) => {
|
|
e.forEach((o) => {
|
|
if (typeof o == "string") {
|
|
const s = o === "" ? t : Re(t, o);
|
|
s.classGroupId = r;
|
|
return;
|
|
}
|
|
if (typeof o == "function") {
|
|
if (Lt(o)) {
|
|
Se(o(n), t, r, n);
|
|
return;
|
|
}
|
|
t.validators.push({
|
|
validator: o,
|
|
classGroupId: r
|
|
});
|
|
return;
|
|
}
|
|
Object.entries(o).forEach(([s, a]) => {
|
|
Se(a, Re(t, s), r, n);
|
|
});
|
|
});
|
|
}, Re = (e, t) => {
|
|
let r = e;
|
|
return t.split(Pe).forEach((n) => {
|
|
r.nextPart.has(n) || r.nextPart.set(n, {
|
|
nextPart: /* @__PURE__ */ new Map(),
|
|
validators: []
|
|
}), r = r.nextPart.get(n);
|
|
}), r;
|
|
}, Lt = (e) => e.isThemeGetter, Gt = (e, t) => t ? e.map(([r, n]) => {
|
|
const o = n.map((s) => typeof s == "string" ? t + s : typeof s == "object" ? Object.fromEntries(Object.entries(s).map(([a, l]) => [t + a, l])) : s);
|
|
return [r, o];
|
|
}) : e, Ht = (e) => {
|
|
if (e < 1)
|
|
return {
|
|
get: () => {
|
|
},
|
|
set: () => {
|
|
}
|
|
};
|
|
let t = 0, r = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
|
|
const o = (s, a) => {
|
|
r.set(s, a), t++, t > e && (t = 0, n = r, r = /* @__PURE__ */ new Map());
|
|
};
|
|
return {
|
|
get(s) {
|
|
let a = r.get(s);
|
|
if (a !== void 0)
|
|
return a;
|
|
if ((a = n.get(s)) !== void 0)
|
|
return o(s, a), a;
|
|
},
|
|
set(s, a) {
|
|
r.has(s) ? r.set(s, a) : o(s, a);
|
|
}
|
|
};
|
|
}, Ze = "!", Ut = (e) => {
|
|
const {
|
|
separator: t,
|
|
experimentalParseClassName: r
|
|
} = e, n = t.length === 1, o = t[0], s = t.length, a = (l) => {
|
|
const i = [];
|
|
let u = 0, c = 0, f;
|
|
for (let d = 0; d < l.length; d++) {
|
|
let v = l[d];
|
|
if (u === 0) {
|
|
if (v === o && (n || l.slice(d, d + s) === t)) {
|
|
i.push(l.slice(c, d)), c = d + s;
|
|
continue;
|
|
}
|
|
if (v === "/") {
|
|
f = d;
|
|
continue;
|
|
}
|
|
}
|
|
v === "[" ? u++ : v === "]" && u--;
|
|
}
|
|
const h = i.length === 0 ? l : l.substring(c), m = h.startsWith(Ze), p = m ? h.substring(1) : h, g = f && f > c ? f - c : void 0;
|
|
return {
|
|
modifiers: i,
|
|
hasImportantModifier: m,
|
|
baseClassName: p,
|
|
maybePostfixModifierPosition: g
|
|
};
|
|
};
|
|
return r ? (l) => r({
|
|
className: l,
|
|
parseClassName: a
|
|
}) : a;
|
|
}, Vt = (e) => {
|
|
if (e.length <= 1)
|
|
return e;
|
|
const t = [];
|
|
let r = [];
|
|
return e.forEach((n) => {
|
|
n[0] === "[" ? (t.push(...r.sort(), n), r = []) : r.push(n);
|
|
}), t.push(...r.sort()), t;
|
|
}, Wt = (e) => ({
|
|
cache: Ht(e.cacheSize),
|
|
parseClassName: Ut(e),
|
|
...Mt(e)
|
|
}), qt = /\s+/, _t = (e, t) => {
|
|
const {
|
|
parseClassName: r,
|
|
getClassGroupId: n,
|
|
getConflictingClassGroupIds: o
|
|
} = t, s = [], a = e.trim().split(qt);
|
|
let l = "";
|
|
for (let i = a.length - 1; i >= 0; i -= 1) {
|
|
const u = a[i], {
|
|
modifiers: c,
|
|
hasImportantModifier: f,
|
|
baseClassName: h,
|
|
maybePostfixModifierPosition: m
|
|
} = r(u);
|
|
let p = !!m, g = n(p ? h.substring(0, m) : h);
|
|
if (!g) {
|
|
if (!p) {
|
|
l = u + (l.length > 0 ? " " + l : l);
|
|
continue;
|
|
}
|
|
if (g = n(h), !g) {
|
|
l = u + (l.length > 0 ? " " + l : l);
|
|
continue;
|
|
}
|
|
p = !1;
|
|
}
|
|
const d = Vt(c).join(":"), v = f ? d + Ze : d, k = v + g;
|
|
if (s.includes(k))
|
|
continue;
|
|
s.push(k);
|
|
const C = o(g, p);
|
|
for (let y = 0; y < C.length; ++y) {
|
|
const A = C[y];
|
|
s.push(v + A);
|
|
}
|
|
l = u + (l.length > 0 ? " " + l : l);
|
|
}
|
|
return l;
|
|
};
|
|
function Bt() {
|
|
let e = 0, t, r, n = "";
|
|
for (; e < arguments.length; )
|
|
(t = arguments[e++]) && (r = Je(t)) && (n && (n += " "), n += r);
|
|
return n;
|
|
}
|
|
const Je = (e) => {
|
|
if (typeof e == "string")
|
|
return e;
|
|
let t, r = "";
|
|
for (let n = 0; n < e.length; n++)
|
|
e[n] && (t = Je(e[n])) && (r && (r += " "), r += t);
|
|
return r;
|
|
};
|
|
function Xt(e, ...t) {
|
|
let r, n, o, s = a;
|
|
function a(i) {
|
|
const u = t.reduce((c, f) => f(c), e());
|
|
return r = Wt(u), n = r.cache.get, o = r.cache.set, s = l, l(i);
|
|
}
|
|
function l(i) {
|
|
const u = n(i);
|
|
if (u)
|
|
return u;
|
|
const c = _t(i, r);
|
|
return o(i, c), c;
|
|
}
|
|
return function() {
|
|
return s(Bt.apply(null, arguments));
|
|
};
|
|
}
|
|
const x = (e) => {
|
|
const t = (r) => r[e] || [];
|
|
return t.isThemeGetter = !0, t;
|
|
}, Qe = /^\[(?:([a-z-]+):)?(.+)\]$/i, Yt = /^\d+\/\d+$/, Kt = /* @__PURE__ */ new Set(["px", "full", "screen"]), Zt = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Jt = /\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$/, Qt = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, Dt = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, er = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, M = (e) => J(e) || Kt.has(e) || Yt.test(e), I = (e) => D(e, "length", ar), J = (e) => !!e && !Number.isNaN(Number(e)), xe = (e) => D(e, "number", J), se = (e) => !!e && Number.isInteger(Number(e)), tr = (e) => e.endsWith("%") && J(e.slice(0, -1)), b = (e) => Qe.test(e), L = (e) => Zt.test(e), rr = /* @__PURE__ */ new Set(["length", "size", "percentage"]), nr = (e) => D(e, rr, De), or = (e) => D(e, "position", De), sr = /* @__PURE__ */ new Set(["image", "url"]), lr = (e) => D(e, sr, dr), ir = (e) => D(e, "", cr), le = () => !0, D = (e, t, r) => {
|
|
const n = Qe.exec(e);
|
|
return n ? n[1] ? typeof t == "string" ? n[1] === t : t.has(n[1]) : r(n[2]) : !1;
|
|
}, ar = (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.
|
|
Jt.test(e) && !Qt.test(e)
|
|
), De = () => !1, cr = (e) => Dt.test(e), dr = (e) => er.test(e), ur = () => {
|
|
const e = x("colors"), t = x("spacing"), r = x("blur"), n = x("brightness"), o = x("borderColor"), s = x("borderRadius"), a = x("borderSpacing"), l = x("borderWidth"), i = x("contrast"), u = x("grayscale"), c = x("hueRotate"), f = x("invert"), h = x("gap"), m = x("gradientColorStops"), p = x("gradientColorStopPositions"), g = x("inset"), d = x("margin"), v = x("opacity"), k = x("padding"), C = x("saturate"), y = x("scale"), A = x("sepia"), R = x("skew"), E = x("space"), ee = x("translate"), Y = () => ["auto", "contain", "none"], T = () => ["auto", "hidden", "clip", "visible", "scroll"], U = () => ["auto", b, t], w = () => [b, t], V = () => ["", M, I], F = () => ["auto", J, b], K = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], Z = () => ["solid", "dashed", "dotted", "double", "none"], te = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], W = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], $ = () => ["", "0", b], re = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], j = () => [J, b];
|
|
return {
|
|
cacheSize: 500,
|
|
separator: ":",
|
|
theme: {
|
|
colors: [le],
|
|
spacing: [M, I],
|
|
blur: ["none", "", L, b],
|
|
brightness: j(),
|
|
borderColor: [e],
|
|
borderRadius: ["none", "", "full", L, b],
|
|
borderSpacing: w(),
|
|
borderWidth: V(),
|
|
contrast: j(),
|
|
grayscale: $(),
|
|
hueRotate: j(),
|
|
invert: $(),
|
|
gap: w(),
|
|
gradientColorStops: [e],
|
|
gradientColorStopPositions: [tr, I],
|
|
inset: U(),
|
|
margin: U(),
|
|
opacity: j(),
|
|
padding: w(),
|
|
saturate: j(),
|
|
scale: j(),
|
|
sepia: $(),
|
|
skew: j(),
|
|
space: w(),
|
|
translate: w()
|
|
},
|
|
classGroups: {
|
|
// Layout
|
|
/**
|
|
* Aspect Ratio
|
|
* @see https://tailwindcss.com/docs/aspect-ratio
|
|
*/
|
|
aspect: [{
|
|
aspect: ["auto", "square", "video", b]
|
|
}],
|
|
/**
|
|
* Container
|
|
* @see https://tailwindcss.com/docs/container
|
|
*/
|
|
container: ["container"],
|
|
/**
|
|
* Columns
|
|
* @see https://tailwindcss.com/docs/columns
|
|
*/
|
|
columns: [{
|
|
columns: [L]
|
|
}],
|
|
/**
|
|
* Break After
|
|
* @see https://tailwindcss.com/docs/break-after
|
|
*/
|
|
"break-after": [{
|
|
"break-after": re()
|
|
}],
|
|
/**
|
|
* Break Before
|
|
* @see https://tailwindcss.com/docs/break-before
|
|
*/
|
|
"break-before": [{
|
|
"break-before": re()
|
|
}],
|
|
/**
|
|
* 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: [...K(), b]
|
|
}],
|
|
/**
|
|
* Overflow
|
|
* @see https://tailwindcss.com/docs/overflow
|
|
*/
|
|
overflow: [{
|
|
overflow: T()
|
|
}],
|
|
/**
|
|
* Overflow X
|
|
* @see https://tailwindcss.com/docs/overflow
|
|
*/
|
|
"overflow-x": [{
|
|
"overflow-x": T()
|
|
}],
|
|
/**
|
|
* Overflow Y
|
|
* @see https://tailwindcss.com/docs/overflow
|
|
*/
|
|
"overflow-y": [{
|
|
"overflow-y": T()
|
|
}],
|
|
/**
|
|
* Overscroll Behavior
|
|
* @see https://tailwindcss.com/docs/overscroll-behavior
|
|
*/
|
|
overscroll: [{
|
|
overscroll: Y()
|
|
}],
|
|
/**
|
|
* Overscroll Behavior X
|
|
* @see https://tailwindcss.com/docs/overscroll-behavior
|
|
*/
|
|
"overscroll-x": [{
|
|
"overscroll-x": Y()
|
|
}],
|
|
/**
|
|
* Overscroll Behavior Y
|
|
* @see https://tailwindcss.com/docs/overscroll-behavior
|
|
*/
|
|
"overscroll-y": [{
|
|
"overscroll-y": Y()
|
|
}],
|
|
/**
|
|
* 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: [g]
|
|
}],
|
|
/**
|
|
* Right / Left
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/
|
|
"inset-x": [{
|
|
"inset-x": [g]
|
|
}],
|
|
/**
|
|
* Top / Bottom
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/
|
|
"inset-y": [{
|
|
"inset-y": [g]
|
|
}],
|
|
/**
|
|
* Start
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/
|
|
start: [{
|
|
start: [g]
|
|
}],
|
|
/**
|
|
* End
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/
|
|
end: [{
|
|
end: [g]
|
|
}],
|
|
/**
|
|
* Top
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/
|
|
top: [{
|
|
top: [g]
|
|
}],
|
|
/**
|
|
* Right
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/
|
|
right: [{
|
|
right: [g]
|
|
}],
|
|
/**
|
|
* Bottom
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/
|
|
bottom: [{
|
|
bottom: [g]
|
|
}],
|
|
/**
|
|
* Left
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/
|
|
left: [{
|
|
left: [g]
|
|
}],
|
|
/**
|
|
* Visibility
|
|
* @see https://tailwindcss.com/docs/visibility
|
|
*/
|
|
visibility: ["visible", "invisible", "collapse"],
|
|
/**
|
|
* Z-Index
|
|
* @see https://tailwindcss.com/docs/z-index
|
|
*/
|
|
z: [{
|
|
z: ["auto", se, b]
|
|
}],
|
|
// Flexbox and Grid
|
|
/**
|
|
* Flex Basis
|
|
* @see https://tailwindcss.com/docs/flex-basis
|
|
*/
|
|
basis: [{
|
|
basis: U()
|
|
}],
|
|
/**
|
|
* 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", b]
|
|
}],
|
|
/**
|
|
* Flex Grow
|
|
* @see https://tailwindcss.com/docs/flex-grow
|
|
*/
|
|
grow: [{
|
|
grow: $()
|
|
}],
|
|
/**
|
|
* Flex Shrink
|
|
* @see https://tailwindcss.com/docs/flex-shrink
|
|
*/
|
|
shrink: [{
|
|
shrink: $()
|
|
}],
|
|
/**
|
|
* Order
|
|
* @see https://tailwindcss.com/docs/order
|
|
*/
|
|
order: [{
|
|
order: ["first", "last", "none", se, b]
|
|
}],
|
|
/**
|
|
* Grid Template Columns
|
|
* @see https://tailwindcss.com/docs/grid-template-columns
|
|
*/
|
|
"grid-cols": [{
|
|
"grid-cols": [le]
|
|
}],
|
|
/**
|
|
* Grid Column Start / End
|
|
* @see https://tailwindcss.com/docs/grid-column
|
|
*/
|
|
"col-start-end": [{
|
|
col: ["auto", {
|
|
span: ["full", se, b]
|
|
}, b]
|
|
}],
|
|
/**
|
|
* Grid Column Start
|
|
* @see https://tailwindcss.com/docs/grid-column
|
|
*/
|
|
"col-start": [{
|
|
"col-start": F()
|
|
}],
|
|
/**
|
|
* Grid Column End
|
|
* @see https://tailwindcss.com/docs/grid-column
|
|
*/
|
|
"col-end": [{
|
|
"col-end": F()
|
|
}],
|
|
/**
|
|
* Grid Template Rows
|
|
* @see https://tailwindcss.com/docs/grid-template-rows
|
|
*/
|
|
"grid-rows": [{
|
|
"grid-rows": [le]
|
|
}],
|
|
/**
|
|
* Grid Row Start / End
|
|
* @see https://tailwindcss.com/docs/grid-row
|
|
*/
|
|
"row-start-end": [{
|
|
row: ["auto", {
|
|
span: [se, b]
|
|
}, b]
|
|
}],
|
|
/**
|
|
* Grid Row Start
|
|
* @see https://tailwindcss.com/docs/grid-row
|
|
*/
|
|
"row-start": [{
|
|
"row-start": F()
|
|
}],
|
|
/**
|
|
* Grid Row End
|
|
* @see https://tailwindcss.com/docs/grid-row
|
|
*/
|
|
"row-end": [{
|
|
"row-end": F()
|
|
}],
|
|
/**
|
|
* 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", b]
|
|
}],
|
|
/**
|
|
* Grid Auto Rows
|
|
* @see https://tailwindcss.com/docs/grid-auto-rows
|
|
*/
|
|
"auto-rows": [{
|
|
"auto-rows": ["auto", "min", "max", "fr", b]
|
|
}],
|
|
/**
|
|
* Gap
|
|
* @see https://tailwindcss.com/docs/gap
|
|
*/
|
|
gap: [{
|
|
gap: [h]
|
|
}],
|
|
/**
|
|
* Gap X
|
|
* @see https://tailwindcss.com/docs/gap
|
|
*/
|
|
"gap-x": [{
|
|
"gap-x": [h]
|
|
}],
|
|
/**
|
|
* Gap Y
|
|
* @see https://tailwindcss.com/docs/gap
|
|
*/
|
|
"gap-y": [{
|
|
"gap-y": [h]
|
|
}],
|
|
/**
|
|
* Justify Content
|
|
* @see https://tailwindcss.com/docs/justify-content
|
|
*/
|
|
"justify-content": [{
|
|
justify: ["normal", ...W()]
|
|
}],
|
|
/**
|
|
* 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", ...W(), "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": [...W(), "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: [k]
|
|
}],
|
|
/**
|
|
* Padding X
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/
|
|
px: [{
|
|
px: [k]
|
|
}],
|
|
/**
|
|
* Padding Y
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/
|
|
py: [{
|
|
py: [k]
|
|
}],
|
|
/**
|
|
* Padding Start
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/
|
|
ps: [{
|
|
ps: [k]
|
|
}],
|
|
/**
|
|
* Padding End
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/
|
|
pe: [{
|
|
pe: [k]
|
|
}],
|
|
/**
|
|
* Padding Top
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/
|
|
pt: [{
|
|
pt: [k]
|
|
}],
|
|
/**
|
|
* Padding Right
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/
|
|
pr: [{
|
|
pr: [k]
|
|
}],
|
|
/**
|
|
* Padding Bottom
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/
|
|
pb: [{
|
|
pb: [k]
|
|
}],
|
|
/**
|
|
* Padding Left
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/
|
|
pl: [{
|
|
pl: [k]
|
|
}],
|
|
/**
|
|
* Margin
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/
|
|
m: [{
|
|
m: [d]
|
|
}],
|
|
/**
|
|
* Margin X
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/
|
|
mx: [{
|
|
mx: [d]
|
|
}],
|
|
/**
|
|
* Margin Y
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/
|
|
my: [{
|
|
my: [d]
|
|
}],
|
|
/**
|
|
* Margin Start
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/
|
|
ms: [{
|
|
ms: [d]
|
|
}],
|
|
/**
|
|
* Margin End
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/
|
|
me: [{
|
|
me: [d]
|
|
}],
|
|
/**
|
|
* Margin Top
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/
|
|
mt: [{
|
|
mt: [d]
|
|
}],
|
|
/**
|
|
* Margin Right
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/
|
|
mr: [{
|
|
mr: [d]
|
|
}],
|
|
/**
|
|
* Margin Bottom
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/
|
|
mb: [{
|
|
mb: [d]
|
|
}],
|
|
/**
|
|
* Margin Left
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/
|
|
ml: [{
|
|
ml: [d]
|
|
}],
|
|
/**
|
|
* Space Between X
|
|
* @see https://tailwindcss.com/docs/space
|
|
*/
|
|
"space-x": [{
|
|
"space-x": [E]
|
|
}],
|
|
/**
|
|
* 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": [E]
|
|
}],
|
|
/**
|
|
* 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", b, t]
|
|
}],
|
|
/**
|
|
* Min-Width
|
|
* @see https://tailwindcss.com/docs/min-width
|
|
*/
|
|
"min-w": [{
|
|
"min-w": [b, t, "min", "max", "fit"]
|
|
}],
|
|
/**
|
|
* Max-Width
|
|
* @see https://tailwindcss.com/docs/max-width
|
|
*/
|
|
"max-w": [{
|
|
"max-w": [b, t, "none", "full", "min", "max", "fit", "prose", {
|
|
screen: [L]
|
|
}, L]
|
|
}],
|
|
/**
|
|
* Height
|
|
* @see https://tailwindcss.com/docs/height
|
|
*/
|
|
h: [{
|
|
h: [b, t, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
|
|
}],
|
|
/**
|
|
* Min-Height
|
|
* @see https://tailwindcss.com/docs/min-height
|
|
*/
|
|
"min-h": [{
|
|
"min-h": [b, t, "min", "max", "fit", "svh", "lvh", "dvh"]
|
|
}],
|
|
/**
|
|
* Max-Height
|
|
* @see https://tailwindcss.com/docs/max-height
|
|
*/
|
|
"max-h": [{
|
|
"max-h": [b, t, "min", "max", "fit", "svh", "lvh", "dvh"]
|
|
}],
|
|
/**
|
|
* Size
|
|
* @see https://tailwindcss.com/docs/size
|
|
*/
|
|
size: [{
|
|
size: [b, t, "auto", "min", "max", "fit"]
|
|
}],
|
|
// Typography
|
|
/**
|
|
* Font Size
|
|
* @see https://tailwindcss.com/docs/font-size
|
|
*/
|
|
"font-size": [{
|
|
text: ["base", L, I]
|
|
}],
|
|
/**
|
|
* 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", xe]
|
|
}],
|
|
/**
|
|
* Font Family
|
|
* @see https://tailwindcss.com/docs/font-family
|
|
*/
|
|
"font-family": [{
|
|
font: [le]
|
|
}],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/
|
|
"fvn-normal": ["normal-nums"],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/
|
|
"fvn-ordinal": ["ordinal"],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/
|
|
"fvn-slashed-zero": ["slashed-zero"],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/
|
|
"fvn-figure": ["lining-nums", "oldstyle-nums"],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/
|
|
"fvn-spacing": ["proportional-nums", "tabular-nums"],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/
|
|
"fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
|
|
/**
|
|
* Letter Spacing
|
|
* @see https://tailwindcss.com/docs/letter-spacing
|
|
*/
|
|
tracking: [{
|
|
tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", b]
|
|
}],
|
|
/**
|
|
* Line Clamp
|
|
* @see https://tailwindcss.com/docs/line-clamp
|
|
*/
|
|
"line-clamp": [{
|
|
"line-clamp": ["none", J, xe]
|
|
}],
|
|
/**
|
|
* Line Height
|
|
* @see https://tailwindcss.com/docs/line-height
|
|
*/
|
|
leading: [{
|
|
leading: ["none", "tight", "snug", "normal", "relaxed", "loose", M, b]
|
|
}],
|
|
/**
|
|
* List Style Image
|
|
* @see https://tailwindcss.com/docs/list-style-image
|
|
*/
|
|
"list-image": [{
|
|
"list-image": ["none", b]
|
|
}],
|
|
/**
|
|
* List Style Type
|
|
* @see https://tailwindcss.com/docs/list-style-type
|
|
*/
|
|
"list-style-type": [{
|
|
list: ["none", "disc", "decimal", b]
|
|
}],
|
|
/**
|
|
* List Style Position
|
|
* @see https://tailwindcss.com/docs/list-style-position
|
|
*/
|
|
"list-style-position": [{
|
|
list: ["inside", "outside"]
|
|
}],
|
|
/**
|
|
* Placeholder Color
|
|
* @deprecated since Tailwind CSS v3.0.0
|
|
* @see https://tailwindcss.com/docs/placeholder-color
|
|
*/
|
|
"placeholder-color": [{
|
|
placeholder: [e]
|
|
}],
|
|
/**
|
|
* Placeholder Opacity
|
|
* @see https://tailwindcss.com/docs/placeholder-opacity
|
|
*/
|
|
"placeholder-opacity": [{
|
|
"placeholder-opacity": [v]
|
|
}],
|
|
/**
|
|
* Text Alignment
|
|
* @see https://tailwindcss.com/docs/text-align
|
|
*/
|
|
"text-alignment": [{
|
|
text: ["left", "center", "right", "justify", "start", "end"]
|
|
}],
|
|
/**
|
|
* Text Color
|
|
* @see https://tailwindcss.com/docs/text-color
|
|
*/
|
|
"text-color": [{
|
|
text: [e]
|
|
}],
|
|
/**
|
|
* Text Opacity
|
|
* @see https://tailwindcss.com/docs/text-opacity
|
|
*/
|
|
"text-opacity": [{
|
|
"text-opacity": [v]
|
|
}],
|
|
/**
|
|
* Text Decoration
|
|
* @see https://tailwindcss.com/docs/text-decoration
|
|
*/
|
|
"text-decoration": ["underline", "overline", "line-through", "no-underline"],
|
|
/**
|
|
* Text Decoration Style
|
|
* @see https://tailwindcss.com/docs/text-decoration-style
|
|
*/
|
|
"text-decoration-style": [{
|
|
decoration: [...Z(), "wavy"]
|
|
}],
|
|
/**
|
|
* Text Decoration Thickness
|
|
* @see https://tailwindcss.com/docs/text-decoration-thickness
|
|
*/
|
|
"text-decoration-thickness": [{
|
|
decoration: ["auto", "from-font", M, I]
|
|
}],
|
|
/**
|
|
* Text Underline Offset
|
|
* @see https://tailwindcss.com/docs/text-underline-offset
|
|
*/
|
|
"underline-offset": [{
|
|
"underline-offset": ["auto", M, b]
|
|
}],
|
|
/**
|
|
* Text Decoration Color
|
|
* @see https://tailwindcss.com/docs/text-decoration-color
|
|
*/
|
|
"text-decoration-color": [{
|
|
decoration: [e]
|
|
}],
|
|
/**
|
|
* Text Transform
|
|
* @see https://tailwindcss.com/docs/text-transform
|
|
*/
|
|
"text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
|
|
/**
|
|
* Text Overflow
|
|
* @see https://tailwindcss.com/docs/text-overflow
|
|
*/
|
|
"text-overflow": ["truncate", "text-ellipsis", "text-clip"],
|
|
/**
|
|
* Text Wrap
|
|
* @see https://tailwindcss.com/docs/text-wrap
|
|
*/
|
|
"text-wrap": [{
|
|
text: ["wrap", "nowrap", "balance", "pretty"]
|
|
}],
|
|
/**
|
|
* Text Indent
|
|
* @see https://tailwindcss.com/docs/text-indent
|
|
*/
|
|
indent: [{
|
|
indent: w()
|
|
}],
|
|
/**
|
|
* Vertical Alignment
|
|
* @see https://tailwindcss.com/docs/vertical-align
|
|
*/
|
|
"vertical-align": [{
|
|
align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", b]
|
|
}],
|
|
/**
|
|
* Whitespace
|
|
* @see https://tailwindcss.com/docs/whitespace
|
|
*/
|
|
whitespace: [{
|
|
whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
|
|
}],
|
|
/**
|
|
* Word Break
|
|
* @see https://tailwindcss.com/docs/word-break
|
|
*/
|
|
break: [{
|
|
break: ["normal", "words", "all", "keep"]
|
|
}],
|
|
/**
|
|
* Hyphens
|
|
* @see https://tailwindcss.com/docs/hyphens
|
|
*/
|
|
hyphens: [{
|
|
hyphens: ["none", "manual", "auto"]
|
|
}],
|
|
/**
|
|
* Content
|
|
* @see https://tailwindcss.com/docs/content
|
|
*/
|
|
content: [{
|
|
content: ["none", b]
|
|
}],
|
|
// Backgrounds
|
|
/**
|
|
* Background Attachment
|
|
* @see https://tailwindcss.com/docs/background-attachment
|
|
*/
|
|
"bg-attachment": [{
|
|
bg: ["fixed", "local", "scroll"]
|
|
}],
|
|
/**
|
|
* Background Clip
|
|
* @see https://tailwindcss.com/docs/background-clip
|
|
*/
|
|
"bg-clip": [{
|
|
"bg-clip": ["border", "padding", "content", "text"]
|
|
}],
|
|
/**
|
|
* Background Opacity
|
|
* @deprecated since Tailwind CSS v3.0.0
|
|
* @see https://tailwindcss.com/docs/background-opacity
|
|
*/
|
|
"bg-opacity": [{
|
|
"bg-opacity": [v]
|
|
}],
|
|
/**
|
|
* Background Origin
|
|
* @see https://tailwindcss.com/docs/background-origin
|
|
*/
|
|
"bg-origin": [{
|
|
"bg-origin": ["border", "padding", "content"]
|
|
}],
|
|
/**
|
|
* Background Position
|
|
* @see https://tailwindcss.com/docs/background-position
|
|
*/
|
|
"bg-position": [{
|
|
bg: [...K(), or]
|
|
}],
|
|
/**
|
|
* Background Repeat
|
|
* @see https://tailwindcss.com/docs/background-repeat
|
|
*/
|
|
"bg-repeat": [{
|
|
bg: ["no-repeat", {
|
|
repeat: ["", "x", "y", "round", "space"]
|
|
}]
|
|
}],
|
|
/**
|
|
* Background Size
|
|
* @see https://tailwindcss.com/docs/background-size
|
|
*/
|
|
"bg-size": [{
|
|
bg: ["auto", "cover", "contain", nr]
|
|
}],
|
|
/**
|
|
* Background Image
|
|
* @see https://tailwindcss.com/docs/background-image
|
|
*/
|
|
"bg-image": [{
|
|
bg: ["none", {
|
|
"gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
|
|
}, lr]
|
|
}],
|
|
/**
|
|
* Background Color
|
|
* @see https://tailwindcss.com/docs/background-color
|
|
*/
|
|
"bg-color": [{
|
|
bg: [e]
|
|
}],
|
|
/**
|
|
* Gradient Color Stops From Position
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/
|
|
"gradient-from-pos": [{
|
|
from: [p]
|
|
}],
|
|
/**
|
|
* Gradient Color Stops Via Position
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/
|
|
"gradient-via-pos": [{
|
|
via: [p]
|
|
}],
|
|
/**
|
|
* Gradient Color Stops To Position
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/
|
|
"gradient-to-pos": [{
|
|
to: [p]
|
|
}],
|
|
/**
|
|
* Gradient Color Stops From
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/
|
|
"gradient-from": [{
|
|
from: [m]
|
|
}],
|
|
/**
|
|
* Gradient Color Stops Via
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/
|
|
"gradient-via": [{
|
|
via: [m]
|
|
}],
|
|
/**
|
|
* Gradient Color Stops To
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/
|
|
"gradient-to": [{
|
|
to: [m]
|
|
}],
|
|
// Borders
|
|
/**
|
|
* Border Radius
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
rounded: [{
|
|
rounded: [s]
|
|
}],
|
|
/**
|
|
* Border Radius Start
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-s": [{
|
|
"rounded-s": [s]
|
|
}],
|
|
/**
|
|
* Border Radius End
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-e": [{
|
|
"rounded-e": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Top
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-t": [{
|
|
"rounded-t": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Right
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-r": [{
|
|
"rounded-r": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Bottom
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-b": [{
|
|
"rounded-b": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Left
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-l": [{
|
|
"rounded-l": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Start Start
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-ss": [{
|
|
"rounded-ss": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Start End
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-se": [{
|
|
"rounded-se": [s]
|
|
}],
|
|
/**
|
|
* Border Radius End End
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-ee": [{
|
|
"rounded-ee": [s]
|
|
}],
|
|
/**
|
|
* Border Radius End Start
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-es": [{
|
|
"rounded-es": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Top Left
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-tl": [{
|
|
"rounded-tl": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Top Right
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-tr": [{
|
|
"rounded-tr": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Bottom Right
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-br": [{
|
|
"rounded-br": [s]
|
|
}],
|
|
/**
|
|
* Border Radius Bottom Left
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/
|
|
"rounded-bl": [{
|
|
"rounded-bl": [s]
|
|
}],
|
|
/**
|
|
* Border Width
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/
|
|
"border-w": [{
|
|
border: [l]
|
|
}],
|
|
/**
|
|
* Border Width X
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/
|
|
"border-w-x": [{
|
|
"border-x": [l]
|
|
}],
|
|
/**
|
|
* Border Width Y
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/
|
|
"border-w-y": [{
|
|
"border-y": [l]
|
|
}],
|
|
/**
|
|
* Border Width Start
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/
|
|
"border-w-s": [{
|
|
"border-s": [l]
|
|
}],
|
|
/**
|
|
* Border Width End
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/
|
|
"border-w-e": [{
|
|
"border-e": [l]
|
|
}],
|
|
/**
|
|
* Border Width Top
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/
|
|
"border-w-t": [{
|
|
"border-t": [l]
|
|
}],
|
|
/**
|
|
* Border Width Right
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/
|
|
"border-w-r": [{
|
|
"border-r": [l]
|
|
}],
|
|
/**
|
|
* Border Width Bottom
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/
|
|
"border-w-b": [{
|
|
"border-b": [l]
|
|
}],
|
|
/**
|
|
* Border Width Left
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/
|
|
"border-w-l": [{
|
|
"border-l": [l]
|
|
}],
|
|
/**
|
|
* Border Opacity
|
|
* @see https://tailwindcss.com/docs/border-opacity
|
|
*/
|
|
"border-opacity": [{
|
|
"border-opacity": [v]
|
|
}],
|
|
/**
|
|
* Border Style
|
|
* @see https://tailwindcss.com/docs/border-style
|
|
*/
|
|
"border-style": [{
|
|
border: [...Z(), "hidden"]
|
|
}],
|
|
/**
|
|
* Divide Width X
|
|
* @see https://tailwindcss.com/docs/divide-width
|
|
*/
|
|
"divide-x": [{
|
|
"divide-x": [l]
|
|
}],
|
|
/**
|
|
* Divide Width X Reverse
|
|
* @see https://tailwindcss.com/docs/divide-width
|
|
*/
|
|
"divide-x-reverse": ["divide-x-reverse"],
|
|
/**
|
|
* Divide Width Y
|
|
* @see https://tailwindcss.com/docs/divide-width
|
|
*/
|
|
"divide-y": [{
|
|
"divide-y": [l]
|
|
}],
|
|
/**
|
|
* Divide Width Y Reverse
|
|
* @see https://tailwindcss.com/docs/divide-width
|
|
*/
|
|
"divide-y-reverse": ["divide-y-reverse"],
|
|
/**
|
|
* Divide Opacity
|
|
* @see https://tailwindcss.com/docs/divide-opacity
|
|
*/
|
|
"divide-opacity": [{
|
|
"divide-opacity": [v]
|
|
}],
|
|
/**
|
|
* Divide Style
|
|
* @see https://tailwindcss.com/docs/divide-style
|
|
*/
|
|
"divide-style": [{
|
|
divide: Z()
|
|
}],
|
|
/**
|
|
* Border Color
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/
|
|
"border-color": [{
|
|
border: [o]
|
|
}],
|
|
/**
|
|
* Border Color X
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/
|
|
"border-color-x": [{
|
|
"border-x": [o]
|
|
}],
|
|
/**
|
|
* Border Color Y
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/
|
|
"border-color-y": [{
|
|
"border-y": [o]
|
|
}],
|
|
/**
|
|
* Border Color S
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/
|
|
"border-color-s": [{
|
|
"border-s": [o]
|
|
}],
|
|
/**
|
|
* Border Color E
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/
|
|
"border-color-e": [{
|
|
"border-e": [o]
|
|
}],
|
|
/**
|
|
* Border Color Top
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/
|
|
"border-color-t": [{
|
|
"border-t": [o]
|
|
}],
|
|
/**
|
|
* Border Color Right
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/
|
|
"border-color-r": [{
|
|
"border-r": [o]
|
|
}],
|
|
/**
|
|
* Border Color Bottom
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/
|
|
"border-color-b": [{
|
|
"border-b": [o]
|
|
}],
|
|
/**
|
|
* Border Color Left
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/
|
|
"border-color-l": [{
|
|
"border-l": [o]
|
|
}],
|
|
/**
|
|
* Divide Color
|
|
* @see https://tailwindcss.com/docs/divide-color
|
|
*/
|
|
"divide-color": [{
|
|
divide: [o]
|
|
}],
|
|
/**
|
|
* Outline Style
|
|
* @see https://tailwindcss.com/docs/outline-style
|
|
*/
|
|
"outline-style": [{
|
|
outline: ["", ...Z()]
|
|
}],
|
|
/**
|
|
* Outline Offset
|
|
* @see https://tailwindcss.com/docs/outline-offset
|
|
*/
|
|
"outline-offset": [{
|
|
"outline-offset": [M, b]
|
|
}],
|
|
/**
|
|
* Outline Width
|
|
* @see https://tailwindcss.com/docs/outline-width
|
|
*/
|
|
"outline-w": [{
|
|
outline: [M, I]
|
|
}],
|
|
/**
|
|
* Outline Color
|
|
* @see https://tailwindcss.com/docs/outline-color
|
|
*/
|
|
"outline-color": [{
|
|
outline: [e]
|
|
}],
|
|
/**
|
|
* Ring Width
|
|
* @see https://tailwindcss.com/docs/ring-width
|
|
*/
|
|
"ring-w": [{
|
|
ring: V()
|
|
}],
|
|
/**
|
|
* Ring Width Inset
|
|
* @see https://tailwindcss.com/docs/ring-width
|
|
*/
|
|
"ring-w-inset": ["ring-inset"],
|
|
/**
|
|
* Ring Color
|
|
* @see https://tailwindcss.com/docs/ring-color
|
|
*/
|
|
"ring-color": [{
|
|
ring: [e]
|
|
}],
|
|
/**
|
|
* Ring Opacity
|
|
* @see https://tailwindcss.com/docs/ring-opacity
|
|
*/
|
|
"ring-opacity": [{
|
|
"ring-opacity": [v]
|
|
}],
|
|
/**
|
|
* Ring Offset Width
|
|
* @see https://tailwindcss.com/docs/ring-offset-width
|
|
*/
|
|
"ring-offset-w": [{
|
|
"ring-offset": [M, I]
|
|
}],
|
|
/**
|
|
* Ring Offset Color
|
|
* @see https://tailwindcss.com/docs/ring-offset-color
|
|
*/
|
|
"ring-offset-color": [{
|
|
"ring-offset": [e]
|
|
}],
|
|
// Effects
|
|
/**
|
|
* Box Shadow
|
|
* @see https://tailwindcss.com/docs/box-shadow
|
|
*/
|
|
shadow: [{
|
|
shadow: ["", "inner", "none", L, ir]
|
|
}],
|
|
/**
|
|
* Box Shadow Color
|
|
* @see https://tailwindcss.com/docs/box-shadow-color
|
|
*/
|
|
"shadow-color": [{
|
|
shadow: [le]
|
|
}],
|
|
/**
|
|
* Opacity
|
|
* @see https://tailwindcss.com/docs/opacity
|
|
*/
|
|
opacity: [{
|
|
opacity: [v]
|
|
}],
|
|
/**
|
|
* Mix Blend Mode
|
|
* @see https://tailwindcss.com/docs/mix-blend-mode
|
|
*/
|
|
"mix-blend": [{
|
|
"mix-blend": [...te(), "plus-lighter", "plus-darker"]
|
|
}],
|
|
/**
|
|
* Background Blend Mode
|
|
* @see https://tailwindcss.com/docs/background-blend-mode
|
|
*/
|
|
"bg-blend": [{
|
|
"bg-blend": te()
|
|
}],
|
|
// Filters
|
|
/**
|
|
* Filter
|
|
* @deprecated since Tailwind CSS v3.0.0
|
|
* @see https://tailwindcss.com/docs/filter
|
|
*/
|
|
filter: [{
|
|
filter: ["", "none"]
|
|
}],
|
|
/**
|
|
* Blur
|
|
* @see https://tailwindcss.com/docs/blur
|
|
*/
|
|
blur: [{
|
|
blur: [r]
|
|
}],
|
|
/**
|
|
* Brightness
|
|
* @see https://tailwindcss.com/docs/brightness
|
|
*/
|
|
brightness: [{
|
|
brightness: [n]
|
|
}],
|
|
/**
|
|
* Contrast
|
|
* @see https://tailwindcss.com/docs/contrast
|
|
*/
|
|
contrast: [{
|
|
contrast: [i]
|
|
}],
|
|
/**
|
|
* Drop Shadow
|
|
* @see https://tailwindcss.com/docs/drop-shadow
|
|
*/
|
|
"drop-shadow": [{
|
|
"drop-shadow": ["", "none", L, b]
|
|
}],
|
|
/**
|
|
* Grayscale
|
|
* @see https://tailwindcss.com/docs/grayscale
|
|
*/
|
|
grayscale: [{
|
|
grayscale: [u]
|
|
}],
|
|
/**
|
|
* Hue Rotate
|
|
* @see https://tailwindcss.com/docs/hue-rotate
|
|
*/
|
|
"hue-rotate": [{
|
|
"hue-rotate": [c]
|
|
}],
|
|
/**
|
|
* Invert
|
|
* @see https://tailwindcss.com/docs/invert
|
|
*/
|
|
invert: [{
|
|
invert: [f]
|
|
}],
|
|
/**
|
|
* Saturate
|
|
* @see https://tailwindcss.com/docs/saturate
|
|
*/
|
|
saturate: [{
|
|
saturate: [C]
|
|
}],
|
|
/**
|
|
* Sepia
|
|
* @see https://tailwindcss.com/docs/sepia
|
|
*/
|
|
sepia: [{
|
|
sepia: [A]
|
|
}],
|
|
/**
|
|
* Backdrop Filter
|
|
* @deprecated since Tailwind CSS v3.0.0
|
|
* @see https://tailwindcss.com/docs/backdrop-filter
|
|
*/
|
|
"backdrop-filter": [{
|
|
"backdrop-filter": ["", "none"]
|
|
}],
|
|
/**
|
|
* Backdrop Blur
|
|
* @see https://tailwindcss.com/docs/backdrop-blur
|
|
*/
|
|
"backdrop-blur": [{
|
|
"backdrop-blur": [r]
|
|
}],
|
|
/**
|
|
* Backdrop Brightness
|
|
* @see https://tailwindcss.com/docs/backdrop-brightness
|
|
*/
|
|
"backdrop-brightness": [{
|
|
"backdrop-brightness": [n]
|
|
}],
|
|
/**
|
|
* Backdrop Contrast
|
|
* @see https://tailwindcss.com/docs/backdrop-contrast
|
|
*/
|
|
"backdrop-contrast": [{
|
|
"backdrop-contrast": [i]
|
|
}],
|
|
/**
|
|
* Backdrop Grayscale
|
|
* @see https://tailwindcss.com/docs/backdrop-grayscale
|
|
*/
|
|
"backdrop-grayscale": [{
|
|
"backdrop-grayscale": [u]
|
|
}],
|
|
/**
|
|
* Backdrop Hue Rotate
|
|
* @see https://tailwindcss.com/docs/backdrop-hue-rotate
|
|
*/
|
|
"backdrop-hue-rotate": [{
|
|
"backdrop-hue-rotate": [c]
|
|
}],
|
|
/**
|
|
* Backdrop Invert
|
|
* @see https://tailwindcss.com/docs/backdrop-invert
|
|
*/
|
|
"backdrop-invert": [{
|
|
"backdrop-invert": [f]
|
|
}],
|
|
/**
|
|
* Backdrop Opacity
|
|
* @see https://tailwindcss.com/docs/backdrop-opacity
|
|
*/
|
|
"backdrop-opacity": [{
|
|
"backdrop-opacity": [v]
|
|
}],
|
|
/**
|
|
* Backdrop Saturate
|
|
* @see https://tailwindcss.com/docs/backdrop-saturate
|
|
*/
|
|
"backdrop-saturate": [{
|
|
"backdrop-saturate": [C]
|
|
}],
|
|
/**
|
|
* Backdrop Sepia
|
|
* @see https://tailwindcss.com/docs/backdrop-sepia
|
|
*/
|
|
"backdrop-sepia": [{
|
|
"backdrop-sepia": [A]
|
|
}],
|
|
// Tables
|
|
/**
|
|
* Border Collapse
|
|
* @see https://tailwindcss.com/docs/border-collapse
|
|
*/
|
|
"border-collapse": [{
|
|
border: ["collapse", "separate"]
|
|
}],
|
|
/**
|
|
* Border Spacing
|
|
* @see https://tailwindcss.com/docs/border-spacing
|
|
*/
|
|
"border-spacing": [{
|
|
"border-spacing": [a]
|
|
}],
|
|
/**
|
|
* Border Spacing X
|
|
* @see https://tailwindcss.com/docs/border-spacing
|
|
*/
|
|
"border-spacing-x": [{
|
|
"border-spacing-x": [a]
|
|
}],
|
|
/**
|
|
* Border Spacing Y
|
|
* @see https://tailwindcss.com/docs/border-spacing
|
|
*/
|
|
"border-spacing-y": [{
|
|
"border-spacing-y": [a]
|
|
}],
|
|
/**
|
|
* Table Layout
|
|
* @see https://tailwindcss.com/docs/table-layout
|
|
*/
|
|
"table-layout": [{
|
|
table: ["auto", "fixed"]
|
|
}],
|
|
/**
|
|
* Caption Side
|
|
* @see https://tailwindcss.com/docs/caption-side
|
|
*/
|
|
caption: [{
|
|
caption: ["top", "bottom"]
|
|
}],
|
|
// Transitions and Animation
|
|
/**
|
|
* Tranisition Property
|
|
* @see https://tailwindcss.com/docs/transition-property
|
|
*/
|
|
transition: [{
|
|
transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", b]
|
|
}],
|
|
/**
|
|
* Transition Duration
|
|
* @see https://tailwindcss.com/docs/transition-duration
|
|
*/
|
|
duration: [{
|
|
duration: j()
|
|
}],
|
|
/**
|
|
* Transition Timing Function
|
|
* @see https://tailwindcss.com/docs/transition-timing-function
|
|
*/
|
|
ease: [{
|
|
ease: ["linear", "in", "out", "in-out", b]
|
|
}],
|
|
/**
|
|
* Transition Delay
|
|
* @see https://tailwindcss.com/docs/transition-delay
|
|
*/
|
|
delay: [{
|
|
delay: j()
|
|
}],
|
|
/**
|
|
* Animation
|
|
* @see https://tailwindcss.com/docs/animation
|
|
*/
|
|
animate: [{
|
|
animate: ["none", "spin", "ping", "pulse", "bounce", b]
|
|
}],
|
|
// Transforms
|
|
/**
|
|
* Transform
|
|
* @see https://tailwindcss.com/docs/transform
|
|
*/
|
|
transform: [{
|
|
transform: ["", "gpu", "none"]
|
|
}],
|
|
/**
|
|
* Scale
|
|
* @see https://tailwindcss.com/docs/scale
|
|
*/
|
|
scale: [{
|
|
scale: [y]
|
|
}],
|
|
/**
|
|
* Scale X
|
|
* @see https://tailwindcss.com/docs/scale
|
|
*/
|
|
"scale-x": [{
|
|
"scale-x": [y]
|
|
}],
|
|
/**
|
|
* Scale Y
|
|
* @see https://tailwindcss.com/docs/scale
|
|
*/
|
|
"scale-y": [{
|
|
"scale-y": [y]
|
|
}],
|
|
/**
|
|
* Rotate
|
|
* @see https://tailwindcss.com/docs/rotate
|
|
*/
|
|
rotate: [{
|
|
rotate: [se, b]
|
|
}],
|
|
/**
|
|
* Translate X
|
|
* @see https://tailwindcss.com/docs/translate
|
|
*/
|
|
"translate-x": [{
|
|
"translate-x": [ee]
|
|
}],
|
|
/**
|
|
* Translate Y
|
|
* @see https://tailwindcss.com/docs/translate
|
|
*/
|
|
"translate-y": [{
|
|
"translate-y": [ee]
|
|
}],
|
|
/**
|
|
* Skew X
|
|
* @see https://tailwindcss.com/docs/skew
|
|
*/
|
|
"skew-x": [{
|
|
"skew-x": [R]
|
|
}],
|
|
/**
|
|
* Skew Y
|
|
* @see https://tailwindcss.com/docs/skew
|
|
*/
|
|
"skew-y": [{
|
|
"skew-y": [R]
|
|
}],
|
|
/**
|
|
* Transform Origin
|
|
* @see https://tailwindcss.com/docs/transform-origin
|
|
*/
|
|
"transform-origin": [{
|
|
origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", b]
|
|
}],
|
|
// Interactivity
|
|
/**
|
|
* Accent Color
|
|
* @see https://tailwindcss.com/docs/accent-color
|
|
*/
|
|
accent: [{
|
|
accent: ["auto", e]
|
|
}],
|
|
/**
|
|
* Appearance
|
|
* @see https://tailwindcss.com/docs/appearance
|
|
*/
|
|
appearance: [{
|
|
appearance: ["none", "auto"]
|
|
}],
|
|
/**
|
|
* Cursor
|
|
* @see https://tailwindcss.com/docs/cursor
|
|
*/
|
|
cursor: [{
|
|
cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", b]
|
|
}],
|
|
/**
|
|
* Caret Color
|
|
* @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
|
|
*/
|
|
"caret-color": [{
|
|
caret: [e]
|
|
}],
|
|
/**
|
|
* Pointer Events
|
|
* @see https://tailwindcss.com/docs/pointer-events
|
|
*/
|
|
"pointer-events": [{
|
|
"pointer-events": ["none", "auto"]
|
|
}],
|
|
/**
|
|
* Resize
|
|
* @see https://tailwindcss.com/docs/resize
|
|
*/
|
|
resize: [{
|
|
resize: ["none", "y", "x", ""]
|
|
}],
|
|
/**
|
|
* Scroll Behavior
|
|
* @see https://tailwindcss.com/docs/scroll-behavior
|
|
*/
|
|
"scroll-behavior": [{
|
|
scroll: ["auto", "smooth"]
|
|
}],
|
|
/**
|
|
* Scroll Margin
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/
|
|
"scroll-m": [{
|
|
"scroll-m": w()
|
|
}],
|
|
/**
|
|
* Scroll Margin X
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/
|
|
"scroll-mx": [{
|
|
"scroll-mx": w()
|
|
}],
|
|
/**
|
|
* Scroll Margin Y
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/
|
|
"scroll-my": [{
|
|
"scroll-my": w()
|
|
}],
|
|
/**
|
|
* Scroll Margin Start
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/
|
|
"scroll-ms": [{
|
|
"scroll-ms": w()
|
|
}],
|
|
/**
|
|
* Scroll Margin End
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/
|
|
"scroll-me": [{
|
|
"scroll-me": w()
|
|
}],
|
|
/**
|
|
* Scroll Margin Top
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/
|
|
"scroll-mt": [{
|
|
"scroll-mt": w()
|
|
}],
|
|
/**
|
|
* Scroll Margin Right
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/
|
|
"scroll-mr": [{
|
|
"scroll-mr": w()
|
|
}],
|
|
/**
|
|
* Scroll Margin Bottom
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/
|
|
"scroll-mb": [{
|
|
"scroll-mb": w()
|
|
}],
|
|
/**
|
|
* Scroll Margin Left
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/
|
|
"scroll-ml": [{
|
|
"scroll-ml": w()
|
|
}],
|
|
/**
|
|
* Scroll Padding
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/
|
|
"scroll-p": [{
|
|
"scroll-p": w()
|
|
}],
|
|
/**
|
|
* Scroll Padding X
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/
|
|
"scroll-px": [{
|
|
"scroll-px": w()
|
|
}],
|
|
/**
|
|
* Scroll Padding Y
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/
|
|
"scroll-py": [{
|
|
"scroll-py": w()
|
|
}],
|
|
/**
|
|
* Scroll Padding Start
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/
|
|
"scroll-ps": [{
|
|
"scroll-ps": w()
|
|
}],
|
|
/**
|
|
* Scroll Padding End
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/
|
|
"scroll-pe": [{
|
|
"scroll-pe": w()
|
|
}],
|
|
/**
|
|
* Scroll Padding Top
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/
|
|
"scroll-pt": [{
|
|
"scroll-pt": w()
|
|
}],
|
|
/**
|
|
* Scroll Padding Right
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/
|
|
"scroll-pr": [{
|
|
"scroll-pr": w()
|
|
}],
|
|
/**
|
|
* Scroll Padding Bottom
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/
|
|
"scroll-pb": [{
|
|
"scroll-pb": w()
|
|
}],
|
|
/**
|
|
* Scroll Padding Left
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/
|
|
"scroll-pl": [{
|
|
"scroll-pl": w()
|
|
}],
|
|
/**
|
|
* Scroll Snap Align
|
|
* @see https://tailwindcss.com/docs/scroll-snap-align
|
|
*/
|
|
"snap-align": [{
|
|
snap: ["start", "end", "center", "align-none"]
|
|
}],
|
|
/**
|
|
* Scroll Snap Stop
|
|
* @see https://tailwindcss.com/docs/scroll-snap-stop
|
|
*/
|
|
"snap-stop": [{
|
|
snap: ["normal", "always"]
|
|
}],
|
|
/**
|
|
* Scroll Snap Type
|
|
* @see https://tailwindcss.com/docs/scroll-snap-type
|
|
*/
|
|
"snap-type": [{
|
|
snap: ["none", "x", "y", "both"]
|
|
}],
|
|
/**
|
|
* Scroll Snap Type Strictness
|
|
* @see https://tailwindcss.com/docs/scroll-snap-type
|
|
*/
|
|
"snap-strictness": [{
|
|
snap: ["mandatory", "proximity"]
|
|
}],
|
|
/**
|
|
* Touch Action
|
|
* @see https://tailwindcss.com/docs/touch-action
|
|
*/
|
|
touch: [{
|
|
touch: ["auto", "none", "manipulation"]
|
|
}],
|
|
/**
|
|
* Touch Action X
|
|
* @see https://tailwindcss.com/docs/touch-action
|
|
*/
|
|
"touch-x": [{
|
|
"touch-pan": ["x", "left", "right"]
|
|
}],
|
|
/**
|
|
* Touch Action Y
|
|
* @see https://tailwindcss.com/docs/touch-action
|
|
*/
|
|
"touch-y": [{
|
|
"touch-pan": ["y", "up", "down"]
|
|
}],
|
|
/**
|
|
* Touch Action Pinch Zoom
|
|
* @see https://tailwindcss.com/docs/touch-action
|
|
*/
|
|
"touch-pz": ["touch-pinch-zoom"],
|
|
/**
|
|
* User Select
|
|
* @see https://tailwindcss.com/docs/user-select
|
|
*/
|
|
select: [{
|
|
select: ["none", "text", "all", "auto"]
|
|
}],
|
|
/**
|
|
* Will Change
|
|
* @see https://tailwindcss.com/docs/will-change
|
|
*/
|
|
"will-change": [{
|
|
"will-change": ["auto", "scroll", "contents", "transform", b]
|
|
}],
|
|
// SVG
|
|
/**
|
|
* Fill
|
|
* @see https://tailwindcss.com/docs/fill
|
|
*/
|
|
fill: [{
|
|
fill: [e, "none"]
|
|
}],
|
|
/**
|
|
* Stroke Width
|
|
* @see https://tailwindcss.com/docs/stroke-width
|
|
*/
|
|
"stroke-w": [{
|
|
stroke: [M, I, xe]
|
|
}],
|
|
/**
|
|
* Stroke
|
|
* @see https://tailwindcss.com/docs/stroke
|
|
*/
|
|
stroke: [{
|
|
stroke: [e, "none"]
|
|
}],
|
|
// Accessibility
|
|
/**
|
|
* Screen Readers
|
|
* @see https://tailwindcss.com/docs/screen-readers
|
|
*/
|
|
sr: ["sr-only", "not-sr-only"],
|
|
/**
|
|
* Forced Color Adjust
|
|
* @see https://tailwindcss.com/docs/forced-color-adjust
|
|
*/
|
|
"forced-color-adjust": [{
|
|
"forced-color-adjust": ["auto", "none"]
|
|
}]
|
|
},
|
|
conflictingClassGroups: {
|
|
overflow: ["overflow-x", "overflow-y"],
|
|
overscroll: ["overscroll-x", "overscroll-y"],
|
|
inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
|
|
"inset-x": ["right", "left"],
|
|
"inset-y": ["top", "bottom"],
|
|
flex: ["basis", "grow", "shrink"],
|
|
gap: ["gap-x", "gap-y"],
|
|
p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
|
|
px: ["pr", "pl"],
|
|
py: ["pt", "pb"],
|
|
m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
|
|
mx: ["mr", "ml"],
|
|
my: ["mt", "mb"],
|
|
size: ["w", "h"],
|
|
"font-size": ["leading"],
|
|
"fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
|
|
"fvn-ordinal": ["fvn-normal"],
|
|
"fvn-slashed-zero": ["fvn-normal"],
|
|
"fvn-figure": ["fvn-normal"],
|
|
"fvn-spacing": ["fvn-normal"],
|
|
"fvn-fraction": ["fvn-normal"],
|
|
"line-clamp": ["display", "overflow"],
|
|
rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
|
|
"rounded-s": ["rounded-ss", "rounded-es"],
|
|
"rounded-e": ["rounded-se", "rounded-ee"],
|
|
"rounded-t": ["rounded-tl", "rounded-tr"],
|
|
"rounded-r": ["rounded-tr", "rounded-br"],
|
|
"rounded-b": ["rounded-br", "rounded-bl"],
|
|
"rounded-l": ["rounded-tl", "rounded-bl"],
|
|
"border-spacing": ["border-spacing-x", "border-spacing-y"],
|
|
"border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
|
|
"border-w-x": ["border-w-r", "border-w-l"],
|
|
"border-w-y": ["border-w-t", "border-w-b"],
|
|
"border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
|
|
"border-color-x": ["border-color-r", "border-color-l"],
|
|
"border-color-y": ["border-color-t", "border-color-b"],
|
|
"scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
|
|
"scroll-mx": ["scroll-mr", "scroll-ml"],
|
|
"scroll-my": ["scroll-mt", "scroll-mb"],
|
|
"scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
|
|
"scroll-px": ["scroll-pr", "scroll-pl"],
|
|
"scroll-py": ["scroll-pt", "scroll-pb"],
|
|
touch: ["touch-x", "touch-y", "touch-pz"],
|
|
"touch-x": ["touch"],
|
|
"touch-y": ["touch"],
|
|
"touch-pz": ["touch"]
|
|
},
|
|
conflictingClassGroupModifiers: {
|
|
"font-size": ["leading"]
|
|
}
|
|
};
|
|
}, Fe = /* @__PURE__ */ Xt(ur), mr = ({
|
|
children: e,
|
|
content: t,
|
|
position: r,
|
|
className: n,
|
|
delay: o = 300,
|
|
closeOnClick: s = !1,
|
|
imageSrc: a,
|
|
description: l,
|
|
interactive: i = !1
|
|
}) => {
|
|
const [u, c] = N(!1), f = S(null), h = S(null), [m, p] = N(!1), [g, d] = N(!1), v = () => f.current ? f.current.querySelectorAll('[data-headlessui-state="open"]').length > 0 : !1;
|
|
Q(() => {
|
|
const y = new MutationObserver((A) => {
|
|
A.forEach((R) => {
|
|
R.type === "attributes" && R.attributeName === "data-headlessui-state" && R.target.getAttribute("data-headlessui-state") === "open" && c(!1);
|
|
});
|
|
});
|
|
return f.current && y.observe(f.current, {
|
|
attributes: !0,
|
|
subtree: !0,
|
|
attributeFilter: ["data-headlessui-state"]
|
|
}), () => {
|
|
y.disconnect();
|
|
};
|
|
}, []);
|
|
const k = () => {
|
|
if (f.current) {
|
|
const y = f.current.getBoundingClientRect();
|
|
switch (r) {
|
|
case "top":
|
|
return {
|
|
bottom: y.height + 10,
|
|
left: "50%",
|
|
transform: "translateX(-50%)"
|
|
};
|
|
case "bottom":
|
|
return {
|
|
top: y.height + 10,
|
|
left: "50%",
|
|
transform: "translateX(-50%)"
|
|
};
|
|
case "left":
|
|
return {
|
|
right: y.width + 10,
|
|
top: "50%",
|
|
transform: "translateY(-50%)"
|
|
};
|
|
case "right":
|
|
return {
|
|
left: y.width + 10,
|
|
top: "50%",
|
|
transform: "translateY(-50%)"
|
|
};
|
|
default:
|
|
return {};
|
|
}
|
|
}
|
|
return {};
|
|
}, C = (y) => {
|
|
s && (c(!1), y.stopPropagation());
|
|
};
|
|
return Q(() => {
|
|
v() || c(m || i && g);
|
|
}, [m, g, i]), /* @__PURE__ */ je(
|
|
"div",
|
|
{
|
|
ref: f,
|
|
onMouseEnter: () => {
|
|
p(!0), v() || c(!0);
|
|
},
|
|
onMouseLeave: () => {
|
|
p(!1), i || c(!1);
|
|
},
|
|
onClick: C,
|
|
className: "relative",
|
|
children: [
|
|
e,
|
|
/* @__PURE__ */ ce(
|
|
Ft,
|
|
{
|
|
show: u,
|
|
enter: Fe(
|
|
"transition ease-out duration-200",
|
|
o ? `delay-[${o}ms]` : "delay-[300ms]"
|
|
),
|
|
enterFrom: "opacity-0",
|
|
enterTo: "opacity-100",
|
|
leave: "transition ease-in duration-150",
|
|
leaveFrom: "opacity-100",
|
|
leaveTo: "opacity-0",
|
|
children: /* @__PURE__ */ ce(
|
|
"div",
|
|
{
|
|
ref: h,
|
|
onMouseEnter: () => i && d(!0),
|
|
onMouseLeave: () => i && d(!1),
|
|
style: {
|
|
...k(),
|
|
transitionDelay: `${o}ms`,
|
|
transitionProperty: "opacity",
|
|
transitionDuration: "200ms",
|
|
transitionTimingFunction: "ease-out"
|
|
},
|
|
className: Fe(
|
|
"absolute z-10 w-max rounded-lg bg-ui-controls px-2.5 py-1.5 text-[13px] font-medium text-base-fg shadow-xl border border-ui-panel-border",
|
|
i ? "pointer-events-auto" : "pointer-events-none",
|
|
n || ""
|
|
),
|
|
children: /* @__PURE__ */ je("div", { className: "flex flex-col gap-1", children: [
|
|
t,
|
|
a && /* @__PURE__ */ ce(
|
|
"img",
|
|
{
|
|
src: a,
|
|
alt: "tooltip",
|
|
className: "mb-1 aspect-square w-56 rounded-md"
|
|
}
|
|
),
|
|
l && /* @__PURE__ */ ce("p", { className: "text-sm text-base-fg font-normal", children: l })
|
|
] })
|
|
}
|
|
)
|
|
}
|
|
)
|
|
]
|
|
}
|
|
);
|
|
};
|
|
export {
|
|
mr as Tooltip
|
|
};
|