UNPKG

@fluster.io/dev

Version:

1,538 lines (1,537 loc) 2.62 MB
var xa = Object.defineProperty; var _a = (e, t, n) => t in e ? xa(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n; var V = (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 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 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(Ue) { if (Ue == null) return null; if (typeof Ue == "function") return Ue.$$typeof === Be ? null : Ue.displayName || Ue.name || null; if (typeof Ue == "string") return Ue; switch (Ue) { case R: return "Fragment"; case j: return "Profiler"; case E: return "StrictMode"; case Oe: return "Suspense"; case te: return "SuspenseList"; case oe: return "Activity"; } if (typeof Ue == "object") switch (typeof Ue.tag == "number" && console.error( "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." ), Ue.$$typeof) { case C: return "Portal"; case Q: return (Ue.displayName || "Context") + ".Provider"; case q: return (Ue._context.displayName || "Context") + ".Consumer"; case se: var ut = Ue.render; return Ue = Ue.displayName, Ue || (Ue = ut.displayName || ut.name || "", Ue = Ue !== "" ? "ForwardRef(" + Ue + ")" : "ForwardRef"), Ue; case ge: return ut = Ue.displayName || null, ut !== null ? ut : e(Ue.type) || "Memo"; case je: ut = Ue._payload, Ue = Ue._init; try { return e(Ue(ut)); } catch { } } return null; } function t(Ue) { return "" + Ue; } function n(Ue) { try { t(Ue); var ut = !1; } catch { ut = !0; } if (ut) { ut = console; var nt = ut.error, et = typeof Symbol == "function" && Symbol.toStringTag && Ue[Symbol.toStringTag] || Ue.constructor.name || "Object"; return nt.call( ut, "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", et ), t(Ue); } } function o(Ue) { if (Ue === R) return "<>"; if (typeof Ue == "object" && Ue !== null && Ue.$$typeof === je) return "<...>"; try { var ut = e(Ue); return ut ? "<" + ut + ">" : "<...>"; } catch { return "<...>"; } } function l() { var Ue = ze.A; return Ue === null ? null : Ue.getOwner(); } function d() { return Error("react-stack-top-frame"); } function f(Ue) { if (lt.call(Ue, "key")) { var ut = Object.getOwnPropertyDescriptor(Ue, "key").get; if (ut && ut.isReactWarning) return !1; } return Ue.key !== void 0; } function h(Ue, ut) { function nt() { A || (A = !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)", ut )); } nt.isReactWarning = !0, Object.defineProperty(Ue, "key", { get: nt, configurable: !0 }); } function g() { var Ue = e(this.type); return I[Ue] || (I[Ue] = !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." )), Ue = this.props.ref, Ue !== void 0 ? Ue : null; } function y(Ue, ut, nt, et, ct, pt, bt, Ye) { return nt = pt.ref, Ue = { $$typeof: w, type: Ue, key: ut, props: pt, _owner: ct }, (nt !== void 0 ? nt : null) !== null ? Object.defineProperty(Ue, "ref", { enumerable: !1, get: g }) : Object.defineProperty(Ue, "ref", { enumerable: !1, value: null }), Ue._store = {}, Object.defineProperty(Ue._store, "validated", { configurable: !1, enumerable: !1, writable: !0, value: 0 }), Object.defineProperty(Ue, "_debugInfo", { configurable: !1, enumerable: !1, writable: !0, value: null }), Object.defineProperty(Ue, "_debugStack", { configurable: !1, enumerable: !1, writable: !0, value: bt }), Object.defineProperty(Ue, "_debugTask", { configurable: !1, enumerable: !1, writable: !0, value: Ye }), Object.freeze && (Object.freeze(Ue.props), Object.freeze(Ue)), Ue; } function v(Ue, ut, nt, et, ct, pt, bt, Ye) { var gt = ut.children; if (gt !== void 0) if (et) if (Ze(gt)) { for (et = 0; et < gt.length; et++) b(gt[et]); Object.freeze && Object.freeze(gt); } 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 b(gt); if (lt.call(ut, "key")) { gt = e(Ue); var xt = Object.keys(ut).filter(function(Tt) { return Tt !== "key"; }); et = 0 < xt.length ? "{key: someKey, " + xt.join(": ..., ") + ": ...}" : "{key: someKey}", at[gt + et] || (xt = 0 < xt.length ? "{" + xt.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} />`, et, gt, xt, gt ), at[gt + et] = !0); } if (gt = null, nt !== void 0 && (n(nt), gt = "" + nt), f(ut) && (n(ut.key), gt = "" + ut.key), "key" in ut) { nt = {}; for (var Et in ut) Et !== "key" && (nt[Et] = ut[Et]); } else nt = ut; return gt && h( nt, typeof Ue == "function" ? Ue.displayName || Ue.name || "Unknown" : Ue ), y( Ue, gt, pt, ct, l(), nt, bt, Ye ); } function b(Ue) { typeof Ue == "object" && Ue !== null && Ue.$$typeof === w && Ue._store && (Ue._store.validated = 1); } var x = React__default, w = Symbol.for("react.transitional.element"), C = Symbol.for("react.portal"), R = Symbol.for("react.fragment"), E = Symbol.for("react.strict_mode"), j = Symbol.for("react.profiler"), q = Symbol.for("react.consumer"), Q = Symbol.for("react.context"), se = Symbol.for("react.forward_ref"), Oe = Symbol.for("react.suspense"), te = Symbol.for("react.suspense_list"), ge = Symbol.for("react.memo"), je = Symbol.for("react.lazy"), oe = Symbol.for("react.activity"), Be = Symbol.for("react.client.reference"), ze = x.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, lt = Object.prototype.hasOwnProperty, Ze = Array.isArray, Je = console.createTask ? console.createTask : function() { return null; }; x = { "react-stack-bottom-frame": function(Ue) { return Ue(); } }; var A, I = {}, He = x["react-stack-bottom-frame"].bind( x, d )(), Fe = Je(o(d)), at = {}; reactJsxRuntime_development.Fragment = R, reactJsxRuntime_development.jsx = function(Ue, ut, nt, et, ct) { var pt = 1e4 > ze.recentlyCreatedOwnerStacks++; return v( Ue, ut, nt, !1, et, ct, pt ? Error("react-stack-top-frame") : He, pt ? Je(o(Ue)) : Fe ); }, reactJsxRuntime_development.jsxs = function(Ue, ut, nt, et, ct) { var pt = 1e4 > ze.recentlyCreatedOwnerStacks++; return v( Ue, ut, nt, !0, et, ct, pt ? Error("react-stack-top-frame") : He, pt ? Je(o(Ue)) : Fe ); }; }()), 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 R = l[C]; if (f === 0 && h === 0) { if (R === MODIFIER_SEPARATOR) { d.push(l.slice(g, C)), g = C + MODIFIER_SEPARATOR_LENGTH; continue; } if (R === "/") { y = C; continue; } } R === "[" ? f++ : R === "]" ? f-- : R === "(" ? h++ : R === ")" && h--; } const v = d.length === 0 ? l : l.substring(g), b = stripImportantModifier(v), x = b !== v, w = y && y > g ? y - g : void 0; return { modifiers: d, hasImportantModifier: x, baseClassName: b, maybePostfixModifierPosition: w }; }; 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: b, modifiers: x, hasImportantModifier: w, baseClassName: C, maybePostfixModifierPosition: R } = n(v); if (b) { g = v + (g.length > 0 ? " " + g : g); continue; } let E = !!R, j = o(E ? C.substring(0, R) : C); if (!j) { if (!E) { g = v + (g.length > 0 ? " " + g : g); continue; } if (j = o(C), !j) { g = v + (g.length > 0 ? " " + g : g); continue; } E = !1; } const q = d(x).join(":"), Q = w ? q + IMPORTANT_MODIFIER : q, se = Q + j; if (f.includes(se)) continue; f.push(se); const Oe = l(j, E); for (let te = 0; te < Oe.length; ++te) { const ge = Oe[te]; f.push(Q + ge); } 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, b) => b(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"), b = fromTheme("inset-shadow"), x = fromTheme("text-shadow"), w = fromTheme("drop-shadow"), C = fromTheme("blur"), R = fromTheme("perspective"), E = fromTheme("aspect"), j = fromTheme("ease"), q = fromTheme("animate"), Q = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], se = () => [ "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" ], Oe = () => [...se(), isArbitraryVariable, isArbitraryValue], te = () => ["auto", "hidden", "clip", "visible", "scroll"], ge = () => ["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], lt = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue], Ze = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue], Je = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], A = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], I = () => ["auto", ...je()], He = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...je()], Fe = () => [e, isArbitraryVariable, isArbitraryValue], at = () => [...se(), isArbitraryVariablePosition, isArbitraryPosition, { position: [isArbitraryVariable, isArbitraryValue] }], Ue = () => ["no-repeat", { repeat: ["", "x", "y", "space", "round"] }], ut = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, { size: [isArbitraryVariable, isArbitraryValue] }], nt = () => [isPercent$1, isArbitraryVariableLength, isArbitraryLength], et = () => [ // Deprecated since Tailwind CSS v4.0.0 "", "none", "full", y, isArbitraryVariable, isArbitraryValue ], ct = () => ["", isNumber$4, isArbitraryVariableLength, isArbitraryLength], pt = () => ["solid", "dashed", "dotted", "double"], bt = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], Ye = () => [isNumber$4, isPercent$1, isArbitraryVariablePosition, isArbitraryPosition], gt = () => [ // Deprecated since Tailwind CSS v4.0.0 "", "none", C, isArbitraryVariable, isArbitraryValue ], xt = () => ["none", isNumber$4, isArbitraryVariable, isArbitraryValue], Et = () => ["none", isNumber$4, isArbitraryVariable, isArbitraryValue], Tt = () => [isNumber$4, isArbitraryVariable, isArbitraryValue], _t = () => [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, E] }], /** * 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: Oe() }], /** * Overflow * @see https://tailwindcss.com/docs/overflow */ overflow: [{ overflow: te() }], /** * Overflow X * @see https://tailwindcss.com/docs/overflow */ "overflow-x": [{ "overflow-x": te() }], /** * Overflow Y * @see https://tailwindcss.com/docs/overflow */ "overflow-y": [{ "overflow-y": te() }], /** * Overscroll Behavior * @see https://tailwindcss.com/docs/overscroll-behavior */ overscroll: [{ overscroll: ge() }], /** * Overscroll Behavior X * @see https://tailwindcss.com/docs/overscroll-behavior */ "overscroll-x": [{ "overscroll-x": ge() }], /** * Overscroll Behavior Y * @see https://tailwindcss.com/docs/overscroll-behavior */ "overscroll-y": [{ "overscroll-y": ge() }], /** * 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": lt() }], /** * Grid Column End * @see https://tailwindcss.com/docs/grid-column */ "col-end": [{ "col-end": lt() }], /** * 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": lt() }], /** * Grid Row End * @see https://tailwindcss.com/docs/grid-row */ "row-end": [{ "row-end": lt() }], /** * 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": Ze() }], /** * Grid Auto Rows * @see https://tailwindcss.com/docs/grid-auto-rows */ "auto-rows": [{ "auto-rows": Ze() }], /** * 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: [...Je(), "normal"] }], /** * Justify Items * @see https://tailwindcss.com/docs/justify-items */ "justify-items": [{ "justify-items": [...A(), "normal"] }], /** * Justify Self * @see https://tailwindcss.com/docs/justify-self */ "justify-self": [{ "justify-self": ["auto", ...A()] }], /** * Align Content * @see https://tailwindcss.com/docs/align-content */ "align-content": [{ content: ["normal", ...Je()] }], /** * Align Items * @see https://tailwindcss.com/docs/align-items */ "align-items": [{ items: [...A(), { baseline: ["", "last"] }] }], /** * Align Self * @see https://tailwindcss.com/docs/align-self */ "align-self": [{ self: ["auto", ...A(), { baseline: ["", "last"] }] }], /** * Place Content * @see https://tailwindcss.com/docs/place-content */ "place-content": [{ "place-content": Je() }], /** * Place Items * @see https://tailwindcss.com/docs/place-items */ "place-items": [{ "place-items": [...A(), "baseline"] }], /** * Place Self * @see https://tailwindcss.com/docs/place-self */ "place-self": [{ "place-self": ["auto", ...A()] }], // Spacing /** * Padding * @see https://tailwindcss.com/docs/padding */ p: [{ p: je() }], /** * Padding X * @see https://tailwindcss.com/docs/padding */ px: [{ px: je() }], /** * Padding Y * @see https://tailwindcss.com/docs/padding */ py: [{ py: je() }], /** * Padding Start * @see https://tailwindcss.com/docs/padding */ ps: [{ ps: je() }], /** * Padding End * @see https://tailwindcss.com/docs/padding */ pe: [{ pe: je() }], /** * Padding Top * @see https://tailwindcss.com/docs/padding */ pt: [{ pt: je() }], /** * Padding Right * @see https://tailwindcss.com/docs/padding */ pr: [{ pr: je() }], /** * Padding Bottom * @see https://tailwindcss.com/docs/padding */ pb: [{ pb: je() }], /** * Padding Left * @see https://tailwindcss.com/docs/padding */ pl: [{ pl: je() }], /** * Margin * @see https://tailwindcss.com/docs/margin */ m: [{ m: I() }], /** * Margin X * @see https://tailwindcss.com/docs/margin */ mx: [{ mx: I() }], /** * Margin Y * @see https://tailwindcss.com/docs/margin */ my: [{ my: I() }], /** * Margin Start * @see https://tailwindcss.com/docs/margin */ ms: [{ ms: I() }], /** * Margin End * @see https://tailwindcss.com/docs/margin */ me: [{ me: I() }], /** * Margin Top * @see https://tailwindcss.com/docs/margin */ mt: [{ mt: I() }], /** * Margin Right * @see https://tailwindcss.com/docs/margin */ mr: [{ mr: I() }], /** * Margin Bottom * @see https://tailwindcss.com/docs/margin */ mb: [{ mb: I() }], /** * Margin Left * @see https://tailwindcss.com/docs/margin */ ml: [{ ml: I() }], /** * Space Between X * @see https://tailwindcss.com/docs/margin#adding-space-between-children */ "space-x": [{ "space-x": je() }], /** * Space Between X Reverse * @see https://tailwindcss.com/docs/margin#adding-space-between-children */ "space-x-reverse": ["space-x-reverse"], /** * Space Between Y * @see https://tailwindcss.com/docs/margin#adding-space-between-children */ "space-y": [{ "space-y": je() }], /** * Space Between Y Reverse * @see https://tailwindcss.com/docs/margin#adding-space-between-children */ "space-y-reverse": ["space-y-reverse"], // -------------- // --- Sizing --- // -------------- /** * Size * @see https://tailwindcss.com/docs/width#setting-both-width-and-height */ size: [{ size: He() }], /** * Width * @see https://tailwindcss.com/docs/width */ w: [{ w: [h, "screen", ...He()] }], /** * Min-Width * @see https://tailwindcss.com/docs/min-width */ "min-w": [{ "min-w": [ h, "screen", /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ "none", ...He() ] }], /** * Max-Width * @see https://tailwindcss.com/docs/max-width */ "max-w": [{ "max-w": [ h, "screen", "none", /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ "prose", /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ { screen: [f] }, ...He() ] }], /** * Height * @see https://tailwindcss.com/docs/height */ h: [{ h: ["screen", "lh", ...He()] }], /** * Min-Height * @see https://tailwindcss.com/docs/min-height */ "min-h": [{ "min-h": ["screen", "lh", "none", ...He()] }], /** * Max-Height * @see https://tailwindcss.com/docs/max-height */ "max-h": [{ "max-h": ["screen", "lh", ...He()] }], // ------------------ // --- Typography --- // ------------------ /** * Font Size * @see https://tailwindcss.com/docs/font-size */ "font-size": [{ text: ["base", n, isArbitraryVariableLength, isArbitraryLength] }], /** * 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: [o, isArbitraryVariable, isArbitraryNumber] }], /** * Font Stretch * @see https://tailwindcss.com/docs/font-stretch */ "font-stretch": [{ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent$1, isArbitraryValue] }], /** * Font Family * @see https://tailwindcss.com/docs/font-family */ "font-family": [{ font: [isArbitraryVariableFamilyName, isArbitraryValue, t] }], /** * 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: [l, isArbitraryVariable, isArbitraryValue] }], /** * Line Clamp * @see https://tailwindcss.com/docs/line-clamp */ "line-clamp": [{ "line-clamp": [isNumber$4, "none", isArbitraryVariable, isArbitraryNumber] }], /** * Line Height * @see https://tailwindcss.com/docs/line-height */ leading: [{ leading: [ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ d, ...je() ] }], /** * List Style Image * @see https://tailwindcss.com/docs/list-style-image */ "list-image": [{ "list-image": ["none", isArbitraryVariable, isArbitraryValue] }], /** * List Style Position * @see https://tailwindcss.com/docs/list-style-position */ "list-style-position": [{ list: ["inside", "outside"] }], /** * List Style Type * @see https://tailwindcss.com/docs/list-style-type */ "list-style-type": [{ list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue] }], /** * Text Alignment * @see https://tailwindcss.com/docs/text-align */ "text-alignment": [{ text: ["left", "center", "right", "justify", "start", "end"] }], /** * Placeholder Color * @deprecated since Tailwind CSS v3.0.0 * @see https://v3.tailwindcss.com/docs/placeholder-color */ "placeholder-color": [{ placeholder: Fe() }], /** * Text Color * @see https://tailwindcss.com/docs/text-color */ "text-color": [{ text: Fe() }], /** * 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: [...pt(), "wavy"] }], /** * Text Decoration Thickness * @see https://tailwindcss.com/docs/text-decoration-thickness */ "text-decoration-thickness": [{ decoration: [isNumber$4, "from-font", "auto", isArbitraryVariable, isArbitraryLength] }], /** * Text Decoration Color * @see https://tailwindcss.com/docs/text-decoration-color */ "text-decoration-color": [{ decoration: Fe() }], /** * Text Underline Offset * @see https://tailwindcss.com/docs/text-underline-offset */ "underline-offset": [{ "underline-offset": [isNumber$4, "auto", isArbitraryVariable, isArbitraryValue] }], /** * 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: je() }], /** * Vertical Alignment * @see https://tailwindcss.com/docs/vertical-align */ "vertical-align": [{ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue] }], /** * 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"] }], /** * Overflow Wrap * @see https://tailwindcss.com/docs/overflow-wrap */ wrap: [{ wrap: ["break-word", "anywhere", "normal"] }], /** * Hyphens * @see https://tailwindcss.com/docs/hyphens */ hyphens: [{ hyphens: ["none", "manual", "auto"] }], /** * Content * @see https://tailwindcss.com/docs/content */ content: [{ content: ["none", isArbitraryVariable, isArbitraryValue] }],