UNPKG

keep-vue

Version:

Keep Vue is an open-source component library built on top of Vue3 and Tailwind CSS. It offers a collection of pre-designed UI components and styles that you can easily integrate into your web applications.

1,806 lines (1,805 loc) 255 kB
import { getCurrentInstance as Je, inject as er, provide as tr, ref as N, watch as Be, nextTick as rr, computed as p, defineComponent as u, onMounted as Ye, openBlock as i, createBlock as v, unref as o, normalizeProps as I, mergeProps as m, withCtx as h, renderSlot as f, createCommentVNode as Re, createElementVNode as x, normalizeClass as k, createElementBlock as g, createVNode as S, Fragment as Y, renderList as te, guardReactiveProps as j, createTextVNode as Me, toDisplayString as ve, withDirectives as gt, isRef as sr, vModelDynamic as ar, mergeModels as ht, useModel as vt, vModelText as or, normalizeStyle as _t, reactive as nr, onUnmounted as lr, toRefs as ir } from "vue"; import { useForwardPropsEmits as M, AccordionRoot as cr, AccordionTrigger as dr, AccordionContent as ur, useForwardProps as A, AccordionItem as pr, AvatarRoot as fr, AvatarFallback as mr, AvatarImage as br, CheckboxRoot as gr, CheckboxIndicator as hr, CalendarCell as vr, CalendarCellTrigger as _r, CalendarGrid as yr, CalendarGridBody as wr, CalendarGridHead as xr, CalendarGridRow as kr, CalendarHeadCell as Cr, CalendarHeader as Pr, CalendarHeading as $r, CalendarNext as Br, CalendarPrev as Dr, CalendarRoot as Sr, RangeCalendarCell as Ar, RangeCalendarCellTrigger as Tr, RangeCalendarGrid as Ir, RangeCalendarGridBody as Lr, RangeCalendarGridHead as zr, RangeCalendarGridRow as Er, RangeCalendarHeadCell as Rr, RangeCalendarHeader as Mr, RangeCalendarHeading as Fr, RangeCalendarNext as Or, RangeCalendarPrev as jr, RangeCalendarRoot as Vr, DropdownMenuRoot as Nr, DropdownMenuTrigger as Gr, DropdownMenuArrow as Hr, DropdownMenuCheckboxItem as Kr, DropdownMenuItemIndicator as yt, DropdownMenuPortal as Wr, DropdownMenuContent as Zr, DropdownMenuSeparator as Ur, DropdownMenuGroup as qr, DropdownMenuItem as Jr, DropdownMenuLabel as Yr, DropdownMenuRadioGroup as Qr, DropdownMenuRadioItem as Xr, DropdownMenuSub as es, DropdownMenuSubTrigger as ts, DropdownMenuSubContent as rs, PinInputRoot as ss, Primitive as wt, PinInputInput as as, DialogRoot as xt, DialogTrigger as kt, DialogClose as Ct, DialogPortal as Pt, DialogOverlay as os, DialogContent as $t, DialogDescription as Bt, DialogTitle as Dt, PopoverRoot as ns, PopoverTrigger as ls, PopoverArrow as is, PopoverPortal as cs, PopoverContent as ds, SelectRoot as us, SelectTrigger as ps, SelectIcon as fs, SelectScrollDownButton as ms, SelectScrollUpButton as bs, SelectPortal as gs, SelectContent as hs, SelectViewport as vs, SelectSeparator as _s, SelectGroup as ys, SelectItem as ws, SelectItemIndicator as xs, SelectItemText as ks, SelectLabel as Cs, SelectValue as Ps, SliderRoot as $s, SliderTrack as Bs, SliderRange as Ds, SliderThumb as Ss, SwitchRoot as As, SwitchThumb as Ts, TooltipProvider as Is, TooltipRoot as Ls, TooltipTrigger as zs, TooltipArrow as Es, TooltipPortal as Rs, TooltipContent as Ms, VisuallyHidden as Fs } from "radix-vue"; import Os from "embla-carousel-vue"; import { DrawerRoot as js, DrawerOverlay as Vs, DrawerPortal as Ns, DrawerContent as Gs, DrawerDescription as Hs, DrawerTitle as Ks } from "vaul-vue"; import { DrawerTrigger as Uc, DrawerClose as qc, DrawerPortal as Jc } from "vaul-vue"; import { Toaster as Ws } from "vue-sonner"; import { toast as Qc } from "vue-sonner"; const ge = /* @__PURE__ */ new WeakMap(), Zs = (...t) => { var e; const r = t[0], s = (e = Je()) == null ? void 0 : e.proxy; if (s == null) throw new Error("injectLocal must be called in setup"); return ge.has(s) && r in ge.get(s) ? ge.get(s)[r] : er(...t); }, Us = (t, e) => { var r; const s = (r = Je()) == null ? void 0 : r.proxy; if (s == null) throw new Error("provideLocal must be called in setup"); ge.has(s) || ge.set(s, /* @__PURE__ */ Object.create(null)); const a = ge.get(s); a[t] = e, tr(t, e); }; function q(t, e) { const r = e?.injectionKey || Symbol(t.name || "InjectionState"), s = e?.defaultValue; return [(...l) => { const d = t(...l); return Us(r, d), d; }, () => Zs(r, s)]; } typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope; const qs = (t) => typeof t < "u"; function Js(t) { return JSON.parse(JSON.stringify(t)); } function St(t, e, r, s = {}) { var a, n, l; const { clone: d = !1, passive: _ = !1, eventName: b, deep: w = !1, defaultValue: C, shouldEmit: B } = s, L = Je(), z = r || L?.emit || ((a = L?.$emit) == null ? void 0 : a.bind(L)) || ((l = (n = L?.proxy) == null ? void 0 : n.$emit) == null ? void 0 : l.bind(L?.proxy)); let T = b; T = T || `update:${e.toString()}`; const E = (O) => d ? typeof d == "function" ? d(O) : Js(O) : O, R = () => qs(t[e]) ? E(t[e]) : C, V = (O) => { B ? B(O) && z(T, O) : z(T, O); }; if (_) { const O = R(), W = N(O); let X = !1; return Be( () => t[e], (se) => { X || (X = !0, W.value = E(se), rr(() => X = !1)); } ), Be( W, (se) => { !X && (se !== t[e] || w) && V(se); }, { deep: w } ), W; } else return p({ get() { return R(); }, set(O) { V(O); } }); } const Ys = "accordion-store", [Qs, Xs] = q( (t) => ({ flush: t }), { injectionKey: Ys } ); function ea() { const t = Xs(); if (t == null) throw new Error( "Please call `useProvideAccordionStore` on the appropriate parent component" ); return t; } const Un = /* @__PURE__ */ u({ __name: "Accordion", props: { collapsible: { type: Boolean }, disabled: { type: Boolean }, dir: {}, orientation: {}, asChild: { type: Boolean }, as: {}, type: { default: "single" }, modelValue: {}, defaultValue: {}, flush: { type: Boolean } }, emits: ["update:modelValue"], setup(t, { emit: e }) { const r = t, s = e, a = p(() => { const { flush: _, ...b } = r; return b; }), n = M(a, s), l = p(() => r.flush); Qs(l); const d = N(!1); return Ye(() => { d.value = !0; }), (_, b) => d.value ? (i(), v(o(cr), I(m({ key: 0 }, o(n))), { default: h(() => [ f(_.$slots, "default") ]), _: 3 }, 16)) : Re("", !0); } }); function At(t) { var e, r, s = ""; if (typeof t == "string" || typeof t == "number") s += t; else if (typeof t == "object") if (Array.isArray(t)) { var a = t.length; for (e = 0; e < a; e++) t[e] && (r = At(t[e])) && (s && (s += " "), s += r); } else for (r in t) t[r] && (s && (s += " "), s += r); return s; } function ta() { for (var t, e, r = 0, s = "", a = arguments.length; r < a; r++) (t = arguments[r]) && (e = At(t)) && (s && (s += " "), s += e); return s; } const Qe = "-", ra = (t) => { const e = aa(t), { conflictingClassGroups: r, conflictingClassGroupModifiers: s } = t; return { getClassGroupId: (l) => { const d = l.split(Qe); return d[0] === "" && d.length !== 1 && d.shift(), Tt(d, e) || sa(l); }, getConflictingClassGroupIds: (l, d) => { const _ = r[l] || []; return d && s[l] ? [..._, ...s[l]] : _; } }; }, Tt = (t, e) => { if (t.length === 0) return e.classGroupId; const r = t[0], s = e.nextPart.get(r), a = s ? Tt(t.slice(1), s) : void 0; if (a) return a; if (e.validators.length === 0) return; const n = t.join(Qe); return e.validators.find(({ validator: l }) => l(n))?.classGroupId; }, rt = /^\[(.+)\]$/, sa = (t) => { if (rt.test(t)) { const e = rt.exec(t)[1], r = e?.substring(0, e.indexOf(":")); if (r) return "arbitrary.." + r; } }, aa = (t) => { const { theme: e, prefix: r } = t, s = { nextPart: /* @__PURE__ */ new Map(), validators: [] }; return na(Object.entries(t.classGroups), r).forEach(([n, l]) => { Ke(l, s, n, e); }), s; }, Ke = (t, e, r, s) => { t.forEach((a) => { if (typeof a == "string") { const n = a === "" ? e : st(e, a); n.classGroupId = r; return; } if (typeof a == "function") { if (oa(a)) { Ke(a(s), e, r, s); return; } e.validators.push({ validator: a, classGroupId: r }); return; } Object.entries(a).forEach(([n, l]) => { Ke(l, st(e, n), r, s); }); }); }, st = (t, e) => { let r = t; return e.split(Qe).forEach((s) => { r.nextPart.has(s) || r.nextPart.set(s, { nextPart: /* @__PURE__ */ new Map(), validators: [] }), r = r.nextPart.get(s); }), r; }, oa = (t) => t.isThemeGetter, na = (t, e) => e ? t.map(([r, s]) => { const a = s.map((n) => typeof n == "string" ? e + n : typeof n == "object" ? Object.fromEntries(Object.entries(n).map(([l, d]) => [e + l, d])) : n); return [r, a]; }) : t, la = (t) => { if (t < 1) return { get: () => { }, set: () => { } }; let e = 0, r = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(); const a = (n, l) => { r.set(n, l), e++, e > t && (e = 0, s = r, r = /* @__PURE__ */ new Map()); }; return { get(n) { let l = r.get(n); if (l !== void 0) return l; if ((l = s.get(n)) !== void 0) return a(n, l), l; }, set(n, l) { r.has(n) ? r.set(n, l) : a(n, l); } }; }, It = "!", ia = (t) => { const { separator: e, experimentalParseClassName: r } = t, s = e.length === 1, a = e[0], n = e.length, l = (d) => { const _ = []; let b = 0, w = 0, C; for (let E = 0; E < d.length; E++) { let R = d[E]; if (b === 0) { if (R === a && (s || d.slice(E, E + n) === e)) { _.push(d.slice(w, E)), w = E + n; continue; } if (R === "/") { C = E; continue; } } R === "[" ? b++ : R === "]" && b--; } const B = _.length === 0 ? d : d.substring(w), L = B.startsWith(It), z = L ? B.substring(1) : B, T = C && C > w ? C - w : void 0; return { modifiers: _, hasImportantModifier: L, baseClassName: z, maybePostfixModifierPosition: T }; }; return r ? (d) => r({ className: d, parseClassName: l }) : l; }, ca = (t) => { if (t.length <= 1) return t; const e = []; let r = []; return t.forEach((s) => { s[0] === "[" ? (e.push(...r.sort(), s), r = []) : r.push(s); }), e.push(...r.sort()), e; }, da = (t) => ({ cache: la(t.cacheSize), parseClassName: ia(t), ...ra(t) }), ua = /\s+/, pa = (t, e) => { const { parseClassName: r, getClassGroupId: s, getConflictingClassGroupIds: a } = e, n = [], l = t.trim().split(ua); let d = ""; for (let _ = l.length - 1; _ >= 0; _ -= 1) { const b = l[_], { modifiers: w, hasImportantModifier: C, baseClassName: B, maybePostfixModifierPosition: L } = r(b); let z = !!L, T = s(z ? B.substring(0, L) : B); if (!T) { if (!z) { d = b + (d.length > 0 ? " " + d : d); continue; } if (T = s(B), !T) { d = b + (d.length > 0 ? " " + d : d); continue; } z = !1; } const E = ca(w).join(":"), R = C ? E + It : E, V = R + T; if (n.includes(V)) continue; n.push(V); const O = a(T, z); for (let W = 0; W < O.length; ++W) { const X = O[W]; n.push(R + X); } d = b + (d.length > 0 ? " " + d : d); } return d; }; function fa() { let t = 0, e, r, s = ""; for (; t < arguments.length; ) (e = arguments[t++]) && (r = Lt(e)) && (s && (s += " "), s += r); return s; } const Lt = (t) => { if (typeof t == "string") return t; let e, r = ""; for (let s = 0; s < t.length; s++) t[s] && (e = Lt(t[s])) && (r && (r += " "), r += e); return r; }; function at(t, ...e) { let r, s, a, n = l; function l(_) { const b = e.reduce((w, C) => C(w), t()); return r = da(b), s = r.cache.get, a = r.cache.set, n = d, d(_); } function d(_) { const b = s(_); if (b) return b; const w = pa(_, r); return a(_, w), w; } return function() { return n(fa.apply(null, arguments)); }; } const F = (t) => { const e = (r) => r[t] || []; return e.isThemeGetter = !0, e; }, zt = /^\[(?:([a-z-]+):)?(.+)\]$/i, ma = /^\d+\/\d+$/, ba = /* @__PURE__ */ new Set(["px", "full", "screen"]), ga = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, ha = /\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$/, va = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, _a = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, ya = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, oe = (t) => he(t) || ba.has(t) || ma.test(t), ie = (t) => _e(t, "length", Da), he = (t) => !!t && !Number.isNaN(Number(t)), Ne = (t) => _e(t, "number", he), ke = (t) => !!t && Number.isInteger(Number(t)), wa = (t) => t.endsWith("%") && he(t.slice(0, -1)), P = (t) => zt.test(t), ce = (t) => ga.test(t), xa = /* @__PURE__ */ new Set(["length", "size", "percentage"]), ka = (t) => _e(t, xa, Et), Ca = (t) => _e(t, "position", Et), Pa = /* @__PURE__ */ new Set(["image", "url"]), $a = (t) => _e(t, Pa, Aa), Ba = (t) => _e(t, "", Sa), Ce = () => !0, _e = (t, e, r) => { const s = zt.exec(t); return s ? s[1] ? typeof e == "string" ? s[1] === e : e.has(s[1]) : r(s[2]) : !1; }, Da = (t) => ( // `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. ha.test(t) && !va.test(t) ), Et = () => !1, Sa = (t) => _a.test(t), Aa = (t) => ya.test(t), ot = () => { const t = F("colors"), e = F("spacing"), r = F("blur"), s = F("brightness"), a = F("borderColor"), n = F("borderRadius"), l = F("borderSpacing"), d = F("borderWidth"), _ = F("contrast"), b = F("grayscale"), w = F("hueRotate"), C = F("invert"), B = F("gap"), L = F("gradientColorStops"), z = F("gradientColorStopPositions"), T = F("inset"), E = F("margin"), R = F("opacity"), V = F("padding"), O = F("saturate"), W = F("scale"), X = F("sepia"), se = F("skew"), ye = F("space"), we = F("translate"), xe = () => ["auto", "contain", "none"], y = () => ["auto", "hidden", "clip", "visible", "scroll"], D = () => ["auto", P, e], $ = () => [P, e], H = () => ["", oe, ie], G = () => ["auto", he, P], Z = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], J = () => ["solid", "dashed", "dotted", "double", "none"], pe = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], le = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], ee = () => ["", "0", P], fe = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], K = () => [he, P]; return { cacheSize: 500, separator: ":", theme: { colors: [Ce], spacing: [oe, ie], blur: ["none", "", ce, P], brightness: K(), borderColor: [t], borderRadius: ["none", "", "full", ce, P], borderSpacing: $(), borderWidth: H(), contrast: K(), grayscale: ee(), hueRotate: K(), invert: ee(), gap: $(), gradientColorStops: [t], gradientColorStopPositions: [wa, ie], inset: D(), margin: D(), opacity: K(), padding: $(), saturate: K(), scale: K(), sepia: ee(), skew: K(), space: $(), translate: $() }, classGroups: { // Layout /** * Aspect Ratio * @see https://tailwindcss.com/docs/aspect-ratio */ aspect: [{ aspect: ["auto", "square", "video", P] }], /** * Container * @see https://tailwindcss.com/docs/container */ container: ["container"], /** * Columns * @see https://tailwindcss.com/docs/columns */ columns: [{ columns: [ce] }], /** * Break After * @see https://tailwindcss.com/docs/break-after */ "break-after": [{ "break-after": fe() }], /** * Break Before * @see https://tailwindcss.com/docs/break-before */ "break-before": [{ "break-before": fe() }], /** * 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: [...Z(), P] }], /** * Overflow * @see https://tailwindcss.com/docs/overflow */ overflow: [{ overflow: y() }], /** * Overflow X * @see https://tailwindcss.com/docs/overflow */ "overflow-x": [{ "overflow-x": y() }], /** * Overflow Y * @see https://tailwindcss.com/docs/overflow */ "overflow-y": [{ "overflow-y": y() }], /** * Overscroll Behavior * @see https://tailwindcss.com/docs/overscroll-behavior */ overscroll: [{ overscroll: xe() }], /** * Overscroll Behavior X * @see https://tailwindcss.com/docs/overscroll-behavior */ "overscroll-x": [{ "overscroll-x": xe() }], /** * Overscroll Behavior Y * @see https://tailwindcss.com/docs/overscroll-behavior */ "overscroll-y": [{ "overscroll-y": xe() }], /** * 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: [T] }], /** * Right / Left * @see https://tailwindcss.com/docs/top-right-bottom-left */ "inset-x": [{ "inset-x": [T] }], /** * Top / Bottom * @see https://tailwindcss.com/docs/top-right-bottom-left */ "inset-y": [{ "inset-y": [T] }], /** * Start * @see https://tailwindcss.com/docs/top-right-bottom-left */ start: [{ start: [T] }], /** * End * @see https://tailwindcss.com/docs/top-right-bottom-left */ end: [{ end: [T] }], /** * Top * @see https://tailwindcss.com/docs/top-right-bottom-left */ top: [{ top: [T] }], /** * Right * @see https://tailwindcss.com/docs/top-right-bottom-left */ right: [{ right: [T] }], /** * Bottom * @see https://tailwindcss.com/docs/top-right-bottom-left */ bottom: [{ bottom: [T] }], /** * Left * @see https://tailwindcss.com/docs/top-right-bottom-left */ left: [{ left: [T] }], /** * Visibility * @see https://tailwindcss.com/docs/visibility */ visibility: ["visible", "invisible", "collapse"], /** * Z-Index * @see https://tailwindcss.com/docs/z-index */ z: [{ z: ["auto", ke, P] }], // Flexbox and Grid /** * Flex Basis * @see https://tailwindcss.com/docs/flex-basis */ basis: [{ basis: D() }], /** * 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", P] }], /** * Flex Grow * @see https://tailwindcss.com/docs/flex-grow */ grow: [{ grow: ee() }], /** * Flex Shrink * @see https://tailwindcss.com/docs/flex-shrink */ shrink: [{ shrink: ee() }], /** * Order * @see https://tailwindcss.com/docs/order */ order: [{ order: ["first", "last", "none", ke, P] }], /** * Grid Template Columns * @see https://tailwindcss.com/docs/grid-template-columns */ "grid-cols": [{ "grid-cols": [Ce] }], /** * Grid Column Start / End * @see https://tailwindcss.com/docs/grid-column */ "col-start-end": [{ col: ["auto", { span: ["full", ke, P] }, P] }], /** * Grid Column Start * @see https://tailwindcss.com/docs/grid-column */ "col-start": [{ "col-start": G() }], /** * Grid Column End * @see https://tailwindcss.com/docs/grid-column */ "col-end": [{ "col-end": G() }], /** * Grid Template Rows * @see https://tailwindcss.com/docs/grid-template-rows */ "grid-rows": [{ "grid-rows": [Ce] }], /** * Grid Row Start / End * @see https://tailwindcss.com/docs/grid-row */ "row-start-end": [{ row: ["auto", { span: [ke, P] }, P] }], /** * Grid Row Start * @see https://tailwindcss.com/docs/grid-row */ "row-start": [{ "row-start": G() }], /** * Grid Row End * @see https://tailwindcss.com/docs/grid-row */ "row-end": [{ "row-end": G() }], /** * 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", P] }], /** * Grid Auto Rows * @see https://tailwindcss.com/docs/grid-auto-rows */ "auto-rows": [{ "auto-rows": ["auto", "min", "max", "fr", P] }], /** * Gap * @see https://tailwindcss.com/docs/gap */ gap: [{ gap: [B] }], /** * Gap X * @see https://tailwindcss.com/docs/gap */ "gap-x": [{ "gap-x": [B] }], /** * Gap Y * @see https://tailwindcss.com/docs/gap */ "gap-y": [{ "gap-y": [B] }], /** * Justify Content * @see https://tailwindcss.com/docs/justify-content */ "justify-content": [{ justify: ["normal", ...le()] }], /** * 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", ...le(), "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": [...le(), "baseline"] }], /** * Place Items * @see https://tailwindcss.com/docs/place-items */ "place-items": [{ "place-items": ["start", "end", "center", "baseline", "stretch"] }], /** * Place Self * @see https://tailwindcss.com/docs/place-self */ "place-self": [{ "place-self": ["auto", "start", "end", "center", "stretch"] }], // Spacing /** * Padding * @see https://tailwindcss.com/docs/padding */ p: [{ p: [V] }], /** * Padding X * @see https://tailwindcss.com/docs/padding */ px: [{ px: [V] }], /** * Padding Y * @see https://tailwindcss.com/docs/padding */ py: [{ py: [V] }], /** * Padding Start * @see https://tailwindcss.com/docs/padding */ ps: [{ ps: [V] }], /** * Padding End * @see https://tailwindcss.com/docs/padding */ pe: [{ pe: [V] }], /** * Padding Top * @see https://tailwindcss.com/docs/padding */ pt: [{ pt: [V] }], /** * Padding Right * @see https://tailwindcss.com/docs/padding */ pr: [{ pr: [V] }], /** * Padding Bottom * @see https://tailwindcss.com/docs/padding */ pb: [{ pb: [V] }], /** * Padding Left * @see https://tailwindcss.com/docs/padding */ pl: [{ pl: [V] }], /** * Margin * @see https://tailwindcss.com/docs/margin */ m: [{ m: [E] }], /** * Margin X * @see https://tailwindcss.com/docs/margin */ mx: [{ mx: [E] }], /** * Margin Y * @see https://tailwindcss.com/docs/margin */ my: [{ my: [E] }], /** * Margin Start * @see https://tailwindcss.com/docs/margin */ ms: [{ ms: [E] }], /** * Margin End * @see https://tailwindcss.com/docs/margin */ me: [{ me: [E] }], /** * Margin Top * @see https://tailwindcss.com/docs/margin */ mt: [{ mt: [E] }], /** * Margin Right * @see https://tailwindcss.com/docs/margin */ mr: [{ mr: [E] }], /** * Margin Bottom * @see https://tailwindcss.com/docs/margin */ mb: [{ mb: [E] }], /** * Margin Left * @see https://tailwindcss.com/docs/margin */ ml: [{ ml: [E] }], /** * Space Between X * @see https://tailwindcss.com/docs/space */ "space-x": [{ "space-x": [ye] }], /** * 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": [ye] }], /** * 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", P, e] }], /** * Min-Width * @see https://tailwindcss.com/docs/min-width */ "min-w": [{ "min-w": [P, e, "min", "max", "fit"] }], /** * Max-Width * @see https://tailwindcss.com/docs/max-width */ "max-w": [{ "max-w": [P, e, "none", "full", "min", "max", "fit", "prose", { screen: [ce] }, ce] }], /** * Height * @see https://tailwindcss.com/docs/height */ h: [{ h: [P, e, "auto", "min", "max", "fit", "svh", "lvh", "dvh"] }], /** * Min-Height * @see https://tailwindcss.com/docs/min-height */ "min-h": [{ "min-h": [P, e, "min", "max", "fit", "svh", "lvh", "dvh"] }], /** * Max-Height * @see https://tailwindcss.com/docs/max-height */ "max-h": [{ "max-h": [P, e, "min", "max", "fit", "svh", "lvh", "dvh"] }], /** * Size * @see https://tailwindcss.com/docs/size */ size: [{ size: [P, e, "auto", "min", "max", "fit"] }], // Typography /** * Font Size * @see https://tailwindcss.com/docs/font-size */ "font-size": [{ text: ["base", ce, ie] }], /** * 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", Ne] }], /** * Font Family * @see https://tailwindcss.com/docs/font-family */ "font-family": [{ font: [Ce] }], /** * 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-fractons"], /** * Letter Spacing * @see https://tailwindcss.com/docs/letter-spacing */ tracking: [{ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", P] }], /** * Line Clamp * @see https://tailwindcss.com/docs/line-clamp */ "line-clamp": [{ "line-clamp": ["none", he, Ne] }], /** * Line Height * @see https://tailwindcss.com/docs/line-height */ leading: [{ leading: ["none", "tight", "snug", "normal", "relaxed", "loose", oe, P] }], /** * List Style Image * @see https://tailwindcss.com/docs/list-style-image */ "list-image": [{ "list-image": ["none", P] }], /** * List Style Type * @see https://tailwindcss.com/docs/list-style-type */ "list-style-type": [{ list: ["none", "disc", "decimal", P] }], /** * 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: [t] }], /** * Placeholder Opacity * @see https://tailwindcss.com/docs/placeholder-opacity */ "placeholder-opacity": [{ "placeholder-opacity": [R] }], /** * 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: [t] }], /** * Text Opacity * @see https://tailwindcss.com/docs/text-opacity */ "text-opacity": [{ "text-opacity": [R] }], /** * 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: [...J(), "wavy"] }], /** * Text Decoration Thickness * @see https://tailwindcss.com/docs/text-decoration-thickness */ "text-decoration-thickness": [{ decoration: ["auto", "from-font", oe, ie] }], /** * Text Underline Offset * @see https://tailwindcss.com/docs/text-underline-offset */ "underline-offset": [{ "underline-offset": ["auto", oe, P] }], /** * Text Decoration Color * @see https://tailwindcss.com/docs/text-decoration-color */ "text-decoration-color": [{ decoration: [t] }], /** * 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: $() }], /** * Vertical Alignment * @see https://tailwindcss.com/docs/vertical-align */ "vertical-align": [{ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", P] }], /** * 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", P] }], // 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": [R] }], /** * 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: [...Z(), Ca] }], /** * 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", ka] }], /** * Background Image * @see https://tailwindcss.com/docs/background-image */ "bg-image": [{ bg: ["none", { "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"] }, $a] }], /** * Background Color * @see https://tailwindcss.com/docs/background-color */ "bg-color": [{ bg: [t] }], /** * Gradient Color Stops From Position * @see https://tailwindcss.com/docs/gradient-color-stops */ "gradient-from-pos": [{ from: [z] }], /** * Gradient Color Stops Via Position * @see https://tailwindcss.com/docs/gradient-color-stops */ "gradient-via-pos": [{ via: [z] }], /** * Gradient Color Stops To Position * @see https://tailwindcss.com/docs/gradient-color-stops */ "gradient-to-pos": [{ to: [z] }], /** * Gradient Color Stops From * @see https://tailwindcss.com/docs/gradient-color-stops */ "gradient-from": [{ from: [L] }], /** * Gradient Color Stops Via * @see https://tailwindcss.com/docs/gradient-color-stops */ "gradient-via": [{ via: [L] }], /** * Gradient Color Stops To * @see https://tailwindcss.com/docs/gradient-color-stops */ "gradient-to": [{ to: [L] }], // Borders /** * Border Radius * @see https://tailwindcss.com/docs/border-radius */ rounded: [{ rounded: [n] }], /** * Border Radius Start * @see https://tailwindcss.com/docs/border-radius */ "rounded-s": [{ "rounded-s": [n] }], /** * Border Radius End * @see https://tailwindcss.com/docs/border-radius */ "rounded-e": [{ "rounded-e": [n] }], /** * Border Radius Top * @see https://tailwindcss.com/docs/border-radius */ "rounded-t": [{ "rounded-t": [n] }], /** * Border Radius Right * @see https://tailwindcss.com/docs/border-radius */ "rounded-r": [{ "rounded-r": [n] }], /** * Border Radius Bottom * @see https://tailwindcss.com/docs/border-radius */ "rounded-b": [{ "rounded-b": [n] }], /** * Border Radius Left * @see https://tailwindcss.com/docs/border-radius */ "rounded-l": [{ "rounded-l": [n] }], /** * Border Radius Start Start * @see https://tailwindcss.com/docs/border-radius */ "rounded-ss": [{ "rounded-ss": [n] }], /** * Border Radius Start End * @see https://tailwindcss.com/docs/border-radius */ "rounded-se": [{ "rounded-se": [n] }], /** * Border Radius End End * @see https://tailwindcss.com/docs/border-radius */ "rounded-ee": [{ "rounded-ee": [n] }], /** * Border Radius End Start * @see https://tailwindcss.com/docs/border-radius */ "rounded-es": [{ "rounded-es": [n] }], /** * Border Radius Top Left * @see https://tailwindcss.com/docs/border-radius */ "rounded-tl": [{ "rounded-tl": [n] }], /** * Border Radius Top Right * @see https://tailwindcss.com/docs/border-radius */ "rounded-tr": [{ "rounded-tr": [n] }], /** * Border Radius Bottom Right * @see https://tailwindcss.com/docs/border-radius */ "rounded-br": [{ "rounded-br": [n] }], /** * Border Radius Bottom Left * @see https://tailwindcss.com/docs/border-radius */ "rounded-bl": [{ "rounded-bl": [n] }], /** * Border Width * @see https://tailwindcss.com/docs/border-width */ "border-w": [{ border: [d] }], /** * Border Width X * @see https://tailwindcss.com/docs/border-width */ "border-w-x": [{ "border-x": [d] }], /** * Border Width Y * @see https://tailwindcss.com/docs/border-width */ "border-w-y": [{ "border-y": [d] }], /** * Border Width Start * @see https://tailwindcss.com/docs/border-width */ "border-w-s": [{ "border-s": [d] }], /** * Border Width End * @see https://tailwindcss.com/docs/border-width */ "border-w-e": [{ "border-e": [d] }], /** * Border Width Top * @see https://tailwindcss.com/docs/border-width */ "border-w-t": [{ "border-t": [d] }], /** * Border Width Right * @see https://tailwindcss.com/docs/border-width */ "border-w-r": [{ "border-r": [d] }], /** * Border Width Bottom * @see https://tailwindcss.com/docs/border-width */ "border-w-b": [{ "border-b": [d] }], /** * Border Width Left * @see https://tailwindcss.com/docs/border-width */ "border-w-l": [{ "border-l": [d] }], /** * Border Opacity * @see https://tailwindcss.com/docs/border-opacity */ "border-opacity": [{ "border-opacity": [R] }], /** * Border Style * @see https://tailwindcss.com/docs/border-style */ "border-style": [{ border: [...J(), "hidden"] }], /** * Divide Width X * @see https://tailwindcss.com/docs/divide-width */ "divide-x": [{ "divide-x": [d] }], /** * 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": [d] }], /** * 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": [R] }], /** * Divide Style * @see https://tailwindcss.com/docs/divide-style */ "divide-style": [{ divide: J() }], /** * Border Color * @see https://tailwindcss.com/docs/border-color */ "border-color": [{ border: [a] }], /** * Border Color X * @see https://tailwindcss.com/docs/border-color */ "border-color-x": [{ "border-x": [a] }], /** * Border Color Y * @see https://tailwindcss.com/docs/border-color */ "border-color-y": [{ "border-y": [a] }], /** * Border Color S * @see https://tailwindcss.com/docs/border-color */ "border-color-s": [{ "border-s": [a] }], /** * Border Color E * @see https://tailwindcss.com/docs/border-color */ "border-color-e": [{ "border-e": [a] }], /** * Border Color Top * @see https://tailwindcss.com/docs/border-color */ "border-color-t": [{ "border-t": [a] }], /** * Border Color Right * @see https://tailwindcss.com/docs/border-color */ "border-color-r": [{ "border-r": [a] }], /** * Border Color Bottom * @see https://tailwindcss.com/docs/border-color */ "border-color-b": [{ "border-b": [a] }], /** * Border Color Left * @see https://tailwindcss.com/docs/border-color */ "border-color-l": [{ "border-l": [a] }], /** * Divide Color * @see https://tailwindcss.com/docs/divide-color */ "divide-color": [{ divide: [a] }], /** * Outline Style * @see https://tailwindcss.com/docs/outline-style */ "outline-style": [{ outline: ["", ...J()] }], /** * Outline Offset * @see https://tailwindcss.com/docs/outline-offset */ "outline-offset": [{ "outline-offset": [oe, P] }], /** * Outline Width * @see https://tailwindcss.com/docs/outline-width */ "outline-w": [{ outline: [oe, ie] }], /** * Outline Color * @see https://tailwindcss.com/docs/outline-color */ "outline-color": [{ outline: [t] }], /** * Ring Width * @see https://tailwindcss.com/docs/ring-width */ "ring-w": [{ ring: H() }], /** * 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: [t] }], /** * Ring Opacity * @see https://tailwindcss.com/docs/ring-opacity */ "ring-opacity": [{ "ring-opacity": [R] }], /** * Ring Offset Width * @see https://tailwindcss.com/docs/ring-offset-width */ "ring-offset-w": [{ "ring-offset": [oe, ie] }], /** * Ring Offset Color * @see https://tailwindcss.com/docs/ring-offset-color */ "ring-offset-color": [{ "ring-offset": [t] }], // Effects /** * Box Shadow * @see https://tailwindcss.com/docs/box-shadow */ shadow: [{ shadow: ["", "inner", "none", ce, Ba] }], /** * Box Shadow Color * @see https://tailwindcss.com/docs/box-shadow-color */ "shadow-color": [{ shadow: [Ce] }], /** * Opacity * @see https://tailwindcss.com/docs/opacity */ opacity: [{ opacity: [R] }], /** * Mix Blend Mode * @see https://tailwindcss.com/docs/mix-blend-mode */ "mix-blend": [{ "mix-blend": [...pe(), "plus-lighter", "plus-darker"] }], /** * Background Blend Mode * @see https://tailwindcss.com/docs/background-blend-mode */ "bg-blend": [{ "bg-blend": pe() }], // 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: [s] }], /** * Contrast * @see https://tailwindcss.com/docs/contrast */ contrast: [{ contrast: [_] }], /** * Drop Shadow * @see https://tailwindcss.com/docs/drop-shadow */ "drop-shadow": [{ "drop-shadow": ["", "none", ce, P] }], /** * Grayscale * @see https://tailwindcss.com/docs/grayscale */