@fluster.io/dev
Version:
1,330 lines (1,329 loc) • 2.81 MB
JavaScript
var ba = Object.defineProperty;
var _a = (e, t, n) => t in e ? ba(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
var te = (e, t, n) => _a(e, typeof t != "symbol" ? t + "" : t, n);
import * as React from "react";
import React__default, { useState, useEffect, useMemo, useLayoutEffect, useRef, forwardRef, createElement, createContext, useContext, useId as useId$3, useCallback, useInsertionEffect as useInsertionEffect$1, Fragment, Component, PureComponent, createRef, isValidElement, cloneElement, useReducer, useImperativeHandle } from "react";
import * as ReactDOM from "react-dom";
import ReactDOM__default, { createPortal } from "react-dom";
var commonjsGlobal = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function getDefaultExportFromCjs(e) {
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
}
var dayjs_min$1 = { exports: {} }, dayjs_min = dayjs_min$1.exports, hasRequiredDayjs_min;
function requireDayjs_min() {
return hasRequiredDayjs_min || (hasRequiredDayjs_min = 1, function(e, t) {
(function(n, o) {
e.exports = o();
})(dayjs_min, function() {
var n = 1e3, o = 6e4, l = 36e5, d = "millisecond", f = "second", h = "minute", g = "hour", y = "day", v = "week", x = "month", b = "quarter", _ = "year", C = "date", S = "Invalid Date", R = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, E = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, O = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(et) {
var j = ["th", "st", "nd", "rd"], M = et % 100;
return "[" + et + (j[(M - 20) % 10] || j[M] || j[0]) + "]";
} }, q = function(et, j, M) {
var Ue = String(et);
return !Ue || Ue.length >= j ? et : "" + Array(j + 1 - Ue.length).join(M) + et;
}, ae = { s: q, z: function(et) {
var j = -et.utcOffset(), M = Math.abs(j), Ue = Math.floor(M / 60), Ve = M % 60;
return (j <= 0 ? "+" : "-") + q(Ue, 2, "0") + ":" + q(Ve, 2, "0");
}, m: function et(j, M) {
if (j.date() < M.date()) return -et(M, j);
var Ue = 12 * (M.year() - j.year()) + (M.month() - j.month()), Ve = j.clone().add(Ue, x), lt = M - Ve < 0, Fe = j.clone().add(Ue + (lt ? -1 : 1), x);
return +(-(Ue + (M - Ve) / (lt ? Ve - Fe : Fe - Ve)) || 0);
}, a: function(et) {
return et < 0 ? Math.ceil(et) || 0 : Math.floor(et);
}, p: function(et) {
return { M: x, y: _, w: v, d: y, D: C, h: g, m: h, s: f, ms: d, Q: b }[et] || String(et || "").toLowerCase().replace(/s$/, "");
}, u: function(et) {
return et === void 0;
} }, ie = "en", Q = {};
Q[ie] = O;
var se = "$isDayjsObject", je = function(et) {
return et instanceof ut || !(!et || !et[se]);
}, oe = function et(j, M, Ue) {
var Ve;
if (!j) return ie;
if (typeof j == "string") {
var lt = j.toLowerCase();
Q[lt] && (Ve = lt), M && (Q[lt] = M, Ve = lt);
var Fe = j.split("-");
if (!Ve && Fe.length > 1) return et(Fe[0]);
} else {
var Xe = j.name;
Q[Xe] = j, Ve = Xe;
}
return !Ue && Ve && (ie = Ve), Ve || !Ue && ie;
}, Be = function(et, j) {
if (je(et)) return et.clone();
var M = typeof j == "object" ? j : {};
return M.date = et, M.args = arguments, new ut(M);
}, ze = ae;
ze.l = oe, ze.i = je, ze.w = function(et, j) {
return Be(et, { locale: j.$L, utc: j.$u, x: j.$x, $offset: j.$offset });
};
var ut = function() {
function et(M) {
this.$L = oe(M.locale, null, !0), this.parse(M), this.$x = this.$x || M.x || {}, this[se] = !0;
}
var j = et.prototype;
return j.parse = function(M) {
this.$d = function(Ue) {
var Ve = Ue.date, lt = Ue.utc;
if (Ve === null) return /* @__PURE__ */ new Date(NaN);
if (ze.u(Ve)) return /* @__PURE__ */ new Date();
if (Ve instanceof Date) return new Date(Ve);
if (typeof Ve == "string" && !/Z$/i.test(Ve)) {
var Fe = Ve.match(R);
if (Fe) {
var Xe = Fe[2] - 1 || 0, Qe = (Fe[7] || "0").substring(0, 3);
return lt ? new Date(Date.UTC(Fe[1], Xe, Fe[3] || 1, Fe[4] || 0, Fe[5] || 0, Fe[6] || 0, Qe)) : new Date(Fe[1], Xe, Fe[3] || 1, Fe[4] || 0, Fe[5] || 0, Fe[6] || 0, Qe);
}
}
return new Date(Ve);
}(M), this.init();
}, j.init = function() {
var M = this.$d;
this.$y = M.getFullYear(), this.$M = M.getMonth(), this.$D = M.getDate(), this.$W = M.getDay(), this.$H = M.getHours(), this.$m = M.getMinutes(), this.$s = M.getSeconds(), this.$ms = M.getMilliseconds();
}, j.$utils = function() {
return ze;
}, j.isValid = function() {
return this.$d.toString() !== S;
}, j.isSame = function(M, Ue) {
var Ve = Be(M);
return this.startOf(Ue) <= Ve && Ve <= this.endOf(Ue);
}, j.isAfter = function(M, Ue) {
return Be(M) < this.startOf(Ue);
}, j.isBefore = function(M, Ue) {
return this.endOf(Ue) < Be(M);
}, j.$g = function(M, Ue, Ve) {
return ze.u(M) ? this[Ue] : this.set(Ve, M);
}, j.unix = function() {
return Math.floor(this.valueOf() / 1e3);
}, j.valueOf = function() {
return this.$d.getTime();
}, j.startOf = function(M, Ue) {
var Ve = this, lt = !!ze.u(Ue) || Ue, Fe = ze.p(M), Xe = function(gt, xt) {
var Rt = ze.w(Ve.$u ? Date.UTC(Ve.$y, xt, gt) : new Date(Ve.$y, xt, gt), Ve);
return lt ? Rt : Rt.endOf(y);
}, Qe = function(gt, xt) {
return ze.w(Ve.toDate()[gt].apply(Ve.toDate("s"), (lt ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(xt)), Ve);
}, We = this.$W, rt = this.$M, it = this.$D, ht = "set" + (this.$u ? "UTC" : "");
switch (Fe) {
case _:
return lt ? Xe(1, 0) : Xe(31, 11);
case x:
return lt ? Xe(1, rt) : Xe(0, rt + 1);
case v:
var Ge = this.$locale().weekStart || 0, ft = (We < Ge ? We + 7 : We) - Ge;
return Xe(lt ? it - ft : it + (6 - ft), rt);
case y:
case C:
return Qe(ht + "Hours", 0);
case g:
return Qe(ht + "Minutes", 1);
case h:
return Qe(ht + "Seconds", 2);
case f:
return Qe(ht + "Milliseconds", 3);
default:
return this.clone();
}
}, j.endOf = function(M) {
return this.startOf(M, !1);
}, j.$set = function(M, Ue) {
var Ve, lt = ze.p(M), Fe = "set" + (this.$u ? "UTC" : ""), Xe = (Ve = {}, Ve[y] = Fe + "Date", Ve[C] = Fe + "Date", Ve[x] = Fe + "Month", Ve[_] = Fe + "FullYear", Ve[g] = Fe + "Hours", Ve[h] = Fe + "Minutes", Ve[f] = Fe + "Seconds", Ve[d] = Fe + "Milliseconds", Ve)[lt], Qe = lt === y ? this.$D + (Ue - this.$W) : Ue;
if (lt === x || lt === _) {
var We = this.clone().set(C, 1);
We.$d[Xe](Qe), We.init(), this.$d = We.set(C, Math.min(this.$D, We.daysInMonth())).$d;
} else Xe && this.$d[Xe](Qe);
return this.init(), this;
}, j.set = function(M, Ue) {
return this.clone().$set(M, Ue);
}, j.get = function(M) {
return this[ze.p(M)]();
}, j.add = function(M, Ue) {
var Ve, lt = this;
M = Number(M);
var Fe = ze.p(Ue), Xe = function(rt) {
var it = Be(lt);
return ze.w(it.date(it.date() + Math.round(rt * M)), lt);
};
if (Fe === x) return this.set(x, this.$M + M);
if (Fe === _) return this.set(_, this.$y + M);
if (Fe === y) return Xe(1);
if (Fe === v) return Xe(7);
var Qe = (Ve = {}, Ve[h] = o, Ve[g] = l, Ve[f] = n, Ve)[Fe] || 1, We = this.$d.getTime() + M * Qe;
return ze.w(We, this);
}, j.subtract = function(M, Ue) {
return this.add(-1 * M, Ue);
}, j.format = function(M) {
var Ue = this, Ve = this.$locale();
if (!this.isValid()) return Ve.invalidDate || S;
var lt = M || "YYYY-MM-DDTHH:mm:ssZ", Fe = ze.z(this), Xe = this.$H, Qe = this.$m, We = this.$M, rt = Ve.weekdays, it = Ve.months, ht = Ve.meridiem, Ge = function(xt, Rt, at, Pt) {
return xt && (xt[Rt] || xt(Ue, lt)) || at[Rt].slice(0, Pt);
}, ft = function(xt) {
return ze.s(Xe % 12 || 12, xt, "0");
}, gt = ht || function(xt, Rt, at) {
var Pt = xt < 12 ? "AM" : "PM";
return at ? Pt.toLowerCase() : Pt;
};
return lt.replace(E, function(xt, Rt) {
return Rt || function(at) {
switch (at) {
case "YY":
return String(Ue.$y).slice(-2);
case "YYYY":
return ze.s(Ue.$y, 4, "0");
case "M":
return We + 1;
case "MM":
return ze.s(We + 1, 2, "0");
case "MMM":
return Ge(Ve.monthsShort, We, it, 3);
case "MMMM":
return Ge(it, We);
case "D":
return Ue.$D;
case "DD":
return ze.s(Ue.$D, 2, "0");
case "d":
return String(Ue.$W);
case "dd":
return Ge(Ve.weekdaysMin, Ue.$W, rt, 2);
case "ddd":
return Ge(Ve.weekdaysShort, Ue.$W, rt, 3);
case "dddd":
return rt[Ue.$W];
case "H":
return String(Xe);
case "HH":
return ze.s(Xe, 2, "0");
case "h":
return ft(1);
case "hh":
return ft(2);
case "a":
return gt(Xe, Qe, !0);
case "A":
return gt(Xe, Qe, !1);
case "m":
return String(Qe);
case "mm":
return ze.s(Qe, 2, "0");
case "s":
return String(Ue.$s);
case "ss":
return ze.s(Ue.$s, 2, "0");
case "SSS":
return ze.s(Ue.$ms, 3, "0");
case "Z":
return Fe;
}
return null;
}(xt) || Fe.replace(":", "");
});
}, j.utcOffset = function() {
return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
}, j.diff = function(M, Ue, Ve) {
var lt, Fe = this, Xe = ze.p(Ue), Qe = Be(M), We = (Qe.utcOffset() - this.utcOffset()) * o, rt = this - Qe, it = function() {
return ze.m(Fe, Qe);
};
switch (Xe) {
case _:
lt = it() / 12;
break;
case x:
lt = it();
break;
case b:
lt = it() / 3;
break;
case v:
lt = (rt - We) / 6048e5;
break;
case y:
lt = (rt - We) / 864e5;
break;
case g:
lt = rt / l;
break;
case h:
lt = rt / o;
break;
case f:
lt = rt / n;
break;
default:
lt = rt;
}
return Ve ? lt : ze.a(lt);
}, j.daysInMonth = function() {
return this.endOf(x).$D;
}, j.$locale = function() {
return Q[this.$L];
}, j.locale = function(M, Ue) {
if (!M) return this.$L;
var Ve = this.clone(), lt = oe(M, Ue, !0);
return lt && (Ve.$L = lt), Ve;
}, j.clone = function() {
return ze.w(this.$d, this);
}, j.toDate = function() {
return new Date(this.valueOf());
}, j.toJSON = function() {
return this.isValid() ? this.toISOString() : null;
}, j.toISOString = function() {
return this.$d.toISOString();
}, j.toString = function() {
return this.$d.toUTCString();
}, et;
}(), Ye = ut.prototype;
return Be.prototype = Ye, [["$ms", d], ["$s", f], ["$m", h], ["$H", g], ["$W", y], ["$M", x], ["$y", _], ["$D", C]].forEach(function(et) {
Ye[et[1]] = function(j) {
return this.$g(j, et[0], et[1]);
};
}), Be.extend = function(et, j) {
return et.$i || (et(j, ut, Be), et.$i = !0), Be;
}, Be.locale = oe, Be.isDayjs = je, Be.unix = function(et) {
return Be(1e3 * et);
}, Be.en = Q[ie], Be.Ls = Q, Be.p = {}, Be;
});
}(dayjs_min$1)), dayjs_min$1.exports;
}
var dayjs_minExports = requireDayjs_min();
const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports), parseDate = (e) => typeof e == "number" ? dayjs.unix(e) : new RegExp("[a-zA-Z]", "gi").test(e) ? dayjs(e, {
utc: !0
}) : dayjs(new Date(parseInt(e))), parseTaskDates = (e) => ({
...e,
due_at: e.due_at ? parseDate(e.due_at).toDate().valueOf().toString() : null,
ctime: parseDate(e.ctime).toDate().valueOf().toString()
});
var jsxRuntime = { exports: {} }, reactJsxRuntime_production = {};
/**
* @license React
* react-jsx-runtime.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var hasRequiredReactJsxRuntime_production;
function requireReactJsxRuntime_production() {
if (hasRequiredReactJsxRuntime_production) return reactJsxRuntime_production;
hasRequiredReactJsxRuntime_production = 1;
var e = Symbol.for("react.transitional.element"), t = Symbol.for("react.fragment");
function n(o, l, d) {
var f = null;
if (d !== void 0 && (f = "" + d), l.key !== void 0 && (f = "" + l.key), "key" in l) {
d = {};
for (var h in l)
h !== "key" && (d[h] = l[h]);
} else d = l;
return l = d.ref, {
$$typeof: e,
type: o,
key: f,
ref: l !== void 0 ? l : null,
props: d
};
}
return reactJsxRuntime_production.Fragment = t, reactJsxRuntime_production.jsx = n, reactJsxRuntime_production.jsxs = n, reactJsxRuntime_production;
}
var reactJsxRuntime_development = {};
/**
* @license React
* react-jsx-runtime.development.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var hasRequiredReactJsxRuntime_development;
function requireReactJsxRuntime_development() {
return hasRequiredReactJsxRuntime_development || (hasRequiredReactJsxRuntime_development = 1, process.env.NODE_ENV !== "production" && function() {
function e(Fe) {
if (Fe == null) return null;
if (typeof Fe == "function")
return Fe.$$typeof === Be ? null : Fe.displayName || Fe.name || null;
if (typeof Fe == "string") return Fe;
switch (Fe) {
case S:
return "Fragment";
case E:
return "Profiler";
case R:
return "StrictMode";
case ie:
return "Suspense";
case Q:
return "SuspenseList";
case oe:
return "Activity";
}
if (typeof Fe == "object")
switch (typeof Fe.tag == "number" && console.error(
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
), Fe.$$typeof) {
case C:
return "Portal";
case q:
return (Fe.displayName || "Context") + ".Provider";
case O:
return (Fe._context.displayName || "Context") + ".Consumer";
case ae:
var Xe = Fe.render;
return Fe = Fe.displayName, Fe || (Fe = Xe.displayName || Xe.name || "", Fe = Fe !== "" ? "ForwardRef(" + Fe + ")" : "ForwardRef"), Fe;
case se:
return Xe = Fe.displayName || null, Xe !== null ? Xe : e(Fe.type) || "Memo";
case je:
Xe = Fe._payload, Fe = Fe._init;
try {
return e(Fe(Xe));
} catch {
}
}
return null;
}
function t(Fe) {
return "" + Fe;
}
function n(Fe) {
try {
t(Fe);
var Xe = !1;
} catch {
Xe = !0;
}
if (Xe) {
Xe = console;
var Qe = Xe.error, We = typeof Symbol == "function" && Symbol.toStringTag && Fe[Symbol.toStringTag] || Fe.constructor.name || "Object";
return Qe.call(
Xe,
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
We
), t(Fe);
}
}
function o(Fe) {
if (Fe === S) return "<>";
if (typeof Fe == "object" && Fe !== null && Fe.$$typeof === je)
return "<...>";
try {
var Xe = e(Fe);
return Xe ? "<" + Xe + ">" : "<...>";
} catch {
return "<...>";
}
}
function l() {
var Fe = ze.A;
return Fe === null ? null : Fe.getOwner();
}
function d() {
return Error("react-stack-top-frame");
}
function f(Fe) {
if (ut.call(Fe, "key")) {
var Xe = Object.getOwnPropertyDescriptor(Fe, "key").get;
if (Xe && Xe.isReactWarning) return !1;
}
return Fe.key !== void 0;
}
function h(Fe, Xe) {
function Qe() {
j || (j = !0, console.error(
"%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://react.dev/link/special-props)",
Xe
));
}
Qe.isReactWarning = !0, Object.defineProperty(Fe, "key", {
get: Qe,
configurable: !0
});
}
function g() {
var Fe = e(this.type);
return M[Fe] || (M[Fe] = !0, console.error(
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
)), Fe = this.props.ref, Fe !== void 0 ? Fe : null;
}
function y(Fe, Xe, Qe, We, rt, it, ht, Ge) {
return Qe = it.ref, Fe = {
$$typeof: _,
type: Fe,
key: Xe,
props: it,
_owner: rt
}, (Qe !== void 0 ? Qe : null) !== null ? Object.defineProperty(Fe, "ref", {
enumerable: !1,
get: g
}) : Object.defineProperty(Fe, "ref", { enumerable: !1, value: null }), Fe._store = {}, Object.defineProperty(Fe._store, "validated", {
configurable: !1,
enumerable: !1,
writable: !0,
value: 0
}), Object.defineProperty(Fe, "_debugInfo", {
configurable: !1,
enumerable: !1,
writable: !0,
value: null
}), Object.defineProperty(Fe, "_debugStack", {
configurable: !1,
enumerable: !1,
writable: !0,
value: ht
}), Object.defineProperty(Fe, "_debugTask", {
configurable: !1,
enumerable: !1,
writable: !0,
value: Ge
}), Object.freeze && (Object.freeze(Fe.props), Object.freeze(Fe)), Fe;
}
function v(Fe, Xe, Qe, We, rt, it, ht, Ge) {
var ft = Xe.children;
if (ft !== void 0)
if (We)
if (Ye(ft)) {
for (We = 0; We < ft.length; We++)
x(ft[We]);
Object.freeze && Object.freeze(ft);
} else
console.error(
"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 x(ft);
if (ut.call(Xe, "key")) {
ft = e(Fe);
var gt = Object.keys(Xe).filter(function(Rt) {
return Rt !== "key";
});
We = 0 < gt.length ? "{key: someKey, " + gt.join(": ..., ") + ": ...}" : "{key: someKey}", lt[ft + We] || (gt = 0 < gt.length ? "{" + gt.join(": ..., ") + ": ...}" : "{}", console.error(
`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} />`,
We,
ft,
gt,
ft
), lt[ft + We] = !0);
}
if (ft = null, Qe !== void 0 && (n(Qe), ft = "" + Qe), f(Xe) && (n(Xe.key), ft = "" + Xe.key), "key" in Xe) {
Qe = {};
for (var xt in Xe)
xt !== "key" && (Qe[xt] = Xe[xt]);
} else Qe = Xe;
return ft && h(
Qe,
typeof Fe == "function" ? Fe.displayName || Fe.name || "Unknown" : Fe
), y(
Fe,
ft,
it,
rt,
l(),
Qe,
ht,
Ge
);
}
function x(Fe) {
typeof Fe == "object" && Fe !== null && Fe.$$typeof === _ && Fe._store && (Fe._store.validated = 1);
}
var b = React__default, _ = Symbol.for("react.transitional.element"), C = Symbol.for("react.portal"), S = Symbol.for("react.fragment"), R = Symbol.for("react.strict_mode"), E = Symbol.for("react.profiler"), O = Symbol.for("react.consumer"), q = Symbol.for("react.context"), ae = Symbol.for("react.forward_ref"), ie = Symbol.for("react.suspense"), Q = Symbol.for("react.suspense_list"), se = Symbol.for("react.memo"), je = Symbol.for("react.lazy"), oe = Symbol.for("react.activity"), Be = Symbol.for("react.client.reference"), ze = b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ut = Object.prototype.hasOwnProperty, Ye = Array.isArray, et = console.createTask ? console.createTask : function() {
return null;
};
b = {
"react-stack-bottom-frame": function(Fe) {
return Fe();
}
};
var j, M = {}, Ue = b["react-stack-bottom-frame"].bind(
b,
d
)(), Ve = et(o(d)), lt = {};
reactJsxRuntime_development.Fragment = S, reactJsxRuntime_development.jsx = function(Fe, Xe, Qe, We, rt) {
var it = 1e4 > ze.recentlyCreatedOwnerStacks++;
return v(
Fe,
Xe,
Qe,
!1,
We,
rt,
it ? Error("react-stack-top-frame") : Ue,
it ? et(o(Fe)) : Ve
);
}, reactJsxRuntime_development.jsxs = function(Fe, Xe, Qe, We, rt) {
var it = 1e4 > ze.recentlyCreatedOwnerStacks++;
return v(
Fe,
Xe,
Qe,
!0,
We,
rt,
it ? Error("react-stack-top-frame") : Ue,
it ? et(o(Fe)) : Ve
);
};
}()), reactJsxRuntime_development;
}
var hasRequiredJsxRuntime;
function requireJsxRuntime() {
return hasRequiredJsxRuntime || (hasRequiredJsxRuntime = 1, process.env.NODE_ENV === "production" ? jsxRuntime.exports = requireReactJsxRuntime_production() : jsxRuntime.exports = requireReactJsxRuntime_development()), jsxRuntime.exports;
}
var jsxRuntimeExports = requireJsxRuntime(), AppRoutes = /* @__PURE__ */ ((e) => (e.dashboard = "/", e.settings = "/settings", e.pdf = "/pdf", e.htmlFile = "/html_file", e.bibliography = "/bibliography", e.dictionary = "/dictionary", e.snippets = "/snippets", e.kanbanBoards = "/kanban-boards", e.equations = "/equations", e.viewMdxNote = "/mdx", e.splitViewEditMdx = "/mdx-split-view", e.embeddedDocs = "/embedded-docs", e.bookmarks = "/bookmarks", e.taskLists = "/taskLists", e.search = "/search", e.semanticSearch = "/semantic-search", e.onboarding = "/onboarding", e.aiMainChat = "/aiChat", e.notebookInteractive = "/notebook-interactive", e.constantsTable = "/docs-constants", e.full_screen_editor = "/editor-full", e))(AppRoutes || {});
const Tag = ({ value: e }) => {
const t = new URLSearchParams();
return t.set("by_tag", e), /* @__PURE__ */ jsxRuntimeExports.jsxs(
"a",
{
href: `${AppRoutes.search}?${t.toString()}`,
className: "bg-primary text-primary-foreground no-underline p-1 rounded cursor-pointer text-nowrap",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "#" }),
e
]
}
);
};
Tag.displayName = "Tag";
function r(e) {
var t, n, o = "";
if (typeof e == "string" || typeof e == "number") o += e;
else if (typeof e == "object") if (Array.isArray(e)) {
var l = e.length;
for (t = 0; t < l; t++) e[t] && (n = r(e[t])) && (o && (o += " "), o += n);
} else for (n in e) e[n] && (o && (o += " "), o += n);
return o;
}
function clsx() {
for (var e, t, n = 0, o = "", l = arguments.length; n < l; n++) (e = arguments[n]) && (t = r(e)) && (o && (o += " "), o += t);
return o;
}
const CLASS_PART_SEPARATOR = "-", createClassGroupUtils = (e) => {
const t = createClassMap(e), {
conflictingClassGroups: n,
conflictingClassGroupModifiers: o
} = e;
return {
getClassGroupId: (f) => {
const h = f.split(CLASS_PART_SEPARATOR);
return h[0] === "" && h.length !== 1 && h.shift(), getGroupRecursive(h, t) || getGroupIdForArbitraryProperty(f);
},
getConflictingClassGroupIds: (f, h) => {
const g = n[f] || [];
return h && o[f] ? [...g, ...o[f]] : g;
}
};
}, getGroupRecursive = (e, t) => {
var f;
if (e.length === 0)
return t.classGroupId;
const n = e[0], o = t.nextPart.get(n), l = o ? getGroupRecursive(e.slice(1), o) : void 0;
if (l)
return l;
if (t.validators.length === 0)
return;
const d = e.join(CLASS_PART_SEPARATOR);
return (f = t.validators.find(({
validator: h
}) => h(d))) == null ? void 0 : f.classGroupId;
}, arbitraryPropertyRegex = /^\[(.+)\]$/, getGroupIdForArbitraryProperty = (e) => {
if (arbitraryPropertyRegex.test(e)) {
const t = arbitraryPropertyRegex.exec(e)[1], n = t == null ? void 0 : t.substring(0, t.indexOf(":"));
if (n)
return "arbitrary.." + n;
}
}, createClassMap = (e) => {
const {
theme: t,
classGroups: n
} = e, o = {
nextPart: /* @__PURE__ */ new Map(),
validators: []
};
for (const l in n)
processClassesRecursively(n[l], o, l, t);
return o;
}, processClassesRecursively = (e, t, n, o) => {
e.forEach((l) => {
if (typeof l == "string") {
const d = l === "" ? t : getPart(t, l);
d.classGroupId = n;
return;
}
if (typeof l == "function") {
if (isThemeGetter(l)) {
processClassesRecursively(l(o), t, n, o);
return;
}
t.validators.push({
validator: l,
classGroupId: n
});
return;
}
Object.entries(l).forEach(([d, f]) => {
processClassesRecursively(f, getPart(t, d), n, o);
});
});
}, getPart = (e, t) => {
let n = e;
return t.split(CLASS_PART_SEPARATOR).forEach((o) => {
n.nextPart.has(o) || n.nextPart.set(o, {
nextPart: /* @__PURE__ */ new Map(),
validators: []
}), n = n.nextPart.get(o);
}), n;
}, isThemeGetter = (e) => e.isThemeGetter, createLruCache = (e) => {
if (e < 1)
return {
get: () => {
},
set: () => {
}
};
let t = 0, n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
const l = (d, f) => {
n.set(d, f), t++, t > e && (t = 0, o = n, n = /* @__PURE__ */ new Map());
};
return {
get(d) {
let f = n.get(d);
if (f !== void 0)
return f;
if ((f = o.get(d)) !== void 0)
return l(d, f), f;
},
set(d, f) {
n.has(d) ? n.set(d, f) : l(d, f);
}
};
}, IMPORTANT_MODIFIER = "!", MODIFIER_SEPARATOR = ":", MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length, createParseClassName = (e) => {
const {
prefix: t,
experimentalParseClassName: n
} = e;
let o = (l) => {
const d = [];
let f = 0, h = 0, g = 0, y;
for (let C = 0; C < l.length; C++) {
let S = l[C];
if (f === 0 && h === 0) {
if (S === MODIFIER_SEPARATOR) {
d.push(l.slice(g, C)), g = C + MODIFIER_SEPARATOR_LENGTH;
continue;
}
if (S === "/") {
y = C;
continue;
}
}
S === "[" ? f++ : S === "]" ? f-- : S === "(" ? h++ : S === ")" && h--;
}
const v = d.length === 0 ? l : l.substring(g), x = stripImportantModifier(v), b = x !== v, _ = y && y > g ? y - g : void 0;
return {
modifiers: d,
hasImportantModifier: b,
baseClassName: x,
maybePostfixModifierPosition: _
};
};
if (t) {
const l = t + MODIFIER_SEPARATOR, d = o;
o = (f) => f.startsWith(l) ? d(f.substring(l.length)) : {
isExternal: !0,
modifiers: [],
hasImportantModifier: !1,
baseClassName: f,
maybePostfixModifierPosition: void 0
};
}
if (n) {
const l = o;
o = (d) => n({
className: d,
parseClassName: l
});
}
return o;
}, stripImportantModifier = (e) => e.endsWith(IMPORTANT_MODIFIER) ? e.substring(0, e.length - 1) : e.startsWith(IMPORTANT_MODIFIER) ? e.substring(1) : e, createSortModifiers = (e) => {
const t = Object.fromEntries(e.orderSensitiveModifiers.map((o) => [o, !0]));
return (o) => {
if (o.length <= 1)
return o;
const l = [];
let d = [];
return o.forEach((f) => {
f[0] === "[" || t[f] ? (l.push(...d.sort(), f), d = []) : d.push(f);
}), l.push(...d.sort()), l;
};
}, createConfigUtils = (e) => ({
cache: createLruCache(e.cacheSize),
parseClassName: createParseClassName(e),
sortModifiers: createSortModifiers(e),
...createClassGroupUtils(e)
}), SPLIT_CLASSES_REGEX = /\s+/, mergeClassList = (e, t) => {
const {
parseClassName: n,
getClassGroupId: o,
getConflictingClassGroupIds: l,
sortModifiers: d
} = t, f = [], h = e.trim().split(SPLIT_CLASSES_REGEX);
let g = "";
for (let y = h.length - 1; y >= 0; y -= 1) {
const v = h[y], {
isExternal: x,
modifiers: b,
hasImportantModifier: _,
baseClassName: C,
maybePostfixModifierPosition: S
} = n(v);
if (x) {
g = v + (g.length > 0 ? " " + g : g);
continue;
}
let R = !!S, E = o(R ? C.substring(0, S) : C);
if (!E) {
if (!R) {
g = v + (g.length > 0 ? " " + g : g);
continue;
}
if (E = o(C), !E) {
g = v + (g.length > 0 ? " " + g : g);
continue;
}
R = !1;
}
const O = d(b).join(":"), q = _ ? O + IMPORTANT_MODIFIER : O, ae = q + E;
if (f.includes(ae))
continue;
f.push(ae);
const ie = l(E, R);
for (let Q = 0; Q < ie.length; ++Q) {
const se = ie[Q];
f.push(q + se);
}
g = v + (g.length > 0 ? " " + g : g);
}
return g;
};
function twJoin() {
let e = 0, t, n, o = "";
for (; e < arguments.length; )
(t = arguments[e++]) && (n = toValue(t)) && (o && (o += " "), o += n);
return o;
}
const toValue = (e) => {
if (typeof e == "string")
return e;
let t, n = "";
for (let o = 0; o < e.length; o++)
e[o] && (t = toValue(e[o])) && (n && (n += " "), n += t);
return n;
};
function createTailwindMerge(e, ...t) {
let n, o, l, d = f;
function f(g) {
const y = t.reduce((v, x) => x(v), e());
return n = createConfigUtils(y), o = n.cache.get, l = n.cache.set, d = h, h(g);
}
function h(g) {
const y = o(g);
if (y)
return y;
const v = mergeClassList(g, n);
return l(g, v), v;
}
return function() {
return d(twJoin.apply(null, arguments));
};
}
const fromTheme = (e) => {
const t = (n) => n[e] || [];
return t.isThemeGetter = !0, t;
}, arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i, fractionRegex = /^\d+\/\d+$/, tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, lengthUnitRegex = /\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$/, colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, isFraction = (e) => fractionRegex.test(e), isNumber$4 = (e) => !!e && !Number.isNaN(Number(e)), isInteger = (e) => !!e && Number.isInteger(Number(e)), isPercent$1 = (e) => e.endsWith("%") && isNumber$4(e.slice(0, -1)), isTshirtSize = (e) => tshirtUnitRegex.test(e), isAny = () => !0, isLengthOnly = (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.
lengthUnitRegex.test(e) && !colorFunctionRegex.test(e)
), isNever = () => !1, isShadow = (e) => shadowRegex.test(e), isImage = (e) => imageRegex.test(e), isAnyNonArbitrary = (e) => !isArbitraryValue(e) && !isArbitraryVariable(e), isArbitrarySize = (e) => getIsArbitraryValue(e, isLabelSize, isNever), isArbitraryValue = (e) => arbitraryValueRegex.test(e), isArbitraryLength = (e) => getIsArbitraryValue(e, isLabelLength, isLengthOnly), isArbitraryNumber = (e) => getIsArbitraryValue(e, isLabelNumber, isNumber$4), isArbitraryPosition = (e) => getIsArbitraryValue(e, isLabelPosition, isNever), isArbitraryImage = (e) => getIsArbitraryValue(e, isLabelImage, isImage), isArbitraryShadow = (e) => getIsArbitraryValue(e, isLabelShadow, isShadow), isArbitraryVariable = (e) => arbitraryVariableRegex.test(e), isArbitraryVariableLength = (e) => getIsArbitraryVariable(e, isLabelLength), isArbitraryVariableFamilyName = (e) => getIsArbitraryVariable(e, isLabelFamilyName), isArbitraryVariablePosition = (e) => getIsArbitraryVariable(e, isLabelPosition), isArbitraryVariableSize = (e) => getIsArbitraryVariable(e, isLabelSize), isArbitraryVariableImage = (e) => getIsArbitraryVariable(e, isLabelImage), isArbitraryVariableShadow = (e) => getIsArbitraryVariable(e, isLabelShadow, !0), getIsArbitraryValue = (e, t, n) => {
const o = arbitraryValueRegex.exec(e);
return o ? o[1] ? t(o[1]) : n(o[2]) : !1;
}, getIsArbitraryVariable = (e, t, n = !1) => {
const o = arbitraryVariableRegex.exec(e);
return o ? o[1] ? t(o[1]) : n : !1;
}, isLabelPosition = (e) => e === "position" || e === "percentage", isLabelImage = (e) => e === "image" || e === "url", isLabelSize = (e) => e === "length" || e === "size" || e === "bg-size", isLabelLength = (e) => e === "length", isLabelNumber = (e) => e === "number", isLabelFamilyName = (e) => e === "family-name", isLabelShadow = (e) => e === "shadow", getDefaultConfig = () => {
const e = fromTheme("color"), t = fromTheme("font"), n = fromTheme("text"), o = fromTheme("font-weight"), l = fromTheme("tracking"), d = fromTheme("leading"), f = fromTheme("breakpoint"), h = fromTheme("container"), g = fromTheme("spacing"), y = fromTheme("radius"), v = fromTheme("shadow"), x = fromTheme("inset-shadow"), b = fromTheme("text-shadow"), _ = fromTheme("drop-shadow"), C = fromTheme("blur"), S = fromTheme("perspective"), R = fromTheme("aspect"), E = fromTheme("ease"), O = fromTheme("animate"), q = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], ae = () => [
"center",
"top",
"bottom",
"left",
"right",
"top-left",
// Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
"left-top",
"top-right",
// Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
"right-top",
"bottom-right",
// Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
"right-bottom",
"bottom-left",
// Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
"left-bottom"
], ie = () => [...ae(), isArbitraryVariable, isArbitraryValue], Q = () => ["auto", "hidden", "clip", "visible", "scroll"], se = () => ["auto", "contain", "none"], je = () => [isArbitraryVariable, isArbitraryValue, g], oe = () => [isFraction, "full", "auto", ...je()], Be = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue], ze = () => ["auto", {
span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
}, isInteger, isArbitraryVariable, isArbitraryValue], ut = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue], Ye = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue], et = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], j = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], M = () => ["auto", ...je()], Ue = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...je()], Ve = () => [e, isArbitraryVariable, isArbitraryValue], lt = () => [...ae(), isArbitraryVariablePosition, isArbitraryPosition, {
position: [isArbitraryVariable, isArbitraryValue]
}], Fe = () => ["no-repeat", {
repeat: ["", "x", "y", "space", "round"]
}], Xe = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
size: [isArbitraryVariable, isArbitraryValue]
}], Qe = () => [isPercent$1, isArbitraryVariableLength, isArbitraryLength], We = () => [
// Deprecated since Tailwind CSS v4.0.0
"",
"none",
"full",
y,
isArbitraryVariable,
isArbitraryValue
], rt = () => ["", isNumber$4, isArbitraryVariableLength, isArbitraryLength], it = () => ["solid", "dashed", "dotted", "double"], ht = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], Ge = () => [isNumber$4, isPercent$1, isArbitraryVariablePosition, isArbitraryPosition], ft = () => [
// Deprecated since Tailwind CSS v4.0.0
"",
"none",
C,
isArbitraryVariable,
isArbitraryValue
], gt = () => ["none", isNumber$4, isArbitraryVariable, isArbitraryValue], xt = () => ["none", isNumber$4, isArbitraryVariable, isArbitraryValue], Rt = () => [isNumber$4, isArbitraryVariable, isArbitraryValue], at = () => [isFraction, "full", ...je()];
return {
cacheSize: 500,
theme: {
animate: ["spin", "ping", "pulse", "bounce"],
aspect: ["video"],
blur: [isTshirtSize],
breakpoint: [isTshirtSize],
color: [isAny],
container: [isTshirtSize],
"drop-shadow": [isTshirtSize],
ease: ["in", "out", "in-out"],
font: [isAnyNonArbitrary],
"font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
"inset-shadow": [isTshirtSize],
leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
radius: [isTshirtSize],
shadow: [isTshirtSize],
spacing: ["px", isNumber$4],
text: [isTshirtSize],
"text-shadow": [isTshirtSize],
tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
},
classGroups: {
// --------------
// --- Layout ---
// --------------
/**
* Aspect Ratio
* @see https://tailwindcss.com/docs/aspect-ratio
*/
aspect: [{
aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, R]
}],
/**
* Container
* @see https://tailwindcss.com/docs/container
* @deprecated since Tailwind CSS v4.0.0
*/
container: ["container"],
/**
* Columns
* @see https://tailwindcss.com/docs/columns
*/
columns: [{
columns: [isNumber$4, isArbitraryValue, isArbitraryVariable, h]
}],
/**
* Break After
* @see https://tailwindcss.com/docs/break-after
*/
"break-after": [{
"break-after": q()
}],
/**
* Break Before
* @see https://tailwindcss.com/docs/break-before
*/
"break-before": [{
"break-before": q()
}],
/**
* 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"],
/**
* Screen Reader Only
* @see https://tailwindcss.com/docs/display#screen-reader-only
*/
sr: ["sr-only", "not-sr-only"],
/**
* 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: ie()
}],
/**
* Overflow
* @see https://tailwindcss.com/docs/overflow
*/
overflow: [{
overflow: Q()
}],
/**
* Overflow X
* @see https://tailwindcss.com/docs/overflow
*/
"overflow-x": [{
"overflow-x": Q()
}],
/**
* Overflow Y
* @see https://tailwindcss.com/docs/overflow
*/
"overflow-y": [{
"overflow-y": Q()
}],
/**
* Overscroll Behavior
* @see https://tailwindcss.com/docs/overscroll-behavior
*/
overscroll: [{
overscroll: se()
}],
/**
* Overscroll Behavior X
* @see https://tailwindcss.com/docs/overscroll-behavior
*/
"overscroll-x": [{
"overscroll-x": se()
}],
/**
* Overscroll Behavior Y
* @see https://tailwindcss.com/docs/overscroll-behavior
*/
"overscroll-y": [{
"overscroll-y": se()
}],
/**
* 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: oe()
}],
/**
* Right / Left
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
"inset-x": [{
"inset-x": oe()
}],
/**
* Top / Bottom
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
"inset-y": [{
"inset-y": oe()
}],
/**
* Start
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
start: [{
start: oe()
}],
/**
* End
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
end: [{
end: oe()
}],
/**
* Top
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
top: [{
top: oe()
}],
/**
* Right
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
right: [{
right: oe()
}],
/**
* Bottom
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
bottom: [{
bottom: oe()
}],
/**
* Left
* @see https://tailwindcss.com/docs/top-right-bottom-left
*/
left: [{
left: oe()
}],
/**
* Visibility
* @see https://tailwindcss.com/docs/visibility
*/
visibility: ["visible", "invisible", "collapse"],
/**
* Z-Index
* @see https://tailwindcss.com/docs/z-index
*/
z: [{
z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
}],
// ------------------------
// --- Flexbox and Grid ---
// ------------------------
/**
* Flex Basis
* @see https://tailwindcss.com/docs/flex-basis
*/
basis: [{
basis: [isFraction, "full", "auto", h, ...je()]
}],
/**
* 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: ["nowrap", "wrap", "wrap-reverse"]
}],
/**
* Flex
* @see https://tailwindcss.com/docs/flex
*/
flex: [{
flex: [isNumber$4, isFraction, "auto", "initial", "none", isArbitraryValue]
}],
/**
* Flex Grow
* @see https://tailwindcss.com/docs/flex-grow
*/
grow: [{
grow: ["", isNumber$4, isArbitraryVariable, isArbitraryValue]
}],
/**
* Flex Shrink
* @see https://tailwindcss.com/docs/flex-shrink
*/
shrink: [{
shrink: ["", isNumber$4, isArbitraryVariable, isArbitraryValue]
}],
/**
* Order
* @see https://tailwindcss.com/docs/order
*/
order: [{
order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
}],
/**
* Grid Template Columns
* @see https://tailwindcss.com/docs/grid-template-columns
*/
"grid-cols": [{
"grid-cols": Be()
}],
/**
* Grid Column Start / End
* @see https://tailwindcss.com/docs/grid-column
*/
"col-start-end": [{
col: ze()
}],
/**
* Grid Column Start
* @see https://tailwindcss.com/docs/grid-column
*/
"col-start": [{
"col-start": ut()
}],
/**
* Grid Column End
* @see https://tailwindcss.com/docs/grid-column
*/
"col-end": [{
"col-end": ut()
}],
/**
* Grid Template Rows
* @see https://tailwindcss.com/docs/grid-template-rows
*/
"grid-rows": [{
"grid-rows": Be()
}],
/**
* Grid Row Start / End
* @see https://tailwindcss.com/docs/grid-row
*/
"row-start-end": [{
row: ze()
}],
/**
* Grid Row Start
* @see https://tailwindcss.com/docs/grid-row
*/
"row-start": [{
"row-start": ut()
}],
/**
* Grid Row End
* @see https://tailwindcss.com/docs/grid-row
*/
"row-end": [{
"row-end": ut()
}],
/**
* 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": Ye()
}],
/**
* Grid Auto Rows
* @see https://tailwindcss.com/docs/grid-auto-rows
*/
"auto-rows": [{
"auto-rows": Ye()
}],
/**
* Gap
* @see https://tailwindcss.com/docs/gap
*/
gap: [{
gap: je()
}],
/**
* Gap X
* @see https://tailwindcss.com/docs/gap
*/
"gap-x": [{
"gap-x": je()
}],
/**
* Gap Y
* @see https://tailwindcss.com/docs/gap
*/
"gap-y": [{
"gap-y": je()
}],
/**
* Justify Content
* @see https://tailwindcss.com/docs/justify-content
*/
"justify-content": [{
justify: [...et(), "normal"]
}],
/**
* Justify Items
* @see https://tailwindcss.com/docs/justify-items
*/
"justify-items": [{
"justify-items": [...j(), "normal"]
}],
/**
* Justify Self
* @see https://tailwindcss.com/docs/justify-self
*/
"justify-self": [{
"justify-self": ["auto", ...j()]
}],
/**
* Align Content
* @see https://tailwindcss.com/docs/align-content
*/
"align-content": [{
content: ["normal", ...et()]
}],
/**
* Align Items
* @see https://tailwindcss.com/docs/align-items