@sudobility/building_blocks 0.0.31 → 0.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import React, { useState, useRef, useMemo, useCallback, useEffect, createContext } from "react";
3
- import { TopbarProvider, Topbar, TopbarLeft, TopbarNavigation, TopbarLogo, Logo, TopbarCenter, TopbarRight, TopbarActions, TopbarMobileContent, BreadcrumbSection, Footer, FooterCompact, FooterCompactLeft, FooterVersion, FooterCopyright, FooterCompactRight, FooterGrid, FooterLinkSection, FooterLink, FooterBottom, FooterBrand, FooterSocialLinks, LayoutProvider, Label, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Card, CardContent, Button } from "@sudobility/components";
2
+ import React, { useState, useRef, useMemo, useCallback, useEffect } from "react";
3
+ import { TopbarProvider, Topbar, TopbarLeft, TopbarNavigation, TopbarLogo, Logo, TopbarCenter, TopbarRight, TopbarActions, TopbarMobileContent, BreadcrumbSection, Footer, FooterCompact, FooterCompactLeft, FooterVersion, FooterCopyright, FooterCompactRight, FooterGrid, FooterLinkSection, FooterLink, FooterBottom, FooterBrand, FooterSocialLinks, LayoutProvider, Label, Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from "@sudobility/components";
4
4
  import { clsx } from "clsx";
5
5
  import { twMerge } from "tailwind-merge";
6
6
  import { ChevronDownIcon, CalendarDaysIcon, PaintBrushIcon, ChevronLeftIcon, LanguageIcon, ChevronRightIcon, EnvelopeIcon, DocumentTextIcon, CogIcon, HomeIcon } from "@heroicons/react/24/outline";
7
7
  import { GRADIENT_CLASSES, textVariants } from "@sudobility/design";
8
8
  import { cva } from "class-variance-authority";
9
+ import { SubscriptionLayout, SubscriptionTile, SegmentedControl } from "@sudobility/subscription-components";
9
10
  import { createUserWithEmailAndPassword, signInWithEmailAndPassword, GoogleAuthProvider, signInWithPopup } from "firebase/auth";
10
11
  function cn(...inputs) {
11
12
  return twMerge(clsx(inputs));
@@ -44,7 +45,7 @@ const LanguageSelector = ({
44
45
  const [isOpen, setIsOpen] = useState(false);
45
46
  const dropdownRef = useRef(null);
46
47
  const sortedLanguages = useMemo(
47
- () => [...languages].sort((a, b2) => a.name.localeCompare(b2.name)),
48
+ () => [...languages].sort((a, b) => a.name.localeCompare(b.name)),
48
49
  [languages]
49
50
  );
50
51
  const currentLang = useMemo(
@@ -1106,3171 +1107,6 @@ const GlobalSettingsPage = ({
1106
1107
  ] }) })
1107
1108
  ] });
1108
1109
  };
1109
- function Ie(e) {
1110
- var o, r, t = "";
1111
- if (typeof e == "string" || typeof e == "number") t += e;
1112
- else if (typeof e == "object") if (Array.isArray(e)) {
1113
- var n = e.length;
1114
- for (o = 0; o < n; o++) e[o] && (r = Ie(e[o])) && (t && (t += " "), t += r);
1115
- } else for (r in e) e[r] && (t && (t += " "), t += r);
1116
- return t;
1117
- }
1118
- function Xe() {
1119
- for (var e, o, r = 0, t = "", n = arguments.length; r < n; r++) (e = arguments[r]) && (o = Ie(e)) && (t && (t += " "), t += o);
1120
- return t;
1121
- }
1122
- const Je = (e, o) => {
1123
- const r = new Array(e.length + o.length);
1124
- for (let t = 0; t < e.length; t++)
1125
- r[t] = e[t];
1126
- for (let t = 0; t < o.length; t++)
1127
- r[e.length + t] = o[t];
1128
- return r;
1129
- }, He = (e, o) => ({
1130
- classGroupId: e,
1131
- validator: o
1132
- }), Re = (e = /* @__PURE__ */ new Map(), o = null, r) => ({
1133
- nextPart: e,
1134
- validators: o,
1135
- classGroupId: r
1136
- }), me = "-", Ce = [], Qe = "arbitrary..", Ze = (e) => {
1137
- const o = tt(e), {
1138
- conflictingClassGroups: r,
1139
- conflictingClassGroupModifiers: t
1140
- } = e;
1141
- return {
1142
- getClassGroupId: (a) => {
1143
- if (a.startsWith("[") && a.endsWith("]"))
1144
- return et(a);
1145
- const p = a.split(me), c = p[0] === "" && p.length > 1 ? 1 : 0;
1146
- return Me(p, c, o);
1147
- },
1148
- getConflictingClassGroupIds: (a, p) => {
1149
- if (p) {
1150
- const c = t[a], h = r[a];
1151
- return c ? h ? Je(h, c) : c : h || Ce;
1152
- }
1153
- return r[a] || Ce;
1154
- }
1155
- };
1156
- }, Me = (e, o, r) => {
1157
- if (e.length - o === 0)
1158
- return r.classGroupId;
1159
- const n = e[o], s = r.nextPart.get(n);
1160
- if (s) {
1161
- const h = Me(e, o + 1, s);
1162
- if (h) return h;
1163
- }
1164
- const a = r.validators;
1165
- if (a === null)
1166
- return;
1167
- const p = o === 0 ? e.join(me) : e.slice(o).join(me), c = a.length;
1168
- for (let h = 0; h < c; h++) {
1169
- const x = a[h];
1170
- if (x.validator(p))
1171
- return x.classGroupId;
1172
- }
1173
- }, et = (e) => e.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
1174
- const o = e.slice(1, -1), r = o.indexOf(":"), t = o.slice(0, r);
1175
- return t ? Qe + t : void 0;
1176
- })(), tt = (e) => {
1177
- const {
1178
- theme: o,
1179
- classGroups: r
1180
- } = e;
1181
- return rt(r, o);
1182
- }, rt = (e, o) => {
1183
- const r = Re();
1184
- for (const t in e) {
1185
- const n = e[t];
1186
- we(n, r, t, o);
1187
- }
1188
- return r;
1189
- }, we = (e, o, r, t) => {
1190
- const n = e.length;
1191
- for (let s = 0; s < n; s++) {
1192
- const a = e[s];
1193
- ot(a, o, r, t);
1194
- }
1195
- }, ot = (e, o, r, t) => {
1196
- if (typeof e == "string") {
1197
- nt(e, o, r);
1198
- return;
1199
- }
1200
- if (typeof e == "function") {
1201
- st(e, o, r, t);
1202
- return;
1203
- }
1204
- at(e, o, r, t);
1205
- }, nt = (e, o, r) => {
1206
- const t = e === "" ? o : De(o, e);
1207
- t.classGroupId = r;
1208
- }, st = (e, o, r, t) => {
1209
- if (it(e)) {
1210
- we(e(t), o, r, t);
1211
- return;
1212
- }
1213
- o.validators === null && (o.validators = []), o.validators.push(He(r, e));
1214
- }, at = (e, o, r, t) => {
1215
- const n = Object.entries(e), s = n.length;
1216
- for (let a = 0; a < s; a++) {
1217
- const [p, c] = n[a];
1218
- we(c, De(o, p), r, t);
1219
- }
1220
- }, De = (e, o) => {
1221
- let r = e;
1222
- const t = o.split(me), n = t.length;
1223
- for (let s = 0; s < n; s++) {
1224
- const a = t[s];
1225
- let p = r.nextPart.get(a);
1226
- p || (p = Re(), r.nextPart.set(a, p)), r = p;
1227
- }
1228
- return r;
1229
- }, it = (e) => "isThemeGetter" in e && e.isThemeGetter === true, lt = (e) => {
1230
- if (e < 1)
1231
- return {
1232
- get: () => {
1233
- },
1234
- set: () => {
1235
- }
1236
- };
1237
- let o = 0, r = /* @__PURE__ */ Object.create(null), t = /* @__PURE__ */ Object.create(null);
1238
- const n = (s, a) => {
1239
- r[s] = a, o++, o > e && (o = 0, t = r, r = /* @__PURE__ */ Object.create(null));
1240
- };
1241
- return {
1242
- get(s) {
1243
- let a = r[s];
1244
- if (a !== void 0)
1245
- return a;
1246
- if ((a = t[s]) !== void 0)
1247
- return n(s, a), a;
1248
- },
1249
- set(s, a) {
1250
- s in r ? r[s] = a : n(s, a);
1251
- }
1252
- };
1253
- }, xe = "!", Pe = ":", ct = [], ze = (e, o, r, t, n) => ({
1254
- modifiers: e,
1255
- hasImportantModifier: o,
1256
- baseClassName: r,
1257
- maybePostfixModifierPosition: t,
1258
- isExternal: n
1259
- }), dt = (e) => {
1260
- const {
1261
- prefix: o,
1262
- experimentalParseClassName: r
1263
- } = e;
1264
- let t = (n) => {
1265
- const s = [];
1266
- let a = 0, p = 0, c = 0, h;
1267
- const x = n.length;
1268
- for (let z = 0; z < x; z++) {
1269
- const k = n[z];
1270
- if (a === 0 && p === 0) {
1271
- if (k === Pe) {
1272
- s.push(n.slice(c, z)), c = z + 1;
1273
- continue;
1274
- }
1275
- if (k === "/") {
1276
- h = z;
1277
- continue;
1278
- }
1279
- }
1280
- k === "[" ? a++ : k === "]" ? a-- : k === "(" ? p++ : k === ")" && p--;
1281
- }
1282
- const S = s.length === 0 ? n : n.slice(c);
1283
- let w = S, y = false;
1284
- S.endsWith(xe) ? (w = S.slice(0, -1), y = true) : (
1285
- /**
1286
- * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
1287
- * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
1288
- */
1289
- S.startsWith(xe) && (w = S.slice(1), y = true)
1290
- );
1291
- const j = h && h > c ? h - c : void 0;
1292
- return ze(s, y, w, j);
1293
- };
1294
- if (o) {
1295
- const n = o + Pe, s = t;
1296
- t = (a) => a.startsWith(n) ? s(a.slice(n.length)) : ze(ct, false, a, void 0, true);
1297
- }
1298
- if (r) {
1299
- const n = t;
1300
- t = (s) => r({
1301
- className: s,
1302
- parseClassName: n
1303
- });
1304
- }
1305
- return t;
1306
- }, mt = (e) => {
1307
- const o = /* @__PURE__ */ new Map();
1308
- return e.orderSensitiveModifiers.forEach((r, t) => {
1309
- o.set(r, 1e6 + t);
1310
- }), (r) => {
1311
- const t = [];
1312
- let n = [];
1313
- for (let s = 0; s < r.length; s++) {
1314
- const a = r[s], p = a[0] === "[", c = o.has(a);
1315
- p || c ? (n.length > 0 && (n.sort(), t.push(...n), n = []), t.push(a)) : n.push(a);
1316
- }
1317
- return n.length > 0 && (n.sort(), t.push(...n)), t;
1318
- };
1319
- }, ut = (e) => ({
1320
- cache: lt(e.cacheSize),
1321
- parseClassName: dt(e),
1322
- sortModifiers: mt(e),
1323
- ...Ze(e)
1324
- }), ft = /\s+/, pt = (e, o) => {
1325
- const {
1326
- parseClassName: r,
1327
- getClassGroupId: t,
1328
- getConflictingClassGroupIds: n,
1329
- sortModifiers: s
1330
- } = o, a = [], p = e.trim().split(ft);
1331
- let c = "";
1332
- for (let h = p.length - 1; h >= 0; h -= 1) {
1333
- const x = p[h], {
1334
- isExternal: S,
1335
- modifiers: w,
1336
- hasImportantModifier: y,
1337
- baseClassName: j,
1338
- maybePostfixModifierPosition: z
1339
- } = r(x);
1340
- if (S) {
1341
- c = x + (c.length > 0 ? " " + c : c);
1342
- continue;
1343
- }
1344
- let k = !!z, D = t(k ? j.substring(0, z) : j);
1345
- if (!D) {
1346
- if (!k) {
1347
- c = x + (c.length > 0 ? " " + c : c);
1348
- continue;
1349
- }
1350
- if (D = t(j), !D) {
1351
- c = x + (c.length > 0 ? " " + c : c);
1352
- continue;
1353
- }
1354
- k = false;
1355
- }
1356
- const F = w.length === 0 ? "" : w.length === 1 ? w[0] : s(w).join(":"), M = y ? F + xe : F, L = M + D;
1357
- if (a.indexOf(L) > -1)
1358
- continue;
1359
- a.push(L);
1360
- const N = n(D, k);
1361
- for (let C = 0; C < N.length; ++C) {
1362
- const E = N[C];
1363
- a.push(M + E);
1364
- }
1365
- c = x + (c.length > 0 ? " " + c : c);
1366
- }
1367
- return c;
1368
- }, gt = (...e) => {
1369
- let o = 0, r, t, n = "";
1370
- for (; o < e.length; )
1371
- (r = e[o++]) && (t = Ee(r)) && (n && (n += " "), n += t);
1372
- return n;
1373
- }, Ee = (e) => {
1374
- if (typeof e == "string")
1375
- return e;
1376
- let o, r = "";
1377
- for (let t = 0; t < e.length; t++)
1378
- e[t] && (o = Ee(e[t])) && (r && (r += " "), r += o);
1379
- return r;
1380
- }, bt = (e, ...o) => {
1381
- let r, t, n, s;
1382
- const a = (c) => {
1383
- const h = o.reduce((x, S) => S(x), e());
1384
- return r = ut(h), t = r.cache.get, n = r.cache.set, s = p, p(c);
1385
- }, p = (c) => {
1386
- const h = t(c);
1387
- if (h)
1388
- return h;
1389
- const x = pt(c, r);
1390
- return n(c, x), x;
1391
- };
1392
- return s = a, (...c) => s(gt(...c));
1393
- }, ht = [], A = (e) => {
1394
- const o = (r) => r[e] || ht;
1395
- return o.isThemeGetter = true, o;
1396
- }, Oe = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, Te = /^\((?:(\w[\w-]*):)?(.+)\)$/i, xt = /^\d+\/\d+$/, wt = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, yt = /\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$/, kt = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/, vt = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Ct = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, Z = (e) => xt.test(e), b = (e) => !!e && !Number.isNaN(Number(e)), q = (e) => !!e && Number.isInteger(Number(e)), fe = (e) => e.endsWith("%") && b(e.slice(0, -1)), B = (e) => wt.test(e), Pt = () => true, zt = (e) => (
1397
- // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
1398
- // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
1399
- // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
1400
- yt.test(e) && !kt.test(e)
1401
- ), Ge = () => false, Nt = (e) => vt.test(e), At = (e) => Ct.test(e), St = (e) => !i(e) && !l(e), It = (e) => ee(e, _e, Ge), i = (e) => Oe.test(e), X = (e) => ee(e, Fe, zt), pe = (e) => ee(e, Ot, b), Ne = (e) => ee(e, je, Ge), Rt = (e) => ee(e, Le, At), ce = (e) => ee(e, Ve, Nt), l = (e) => Te.test(e), ne = (e) => te(e, Fe), Mt = (e) => te(e, Tt), Ae = (e) => te(e, je), Dt = (e) => te(e, _e), Et = (e) => te(e, Le), de = (e) => te(e, Ve, true), ee = (e, o, r) => {
1402
- const t = Oe.exec(e);
1403
- return t ? t[1] ? o(t[1]) : r(t[2]) : false;
1404
- }, te = (e, o, r = false) => {
1405
- const t = Te.exec(e);
1406
- return t ? t[1] ? o(t[1]) : r : false;
1407
- }, je = (e) => e === "position" || e === "percentage", Le = (e) => e === "image" || e === "url", _e = (e) => e === "length" || e === "size" || e === "bg-size", Fe = (e) => e === "length", Ot = (e) => e === "number", Tt = (e) => e === "family-name", Ve = (e) => e === "shadow", Gt = () => {
1408
- const e = A("color"), o = A("font"), r = A("text"), t = A("font-weight"), n = A("tracking"), s = A("leading"), a = A("breakpoint"), p = A("container"), c = A("spacing"), h = A("radius"), x = A("shadow"), S = A("inset-shadow"), w = A("text-shadow"), y = A("drop-shadow"), j = A("blur"), z = A("perspective"), k = A("aspect"), D = A("ease"), F = A("animate"), M = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], L = () => [
1409
- "center",
1410
- "top",
1411
- "bottom",
1412
- "left",
1413
- "right",
1414
- "top-left",
1415
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1416
- "left-top",
1417
- "top-right",
1418
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1419
- "right-top",
1420
- "bottom-right",
1421
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1422
- "right-bottom",
1423
- "bottom-left",
1424
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
1425
- "left-bottom"
1426
- ], N = () => [...L(), l, i], C = () => ["auto", "hidden", "clip", "visible", "scroll"], E = () => ["auto", "contain", "none"], m = () => [l, i, c], V = () => [Z, "full", "auto", ...m()], J = () => [q, "none", "subgrid", l, i], H = () => ["auto", {
1427
- span: ["full", q, l, i]
1428
- }, q, l, i], I = () => [q, "auto", l, i], U = () => ["auto", "min", "max", "fr", l, i], re = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], u = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], f = () => ["auto", ...m()], v = () => [Z, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...m()], d = () => [e, l, i], O = () => [...L(), Ae, Ne, {
1429
- position: [l, i]
1430
- }], W = () => ["no-repeat", {
1431
- repeat: ["", "x", "y", "space", "round"]
1432
- }], Q = () => ["auto", "cover", "contain", Dt, It, {
1433
- size: [l, i]
1434
- }], oe = () => [fe, ne, X], _ = () => [
1435
- // Deprecated since Tailwind CSS v4.0.0
1436
- "",
1437
- "none",
1438
- "full",
1439
- h,
1440
- l,
1441
- i
1442
- ], $ = () => ["", b, ne, X], se = () => ["solid", "dashed", "dotted", "double"], ye = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], R = () => [b, fe, Ae, Ne], ke = () => [
1443
- // Deprecated since Tailwind CSS v4.0.0
1444
- "",
1445
- "none",
1446
- j,
1447
- l,
1448
- i
1449
- ], ae = () => ["none", b, l, i], ie = () => ["none", b, l, i], ue = () => [b, l, i], le = () => [Z, "full", ...m()];
1450
- return {
1451
- cacheSize: 500,
1452
- theme: {
1453
- animate: ["spin", "ping", "pulse", "bounce"],
1454
- aspect: ["video"],
1455
- blur: [B],
1456
- breakpoint: [B],
1457
- color: [Pt],
1458
- container: [B],
1459
- "drop-shadow": [B],
1460
- ease: ["in", "out", "in-out"],
1461
- font: [St],
1462
- "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
1463
- "inset-shadow": [B],
1464
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
1465
- perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
1466
- radius: [B],
1467
- shadow: [B],
1468
- spacing: ["px", b],
1469
- text: [B],
1470
- "text-shadow": [B],
1471
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
1472
- },
1473
- classGroups: {
1474
- // --------------
1475
- // --- Layout ---
1476
- // --------------
1477
- /**
1478
- * Aspect Ratio
1479
- * @see https://tailwindcss.com/docs/aspect-ratio
1480
- */
1481
- aspect: [{
1482
- aspect: ["auto", "square", Z, i, l, k]
1483
- }],
1484
- /**
1485
- * Container
1486
- * @see https://tailwindcss.com/docs/container
1487
- * @deprecated since Tailwind CSS v4.0.0
1488
- */
1489
- container: ["container"],
1490
- /**
1491
- * Columns
1492
- * @see https://tailwindcss.com/docs/columns
1493
- */
1494
- columns: [{
1495
- columns: [b, i, l, p]
1496
- }],
1497
- /**
1498
- * Break After
1499
- * @see https://tailwindcss.com/docs/break-after
1500
- */
1501
- "break-after": [{
1502
- "break-after": M()
1503
- }],
1504
- /**
1505
- * Break Before
1506
- * @see https://tailwindcss.com/docs/break-before
1507
- */
1508
- "break-before": [{
1509
- "break-before": M()
1510
- }],
1511
- /**
1512
- * Break Inside
1513
- * @see https://tailwindcss.com/docs/break-inside
1514
- */
1515
- "break-inside": [{
1516
- "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
1517
- }],
1518
- /**
1519
- * Box Decoration Break
1520
- * @see https://tailwindcss.com/docs/box-decoration-break
1521
- */
1522
- "box-decoration": [{
1523
- "box-decoration": ["slice", "clone"]
1524
- }],
1525
- /**
1526
- * Box Sizing
1527
- * @see https://tailwindcss.com/docs/box-sizing
1528
- */
1529
- box: [{
1530
- box: ["border", "content"]
1531
- }],
1532
- /**
1533
- * Display
1534
- * @see https://tailwindcss.com/docs/display
1535
- */
1536
- 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"],
1537
- /**
1538
- * Screen Reader Only
1539
- * @see https://tailwindcss.com/docs/display#screen-reader-only
1540
- */
1541
- sr: ["sr-only", "not-sr-only"],
1542
- /**
1543
- * Floats
1544
- * @see https://tailwindcss.com/docs/float
1545
- */
1546
- float: [{
1547
- float: ["right", "left", "none", "start", "end"]
1548
- }],
1549
- /**
1550
- * Clear
1551
- * @see https://tailwindcss.com/docs/clear
1552
- */
1553
- clear: [{
1554
- clear: ["left", "right", "both", "none", "start", "end"]
1555
- }],
1556
- /**
1557
- * Isolation
1558
- * @see https://tailwindcss.com/docs/isolation
1559
- */
1560
- isolation: ["isolate", "isolation-auto"],
1561
- /**
1562
- * Object Fit
1563
- * @see https://tailwindcss.com/docs/object-fit
1564
- */
1565
- "object-fit": [{
1566
- object: ["contain", "cover", "fill", "none", "scale-down"]
1567
- }],
1568
- /**
1569
- * Object Position
1570
- * @see https://tailwindcss.com/docs/object-position
1571
- */
1572
- "object-position": [{
1573
- object: N()
1574
- }],
1575
- /**
1576
- * Overflow
1577
- * @see https://tailwindcss.com/docs/overflow
1578
- */
1579
- overflow: [{
1580
- overflow: C()
1581
- }],
1582
- /**
1583
- * Overflow X
1584
- * @see https://tailwindcss.com/docs/overflow
1585
- */
1586
- "overflow-x": [{
1587
- "overflow-x": C()
1588
- }],
1589
- /**
1590
- * Overflow Y
1591
- * @see https://tailwindcss.com/docs/overflow
1592
- */
1593
- "overflow-y": [{
1594
- "overflow-y": C()
1595
- }],
1596
- /**
1597
- * Overscroll Behavior
1598
- * @see https://tailwindcss.com/docs/overscroll-behavior
1599
- */
1600
- overscroll: [{
1601
- overscroll: E()
1602
- }],
1603
- /**
1604
- * Overscroll Behavior X
1605
- * @see https://tailwindcss.com/docs/overscroll-behavior
1606
- */
1607
- "overscroll-x": [{
1608
- "overscroll-x": E()
1609
- }],
1610
- /**
1611
- * Overscroll Behavior Y
1612
- * @see https://tailwindcss.com/docs/overscroll-behavior
1613
- */
1614
- "overscroll-y": [{
1615
- "overscroll-y": E()
1616
- }],
1617
- /**
1618
- * Position
1619
- * @see https://tailwindcss.com/docs/position
1620
- */
1621
- position: ["static", "fixed", "absolute", "relative", "sticky"],
1622
- /**
1623
- * Top / Right / Bottom / Left
1624
- * @see https://tailwindcss.com/docs/top-right-bottom-left
1625
- */
1626
- inset: [{
1627
- inset: V()
1628
- }],
1629
- /**
1630
- * Right / Left
1631
- * @see https://tailwindcss.com/docs/top-right-bottom-left
1632
- */
1633
- "inset-x": [{
1634
- "inset-x": V()
1635
- }],
1636
- /**
1637
- * Top / Bottom
1638
- * @see https://tailwindcss.com/docs/top-right-bottom-left
1639
- */
1640
- "inset-y": [{
1641
- "inset-y": V()
1642
- }],
1643
- /**
1644
- * Start
1645
- * @see https://tailwindcss.com/docs/top-right-bottom-left
1646
- */
1647
- start: [{
1648
- start: V()
1649
- }],
1650
- /**
1651
- * End
1652
- * @see https://tailwindcss.com/docs/top-right-bottom-left
1653
- */
1654
- end: [{
1655
- end: V()
1656
- }],
1657
- /**
1658
- * Top
1659
- * @see https://tailwindcss.com/docs/top-right-bottom-left
1660
- */
1661
- top: [{
1662
- top: V()
1663
- }],
1664
- /**
1665
- * Right
1666
- * @see https://tailwindcss.com/docs/top-right-bottom-left
1667
- */
1668
- right: [{
1669
- right: V()
1670
- }],
1671
- /**
1672
- * Bottom
1673
- * @see https://tailwindcss.com/docs/top-right-bottom-left
1674
- */
1675
- bottom: [{
1676
- bottom: V()
1677
- }],
1678
- /**
1679
- * Left
1680
- * @see https://tailwindcss.com/docs/top-right-bottom-left
1681
- */
1682
- left: [{
1683
- left: V()
1684
- }],
1685
- /**
1686
- * Visibility
1687
- * @see https://tailwindcss.com/docs/visibility
1688
- */
1689
- visibility: ["visible", "invisible", "collapse"],
1690
- /**
1691
- * Z-Index
1692
- * @see https://tailwindcss.com/docs/z-index
1693
- */
1694
- z: [{
1695
- z: [q, "auto", l, i]
1696
- }],
1697
- // ------------------------
1698
- // --- Flexbox and Grid ---
1699
- // ------------------------
1700
- /**
1701
- * Flex Basis
1702
- * @see https://tailwindcss.com/docs/flex-basis
1703
- */
1704
- basis: [{
1705
- basis: [Z, "full", "auto", p, ...m()]
1706
- }],
1707
- /**
1708
- * Flex Direction
1709
- * @see https://tailwindcss.com/docs/flex-direction
1710
- */
1711
- "flex-direction": [{
1712
- flex: ["row", "row-reverse", "col", "col-reverse"]
1713
- }],
1714
- /**
1715
- * Flex Wrap
1716
- * @see https://tailwindcss.com/docs/flex-wrap
1717
- */
1718
- "flex-wrap": [{
1719
- flex: ["nowrap", "wrap", "wrap-reverse"]
1720
- }],
1721
- /**
1722
- * Flex
1723
- * @see https://tailwindcss.com/docs/flex
1724
- */
1725
- flex: [{
1726
- flex: [b, Z, "auto", "initial", "none", i]
1727
- }],
1728
- /**
1729
- * Flex Grow
1730
- * @see https://tailwindcss.com/docs/flex-grow
1731
- */
1732
- grow: [{
1733
- grow: ["", b, l, i]
1734
- }],
1735
- /**
1736
- * Flex Shrink
1737
- * @see https://tailwindcss.com/docs/flex-shrink
1738
- */
1739
- shrink: [{
1740
- shrink: ["", b, l, i]
1741
- }],
1742
- /**
1743
- * Order
1744
- * @see https://tailwindcss.com/docs/order
1745
- */
1746
- order: [{
1747
- order: [q, "first", "last", "none", l, i]
1748
- }],
1749
- /**
1750
- * Grid Template Columns
1751
- * @see https://tailwindcss.com/docs/grid-template-columns
1752
- */
1753
- "grid-cols": [{
1754
- "grid-cols": J()
1755
- }],
1756
- /**
1757
- * Grid Column Start / End
1758
- * @see https://tailwindcss.com/docs/grid-column
1759
- */
1760
- "col-start-end": [{
1761
- col: H()
1762
- }],
1763
- /**
1764
- * Grid Column Start
1765
- * @see https://tailwindcss.com/docs/grid-column
1766
- */
1767
- "col-start": [{
1768
- "col-start": I()
1769
- }],
1770
- /**
1771
- * Grid Column End
1772
- * @see https://tailwindcss.com/docs/grid-column
1773
- */
1774
- "col-end": [{
1775
- "col-end": I()
1776
- }],
1777
- /**
1778
- * Grid Template Rows
1779
- * @see https://tailwindcss.com/docs/grid-template-rows
1780
- */
1781
- "grid-rows": [{
1782
- "grid-rows": J()
1783
- }],
1784
- /**
1785
- * Grid Row Start / End
1786
- * @see https://tailwindcss.com/docs/grid-row
1787
- */
1788
- "row-start-end": [{
1789
- row: H()
1790
- }],
1791
- /**
1792
- * Grid Row Start
1793
- * @see https://tailwindcss.com/docs/grid-row
1794
- */
1795
- "row-start": [{
1796
- "row-start": I()
1797
- }],
1798
- /**
1799
- * Grid Row End
1800
- * @see https://tailwindcss.com/docs/grid-row
1801
- */
1802
- "row-end": [{
1803
- "row-end": I()
1804
- }],
1805
- /**
1806
- * Grid Auto Flow
1807
- * @see https://tailwindcss.com/docs/grid-auto-flow
1808
- */
1809
- "grid-flow": [{
1810
- "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
1811
- }],
1812
- /**
1813
- * Grid Auto Columns
1814
- * @see https://tailwindcss.com/docs/grid-auto-columns
1815
- */
1816
- "auto-cols": [{
1817
- "auto-cols": U()
1818
- }],
1819
- /**
1820
- * Grid Auto Rows
1821
- * @see https://tailwindcss.com/docs/grid-auto-rows
1822
- */
1823
- "auto-rows": [{
1824
- "auto-rows": U()
1825
- }],
1826
- /**
1827
- * Gap
1828
- * @see https://tailwindcss.com/docs/gap
1829
- */
1830
- gap: [{
1831
- gap: m()
1832
- }],
1833
- /**
1834
- * Gap X
1835
- * @see https://tailwindcss.com/docs/gap
1836
- */
1837
- "gap-x": [{
1838
- "gap-x": m()
1839
- }],
1840
- /**
1841
- * Gap Y
1842
- * @see https://tailwindcss.com/docs/gap
1843
- */
1844
- "gap-y": [{
1845
- "gap-y": m()
1846
- }],
1847
- /**
1848
- * Justify Content
1849
- * @see https://tailwindcss.com/docs/justify-content
1850
- */
1851
- "justify-content": [{
1852
- justify: [...re(), "normal"]
1853
- }],
1854
- /**
1855
- * Justify Items
1856
- * @see https://tailwindcss.com/docs/justify-items
1857
- */
1858
- "justify-items": [{
1859
- "justify-items": [...u(), "normal"]
1860
- }],
1861
- /**
1862
- * Justify Self
1863
- * @see https://tailwindcss.com/docs/justify-self
1864
- */
1865
- "justify-self": [{
1866
- "justify-self": ["auto", ...u()]
1867
- }],
1868
- /**
1869
- * Align Content
1870
- * @see https://tailwindcss.com/docs/align-content
1871
- */
1872
- "align-content": [{
1873
- content: ["normal", ...re()]
1874
- }],
1875
- /**
1876
- * Align Items
1877
- * @see https://tailwindcss.com/docs/align-items
1878
- */
1879
- "align-items": [{
1880
- items: [...u(), {
1881
- baseline: ["", "last"]
1882
- }]
1883
- }],
1884
- /**
1885
- * Align Self
1886
- * @see https://tailwindcss.com/docs/align-self
1887
- */
1888
- "align-self": [{
1889
- self: ["auto", ...u(), {
1890
- baseline: ["", "last"]
1891
- }]
1892
- }],
1893
- /**
1894
- * Place Content
1895
- * @see https://tailwindcss.com/docs/place-content
1896
- */
1897
- "place-content": [{
1898
- "place-content": re()
1899
- }],
1900
- /**
1901
- * Place Items
1902
- * @see https://tailwindcss.com/docs/place-items
1903
- */
1904
- "place-items": [{
1905
- "place-items": [...u(), "baseline"]
1906
- }],
1907
- /**
1908
- * Place Self
1909
- * @see https://tailwindcss.com/docs/place-self
1910
- */
1911
- "place-self": [{
1912
- "place-self": ["auto", ...u()]
1913
- }],
1914
- // Spacing
1915
- /**
1916
- * Padding
1917
- * @see https://tailwindcss.com/docs/padding
1918
- */
1919
- p: [{
1920
- p: m()
1921
- }],
1922
- /**
1923
- * Padding X
1924
- * @see https://tailwindcss.com/docs/padding
1925
- */
1926
- px: [{
1927
- px: m()
1928
- }],
1929
- /**
1930
- * Padding Y
1931
- * @see https://tailwindcss.com/docs/padding
1932
- */
1933
- py: [{
1934
- py: m()
1935
- }],
1936
- /**
1937
- * Padding Start
1938
- * @see https://tailwindcss.com/docs/padding
1939
- */
1940
- ps: [{
1941
- ps: m()
1942
- }],
1943
- /**
1944
- * Padding End
1945
- * @see https://tailwindcss.com/docs/padding
1946
- */
1947
- pe: [{
1948
- pe: m()
1949
- }],
1950
- /**
1951
- * Padding Top
1952
- * @see https://tailwindcss.com/docs/padding
1953
- */
1954
- pt: [{
1955
- pt: m()
1956
- }],
1957
- /**
1958
- * Padding Right
1959
- * @see https://tailwindcss.com/docs/padding
1960
- */
1961
- pr: [{
1962
- pr: m()
1963
- }],
1964
- /**
1965
- * Padding Bottom
1966
- * @see https://tailwindcss.com/docs/padding
1967
- */
1968
- pb: [{
1969
- pb: m()
1970
- }],
1971
- /**
1972
- * Padding Left
1973
- * @see https://tailwindcss.com/docs/padding
1974
- */
1975
- pl: [{
1976
- pl: m()
1977
- }],
1978
- /**
1979
- * Margin
1980
- * @see https://tailwindcss.com/docs/margin
1981
- */
1982
- m: [{
1983
- m: f()
1984
- }],
1985
- /**
1986
- * Margin X
1987
- * @see https://tailwindcss.com/docs/margin
1988
- */
1989
- mx: [{
1990
- mx: f()
1991
- }],
1992
- /**
1993
- * Margin Y
1994
- * @see https://tailwindcss.com/docs/margin
1995
- */
1996
- my: [{
1997
- my: f()
1998
- }],
1999
- /**
2000
- * Margin Start
2001
- * @see https://tailwindcss.com/docs/margin
2002
- */
2003
- ms: [{
2004
- ms: f()
2005
- }],
2006
- /**
2007
- * Margin End
2008
- * @see https://tailwindcss.com/docs/margin
2009
- */
2010
- me: [{
2011
- me: f()
2012
- }],
2013
- /**
2014
- * Margin Top
2015
- * @see https://tailwindcss.com/docs/margin
2016
- */
2017
- mt: [{
2018
- mt: f()
2019
- }],
2020
- /**
2021
- * Margin Right
2022
- * @see https://tailwindcss.com/docs/margin
2023
- */
2024
- mr: [{
2025
- mr: f()
2026
- }],
2027
- /**
2028
- * Margin Bottom
2029
- * @see https://tailwindcss.com/docs/margin
2030
- */
2031
- mb: [{
2032
- mb: f()
2033
- }],
2034
- /**
2035
- * Margin Left
2036
- * @see https://tailwindcss.com/docs/margin
2037
- */
2038
- ml: [{
2039
- ml: f()
2040
- }],
2041
- /**
2042
- * Space Between X
2043
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
2044
- */
2045
- "space-x": [{
2046
- "space-x": m()
2047
- }],
2048
- /**
2049
- * Space Between X Reverse
2050
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
2051
- */
2052
- "space-x-reverse": ["space-x-reverse"],
2053
- /**
2054
- * Space Between Y
2055
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
2056
- */
2057
- "space-y": [{
2058
- "space-y": m()
2059
- }],
2060
- /**
2061
- * Space Between Y Reverse
2062
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
2063
- */
2064
- "space-y-reverse": ["space-y-reverse"],
2065
- // --------------
2066
- // --- Sizing ---
2067
- // --------------
2068
- /**
2069
- * Size
2070
- * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
2071
- */
2072
- size: [{
2073
- size: v()
2074
- }],
2075
- /**
2076
- * Width
2077
- * @see https://tailwindcss.com/docs/width
2078
- */
2079
- w: [{
2080
- w: [p, "screen", ...v()]
2081
- }],
2082
- /**
2083
- * Min-Width
2084
- * @see https://tailwindcss.com/docs/min-width
2085
- */
2086
- "min-w": [{
2087
- "min-w": [
2088
- p,
2089
- "screen",
2090
- /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2091
- "none",
2092
- ...v()
2093
- ]
2094
- }],
2095
- /**
2096
- * Max-Width
2097
- * @see https://tailwindcss.com/docs/max-width
2098
- */
2099
- "max-w": [{
2100
- "max-w": [
2101
- p,
2102
- "screen",
2103
- "none",
2104
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2105
- "prose",
2106
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2107
- {
2108
- screen: [a]
2109
- },
2110
- ...v()
2111
- ]
2112
- }],
2113
- /**
2114
- * Height
2115
- * @see https://tailwindcss.com/docs/height
2116
- */
2117
- h: [{
2118
- h: ["screen", "lh", ...v()]
2119
- }],
2120
- /**
2121
- * Min-Height
2122
- * @see https://tailwindcss.com/docs/min-height
2123
- */
2124
- "min-h": [{
2125
- "min-h": ["screen", "lh", "none", ...v()]
2126
- }],
2127
- /**
2128
- * Max-Height
2129
- * @see https://tailwindcss.com/docs/max-height
2130
- */
2131
- "max-h": [{
2132
- "max-h": ["screen", "lh", ...v()]
2133
- }],
2134
- // ------------------
2135
- // --- Typography ---
2136
- // ------------------
2137
- /**
2138
- * Font Size
2139
- * @see https://tailwindcss.com/docs/font-size
2140
- */
2141
- "font-size": [{
2142
- text: ["base", r, ne, X]
2143
- }],
2144
- /**
2145
- * Font Smoothing
2146
- * @see https://tailwindcss.com/docs/font-smoothing
2147
- */
2148
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
2149
- /**
2150
- * Font Style
2151
- * @see https://tailwindcss.com/docs/font-style
2152
- */
2153
- "font-style": ["italic", "not-italic"],
2154
- /**
2155
- * Font Weight
2156
- * @see https://tailwindcss.com/docs/font-weight
2157
- */
2158
- "font-weight": [{
2159
- font: [t, l, pe]
2160
- }],
2161
- /**
2162
- * Font Stretch
2163
- * @see https://tailwindcss.com/docs/font-stretch
2164
- */
2165
- "font-stretch": [{
2166
- "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", fe, i]
2167
- }],
2168
- /**
2169
- * Font Family
2170
- * @see https://tailwindcss.com/docs/font-family
2171
- */
2172
- "font-family": [{
2173
- font: [Mt, i, o]
2174
- }],
2175
- /**
2176
- * Font Variant Numeric
2177
- * @see https://tailwindcss.com/docs/font-variant-numeric
2178
- */
2179
- "fvn-normal": ["normal-nums"],
2180
- /**
2181
- * Font Variant Numeric
2182
- * @see https://tailwindcss.com/docs/font-variant-numeric
2183
- */
2184
- "fvn-ordinal": ["ordinal"],
2185
- /**
2186
- * Font Variant Numeric
2187
- * @see https://tailwindcss.com/docs/font-variant-numeric
2188
- */
2189
- "fvn-slashed-zero": ["slashed-zero"],
2190
- /**
2191
- * Font Variant Numeric
2192
- * @see https://tailwindcss.com/docs/font-variant-numeric
2193
- */
2194
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
2195
- /**
2196
- * Font Variant Numeric
2197
- * @see https://tailwindcss.com/docs/font-variant-numeric
2198
- */
2199
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
2200
- /**
2201
- * Font Variant Numeric
2202
- * @see https://tailwindcss.com/docs/font-variant-numeric
2203
- */
2204
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
2205
- /**
2206
- * Letter Spacing
2207
- * @see https://tailwindcss.com/docs/letter-spacing
2208
- */
2209
- tracking: [{
2210
- tracking: [n, l, i]
2211
- }],
2212
- /**
2213
- * Line Clamp
2214
- * @see https://tailwindcss.com/docs/line-clamp
2215
- */
2216
- "line-clamp": [{
2217
- "line-clamp": [b, "none", l, pe]
2218
- }],
2219
- /**
2220
- * Line Height
2221
- * @see https://tailwindcss.com/docs/line-height
2222
- */
2223
- leading: [{
2224
- leading: [
2225
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
2226
- s,
2227
- ...m()
2228
- ]
2229
- }],
2230
- /**
2231
- * List Style Image
2232
- * @see https://tailwindcss.com/docs/list-style-image
2233
- */
2234
- "list-image": [{
2235
- "list-image": ["none", l, i]
2236
- }],
2237
- /**
2238
- * List Style Position
2239
- * @see https://tailwindcss.com/docs/list-style-position
2240
- */
2241
- "list-style-position": [{
2242
- list: ["inside", "outside"]
2243
- }],
2244
- /**
2245
- * List Style Type
2246
- * @see https://tailwindcss.com/docs/list-style-type
2247
- */
2248
- "list-style-type": [{
2249
- list: ["disc", "decimal", "none", l, i]
2250
- }],
2251
- /**
2252
- * Text Alignment
2253
- * @see https://tailwindcss.com/docs/text-align
2254
- */
2255
- "text-alignment": [{
2256
- text: ["left", "center", "right", "justify", "start", "end"]
2257
- }],
2258
- /**
2259
- * Placeholder Color
2260
- * @deprecated since Tailwind CSS v3.0.0
2261
- * @see https://v3.tailwindcss.com/docs/placeholder-color
2262
- */
2263
- "placeholder-color": [{
2264
- placeholder: d()
2265
- }],
2266
- /**
2267
- * Text Color
2268
- * @see https://tailwindcss.com/docs/text-color
2269
- */
2270
- "text-color": [{
2271
- text: d()
2272
- }],
2273
- /**
2274
- * Text Decoration
2275
- * @see https://tailwindcss.com/docs/text-decoration
2276
- */
2277
- "text-decoration": ["underline", "overline", "line-through", "no-underline"],
2278
- /**
2279
- * Text Decoration Style
2280
- * @see https://tailwindcss.com/docs/text-decoration-style
2281
- */
2282
- "text-decoration-style": [{
2283
- decoration: [...se(), "wavy"]
2284
- }],
2285
- /**
2286
- * Text Decoration Thickness
2287
- * @see https://tailwindcss.com/docs/text-decoration-thickness
2288
- */
2289
- "text-decoration-thickness": [{
2290
- decoration: [b, "from-font", "auto", l, X]
2291
- }],
2292
- /**
2293
- * Text Decoration Color
2294
- * @see https://tailwindcss.com/docs/text-decoration-color
2295
- */
2296
- "text-decoration-color": [{
2297
- decoration: d()
2298
- }],
2299
- /**
2300
- * Text Underline Offset
2301
- * @see https://tailwindcss.com/docs/text-underline-offset
2302
- */
2303
- "underline-offset": [{
2304
- "underline-offset": [b, "auto", l, i]
2305
- }],
2306
- /**
2307
- * Text Transform
2308
- * @see https://tailwindcss.com/docs/text-transform
2309
- */
2310
- "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
2311
- /**
2312
- * Text Overflow
2313
- * @see https://tailwindcss.com/docs/text-overflow
2314
- */
2315
- "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
2316
- /**
2317
- * Text Wrap
2318
- * @see https://tailwindcss.com/docs/text-wrap
2319
- */
2320
- "text-wrap": [{
2321
- text: ["wrap", "nowrap", "balance", "pretty"]
2322
- }],
2323
- /**
2324
- * Text Indent
2325
- * @see https://tailwindcss.com/docs/text-indent
2326
- */
2327
- indent: [{
2328
- indent: m()
2329
- }],
2330
- /**
2331
- * Vertical Alignment
2332
- * @see https://tailwindcss.com/docs/vertical-align
2333
- */
2334
- "vertical-align": [{
2335
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", l, i]
2336
- }],
2337
- /**
2338
- * Whitespace
2339
- * @see https://tailwindcss.com/docs/whitespace
2340
- */
2341
- whitespace: [{
2342
- whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
2343
- }],
2344
- /**
2345
- * Word Break
2346
- * @see https://tailwindcss.com/docs/word-break
2347
- */
2348
- break: [{
2349
- break: ["normal", "words", "all", "keep"]
2350
- }],
2351
- /**
2352
- * Overflow Wrap
2353
- * @see https://tailwindcss.com/docs/overflow-wrap
2354
- */
2355
- wrap: [{
2356
- wrap: ["break-word", "anywhere", "normal"]
2357
- }],
2358
- /**
2359
- * Hyphens
2360
- * @see https://tailwindcss.com/docs/hyphens
2361
- */
2362
- hyphens: [{
2363
- hyphens: ["none", "manual", "auto"]
2364
- }],
2365
- /**
2366
- * Content
2367
- * @see https://tailwindcss.com/docs/content
2368
- */
2369
- content: [{
2370
- content: ["none", l, i]
2371
- }],
2372
- // -------------------
2373
- // --- Backgrounds ---
2374
- // -------------------
2375
- /**
2376
- * Background Attachment
2377
- * @see https://tailwindcss.com/docs/background-attachment
2378
- */
2379
- "bg-attachment": [{
2380
- bg: ["fixed", "local", "scroll"]
2381
- }],
2382
- /**
2383
- * Background Clip
2384
- * @see https://tailwindcss.com/docs/background-clip
2385
- */
2386
- "bg-clip": [{
2387
- "bg-clip": ["border", "padding", "content", "text"]
2388
- }],
2389
- /**
2390
- * Background Origin
2391
- * @see https://tailwindcss.com/docs/background-origin
2392
- */
2393
- "bg-origin": [{
2394
- "bg-origin": ["border", "padding", "content"]
2395
- }],
2396
- /**
2397
- * Background Position
2398
- * @see https://tailwindcss.com/docs/background-position
2399
- */
2400
- "bg-position": [{
2401
- bg: O()
2402
- }],
2403
- /**
2404
- * Background Repeat
2405
- * @see https://tailwindcss.com/docs/background-repeat
2406
- */
2407
- "bg-repeat": [{
2408
- bg: W()
2409
- }],
2410
- /**
2411
- * Background Size
2412
- * @see https://tailwindcss.com/docs/background-size
2413
- */
2414
- "bg-size": [{
2415
- bg: Q()
2416
- }],
2417
- /**
2418
- * Background Image
2419
- * @see https://tailwindcss.com/docs/background-image
2420
- */
2421
- "bg-image": [{
2422
- bg: ["none", {
2423
- linear: [{
2424
- to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
2425
- }, q, l, i],
2426
- radial: ["", l, i],
2427
- conic: [q, l, i]
2428
- }, Et, Rt]
2429
- }],
2430
- /**
2431
- * Background Color
2432
- * @see https://tailwindcss.com/docs/background-color
2433
- */
2434
- "bg-color": [{
2435
- bg: d()
2436
- }],
2437
- /**
2438
- * Gradient Color Stops From Position
2439
- * @see https://tailwindcss.com/docs/gradient-color-stops
2440
- */
2441
- "gradient-from-pos": [{
2442
- from: oe()
2443
- }],
2444
- /**
2445
- * Gradient Color Stops Via Position
2446
- * @see https://tailwindcss.com/docs/gradient-color-stops
2447
- */
2448
- "gradient-via-pos": [{
2449
- via: oe()
2450
- }],
2451
- /**
2452
- * Gradient Color Stops To Position
2453
- * @see https://tailwindcss.com/docs/gradient-color-stops
2454
- */
2455
- "gradient-to-pos": [{
2456
- to: oe()
2457
- }],
2458
- /**
2459
- * Gradient Color Stops From
2460
- * @see https://tailwindcss.com/docs/gradient-color-stops
2461
- */
2462
- "gradient-from": [{
2463
- from: d()
2464
- }],
2465
- /**
2466
- * Gradient Color Stops Via
2467
- * @see https://tailwindcss.com/docs/gradient-color-stops
2468
- */
2469
- "gradient-via": [{
2470
- via: d()
2471
- }],
2472
- /**
2473
- * Gradient Color Stops To
2474
- * @see https://tailwindcss.com/docs/gradient-color-stops
2475
- */
2476
- "gradient-to": [{
2477
- to: d()
2478
- }],
2479
- // ---------------
2480
- // --- Borders ---
2481
- // ---------------
2482
- /**
2483
- * Border Radius
2484
- * @see https://tailwindcss.com/docs/border-radius
2485
- */
2486
- rounded: [{
2487
- rounded: _()
2488
- }],
2489
- /**
2490
- * Border Radius Start
2491
- * @see https://tailwindcss.com/docs/border-radius
2492
- */
2493
- "rounded-s": [{
2494
- "rounded-s": _()
2495
- }],
2496
- /**
2497
- * Border Radius End
2498
- * @see https://tailwindcss.com/docs/border-radius
2499
- */
2500
- "rounded-e": [{
2501
- "rounded-e": _()
2502
- }],
2503
- /**
2504
- * Border Radius Top
2505
- * @see https://tailwindcss.com/docs/border-radius
2506
- */
2507
- "rounded-t": [{
2508
- "rounded-t": _()
2509
- }],
2510
- /**
2511
- * Border Radius Right
2512
- * @see https://tailwindcss.com/docs/border-radius
2513
- */
2514
- "rounded-r": [{
2515
- "rounded-r": _()
2516
- }],
2517
- /**
2518
- * Border Radius Bottom
2519
- * @see https://tailwindcss.com/docs/border-radius
2520
- */
2521
- "rounded-b": [{
2522
- "rounded-b": _()
2523
- }],
2524
- /**
2525
- * Border Radius Left
2526
- * @see https://tailwindcss.com/docs/border-radius
2527
- */
2528
- "rounded-l": [{
2529
- "rounded-l": _()
2530
- }],
2531
- /**
2532
- * Border Radius Start Start
2533
- * @see https://tailwindcss.com/docs/border-radius
2534
- */
2535
- "rounded-ss": [{
2536
- "rounded-ss": _()
2537
- }],
2538
- /**
2539
- * Border Radius Start End
2540
- * @see https://tailwindcss.com/docs/border-radius
2541
- */
2542
- "rounded-se": [{
2543
- "rounded-se": _()
2544
- }],
2545
- /**
2546
- * Border Radius End End
2547
- * @see https://tailwindcss.com/docs/border-radius
2548
- */
2549
- "rounded-ee": [{
2550
- "rounded-ee": _()
2551
- }],
2552
- /**
2553
- * Border Radius End Start
2554
- * @see https://tailwindcss.com/docs/border-radius
2555
- */
2556
- "rounded-es": [{
2557
- "rounded-es": _()
2558
- }],
2559
- /**
2560
- * Border Radius Top Left
2561
- * @see https://tailwindcss.com/docs/border-radius
2562
- */
2563
- "rounded-tl": [{
2564
- "rounded-tl": _()
2565
- }],
2566
- /**
2567
- * Border Radius Top Right
2568
- * @see https://tailwindcss.com/docs/border-radius
2569
- */
2570
- "rounded-tr": [{
2571
- "rounded-tr": _()
2572
- }],
2573
- /**
2574
- * Border Radius Bottom Right
2575
- * @see https://tailwindcss.com/docs/border-radius
2576
- */
2577
- "rounded-br": [{
2578
- "rounded-br": _()
2579
- }],
2580
- /**
2581
- * Border Radius Bottom Left
2582
- * @see https://tailwindcss.com/docs/border-radius
2583
- */
2584
- "rounded-bl": [{
2585
- "rounded-bl": _()
2586
- }],
2587
- /**
2588
- * Border Width
2589
- * @see https://tailwindcss.com/docs/border-width
2590
- */
2591
- "border-w": [{
2592
- border: $()
2593
- }],
2594
- /**
2595
- * Border Width X
2596
- * @see https://tailwindcss.com/docs/border-width
2597
- */
2598
- "border-w-x": [{
2599
- "border-x": $()
2600
- }],
2601
- /**
2602
- * Border Width Y
2603
- * @see https://tailwindcss.com/docs/border-width
2604
- */
2605
- "border-w-y": [{
2606
- "border-y": $()
2607
- }],
2608
- /**
2609
- * Border Width Start
2610
- * @see https://tailwindcss.com/docs/border-width
2611
- */
2612
- "border-w-s": [{
2613
- "border-s": $()
2614
- }],
2615
- /**
2616
- * Border Width End
2617
- * @see https://tailwindcss.com/docs/border-width
2618
- */
2619
- "border-w-e": [{
2620
- "border-e": $()
2621
- }],
2622
- /**
2623
- * Border Width Top
2624
- * @see https://tailwindcss.com/docs/border-width
2625
- */
2626
- "border-w-t": [{
2627
- "border-t": $()
2628
- }],
2629
- /**
2630
- * Border Width Right
2631
- * @see https://tailwindcss.com/docs/border-width
2632
- */
2633
- "border-w-r": [{
2634
- "border-r": $()
2635
- }],
2636
- /**
2637
- * Border Width Bottom
2638
- * @see https://tailwindcss.com/docs/border-width
2639
- */
2640
- "border-w-b": [{
2641
- "border-b": $()
2642
- }],
2643
- /**
2644
- * Border Width Left
2645
- * @see https://tailwindcss.com/docs/border-width
2646
- */
2647
- "border-w-l": [{
2648
- "border-l": $()
2649
- }],
2650
- /**
2651
- * Divide Width X
2652
- * @see https://tailwindcss.com/docs/border-width#between-children
2653
- */
2654
- "divide-x": [{
2655
- "divide-x": $()
2656
- }],
2657
- /**
2658
- * Divide Width X Reverse
2659
- * @see https://tailwindcss.com/docs/border-width#between-children
2660
- */
2661
- "divide-x-reverse": ["divide-x-reverse"],
2662
- /**
2663
- * Divide Width Y
2664
- * @see https://tailwindcss.com/docs/border-width#between-children
2665
- */
2666
- "divide-y": [{
2667
- "divide-y": $()
2668
- }],
2669
- /**
2670
- * Divide Width Y Reverse
2671
- * @see https://tailwindcss.com/docs/border-width#between-children
2672
- */
2673
- "divide-y-reverse": ["divide-y-reverse"],
2674
- /**
2675
- * Border Style
2676
- * @see https://tailwindcss.com/docs/border-style
2677
- */
2678
- "border-style": [{
2679
- border: [...se(), "hidden", "none"]
2680
- }],
2681
- /**
2682
- * Divide Style
2683
- * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
2684
- */
2685
- "divide-style": [{
2686
- divide: [...se(), "hidden", "none"]
2687
- }],
2688
- /**
2689
- * Border Color
2690
- * @see https://tailwindcss.com/docs/border-color
2691
- */
2692
- "border-color": [{
2693
- border: d()
2694
- }],
2695
- /**
2696
- * Border Color X
2697
- * @see https://tailwindcss.com/docs/border-color
2698
- */
2699
- "border-color-x": [{
2700
- "border-x": d()
2701
- }],
2702
- /**
2703
- * Border Color Y
2704
- * @see https://tailwindcss.com/docs/border-color
2705
- */
2706
- "border-color-y": [{
2707
- "border-y": d()
2708
- }],
2709
- /**
2710
- * Border Color S
2711
- * @see https://tailwindcss.com/docs/border-color
2712
- */
2713
- "border-color-s": [{
2714
- "border-s": d()
2715
- }],
2716
- /**
2717
- * Border Color E
2718
- * @see https://tailwindcss.com/docs/border-color
2719
- */
2720
- "border-color-e": [{
2721
- "border-e": d()
2722
- }],
2723
- /**
2724
- * Border Color Top
2725
- * @see https://tailwindcss.com/docs/border-color
2726
- */
2727
- "border-color-t": [{
2728
- "border-t": d()
2729
- }],
2730
- /**
2731
- * Border Color Right
2732
- * @see https://tailwindcss.com/docs/border-color
2733
- */
2734
- "border-color-r": [{
2735
- "border-r": d()
2736
- }],
2737
- /**
2738
- * Border Color Bottom
2739
- * @see https://tailwindcss.com/docs/border-color
2740
- */
2741
- "border-color-b": [{
2742
- "border-b": d()
2743
- }],
2744
- /**
2745
- * Border Color Left
2746
- * @see https://tailwindcss.com/docs/border-color
2747
- */
2748
- "border-color-l": [{
2749
- "border-l": d()
2750
- }],
2751
- /**
2752
- * Divide Color
2753
- * @see https://tailwindcss.com/docs/divide-color
2754
- */
2755
- "divide-color": [{
2756
- divide: d()
2757
- }],
2758
- /**
2759
- * Outline Style
2760
- * @see https://tailwindcss.com/docs/outline-style
2761
- */
2762
- "outline-style": [{
2763
- outline: [...se(), "none", "hidden"]
2764
- }],
2765
- /**
2766
- * Outline Offset
2767
- * @see https://tailwindcss.com/docs/outline-offset
2768
- */
2769
- "outline-offset": [{
2770
- "outline-offset": [b, l, i]
2771
- }],
2772
- /**
2773
- * Outline Width
2774
- * @see https://tailwindcss.com/docs/outline-width
2775
- */
2776
- "outline-w": [{
2777
- outline: ["", b, ne, X]
2778
- }],
2779
- /**
2780
- * Outline Color
2781
- * @see https://tailwindcss.com/docs/outline-color
2782
- */
2783
- "outline-color": [{
2784
- outline: d()
2785
- }],
2786
- // ---------------
2787
- // --- Effects ---
2788
- // ---------------
2789
- /**
2790
- * Box Shadow
2791
- * @see https://tailwindcss.com/docs/box-shadow
2792
- */
2793
- shadow: [{
2794
- shadow: [
2795
- // Deprecated since Tailwind CSS v4.0.0
2796
- "",
2797
- "none",
2798
- x,
2799
- de,
2800
- ce
2801
- ]
2802
- }],
2803
- /**
2804
- * Box Shadow Color
2805
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
2806
- */
2807
- "shadow-color": [{
2808
- shadow: d()
2809
- }],
2810
- /**
2811
- * Inset Box Shadow
2812
- * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
2813
- */
2814
- "inset-shadow": [{
2815
- "inset-shadow": ["none", S, de, ce]
2816
- }],
2817
- /**
2818
- * Inset Box Shadow Color
2819
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
2820
- */
2821
- "inset-shadow-color": [{
2822
- "inset-shadow": d()
2823
- }],
2824
- /**
2825
- * Ring Width
2826
- * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
2827
- */
2828
- "ring-w": [{
2829
- ring: $()
2830
- }],
2831
- /**
2832
- * Ring Width Inset
2833
- * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
2834
- * @deprecated since Tailwind CSS v4.0.0
2835
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2836
- */
2837
- "ring-w-inset": ["ring-inset"],
2838
- /**
2839
- * Ring Color
2840
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
2841
- */
2842
- "ring-color": [{
2843
- ring: d()
2844
- }],
2845
- /**
2846
- * Ring Offset Width
2847
- * @see https://v3.tailwindcss.com/docs/ring-offset-width
2848
- * @deprecated since Tailwind CSS v4.0.0
2849
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2850
- */
2851
- "ring-offset-w": [{
2852
- "ring-offset": [b, X]
2853
- }],
2854
- /**
2855
- * Ring Offset Color
2856
- * @see https://v3.tailwindcss.com/docs/ring-offset-color
2857
- * @deprecated since Tailwind CSS v4.0.0
2858
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2859
- */
2860
- "ring-offset-color": [{
2861
- "ring-offset": d()
2862
- }],
2863
- /**
2864
- * Inset Ring Width
2865
- * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
2866
- */
2867
- "inset-ring-w": [{
2868
- "inset-ring": $()
2869
- }],
2870
- /**
2871
- * Inset Ring Color
2872
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
2873
- */
2874
- "inset-ring-color": [{
2875
- "inset-ring": d()
2876
- }],
2877
- /**
2878
- * Text Shadow
2879
- * @see https://tailwindcss.com/docs/text-shadow
2880
- */
2881
- "text-shadow": [{
2882
- "text-shadow": ["none", w, de, ce]
2883
- }],
2884
- /**
2885
- * Text Shadow Color
2886
- * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
2887
- */
2888
- "text-shadow-color": [{
2889
- "text-shadow": d()
2890
- }],
2891
- /**
2892
- * Opacity
2893
- * @see https://tailwindcss.com/docs/opacity
2894
- */
2895
- opacity: [{
2896
- opacity: [b, l, i]
2897
- }],
2898
- /**
2899
- * Mix Blend Mode
2900
- * @see https://tailwindcss.com/docs/mix-blend-mode
2901
- */
2902
- "mix-blend": [{
2903
- "mix-blend": [...ye(), "plus-darker", "plus-lighter"]
2904
- }],
2905
- /**
2906
- * Background Blend Mode
2907
- * @see https://tailwindcss.com/docs/background-blend-mode
2908
- */
2909
- "bg-blend": [{
2910
- "bg-blend": ye()
2911
- }],
2912
- /**
2913
- * Mask Clip
2914
- * @see https://tailwindcss.com/docs/mask-clip
2915
- */
2916
- "mask-clip": [{
2917
- "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
2918
- }, "mask-no-clip"],
2919
- /**
2920
- * Mask Composite
2921
- * @see https://tailwindcss.com/docs/mask-composite
2922
- */
2923
- "mask-composite": [{
2924
- mask: ["add", "subtract", "intersect", "exclude"]
2925
- }],
2926
- /**
2927
- * Mask Image
2928
- * @see https://tailwindcss.com/docs/mask-image
2929
- */
2930
- "mask-image-linear-pos": [{
2931
- "mask-linear": [b]
2932
- }],
2933
- "mask-image-linear-from-pos": [{
2934
- "mask-linear-from": R()
2935
- }],
2936
- "mask-image-linear-to-pos": [{
2937
- "mask-linear-to": R()
2938
- }],
2939
- "mask-image-linear-from-color": [{
2940
- "mask-linear-from": d()
2941
- }],
2942
- "mask-image-linear-to-color": [{
2943
- "mask-linear-to": d()
2944
- }],
2945
- "mask-image-t-from-pos": [{
2946
- "mask-t-from": R()
2947
- }],
2948
- "mask-image-t-to-pos": [{
2949
- "mask-t-to": R()
2950
- }],
2951
- "mask-image-t-from-color": [{
2952
- "mask-t-from": d()
2953
- }],
2954
- "mask-image-t-to-color": [{
2955
- "mask-t-to": d()
2956
- }],
2957
- "mask-image-r-from-pos": [{
2958
- "mask-r-from": R()
2959
- }],
2960
- "mask-image-r-to-pos": [{
2961
- "mask-r-to": R()
2962
- }],
2963
- "mask-image-r-from-color": [{
2964
- "mask-r-from": d()
2965
- }],
2966
- "mask-image-r-to-color": [{
2967
- "mask-r-to": d()
2968
- }],
2969
- "mask-image-b-from-pos": [{
2970
- "mask-b-from": R()
2971
- }],
2972
- "mask-image-b-to-pos": [{
2973
- "mask-b-to": R()
2974
- }],
2975
- "mask-image-b-from-color": [{
2976
- "mask-b-from": d()
2977
- }],
2978
- "mask-image-b-to-color": [{
2979
- "mask-b-to": d()
2980
- }],
2981
- "mask-image-l-from-pos": [{
2982
- "mask-l-from": R()
2983
- }],
2984
- "mask-image-l-to-pos": [{
2985
- "mask-l-to": R()
2986
- }],
2987
- "mask-image-l-from-color": [{
2988
- "mask-l-from": d()
2989
- }],
2990
- "mask-image-l-to-color": [{
2991
- "mask-l-to": d()
2992
- }],
2993
- "mask-image-x-from-pos": [{
2994
- "mask-x-from": R()
2995
- }],
2996
- "mask-image-x-to-pos": [{
2997
- "mask-x-to": R()
2998
- }],
2999
- "mask-image-x-from-color": [{
3000
- "mask-x-from": d()
3001
- }],
3002
- "mask-image-x-to-color": [{
3003
- "mask-x-to": d()
3004
- }],
3005
- "mask-image-y-from-pos": [{
3006
- "mask-y-from": R()
3007
- }],
3008
- "mask-image-y-to-pos": [{
3009
- "mask-y-to": R()
3010
- }],
3011
- "mask-image-y-from-color": [{
3012
- "mask-y-from": d()
3013
- }],
3014
- "mask-image-y-to-color": [{
3015
- "mask-y-to": d()
3016
- }],
3017
- "mask-image-radial": [{
3018
- "mask-radial": [l, i]
3019
- }],
3020
- "mask-image-radial-from-pos": [{
3021
- "mask-radial-from": R()
3022
- }],
3023
- "mask-image-radial-to-pos": [{
3024
- "mask-radial-to": R()
3025
- }],
3026
- "mask-image-radial-from-color": [{
3027
- "mask-radial-from": d()
3028
- }],
3029
- "mask-image-radial-to-color": [{
3030
- "mask-radial-to": d()
3031
- }],
3032
- "mask-image-radial-shape": [{
3033
- "mask-radial": ["circle", "ellipse"]
3034
- }],
3035
- "mask-image-radial-size": [{
3036
- "mask-radial": [{
3037
- closest: ["side", "corner"],
3038
- farthest: ["side", "corner"]
3039
- }]
3040
- }],
3041
- "mask-image-radial-pos": [{
3042
- "mask-radial-at": L()
3043
- }],
3044
- "mask-image-conic-pos": [{
3045
- "mask-conic": [b]
3046
- }],
3047
- "mask-image-conic-from-pos": [{
3048
- "mask-conic-from": R()
3049
- }],
3050
- "mask-image-conic-to-pos": [{
3051
- "mask-conic-to": R()
3052
- }],
3053
- "mask-image-conic-from-color": [{
3054
- "mask-conic-from": d()
3055
- }],
3056
- "mask-image-conic-to-color": [{
3057
- "mask-conic-to": d()
3058
- }],
3059
- /**
3060
- * Mask Mode
3061
- * @see https://tailwindcss.com/docs/mask-mode
3062
- */
3063
- "mask-mode": [{
3064
- mask: ["alpha", "luminance", "match"]
3065
- }],
3066
- /**
3067
- * Mask Origin
3068
- * @see https://tailwindcss.com/docs/mask-origin
3069
- */
3070
- "mask-origin": [{
3071
- "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
3072
- }],
3073
- /**
3074
- * Mask Position
3075
- * @see https://tailwindcss.com/docs/mask-position
3076
- */
3077
- "mask-position": [{
3078
- mask: O()
3079
- }],
3080
- /**
3081
- * Mask Repeat
3082
- * @see https://tailwindcss.com/docs/mask-repeat
3083
- */
3084
- "mask-repeat": [{
3085
- mask: W()
3086
- }],
3087
- /**
3088
- * Mask Size
3089
- * @see https://tailwindcss.com/docs/mask-size
3090
- */
3091
- "mask-size": [{
3092
- mask: Q()
3093
- }],
3094
- /**
3095
- * Mask Type
3096
- * @see https://tailwindcss.com/docs/mask-type
3097
- */
3098
- "mask-type": [{
3099
- "mask-type": ["alpha", "luminance"]
3100
- }],
3101
- /**
3102
- * Mask Image
3103
- * @see https://tailwindcss.com/docs/mask-image
3104
- */
3105
- "mask-image": [{
3106
- mask: ["none", l, i]
3107
- }],
3108
- // ---------------
3109
- // --- Filters ---
3110
- // ---------------
3111
- /**
3112
- * Filter
3113
- * @see https://tailwindcss.com/docs/filter
3114
- */
3115
- filter: [{
3116
- filter: [
3117
- // Deprecated since Tailwind CSS v3.0.0
3118
- "",
3119
- "none",
3120
- l,
3121
- i
3122
- ]
3123
- }],
3124
- /**
3125
- * Blur
3126
- * @see https://tailwindcss.com/docs/blur
3127
- */
3128
- blur: [{
3129
- blur: ke()
3130
- }],
3131
- /**
3132
- * Brightness
3133
- * @see https://tailwindcss.com/docs/brightness
3134
- */
3135
- brightness: [{
3136
- brightness: [b, l, i]
3137
- }],
3138
- /**
3139
- * Contrast
3140
- * @see https://tailwindcss.com/docs/contrast
3141
- */
3142
- contrast: [{
3143
- contrast: [b, l, i]
3144
- }],
3145
- /**
3146
- * Drop Shadow
3147
- * @see https://tailwindcss.com/docs/drop-shadow
3148
- */
3149
- "drop-shadow": [{
3150
- "drop-shadow": [
3151
- // Deprecated since Tailwind CSS v4.0.0
3152
- "",
3153
- "none",
3154
- y,
3155
- de,
3156
- ce
3157
- ]
3158
- }],
3159
- /**
3160
- * Drop Shadow Color
3161
- * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
3162
- */
3163
- "drop-shadow-color": [{
3164
- "drop-shadow": d()
3165
- }],
3166
- /**
3167
- * Grayscale
3168
- * @see https://tailwindcss.com/docs/grayscale
3169
- */
3170
- grayscale: [{
3171
- grayscale: ["", b, l, i]
3172
- }],
3173
- /**
3174
- * Hue Rotate
3175
- * @see https://tailwindcss.com/docs/hue-rotate
3176
- */
3177
- "hue-rotate": [{
3178
- "hue-rotate": [b, l, i]
3179
- }],
3180
- /**
3181
- * Invert
3182
- * @see https://tailwindcss.com/docs/invert
3183
- */
3184
- invert: [{
3185
- invert: ["", b, l, i]
3186
- }],
3187
- /**
3188
- * Saturate
3189
- * @see https://tailwindcss.com/docs/saturate
3190
- */
3191
- saturate: [{
3192
- saturate: [b, l, i]
3193
- }],
3194
- /**
3195
- * Sepia
3196
- * @see https://tailwindcss.com/docs/sepia
3197
- */
3198
- sepia: [{
3199
- sepia: ["", b, l, i]
3200
- }],
3201
- /**
3202
- * Backdrop Filter
3203
- * @see https://tailwindcss.com/docs/backdrop-filter
3204
- */
3205
- "backdrop-filter": [{
3206
- "backdrop-filter": [
3207
- // Deprecated since Tailwind CSS v3.0.0
3208
- "",
3209
- "none",
3210
- l,
3211
- i
3212
- ]
3213
- }],
3214
- /**
3215
- * Backdrop Blur
3216
- * @see https://tailwindcss.com/docs/backdrop-blur
3217
- */
3218
- "backdrop-blur": [{
3219
- "backdrop-blur": ke()
3220
- }],
3221
- /**
3222
- * Backdrop Brightness
3223
- * @see https://tailwindcss.com/docs/backdrop-brightness
3224
- */
3225
- "backdrop-brightness": [{
3226
- "backdrop-brightness": [b, l, i]
3227
- }],
3228
- /**
3229
- * Backdrop Contrast
3230
- * @see https://tailwindcss.com/docs/backdrop-contrast
3231
- */
3232
- "backdrop-contrast": [{
3233
- "backdrop-contrast": [b, l, i]
3234
- }],
3235
- /**
3236
- * Backdrop Grayscale
3237
- * @see https://tailwindcss.com/docs/backdrop-grayscale
3238
- */
3239
- "backdrop-grayscale": [{
3240
- "backdrop-grayscale": ["", b, l, i]
3241
- }],
3242
- /**
3243
- * Backdrop Hue Rotate
3244
- * @see https://tailwindcss.com/docs/backdrop-hue-rotate
3245
- */
3246
- "backdrop-hue-rotate": [{
3247
- "backdrop-hue-rotate": [b, l, i]
3248
- }],
3249
- /**
3250
- * Backdrop Invert
3251
- * @see https://tailwindcss.com/docs/backdrop-invert
3252
- */
3253
- "backdrop-invert": [{
3254
- "backdrop-invert": ["", b, l, i]
3255
- }],
3256
- /**
3257
- * Backdrop Opacity
3258
- * @see https://tailwindcss.com/docs/backdrop-opacity
3259
- */
3260
- "backdrop-opacity": [{
3261
- "backdrop-opacity": [b, l, i]
3262
- }],
3263
- /**
3264
- * Backdrop Saturate
3265
- * @see https://tailwindcss.com/docs/backdrop-saturate
3266
- */
3267
- "backdrop-saturate": [{
3268
- "backdrop-saturate": [b, l, i]
3269
- }],
3270
- /**
3271
- * Backdrop Sepia
3272
- * @see https://tailwindcss.com/docs/backdrop-sepia
3273
- */
3274
- "backdrop-sepia": [{
3275
- "backdrop-sepia": ["", b, l, i]
3276
- }],
3277
- // --------------
3278
- // --- Tables ---
3279
- // --------------
3280
- /**
3281
- * Border Collapse
3282
- * @see https://tailwindcss.com/docs/border-collapse
3283
- */
3284
- "border-collapse": [{
3285
- border: ["collapse", "separate"]
3286
- }],
3287
- /**
3288
- * Border Spacing
3289
- * @see https://tailwindcss.com/docs/border-spacing
3290
- */
3291
- "border-spacing": [{
3292
- "border-spacing": m()
3293
- }],
3294
- /**
3295
- * Border Spacing X
3296
- * @see https://tailwindcss.com/docs/border-spacing
3297
- */
3298
- "border-spacing-x": [{
3299
- "border-spacing-x": m()
3300
- }],
3301
- /**
3302
- * Border Spacing Y
3303
- * @see https://tailwindcss.com/docs/border-spacing
3304
- */
3305
- "border-spacing-y": [{
3306
- "border-spacing-y": m()
3307
- }],
3308
- /**
3309
- * Table Layout
3310
- * @see https://tailwindcss.com/docs/table-layout
3311
- */
3312
- "table-layout": [{
3313
- table: ["auto", "fixed"]
3314
- }],
3315
- /**
3316
- * Caption Side
3317
- * @see https://tailwindcss.com/docs/caption-side
3318
- */
3319
- caption: [{
3320
- caption: ["top", "bottom"]
3321
- }],
3322
- // ---------------------------------
3323
- // --- Transitions and Animation ---
3324
- // ---------------------------------
3325
- /**
3326
- * Transition Property
3327
- * @see https://tailwindcss.com/docs/transition-property
3328
- */
3329
- transition: [{
3330
- transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", l, i]
3331
- }],
3332
- /**
3333
- * Transition Behavior
3334
- * @see https://tailwindcss.com/docs/transition-behavior
3335
- */
3336
- "transition-behavior": [{
3337
- transition: ["normal", "discrete"]
3338
- }],
3339
- /**
3340
- * Transition Duration
3341
- * @see https://tailwindcss.com/docs/transition-duration
3342
- */
3343
- duration: [{
3344
- duration: [b, "initial", l, i]
3345
- }],
3346
- /**
3347
- * Transition Timing Function
3348
- * @see https://tailwindcss.com/docs/transition-timing-function
3349
- */
3350
- ease: [{
3351
- ease: ["linear", "initial", D, l, i]
3352
- }],
3353
- /**
3354
- * Transition Delay
3355
- * @see https://tailwindcss.com/docs/transition-delay
3356
- */
3357
- delay: [{
3358
- delay: [b, l, i]
3359
- }],
3360
- /**
3361
- * Animation
3362
- * @see https://tailwindcss.com/docs/animation
3363
- */
3364
- animate: [{
3365
- animate: ["none", F, l, i]
3366
- }],
3367
- // ------------------
3368
- // --- Transforms ---
3369
- // ------------------
3370
- /**
3371
- * Backface Visibility
3372
- * @see https://tailwindcss.com/docs/backface-visibility
3373
- */
3374
- backface: [{
3375
- backface: ["hidden", "visible"]
3376
- }],
3377
- /**
3378
- * Perspective
3379
- * @see https://tailwindcss.com/docs/perspective
3380
- */
3381
- perspective: [{
3382
- perspective: [z, l, i]
3383
- }],
3384
- /**
3385
- * Perspective Origin
3386
- * @see https://tailwindcss.com/docs/perspective-origin
3387
- */
3388
- "perspective-origin": [{
3389
- "perspective-origin": N()
3390
- }],
3391
- /**
3392
- * Rotate
3393
- * @see https://tailwindcss.com/docs/rotate
3394
- */
3395
- rotate: [{
3396
- rotate: ae()
3397
- }],
3398
- /**
3399
- * Rotate X
3400
- * @see https://tailwindcss.com/docs/rotate
3401
- */
3402
- "rotate-x": [{
3403
- "rotate-x": ae()
3404
- }],
3405
- /**
3406
- * Rotate Y
3407
- * @see https://tailwindcss.com/docs/rotate
3408
- */
3409
- "rotate-y": [{
3410
- "rotate-y": ae()
3411
- }],
3412
- /**
3413
- * Rotate Z
3414
- * @see https://tailwindcss.com/docs/rotate
3415
- */
3416
- "rotate-z": [{
3417
- "rotate-z": ae()
3418
- }],
3419
- /**
3420
- * Scale
3421
- * @see https://tailwindcss.com/docs/scale
3422
- */
3423
- scale: [{
3424
- scale: ie()
3425
- }],
3426
- /**
3427
- * Scale X
3428
- * @see https://tailwindcss.com/docs/scale
3429
- */
3430
- "scale-x": [{
3431
- "scale-x": ie()
3432
- }],
3433
- /**
3434
- * Scale Y
3435
- * @see https://tailwindcss.com/docs/scale
3436
- */
3437
- "scale-y": [{
3438
- "scale-y": ie()
3439
- }],
3440
- /**
3441
- * Scale Z
3442
- * @see https://tailwindcss.com/docs/scale
3443
- */
3444
- "scale-z": [{
3445
- "scale-z": ie()
3446
- }],
3447
- /**
3448
- * Scale 3D
3449
- * @see https://tailwindcss.com/docs/scale
3450
- */
3451
- "scale-3d": ["scale-3d"],
3452
- /**
3453
- * Skew
3454
- * @see https://tailwindcss.com/docs/skew
3455
- */
3456
- skew: [{
3457
- skew: ue()
3458
- }],
3459
- /**
3460
- * Skew X
3461
- * @see https://tailwindcss.com/docs/skew
3462
- */
3463
- "skew-x": [{
3464
- "skew-x": ue()
3465
- }],
3466
- /**
3467
- * Skew Y
3468
- * @see https://tailwindcss.com/docs/skew
3469
- */
3470
- "skew-y": [{
3471
- "skew-y": ue()
3472
- }],
3473
- /**
3474
- * Transform
3475
- * @see https://tailwindcss.com/docs/transform
3476
- */
3477
- transform: [{
3478
- transform: [l, i, "", "none", "gpu", "cpu"]
3479
- }],
3480
- /**
3481
- * Transform Origin
3482
- * @see https://tailwindcss.com/docs/transform-origin
3483
- */
3484
- "transform-origin": [{
3485
- origin: N()
3486
- }],
3487
- /**
3488
- * Transform Style
3489
- * @see https://tailwindcss.com/docs/transform-style
3490
- */
3491
- "transform-style": [{
3492
- transform: ["3d", "flat"]
3493
- }],
3494
- /**
3495
- * Translate
3496
- * @see https://tailwindcss.com/docs/translate
3497
- */
3498
- translate: [{
3499
- translate: le()
3500
- }],
3501
- /**
3502
- * Translate X
3503
- * @see https://tailwindcss.com/docs/translate
3504
- */
3505
- "translate-x": [{
3506
- "translate-x": le()
3507
- }],
3508
- /**
3509
- * Translate Y
3510
- * @see https://tailwindcss.com/docs/translate
3511
- */
3512
- "translate-y": [{
3513
- "translate-y": le()
3514
- }],
3515
- /**
3516
- * Translate Z
3517
- * @see https://tailwindcss.com/docs/translate
3518
- */
3519
- "translate-z": [{
3520
- "translate-z": le()
3521
- }],
3522
- /**
3523
- * Translate None
3524
- * @see https://tailwindcss.com/docs/translate
3525
- */
3526
- "translate-none": ["translate-none"],
3527
- // ---------------------
3528
- // --- Interactivity ---
3529
- // ---------------------
3530
- /**
3531
- * Accent Color
3532
- * @see https://tailwindcss.com/docs/accent-color
3533
- */
3534
- accent: [{
3535
- accent: d()
3536
- }],
3537
- /**
3538
- * Appearance
3539
- * @see https://tailwindcss.com/docs/appearance
3540
- */
3541
- appearance: [{
3542
- appearance: ["none", "auto"]
3543
- }],
3544
- /**
3545
- * Caret Color
3546
- * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
3547
- */
3548
- "caret-color": [{
3549
- caret: d()
3550
- }],
3551
- /**
3552
- * Color Scheme
3553
- * @see https://tailwindcss.com/docs/color-scheme
3554
- */
3555
- "color-scheme": [{
3556
- scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
3557
- }],
3558
- /**
3559
- * Cursor
3560
- * @see https://tailwindcss.com/docs/cursor
3561
- */
3562
- cursor: [{
3563
- cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", l, i]
3564
- }],
3565
- /**
3566
- * Field Sizing
3567
- * @see https://tailwindcss.com/docs/field-sizing
3568
- */
3569
- "field-sizing": [{
3570
- "field-sizing": ["fixed", "content"]
3571
- }],
3572
- /**
3573
- * Pointer Events
3574
- * @see https://tailwindcss.com/docs/pointer-events
3575
- */
3576
- "pointer-events": [{
3577
- "pointer-events": ["auto", "none"]
3578
- }],
3579
- /**
3580
- * Resize
3581
- * @see https://tailwindcss.com/docs/resize
3582
- */
3583
- resize: [{
3584
- resize: ["none", "", "y", "x"]
3585
- }],
3586
- /**
3587
- * Scroll Behavior
3588
- * @see https://tailwindcss.com/docs/scroll-behavior
3589
- */
3590
- "scroll-behavior": [{
3591
- scroll: ["auto", "smooth"]
3592
- }],
3593
- /**
3594
- * Scroll Margin
3595
- * @see https://tailwindcss.com/docs/scroll-margin
3596
- */
3597
- "scroll-m": [{
3598
- "scroll-m": m()
3599
- }],
3600
- /**
3601
- * Scroll Margin X
3602
- * @see https://tailwindcss.com/docs/scroll-margin
3603
- */
3604
- "scroll-mx": [{
3605
- "scroll-mx": m()
3606
- }],
3607
- /**
3608
- * Scroll Margin Y
3609
- * @see https://tailwindcss.com/docs/scroll-margin
3610
- */
3611
- "scroll-my": [{
3612
- "scroll-my": m()
3613
- }],
3614
- /**
3615
- * Scroll Margin Start
3616
- * @see https://tailwindcss.com/docs/scroll-margin
3617
- */
3618
- "scroll-ms": [{
3619
- "scroll-ms": m()
3620
- }],
3621
- /**
3622
- * Scroll Margin End
3623
- * @see https://tailwindcss.com/docs/scroll-margin
3624
- */
3625
- "scroll-me": [{
3626
- "scroll-me": m()
3627
- }],
3628
- /**
3629
- * Scroll Margin Top
3630
- * @see https://tailwindcss.com/docs/scroll-margin
3631
- */
3632
- "scroll-mt": [{
3633
- "scroll-mt": m()
3634
- }],
3635
- /**
3636
- * Scroll Margin Right
3637
- * @see https://tailwindcss.com/docs/scroll-margin
3638
- */
3639
- "scroll-mr": [{
3640
- "scroll-mr": m()
3641
- }],
3642
- /**
3643
- * Scroll Margin Bottom
3644
- * @see https://tailwindcss.com/docs/scroll-margin
3645
- */
3646
- "scroll-mb": [{
3647
- "scroll-mb": m()
3648
- }],
3649
- /**
3650
- * Scroll Margin Left
3651
- * @see https://tailwindcss.com/docs/scroll-margin
3652
- */
3653
- "scroll-ml": [{
3654
- "scroll-ml": m()
3655
- }],
3656
- /**
3657
- * Scroll Padding
3658
- * @see https://tailwindcss.com/docs/scroll-padding
3659
- */
3660
- "scroll-p": [{
3661
- "scroll-p": m()
3662
- }],
3663
- /**
3664
- * Scroll Padding X
3665
- * @see https://tailwindcss.com/docs/scroll-padding
3666
- */
3667
- "scroll-px": [{
3668
- "scroll-px": m()
3669
- }],
3670
- /**
3671
- * Scroll Padding Y
3672
- * @see https://tailwindcss.com/docs/scroll-padding
3673
- */
3674
- "scroll-py": [{
3675
- "scroll-py": m()
3676
- }],
3677
- /**
3678
- * Scroll Padding Start
3679
- * @see https://tailwindcss.com/docs/scroll-padding
3680
- */
3681
- "scroll-ps": [{
3682
- "scroll-ps": m()
3683
- }],
3684
- /**
3685
- * Scroll Padding End
3686
- * @see https://tailwindcss.com/docs/scroll-padding
3687
- */
3688
- "scroll-pe": [{
3689
- "scroll-pe": m()
3690
- }],
3691
- /**
3692
- * Scroll Padding Top
3693
- * @see https://tailwindcss.com/docs/scroll-padding
3694
- */
3695
- "scroll-pt": [{
3696
- "scroll-pt": m()
3697
- }],
3698
- /**
3699
- * Scroll Padding Right
3700
- * @see https://tailwindcss.com/docs/scroll-padding
3701
- */
3702
- "scroll-pr": [{
3703
- "scroll-pr": m()
3704
- }],
3705
- /**
3706
- * Scroll Padding Bottom
3707
- * @see https://tailwindcss.com/docs/scroll-padding
3708
- */
3709
- "scroll-pb": [{
3710
- "scroll-pb": m()
3711
- }],
3712
- /**
3713
- * Scroll Padding Left
3714
- * @see https://tailwindcss.com/docs/scroll-padding
3715
- */
3716
- "scroll-pl": [{
3717
- "scroll-pl": m()
3718
- }],
3719
- /**
3720
- * Scroll Snap Align
3721
- * @see https://tailwindcss.com/docs/scroll-snap-align
3722
- */
3723
- "snap-align": [{
3724
- snap: ["start", "end", "center", "align-none"]
3725
- }],
3726
- /**
3727
- * Scroll Snap Stop
3728
- * @see https://tailwindcss.com/docs/scroll-snap-stop
3729
- */
3730
- "snap-stop": [{
3731
- snap: ["normal", "always"]
3732
- }],
3733
- /**
3734
- * Scroll Snap Type
3735
- * @see https://tailwindcss.com/docs/scroll-snap-type
3736
- */
3737
- "snap-type": [{
3738
- snap: ["none", "x", "y", "both"]
3739
- }],
3740
- /**
3741
- * Scroll Snap Type Strictness
3742
- * @see https://tailwindcss.com/docs/scroll-snap-type
3743
- */
3744
- "snap-strictness": [{
3745
- snap: ["mandatory", "proximity"]
3746
- }],
3747
- /**
3748
- * Touch Action
3749
- * @see https://tailwindcss.com/docs/touch-action
3750
- */
3751
- touch: [{
3752
- touch: ["auto", "none", "manipulation"]
3753
- }],
3754
- /**
3755
- * Touch Action X
3756
- * @see https://tailwindcss.com/docs/touch-action
3757
- */
3758
- "touch-x": [{
3759
- "touch-pan": ["x", "left", "right"]
3760
- }],
3761
- /**
3762
- * Touch Action Y
3763
- * @see https://tailwindcss.com/docs/touch-action
3764
- */
3765
- "touch-y": [{
3766
- "touch-pan": ["y", "up", "down"]
3767
- }],
3768
- /**
3769
- * Touch Action Pinch Zoom
3770
- * @see https://tailwindcss.com/docs/touch-action
3771
- */
3772
- "touch-pz": ["touch-pinch-zoom"],
3773
- /**
3774
- * User Select
3775
- * @see https://tailwindcss.com/docs/user-select
3776
- */
3777
- select: [{
3778
- select: ["none", "text", "all", "auto"]
3779
- }],
3780
- /**
3781
- * Will Change
3782
- * @see https://tailwindcss.com/docs/will-change
3783
- */
3784
- "will-change": [{
3785
- "will-change": ["auto", "scroll", "contents", "transform", l, i]
3786
- }],
3787
- // -----------
3788
- // --- SVG ---
3789
- // -----------
3790
- /**
3791
- * Fill
3792
- * @see https://tailwindcss.com/docs/fill
3793
- */
3794
- fill: [{
3795
- fill: ["none", ...d()]
3796
- }],
3797
- /**
3798
- * Stroke Width
3799
- * @see https://tailwindcss.com/docs/stroke-width
3800
- */
3801
- "stroke-w": [{
3802
- stroke: [b, ne, X, pe]
3803
- }],
3804
- /**
3805
- * Stroke
3806
- * @see https://tailwindcss.com/docs/stroke
3807
- */
3808
- stroke: [{
3809
- stroke: ["none", ...d()]
3810
- }],
3811
- // ---------------------
3812
- // --- Accessibility ---
3813
- // ---------------------
3814
- /**
3815
- * Forced Color Adjust
3816
- * @see https://tailwindcss.com/docs/forced-color-adjust
3817
- */
3818
- "forced-color-adjust": [{
3819
- "forced-color-adjust": ["auto", "none"]
3820
- }]
3821
- },
3822
- conflictingClassGroups: {
3823
- overflow: ["overflow-x", "overflow-y"],
3824
- overscroll: ["overscroll-x", "overscroll-y"],
3825
- inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
3826
- "inset-x": ["right", "left"],
3827
- "inset-y": ["top", "bottom"],
3828
- flex: ["basis", "grow", "shrink"],
3829
- gap: ["gap-x", "gap-y"],
3830
- p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
3831
- px: ["pr", "pl"],
3832
- py: ["pt", "pb"],
3833
- m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
3834
- mx: ["mr", "ml"],
3835
- my: ["mt", "mb"],
3836
- size: ["w", "h"],
3837
- "font-size": ["leading"],
3838
- "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
3839
- "fvn-ordinal": ["fvn-normal"],
3840
- "fvn-slashed-zero": ["fvn-normal"],
3841
- "fvn-figure": ["fvn-normal"],
3842
- "fvn-spacing": ["fvn-normal"],
3843
- "fvn-fraction": ["fvn-normal"],
3844
- "line-clamp": ["display", "overflow"],
3845
- rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
3846
- "rounded-s": ["rounded-ss", "rounded-es"],
3847
- "rounded-e": ["rounded-se", "rounded-ee"],
3848
- "rounded-t": ["rounded-tl", "rounded-tr"],
3849
- "rounded-r": ["rounded-tr", "rounded-br"],
3850
- "rounded-b": ["rounded-br", "rounded-bl"],
3851
- "rounded-l": ["rounded-tl", "rounded-bl"],
3852
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
3853
- "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
3854
- "border-w-x": ["border-w-r", "border-w-l"],
3855
- "border-w-y": ["border-w-t", "border-w-b"],
3856
- "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
3857
- "border-color-x": ["border-color-r", "border-color-l"],
3858
- "border-color-y": ["border-color-t", "border-color-b"],
3859
- translate: ["translate-x", "translate-y", "translate-none"],
3860
- "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
3861
- "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
3862
- "scroll-mx": ["scroll-mr", "scroll-ml"],
3863
- "scroll-my": ["scroll-mt", "scroll-mb"],
3864
- "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
3865
- "scroll-px": ["scroll-pr", "scroll-pl"],
3866
- "scroll-py": ["scroll-pt", "scroll-pb"],
3867
- touch: ["touch-x", "touch-y", "touch-pz"],
3868
- "touch-x": ["touch"],
3869
- "touch-y": ["touch"],
3870
- "touch-pz": ["touch"]
3871
- },
3872
- conflictingClassGroupModifiers: {
3873
- "font-size": ["leading"]
3874
- },
3875
- orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
3876
- };
3877
- }, jt = /* @__PURE__ */ bt(Gt);
3878
- function P(...e) {
3879
- return jt(Xe(e));
3880
- }
3881
- const Lt = {
3882
- purple: "bg-purple-500",
3883
- green: "bg-green-500",
3884
- blue: "bg-blue-500",
3885
- yellow: "bg-yellow-400 !text-yellow-900",
3886
- red: "bg-red-500"
3887
- }, _t = ({
3888
- id: e,
3889
- title: o,
3890
- price: r,
3891
- periodLabel: t,
3892
- features: n,
3893
- isSelected: s,
3894
- onSelect: a,
3895
- topBadge: p,
3896
- discountBadge: c,
3897
- premiumCallout: h,
3898
- bottomNote: x,
3899
- introPriceNote: S,
3900
- isBestValue: w = false,
3901
- ctaButton: y,
3902
- className: j,
3903
- children: z,
3904
- disabled: k = false,
3905
- ariaLabel: D,
3906
- onTrack: F,
3907
- trackingLabel: M,
3908
- componentName: L = "SubscriptionTile",
3909
- hideSelectionIndicator: N = false
3910
- }) => {
3911
- const C = !!y, E = !N, m = s ? "bg-blue-600 text-white ring-4 ring-blue-600 ring-offset-4 ring-offset-white dark:ring-offset-gray-900 border-transparent" : "bg-gray-100 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600 hover:shadow-md", V = () => {
3912
- !k && !C && (F == null ? void 0 : F({ action: "select", trackingLabel: M, componentName: L }), a());
3913
- }, J = (I) => {
3914
- !k && !C && (I.key === "Enter" || I.key === " ") && (I.preventDefault(), F == null ? void 0 : F({ action: "select", trackingLabel: M, componentName: L }), a());
3915
- }, H = (I) => {
3916
- I.stopPropagation(), F == null ? void 0 : F({ action: "cta_click", trackingLabel: M, componentName: L }), (y == null ? void 0 : y.onClick) && y.onClick();
3917
- };
3918
- return /* @__PURE__ */ jsxs(
3919
- "div",
3920
- {
3921
- className: P(
3922
- "relative rounded-2xl p-6 transition-all flex flex-col h-full",
3923
- // Add extra bottom padding for radio button or CTA button (not needed if hidden)
3924
- E && (C ? "pb-20" : "pb-14"),
3925
- k ? "opacity-50 cursor-not-allowed" : C ? "cursor-default" : "cursor-pointer",
3926
- m,
3927
- j
3928
- ),
3929
- onClick: V,
3930
- onKeyDown: J,
3931
- role: C ? "article" : "radio",
3932
- "aria-checked": C ? void 0 : s,
3933
- "aria-label": D || `${o} - ${r}${t || ""}`,
3934
- "aria-disabled": k,
3935
- tabIndex: C || k ? -1 : 0,
3936
- children: [
3937
- p && /* @__PURE__ */ jsx("div", { className: "absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 z-10", children: /* @__PURE__ */ jsx(
3938
- "span",
3939
- {
3940
- className: P(
3941
- Lt[p.color],
3942
- "text-white px-4 py-1.5 rounded-full text-sm font-semibold shadow-lg whitespace-nowrap"
3943
- ),
3944
- children: p.text
3945
- }
3946
- ) }),
3947
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-grow", children: [
3948
- /* @__PURE__ */ jsxs("div", { className: P("text-center mb-6", p && "mt-2"), children: [
3949
- /* @__PURE__ */ jsx(
3950
- "h3",
3951
- {
3952
- className: P(
3953
- textVariants.heading.h4(),
3954
- "mb-2",
3955
- s ? "text-white" : ""
3956
- ),
3957
- children: o
3958
- }
3959
- ),
3960
- /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
3961
- /* @__PURE__ */ jsx(
3962
- "span",
3963
- {
3964
- className: P(
3965
- "text-4xl font-bold",
3966
- s ? "text-white" : "text-gray-900 dark:text-gray-100"
3967
- ),
3968
- children: r
3969
- }
3970
- ),
3971
- t && /* @__PURE__ */ jsx(
3972
- "span",
3973
- {
3974
- className: P(
3975
- "text-lg",
3976
- s ? "text-blue-100" : "text-gray-500 dark:text-gray-400"
3977
- ),
3978
- children: t
3979
- }
3980
- )
3981
- ] }),
3982
- c && /* @__PURE__ */ jsx(
3983
- "div",
3984
- {
3985
- className: P(
3986
- "inline-flex items-center px-2 py-1 rounded-full text-sm font-semibold",
3987
- s ? "bg-blue-500 text-white" : "bg-green-100 text-green-700 dark:bg-green-900/50 dark:text-green-300"
3988
- ),
3989
- children: c.text
3990
- }
3991
- )
3992
- ] }),
3993
- z,
3994
- n.length > 0 && /* @__PURE__ */ jsx("div", { className: "space-y-3 mb-6 flex-grow", children: n.map((I, U) => /* @__PURE__ */ jsxs("div", { className: "flex items-start", children: [
3995
- /* @__PURE__ */ jsx(
3996
- "svg",
3997
- {
3998
- className: P(
3999
- "w-5 h-5 mr-3 flex-shrink-0",
4000
- s ? "text-blue-200" : "text-green-500"
4001
- ),
4002
- fill: "none",
4003
- stroke: "currentColor",
4004
- viewBox: "0 0 24 24",
4005
- children: /* @__PURE__ */ jsx(
4006
- "path",
4007
- {
4008
- strokeLinecap: "round",
4009
- strokeLinejoin: "round",
4010
- strokeWidth: 2,
4011
- d: "M5 13l4 4L19 7"
4012
- }
4013
- )
4014
- }
4015
- ),
4016
- /* @__PURE__ */ jsx(
4017
- "span",
4018
- {
4019
- className: P(
4020
- "text-sm text-left",
4021
- s ? "text-white" : "text-gray-700 dark:text-gray-300"
4022
- ),
4023
- children: I.replace(/^✓\s*/, "")
4024
- }
4025
- )
4026
- ] }, U)) }),
4027
- h && /* @__PURE__ */ jsxs(
4028
- "div",
4029
- {
4030
- className: P(
4031
- "rounded-lg p-4 mb-4",
4032
- s ? "bg-blue-500/30" : "bg-gradient-to-r from-purple-50 to-blue-50 dark:from-purple-900/20 dark:to-blue-900/20"
4033
- ),
4034
- children: [
4035
- /* @__PURE__ */ jsx("div", { className: "flex items-center mb-2", children: /* @__PURE__ */ jsx(
4036
- "span",
4037
- {
4038
- className: P(
4039
- "font-semibold text-sm",
4040
- s ? "text-white" : "text-purple-600 dark:text-purple-400"
4041
- ),
4042
- children: h.title
4043
- }
4044
- ) }),
4045
- /* @__PURE__ */ jsx(
4046
- "ul",
4047
- {
4048
- className: P(
4049
- "text-xs space-y-1",
4050
- s ? "text-blue-100" : "text-gray-600 dark:text-gray-400"
4051
- ),
4052
- children: h.features.map((I, U) => /* @__PURE__ */ jsxs("li", { children: [
4053
- "• ",
4054
- I
4055
- ] }, U))
4056
- }
4057
- )
4058
- ]
4059
- }
4060
- ),
4061
- x && /* @__PURE__ */ jsx(
4062
- "div",
4063
- {
4064
- className: P(
4065
- "text-center text-sm font-medium mb-4",
4066
- s ? "text-blue-100" : "text-blue-600 dark:text-blue-400"
4067
- ),
4068
- children: x
4069
- }
4070
- ),
4071
- S && /* @__PURE__ */ jsx(
4072
- "div",
4073
- {
4074
- className: P(
4075
- "p-3 rounded-lg mt-auto",
4076
- s ? "bg-blue-500/30" : "bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800"
4077
- ),
4078
- children: /* @__PURE__ */ jsx(
4079
- "p",
4080
- {
4081
- className: P(
4082
- "text-sm font-semibold text-center",
4083
- s ? "text-white" : "text-yellow-700 dark:text-yellow-300"
4084
- ),
4085
- children: S
4086
- }
4087
- )
4088
- }
4089
- )
4090
- ] }),
4091
- E && C && /* @__PURE__ */ jsx("div", { className: "absolute bottom-4 left-0 right-0 px-6", children: y.href ? /* @__PURE__ */ jsx(
4092
- "a",
4093
- {
4094
- href: y.href,
4095
- className: P(
4096
- "block w-full py-3 font-semibold rounded-lg text-center transition-colors",
4097
- s ? "bg-white text-blue-600 hover:bg-gray-100" : "bg-blue-600 text-white hover:bg-blue-700"
4098
- ),
4099
- onClick: (I) => I.stopPropagation(),
4100
- children: y.label
4101
- }
4102
- ) : /* @__PURE__ */ jsx(
4103
- "button",
4104
- {
4105
- onClick: H,
4106
- disabled: k,
4107
- className: P(
4108
- "w-full py-3 font-semibold rounded-lg transition-colors",
4109
- s ? "bg-white text-blue-600 hover:bg-gray-100" : "bg-blue-600 text-white hover:bg-blue-700",
4110
- k && "opacity-50 cursor-not-allowed"
4111
- ),
4112
- children: y.label
4113
- }
4114
- ) }),
4115
- E && !C && /* @__PURE__ */ jsx("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsx(
4116
- "div",
4117
- {
4118
- className: P(
4119
- "w-5 h-5 rounded-full border-2 flex items-center justify-center",
4120
- s ? "border-white bg-white" : "border-gray-300 dark:border-gray-600"
4121
- ),
4122
- children: s && /* @__PURE__ */ jsx("div", { className: "w-2 h-2 rounded-full bg-blue-600" })
4123
- }
4124
- ) })
4125
- ]
4126
- }
4127
- );
4128
- }, Kt = ({
4129
- title: e,
4130
- children: o,
4131
- error: r,
4132
- variant: t = "selection",
4133
- currentStatus: n,
4134
- primaryAction: s,
4135
- secondaryAction: a,
4136
- minTileWidth: p = 240,
4137
- className: c,
4138
- headerContent: h,
4139
- aboveProducts: x,
4140
- footerContent: S,
4141
- currentStatusLabel: w = "Current Status",
4142
- freeTileConfig: y,
4143
- onTrack: j,
4144
- trackingLabel: z,
4145
- componentName: k = "SubscriptionLayout"
4146
- }) => {
4147
- var _a, _b, _c, _d;
4148
- const D = t === "selection" && s, F = () => {
4149
- j == null ? void 0 : j({ action: "primary_action", trackingLabel: z, componentName: k }), s == null ? void 0 : s.onClick();
4150
- }, M = () => {
4151
- j == null ? void 0 : j({ action: "secondary_action", trackingLabel: z, componentName: k }), a == null ? void 0 : a.onClick();
4152
- }, L = t === "cta" && y, N = {
4153
- display: "grid",
4154
- gridTemplateColumns: `repeat(auto-fit, minmax(min(100%, ${p}px), 1fr))`,
4155
- gap: "1.5rem"
4156
- };
4157
- return /* @__PURE__ */ jsx(Card, { className: c, children: /* @__PURE__ */ jsxs(CardContent, { className: "pt-6", children: [
4158
- h,
4159
- n && /* @__PURE__ */ jsxs(Fragment, { children: [
4160
- /* @__PURE__ */ jsx("h2", { className: P(textVariants.heading.h3(), "mb-4"), children: w }),
4161
- n.isActive ? /* @__PURE__ */ jsxs("div", { className: "bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-lg p-4 mb-6", children: [
4162
- /* @__PURE__ */ jsxs("div", { className: "flex items-center mb-2", children: [
4163
- /* @__PURE__ */ jsx("div", { className: "w-3 h-3 bg-green-500 rounded-full mr-3" }),
4164
- /* @__PURE__ */ jsx("span", { className: "font-semibold text-green-800 dark:text-green-300", children: ((_a = n.activeContent) == null ? void 0 : _a.title) || "Active Subscription" })
4165
- ] }),
4166
- ((_b = n.activeContent) == null ? void 0 : _b.fields) && n.activeContent.fields.length > 0 && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 mt-4", children: n.activeContent.fields.map(
4167
- (C, E) => /* @__PURE__ */ jsxs("div", { children: [
4168
- /* @__PURE__ */ jsx("p", { className: "text-sm text-green-600 dark:text-green-400", children: C.label }),
4169
- /* @__PURE__ */ jsx("p", { className: "font-semibold text-green-800 dark:text-green-300", children: C.value })
4170
- ] }, E)
4171
- ) })
4172
- ] }) : /* @__PURE__ */ jsxs("div", { className: "bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4 mb-6", children: [
4173
- /* @__PURE__ */ jsxs("div", { className: "flex items-center mb-2", children: [
4174
- /* @__PURE__ */ jsx("div", { className: "w-3 h-3 bg-yellow-500 rounded-full mr-3" }),
4175
- /* @__PURE__ */ jsx("span", { className: "font-semibold text-yellow-800 dark:text-yellow-300", children: ((_c = n.inactiveContent) == null ? void 0 : _c.title) || "No Active Subscription" })
4176
- ] }),
4177
- ((_d = n.inactiveContent) == null ? void 0 : _d.message) && /* @__PURE__ */ jsx("p", { className: "text-yellow-700 dark:text-yellow-400", children: n.inactiveContent.message })
4178
- ] })
4179
- ] }),
4180
- /* @__PURE__ */ jsx("h2", { className: P(textVariants.heading.h3(), "mb-4"), children: e }),
4181
- x,
4182
- /* @__PURE__ */ jsxs("div", { style: N, children: [
4183
- L && /* @__PURE__ */ jsx(
4184
- _t,
4185
- {
4186
- id: "free",
4187
- title: y.title,
4188
- price: y.price,
4189
- periodLabel: y.periodLabel,
4190
- features: y.features,
4191
- isSelected: false,
4192
- onSelect: () => {
4193
- },
4194
- topBadge: y.topBadge,
4195
- ctaButton: y.ctaButton
4196
- }
4197
- ),
4198
- o
4199
- ] }),
4200
- S,
4201
- r && /* @__PURE__ */ jsx("div", { className: "bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 mt-6", children: /* @__PURE__ */ jsx("p", { className: "text-red-600 dark:text-red-400", children: r }) }),
4202
- D && /* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row gap-3 mt-6", children: [
4203
- a && /* @__PURE__ */ jsx(
4204
- Button,
4205
- {
4206
- onClick: M,
4207
- disabled: a.disabled || a.loading,
4208
- variant: "outline",
4209
- className: "sm:flex-shrink-0",
4210
- children: a.label
4211
- }
4212
- ),
4213
- /* @__PURE__ */ jsx(
4214
- Button,
4215
- {
4216
- onClick: F,
4217
- disabled: s.disabled || s.loading,
4218
- className: "flex-1",
4219
- children: s.label
4220
- }
4221
- )
4222
- ] })
4223
- ] }) });
4224
- };
4225
- function Yt({
4226
- options: e,
4227
- value: o,
4228
- onChange: r,
4229
- className: t,
4230
- disabled: n = false,
4231
- size: s = "md"
4232
- }) {
4233
- const a = {
4234
- sm: "px-3 py-1.5 text-xs",
4235
- md: "px-4 py-2 text-sm",
4236
- lg: "px-6 py-3 text-base"
4237
- };
4238
- return /* @__PURE__ */ jsx(
4239
- "div",
4240
- {
4241
- className: P(
4242
- "inline-flex rounded-lg bg-gray-100 dark:bg-gray-800 p-1",
4243
- n && "opacity-50",
4244
- t
4245
- ),
4246
- role: "radiogroup",
4247
- children: e.map((p) => {
4248
- const c = o === p.value;
4249
- return /* @__PURE__ */ jsx(
4250
- "button",
4251
- {
4252
- type: "button",
4253
- role: "radio",
4254
- "aria-checked": c,
4255
- disabled: n,
4256
- onClick: () => !n && r(p.value),
4257
- className: P(
4258
- a[s],
4259
- "font-medium rounded-md transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2",
4260
- c ? "bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm" : "text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white",
4261
- n && "cursor-not-allowed"
4262
- ),
4263
- children: p.label
4264
- },
4265
- p.value
4266
- );
4267
- })
4268
- }
4269
- );
4270
- }
4271
- createContext(
4272
- void 0
4273
- );
4274
1110
  function AppSubscriptionsPage({
4275
1111
  subscription,
4276
1112
  rateLimitsConfig,
@@ -4319,7 +1155,7 @@ function AppSubscriptionsPage({
4319
1155
  if (!product.period) return false;
4320
1156
  const isYearly = product.period.includes("Y") || product.period.includes("year");
4321
1157
  return billingPeriod === "yearly" ? isYearly : !isYearly;
4322
- }).sort((a, b2) => parseFloat(a.price) - parseFloat(b2.price));
1158
+ }).sort((a, b) => parseFloat(a.price) - parseFloat(b.price));
4323
1159
  const handlePeriodChange = useCallback(
4324
1160
  (period) => {
4325
1161
  setBillingPeriod(period);
@@ -4490,7 +1326,7 @@ function AppSubscriptionsPage({
4490
1326
  { value: "yearly", label: labels.billingYearly }
4491
1327
  ];
4492
1328
  return /* @__PURE__ */ jsx(
4493
- Kt,
1329
+ SubscriptionLayout,
4494
1330
  {
4495
1331
  title: labels.title,
4496
1332
  error,
@@ -4532,7 +1368,7 @@ function AppSubscriptionsPage({
4532
1368
  } : void 0
4533
1369
  },
4534
1370
  aboveProducts: !isLoading && products.length > 0 ? /* @__PURE__ */ jsx("div", { className: "flex justify-center mb-6", children: /* @__PURE__ */ jsx(
4535
- Yt,
1371
+ SegmentedControl,
4536
1372
  {
4537
1373
  options: billingPeriodOptions,
4538
1374
  value: billingPeriod,
@@ -4553,7 +1389,7 @@ function AppSubscriptionsPage({
4553
1389
  },
4554
1390
  children: isLoading ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600" }) }) : products.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-center py-12 text-theme-text-secondary", children: labels.noProducts }) : filteredProducts.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-center py-12 text-theme-text-secondary", children: labels.noProductsForPeriod }) : /* @__PURE__ */ jsxs(Fragment, { children: [
4555
1391
  /* @__PURE__ */ jsx(
4556
- _t,
1392
+ SubscriptionTile,
4557
1393
  {
4558
1394
  id: "free",
4559
1395
  title: labels.freeTierTitle,
@@ -4574,7 +1410,7 @@ function AppSubscriptionsPage({
4574
1410
  filteredProducts.map((product) => {
4575
1411
  var _a;
4576
1412
  return /* @__PURE__ */ jsx(
4577
- _t,
1413
+ SubscriptionTile,
4578
1414
  {
4579
1415
  id: product.identifier,
4580
1416
  title: product.title,
@@ -4665,7 +1501,7 @@ function AppPricingPage({
4665
1501
  if (!product.period) return false;
4666
1502
  const isYearly = product.period.includes("Y") || product.period.includes("year");
4667
1503
  return billingPeriod === "yearly" ? isYearly : !isYearly;
4668
- }).sort((a, b2) => parseFloat(a.price) - parseFloat(b2.price));
1504
+ }).sort((a, b) => parseFloat(a.price) - parseFloat(b.price));
4669
1505
  const getPeriodLabel = useCallback(
4670
1506
  (period) => {
4671
1507
  if (!period) return "";
@@ -4731,7 +1567,7 @@ function AppPricingPage({
4731
1567
  ] }) }),
4732
1568
  /* @__PURE__ */ jsx("section", { className: "pb-20 px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxs("div", { className: "max-w-6xl mx-auto", children: [
4733
1569
  /* @__PURE__ */ jsx("div", { className: "flex justify-center mb-8", children: /* @__PURE__ */ jsx(
4734
- Yt,
1570
+ SegmentedControl,
4735
1571
  {
4736
1572
  options: billingPeriodOptions,
4737
1573
  value: billingPeriod,
@@ -4750,7 +1586,7 @@ function AppPricingPage({
4750
1586
  },
4751
1587
  children: [
4752
1588
  /* @__PURE__ */ jsx(
4753
- _t,
1589
+ SubscriptionTile,
4754
1590
  {
4755
1591
  id: "free",
4756
1592
  title: labels.freeTierTitle,
@@ -4807,7 +1643,7 @@ function AppPricingPage({
4807
1643
  };
4808
1644
  }
4809
1645
  return /* @__PURE__ */ jsx(
4810
- _t,
1646
+ SubscriptionTile,
4811
1647
  {
4812
1648
  id: product.identifier,
4813
1649
  title: product.title,