@almadar/ui 2.20.1 → 2.20.7

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.
Files changed (40) hide show
  1. package/LICENSE +72 -21
  2. package/dist/avl/index.cjs +1345 -1323
  3. package/dist/avl/index.d.cts +47 -47
  4. package/dist/avl/index.js +1321 -1299
  5. package/dist/components/atoms/avl/Avl3DLabel.d.ts +23 -0
  6. package/dist/components/atoms/avl/Avl3DTooltip.d.ts +25 -0
  7. package/dist/components/atoms/avl/index.d.ts +2 -0
  8. package/dist/components/index.cjs +3 -1
  9. package/dist/components/index.js +3 -1
  10. package/dist/components/molecules/avl/Avl3DCrossWire.d.ts +22 -0
  11. package/dist/components/molecules/avl/Avl3DEntityCore.d.ts +26 -0
  12. package/dist/components/molecules/avl/Avl3DExprTree.d.ts +21 -0
  13. package/dist/components/molecules/avl/Avl3DOrbitalNode.d.ts +29 -0
  14. package/dist/components/molecules/avl/Avl3DStateNode.d.ts +34 -0
  15. package/dist/components/molecules/avl/Avl3DTransitionArc.d.ts +38 -0
  16. package/dist/components/molecules/avl/index.d.ts +6 -0
  17. package/dist/components/organisms/avl/Avl3DApplicationScene.d.ts +19 -0
  18. package/dist/components/organisms/avl/Avl3DEffects.d.ts +18 -0
  19. package/dist/components/organisms/avl/Avl3DOrbitalScene.d.ts +23 -0
  20. package/dist/components/organisms/avl/Avl3DTraitScene.d.ts +19 -0
  21. package/dist/components/organisms/avl/Avl3DTransitionScene.d.ts +17 -0
  22. package/dist/components/organisms/avl/Avl3DViewer.d.ts +40 -0
  23. package/dist/components/organisms/avl/avl-3d-context.d.ts +32 -0
  24. package/dist/components/organisms/avl/avl-3d-layout.d.ts +116 -0
  25. package/dist/components/organisms/game/three/index.cjs +2549 -120
  26. package/dist/components/organisms/game/three/index.d.ts +8 -0
  27. package/dist/components/organisms/game/three/index.js +2419 -5
  28. package/dist/illustrations/index.cjs +2880 -109
  29. package/dist/illustrations/index.js +2879 -108
  30. package/dist/providers/OrbitalProvider.d.ts +4 -2
  31. package/dist/providers/index.cjs +263 -284
  32. package/dist/providers/index.js +189 -210
  33. package/dist/runtime/OrbPreview.d.ts +9 -6
  34. package/dist/runtime/ServerBridge.d.ts +23 -0
  35. package/dist/runtime/enrichFromResponse.d.ts +21 -0
  36. package/dist/runtime/index.cjs +31754 -2587
  37. package/dist/runtime/index.d.ts +2 -0
  38. package/dist/runtime/index.js +31735 -2571
  39. package/index.css +156 -0
  40. package/package.json +9 -5
@@ -1,11 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var React24 = require('react');
4
+ var React26 = require('react');
5
+ require('@react-three/drei');
6
+ require('@react-three/fiber');
7
+ require('three');
5
8
 
6
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
10
 
8
- var React24__default = /*#__PURE__*/_interopDefault(React24);
11
+ var React26__default = /*#__PURE__*/_interopDefault(React26);
9
12
 
10
13
  function buildForkPaths(x, y, branches, scale) {
11
14
  const inLength = 30 * scale;
@@ -132,7 +135,7 @@ var SvgFlow = ({
132
135
  opacity = 1,
133
136
  className
134
137
  }) => {
135
- const markerId = React24__default.default.useMemo(() => {
138
+ const markerId = React26__default.default.useMemo(() => {
136
139
  flowIdCounter += 1;
137
140
  return `almadar-flow-arrow-${flowIdCounter}`;
138
141
  }, []);
@@ -524,7 +527,7 @@ SvgMorph.displayName = "SvgMorph";
524
527
  var SvgNode = ({
525
528
  x,
526
529
  y,
527
- r = 6,
530
+ r: r2 = 6,
528
531
  variant = "filled",
529
532
  color = "var(--color-primary)",
530
533
  opacity = 1,
@@ -537,7 +540,7 @@ var SvgNode = ({
537
540
  {
538
541
  cx: x,
539
542
  cy: y,
540
- r: r * 2,
543
+ r: r2 * 2,
541
544
  fill: "none",
542
545
  stroke: color,
543
546
  strokeWidth: 1,
@@ -550,7 +553,7 @@ var SvgNode = ({
550
553
  {
551
554
  cx: x,
552
555
  cy: y,
553
- r,
556
+ r: r2,
554
557
  fill: variant === "stroked" ? "none" : color,
555
558
  stroke: variant === "stroked" ? color : "none",
556
559
  strokeWidth: variant === "stroked" ? 2 : 0
@@ -560,7 +563,7 @@ var SvgNode = ({
560
563
  "text",
561
564
  {
562
565
  x,
563
- y: y + r + 14,
566
+ y: y + r2 + 14,
564
567
  textAnchor: "middle",
565
568
  fill: color,
566
569
  fontSize: 11,
@@ -625,7 +628,7 @@ var ringIdCounter = 0;
625
628
  var SvgRing = ({
626
629
  cx,
627
630
  cy,
628
- r = 40,
631
+ r: r2 = 40,
629
632
  variant = "solid",
630
633
  color = "var(--color-primary)",
631
634
  strokeWidth = 1.5,
@@ -633,7 +636,7 @@ var SvgRing = ({
633
636
  className,
634
637
  label
635
638
  }) => {
636
- const gradientId = React24__default.default.useMemo(() => {
639
+ const gradientId = React26__default.default.useMemo(() => {
637
640
  ringIdCounter += 1;
638
641
  return `almadar-ring-glow-${ringIdCounter}`;
639
642
  }, []);
@@ -643,14 +646,14 @@ var SvgRing = ({
643
646
  /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: color, stopOpacity: 0.15 }),
644
647
  /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: color, stopOpacity: 0 })
645
648
  ] }) }),
646
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r, fill: `url(#${gradientId})` })
649
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: r2, fill: `url(#${gradientId})` })
647
650
  ] }),
648
651
  /* @__PURE__ */ jsxRuntime.jsx(
649
652
  "circle",
650
653
  {
651
654
  cx,
652
655
  cy,
653
- r,
656
+ r: r2,
654
657
  fill: "none",
655
658
  stroke: color,
656
659
  strokeWidth,
@@ -661,7 +664,7 @@ var SvgRing = ({
661
664
  "text",
662
665
  {
663
666
  x: cx,
664
- y: cy - r - 6,
667
+ y: cy - r2 - 6,
665
668
  textAnchor: "middle",
666
669
  fill: color,
667
670
  fontSize: 11,
@@ -793,7 +796,7 @@ var AIGenerates = ({
793
796
  color = "var(--color-primary)",
794
797
  animated = false
795
798
  }) => {
796
- const ids = React24__default.default.useMemo(() => {
799
+ const ids = React26__default.default.useMemo(() => {
797
800
  aiGeneratesId += 1;
798
801
  const base = `ag-${aiGeneratesId}`;
799
802
  return {
@@ -914,16 +917,16 @@ var AIGenerates = ({
914
917
  };
915
918
  AIGenerates.displayName = "AIGenerates";
916
919
  var closedCircuitId = 0;
917
- function pentagonPoint(cx, cy, r, index) {
920
+ function pentagonPoint(cx, cy, r2, index) {
918
921
  const angle = Math.PI * 2 * index / 5 - Math.PI / 2;
919
- return [cx + r * Math.cos(angle), cy + r * Math.sin(angle)];
922
+ return [cx + r2 * Math.cos(angle), cy + r2 * Math.sin(angle)];
920
923
  }
921
924
  var ClosedCircuit = ({
922
925
  className,
923
926
  color = "var(--color-primary)",
924
927
  animated = false
925
928
  }) => {
926
- const ids = React24__default.default.useMemo(() => {
929
+ const ids = React26__default.default.useMemo(() => {
927
930
  closedCircuitId += 1;
928
931
  const base = `cc-${closedCircuitId}`;
929
932
  return {
@@ -935,8 +938,8 @@ var ClosedCircuit = ({
935
938
  }, []);
936
939
  const cx = 300;
937
940
  const cy = 200;
938
- const r = 130;
939
- const points = Array.from({ length: 5 }, (_, i) => pentagonPoint(cx, cy, r, i));
941
+ const r2 = 130;
942
+ const points = Array.from({ length: 5 }, (_, i) => pentagonPoint(cx, cy, r2, i));
940
943
  const gx = points[1][0];
941
944
  const gy = points[1][1];
942
945
  const ds = 10;
@@ -985,7 +988,7 @@ var ClosedCircuit = ({
985
988
  }
986
989
  ` }),
987
990
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: 50, fill: "none", stroke: color, strokeWidth: 0.5, opacity: 0.06 }),
988
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: r + 20, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.04 }),
991
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: r2 + 20, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.04 }),
989
992
  points.map((pt, i) => {
990
993
  const next = points[(i + 1) % 5];
991
994
  const mx = (pt[0] + next[0]) / 2 + (cy - (pt[1] + next[1]) / 2) * 0.15;
@@ -1069,7 +1072,7 @@ var CommunityOwnership = ({
1069
1072
  color = "var(--color-primary)",
1070
1073
  animated = false
1071
1074
  }) => {
1072
- const ids = React24__default.default.useMemo(() => {
1075
+ const ids = React26__default.default.useMemo(() => {
1073
1076
  communityOwnershipId += 1;
1074
1077
  const base = `co-${communityOwnershipId}`;
1075
1078
  return { unitGlow: `${base}-ug` };
@@ -1154,7 +1157,7 @@ var CompileAnywhere = ({
1154
1157
  color = "var(--color-primary)",
1155
1158
  animated = false
1156
1159
  }) => {
1157
- const ids = React24__default.default.useMemo(() => {
1160
+ const ids = React26__default.default.useMemo(() => {
1158
1161
  compileAnywhereId += 1;
1159
1162
  const base = `ca-${compileAnywhereId}`;
1160
1163
  return {
@@ -1284,7 +1287,7 @@ var ComposableModels = ({
1284
1287
  color = "var(--color-primary)",
1285
1288
  animated = false
1286
1289
  }) => {
1287
- const ids = React24__default.default.useMemo(() => {
1290
+ const ids = React26__default.default.useMemo(() => {
1288
1291
  composableModelsId += 1;
1289
1292
  const base = `cm-${composableModelsId}`;
1290
1293
  return {
@@ -1431,7 +1434,7 @@ var DescribeProveDeploy = ({
1431
1434
  color = "var(--color-primary)",
1432
1435
  animated = false
1433
1436
  }) => {
1434
- const ids = React24__default.default.useMemo(() => {
1437
+ const ids = React26__default.default.useMemo(() => {
1435
1438
  describeProveDeployId += 1;
1436
1439
  const base = `dpd-${describeProveDeployId}`;
1437
1440
  return {
@@ -1599,7 +1602,7 @@ var DomainGrid = ({
1599
1602
  color = "var(--color-primary)",
1600
1603
  animated = false
1601
1604
  }) => {
1602
- const ids = React24__default.default.useMemo(() => {
1605
+ const ids = React26__default.default.useMemo(() => {
1603
1606
  domainGridId += 1;
1604
1607
  const base = `dg-${domainGridId}`;
1605
1608
  return { clusterGlow: `${base}-cg` };
@@ -1702,7 +1705,7 @@ var EventBus = ({
1702
1705
  color = "var(--color-primary)",
1703
1706
  animated = false
1704
1707
  }) => {
1705
- const ids = React24__default.default.useMemo(() => {
1708
+ const ids = React26__default.default.useMemo(() => {
1706
1709
  eventBusId += 1;
1707
1710
  const base = `eb-${eventBusId}`;
1708
1711
  return {
@@ -1763,12 +1766,12 @@ var EventBus = ({
1763
1766
  `conn-${i}`
1764
1767
  )),
1765
1768
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: CX, cy: CY, r: 40, fill: `url(#${ids.pulseGlow})` }),
1766
- [30, 50, 75].map((r, i) => /* @__PURE__ */ jsxRuntime.jsx(
1769
+ [30, 50, 75].map((r2, i) => /* @__PURE__ */ jsxRuntime.jsx(
1767
1770
  "circle",
1768
1771
  {
1769
1772
  cx: CX,
1770
1773
  cy: CY,
1771
- r,
1774
+ r: r2,
1772
1775
  fill: "none",
1773
1776
  stroke: color,
1774
1777
  strokeWidth: 1.2,
@@ -1814,7 +1817,7 @@ var OrbitalUnit = ({
1814
1817
  color = "var(--color-primary)",
1815
1818
  animated = false
1816
1819
  }) => {
1817
- const ids = React24__default.default.useMemo(() => {
1820
+ const ids = React26__default.default.useMemo(() => {
1818
1821
  orbitalUnitId += 1;
1819
1822
  const base = `ou-${orbitalUnitId}`;
1820
1823
  return {
@@ -1980,7 +1983,7 @@ var PlanVerifyRemember = ({
1980
1983
  color = "var(--color-primary)",
1981
1984
  animated = false
1982
1985
  }) => {
1983
- const ids = React24__default.default.useMemo(() => {
1986
+ const ids = React26__default.default.useMemo(() => {
1984
1987
  planVerifyRememberId += 1;
1985
1988
  const base = `pvr-${planVerifyRememberId}`;
1986
1989
  return {
@@ -2129,7 +2132,7 @@ var ProveCorrect = ({
2129
2132
  color = "var(--color-primary)",
2130
2133
  animated = false
2131
2134
  }) => {
2132
- const ids = React24__default.default.useMemo(() => {
2135
+ const ids = React26__default.default.useMemo(() => {
2133
2136
  proveCorrectId += 1;
2134
2137
  const base = `pc-${proveCorrectId}`;
2135
2138
  return {
@@ -2249,7 +2252,7 @@ var ServiceLayers = ({
2249
2252
  color = "var(--color-primary)",
2250
2253
  animated = false
2251
2254
  }) => {
2252
- const ids = React24__default.default.useMemo(() => {
2255
+ const ids = React26__default.default.useMemo(() => {
2253
2256
  serviceLayersId += 1;
2254
2257
  const base = `sly-${serviceLayersId}`;
2255
2258
  return {
@@ -2401,7 +2404,7 @@ var SharedReality = ({
2401
2404
  color = "var(--color-primary)",
2402
2405
  animated = false
2403
2406
  }) => {
2404
- const ids = React24__default.default.useMemo(() => {
2407
+ const ids = React26__default.default.useMemo(() => {
2405
2408
  sharedRealityId += 1;
2406
2409
  const base = `sr-${sharedRealityId}`;
2407
2410
  return { grad: `${base}-grad`, unitGlow: `${base}-ug` };
@@ -2503,7 +2506,7 @@ var StandardLibrary = ({
2503
2506
  color = "var(--color-primary)",
2504
2507
  animated = false
2505
2508
  }) => {
2506
- const ids = React24__default.default.useMemo(() => {
2509
+ const ids = React26__default.default.useMemo(() => {
2507
2510
  standardLibraryId += 1;
2508
2511
  const base = `sl-${standardLibraryId}`;
2509
2512
  return { glow: `${base}-glow`, groupGlow: `${base}-gg` };
@@ -2571,9 +2574,9 @@ var StandardLibrary = ({
2571
2574
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: group.x, cy: group.y, r: 24, fill: "none", stroke: color, strokeWidth: 0.7, opacity: 0.15 }),
2572
2575
  Array.from({ length: group.dots }, (_, di) => {
2573
2576
  const angle = di / group.dots * Math.PI * 2 - Math.PI / 2;
2574
- const r = di === 0 ? 0 : spread * 0.55;
2575
- const dx = di === 0 ? group.x : group.x + Math.cos(angle) * r;
2576
- const dy = di === 0 ? group.y : group.y + Math.sin(angle) * r;
2577
+ const r2 = di === 0 ? 0 : spread * 0.55;
2578
+ const dx = di === 0 ? group.x : group.x + Math.cos(angle) * r2;
2579
+ const dy = di === 0 ? group.y : group.y + Math.sin(angle) * r2;
2577
2580
  return /* @__PURE__ */ jsxRuntime.jsx(
2578
2581
  "circle",
2579
2582
  {
@@ -2612,7 +2615,7 @@ var StateMachine = ({
2612
2615
  color = "var(--color-primary)",
2613
2616
  animated = false
2614
2617
  }) => {
2615
- const ids = React24__default.default.useMemo(() => {
2618
+ const ids = React26__default.default.useMemo(() => {
2616
2619
  stateMachineId += 1;
2617
2620
  const base = `sm-${stateMachineId}`;
2618
2621
  return {
@@ -2790,7 +2793,7 @@ var WorldModel = ({
2790
2793
  color = "var(--color-primary)",
2791
2794
  animated = false
2792
2795
  }) => {
2793
- const ids = React24__default.default.useMemo(() => {
2796
+ const ids = React26__default.default.useMemo(() => {
2794
2797
  worldModelId += 1;
2795
2798
  const base = `wm-${worldModelId}`;
2796
2799
  return {
@@ -2952,7 +2955,7 @@ var AVL_OPERATOR_COLORS = {
2952
2955
  var AvlOrbital = ({
2953
2956
  cx = 0,
2954
2957
  cy = 0,
2955
- r = 80,
2958
+ r: r2 = 80,
2956
2959
  label,
2957
2960
  color = "var(--color-primary)",
2958
2961
  opacity = 1,
@@ -2964,7 +2967,7 @@ var AvlOrbital = ({
2964
2967
  {
2965
2968
  cx,
2966
2969
  cy,
2967
- r,
2970
+ r: r2,
2968
2971
  fill: "none",
2969
2972
  stroke: color,
2970
2973
  strokeWidth: 2
@@ -2975,7 +2978,7 @@ var AvlOrbital = ({
2975
2978
  {
2976
2979
  cx,
2977
2980
  cy,
2978
- r,
2981
+ r: r2,
2979
2982
  fill: color,
2980
2983
  opacity: 0.03
2981
2984
  }
@@ -2984,7 +2987,7 @@ var AvlOrbital = ({
2984
2987
  "text",
2985
2988
  {
2986
2989
  x: cx,
2987
- y: cy - r - 8,
2990
+ y: cy - r2 - 8,
2988
2991
  textAnchor: "middle",
2989
2992
  fill: color,
2990
2993
  fontSize: 11,
@@ -3011,7 +3014,7 @@ function persistenceStroke(kind) {
3011
3014
  var AvlEntity = ({
3012
3015
  x = 0,
3013
3016
  y = 0,
3014
- r = 18,
3017
+ r: r2 = 18,
3015
3018
  fieldCount = 0,
3016
3019
  persistence = "persistent",
3017
3020
  label,
@@ -3022,8 +3025,8 @@ var AvlEntity = ({
3022
3025
  const strokeProps = persistenceStroke(persistence);
3023
3026
  const facets = Array.from({ length: fieldCount }, (_, i) => {
3024
3027
  const angle = Math.PI * 2 * i / fieldCount - Math.PI / 2;
3025
- const innerR = r + 2;
3026
- const outerR = r + 10;
3028
+ const innerR = r2 + 2;
3029
+ const outerR = r2 + 10;
3027
3030
  return {
3028
3031
  x1: x + innerR * Math.cos(angle),
3029
3032
  y1: y + innerR * Math.sin(angle),
@@ -3032,13 +3035,13 @@ var AvlEntity = ({
3032
3035
  };
3033
3036
  });
3034
3037
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { className, opacity, children: [
3035
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: x, cy: y, r, fill: color, opacity: 0.15 }),
3038
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: x, cy: y, r: r2, fill: color, opacity: 0.15 }),
3036
3039
  /* @__PURE__ */ jsxRuntime.jsx(
3037
3040
  "circle",
3038
3041
  {
3039
3042
  cx: x,
3040
3043
  cy: y,
3041
- r,
3044
+ r: r2,
3042
3045
  fill: "none",
3043
3046
  stroke: color,
3044
3047
  strokeWidth: strokeProps.strokeWidth,
@@ -3050,7 +3053,7 @@ var AvlEntity = ({
3050
3053
  {
3051
3054
  cx: x,
3052
3055
  cy: y,
3053
- r: r - 4,
3056
+ r: r2 - 4,
3054
3057
  fill: "none",
3055
3058
  stroke: color,
3056
3059
  strokeWidth: 1.5
@@ -3073,7 +3076,7 @@ var AvlEntity = ({
3073
3076
  "text",
3074
3077
  {
3075
3078
  x,
3076
- y: y + r + (fieldCount > 0 ? 18 : 14),
3079
+ y: y + r2 + (fieldCount > 0 ? 18 : 14),
3077
3080
  textAnchor: "middle",
3078
3081
  fill: color,
3079
3082
  fontSize: 10,
@@ -3301,7 +3304,7 @@ var AvlTransition = ({
3301
3304
  opacity = 1,
3302
3305
  className
3303
3306
  }) => {
3304
- const ids = React24__default.default.useMemo(() => {
3307
+ const ids = React26__default.default.useMemo(() => {
3305
3308
  avlTransitionId += 1;
3306
3309
  return { arrow: `avl-tr-${avlTransitionId}-arrow` };
3307
3310
  }, []);
@@ -3975,23 +3978,2772 @@ var AvlBindingRef = ({
3975
3978
  };
3976
3979
  AvlBindingRef.displayName = "AvlBindingRef";
3977
3980
 
3981
+ // node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
3982
+ function r(e) {
3983
+ var t, f, n = "";
3984
+ if ("string" == typeof e || "number" == typeof e) n += e;
3985
+ else if ("object" == typeof e) if (Array.isArray(e)) {
3986
+ var o = e.length;
3987
+ for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
3988
+ } else for (f in e) e[f] && (n && (n += " "), n += f);
3989
+ return n;
3990
+ }
3991
+ function clsx() {
3992
+ for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
3993
+ return n;
3994
+ }
3995
+
3996
+ // node_modules/.pnpm/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs
3997
+ var CLASS_PART_SEPARATOR = "-";
3998
+ var createClassGroupUtils = (config) => {
3999
+ const classMap = createClassMap(config);
4000
+ const {
4001
+ conflictingClassGroups,
4002
+ conflictingClassGroupModifiers
4003
+ } = config;
4004
+ const getClassGroupId = (className) => {
4005
+ const classParts = className.split(CLASS_PART_SEPARATOR);
4006
+ if (classParts[0] === "" && classParts.length !== 1) {
4007
+ classParts.shift();
4008
+ }
4009
+ return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
4010
+ };
4011
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
4012
+ const conflicts = conflictingClassGroups[classGroupId] || [];
4013
+ if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
4014
+ return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
4015
+ }
4016
+ return conflicts;
4017
+ };
4018
+ return {
4019
+ getClassGroupId,
4020
+ getConflictingClassGroupIds
4021
+ };
4022
+ };
4023
+ var getGroupRecursive = (classParts, classPartObject) => {
4024
+ if (classParts.length === 0) {
4025
+ return classPartObject.classGroupId;
4026
+ }
4027
+ const currentClassPart = classParts[0];
4028
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
4029
+ const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : void 0;
4030
+ if (classGroupFromNextClassPart) {
4031
+ return classGroupFromNextClassPart;
4032
+ }
4033
+ if (classPartObject.validators.length === 0) {
4034
+ return void 0;
4035
+ }
4036
+ const classRest = classParts.join(CLASS_PART_SEPARATOR);
4037
+ return classPartObject.validators.find(({
4038
+ validator
4039
+ }) => validator(classRest))?.classGroupId;
4040
+ };
4041
+ var arbitraryPropertyRegex = /^\[(.+)\]$/;
4042
+ var getGroupIdForArbitraryProperty = (className) => {
4043
+ if (arbitraryPropertyRegex.test(className)) {
4044
+ const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
4045
+ const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(":"));
4046
+ if (property) {
4047
+ return "arbitrary.." + property;
4048
+ }
4049
+ }
4050
+ };
4051
+ var createClassMap = (config) => {
4052
+ const {
4053
+ theme,
4054
+ prefix
4055
+ } = config;
4056
+ const classMap = {
4057
+ nextPart: /* @__PURE__ */ new Map(),
4058
+ validators: []
4059
+ };
4060
+ const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);
4061
+ prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {
4062
+ processClassesRecursively(classGroup, classMap, classGroupId, theme);
4063
+ });
4064
+ return classMap;
4065
+ };
4066
+ var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
4067
+ classGroup.forEach((classDefinition) => {
4068
+ if (typeof classDefinition === "string") {
4069
+ const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
4070
+ classPartObjectToEdit.classGroupId = classGroupId;
4071
+ return;
4072
+ }
4073
+ if (typeof classDefinition === "function") {
4074
+ if (isThemeGetter(classDefinition)) {
4075
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
4076
+ return;
4077
+ }
4078
+ classPartObject.validators.push({
4079
+ validator: classDefinition,
4080
+ classGroupId
4081
+ });
4082
+ return;
4083
+ }
4084
+ Object.entries(classDefinition).forEach(([key, classGroup2]) => {
4085
+ processClassesRecursively(classGroup2, getPart(classPartObject, key), classGroupId, theme);
4086
+ });
4087
+ });
4088
+ };
4089
+ var getPart = (classPartObject, path) => {
4090
+ let currentClassPartObject = classPartObject;
4091
+ path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {
4092
+ if (!currentClassPartObject.nextPart.has(pathPart)) {
4093
+ currentClassPartObject.nextPart.set(pathPart, {
4094
+ nextPart: /* @__PURE__ */ new Map(),
4095
+ validators: []
4096
+ });
4097
+ }
4098
+ currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
4099
+ });
4100
+ return currentClassPartObject;
4101
+ };
4102
+ var isThemeGetter = (func) => func.isThemeGetter;
4103
+ var getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {
4104
+ if (!prefix) {
4105
+ return classGroupEntries;
4106
+ }
4107
+ return classGroupEntries.map(([classGroupId, classGroup]) => {
4108
+ const prefixedClassGroup = classGroup.map((classDefinition) => {
4109
+ if (typeof classDefinition === "string") {
4110
+ return prefix + classDefinition;
4111
+ }
4112
+ if (typeof classDefinition === "object") {
4113
+ return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));
4114
+ }
4115
+ return classDefinition;
4116
+ });
4117
+ return [classGroupId, prefixedClassGroup];
4118
+ });
4119
+ };
4120
+ var createLruCache = (maxCacheSize) => {
4121
+ if (maxCacheSize < 1) {
4122
+ return {
4123
+ get: () => void 0,
4124
+ set: () => {
4125
+ }
4126
+ };
4127
+ }
4128
+ let cacheSize = 0;
4129
+ let cache = /* @__PURE__ */ new Map();
4130
+ let previousCache = /* @__PURE__ */ new Map();
4131
+ const update = (key, value) => {
4132
+ cache.set(key, value);
4133
+ cacheSize++;
4134
+ if (cacheSize > maxCacheSize) {
4135
+ cacheSize = 0;
4136
+ previousCache = cache;
4137
+ cache = /* @__PURE__ */ new Map();
4138
+ }
4139
+ };
4140
+ return {
4141
+ get(key) {
4142
+ let value = cache.get(key);
4143
+ if (value !== void 0) {
4144
+ return value;
4145
+ }
4146
+ if ((value = previousCache.get(key)) !== void 0) {
4147
+ update(key, value);
4148
+ return value;
4149
+ }
4150
+ },
4151
+ set(key, value) {
4152
+ if (cache.has(key)) {
4153
+ cache.set(key, value);
4154
+ } else {
4155
+ update(key, value);
4156
+ }
4157
+ }
4158
+ };
4159
+ };
4160
+ var IMPORTANT_MODIFIER = "!";
4161
+ var createParseClassName = (config) => {
4162
+ const {
4163
+ separator,
4164
+ experimentalParseClassName
4165
+ } = config;
4166
+ const isSeparatorSingleCharacter = separator.length === 1;
4167
+ const firstSeparatorCharacter = separator[0];
4168
+ const separatorLength = separator.length;
4169
+ const parseClassName = (className) => {
4170
+ const modifiers = [];
4171
+ let bracketDepth = 0;
4172
+ let modifierStart = 0;
4173
+ let postfixModifierPosition;
4174
+ for (let index = 0; index < className.length; index++) {
4175
+ let currentCharacter = className[index];
4176
+ if (bracketDepth === 0) {
4177
+ if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {
4178
+ modifiers.push(className.slice(modifierStart, index));
4179
+ modifierStart = index + separatorLength;
4180
+ continue;
4181
+ }
4182
+ if (currentCharacter === "/") {
4183
+ postfixModifierPosition = index;
4184
+ continue;
4185
+ }
4186
+ }
4187
+ if (currentCharacter === "[") {
4188
+ bracketDepth++;
4189
+ } else if (currentCharacter === "]") {
4190
+ bracketDepth--;
4191
+ }
4192
+ }
4193
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
4194
+ const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
4195
+ const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
4196
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
4197
+ return {
4198
+ modifiers,
4199
+ hasImportantModifier,
4200
+ baseClassName,
4201
+ maybePostfixModifierPosition
4202
+ };
4203
+ };
4204
+ if (experimentalParseClassName) {
4205
+ return (className) => experimentalParseClassName({
4206
+ className,
4207
+ parseClassName
4208
+ });
4209
+ }
4210
+ return parseClassName;
4211
+ };
4212
+ var sortModifiers = (modifiers) => {
4213
+ if (modifiers.length <= 1) {
4214
+ return modifiers;
4215
+ }
4216
+ const sortedModifiers = [];
4217
+ let unsortedModifiers = [];
4218
+ modifiers.forEach((modifier) => {
4219
+ const isArbitraryVariant = modifier[0] === "[";
4220
+ if (isArbitraryVariant) {
4221
+ sortedModifiers.push(...unsortedModifiers.sort(), modifier);
4222
+ unsortedModifiers = [];
4223
+ } else {
4224
+ unsortedModifiers.push(modifier);
4225
+ }
4226
+ });
4227
+ sortedModifiers.push(...unsortedModifiers.sort());
4228
+ return sortedModifiers;
4229
+ };
4230
+ var createConfigUtils = (config) => ({
4231
+ cache: createLruCache(config.cacheSize),
4232
+ parseClassName: createParseClassName(config),
4233
+ ...createClassGroupUtils(config)
4234
+ });
4235
+ var SPLIT_CLASSES_REGEX = /\s+/;
4236
+ var mergeClassList = (classList, configUtils) => {
4237
+ const {
4238
+ parseClassName,
4239
+ getClassGroupId,
4240
+ getConflictingClassGroupIds
4241
+ } = configUtils;
4242
+ const classGroupsInConflict = [];
4243
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
4244
+ let result = "";
4245
+ for (let index = classNames.length - 1; index >= 0; index -= 1) {
4246
+ const originalClassName = classNames[index];
4247
+ const {
4248
+ modifiers,
4249
+ hasImportantModifier,
4250
+ baseClassName,
4251
+ maybePostfixModifierPosition
4252
+ } = parseClassName(originalClassName);
4253
+ let hasPostfixModifier = Boolean(maybePostfixModifierPosition);
4254
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
4255
+ if (!classGroupId) {
4256
+ if (!hasPostfixModifier) {
4257
+ result = originalClassName + (result.length > 0 ? " " + result : result);
4258
+ continue;
4259
+ }
4260
+ classGroupId = getClassGroupId(baseClassName);
4261
+ if (!classGroupId) {
4262
+ result = originalClassName + (result.length > 0 ? " " + result : result);
4263
+ continue;
4264
+ }
4265
+ hasPostfixModifier = false;
4266
+ }
4267
+ const variantModifier = sortModifiers(modifiers).join(":");
4268
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
4269
+ const classId = modifierId + classGroupId;
4270
+ if (classGroupsInConflict.includes(classId)) {
4271
+ continue;
4272
+ }
4273
+ classGroupsInConflict.push(classId);
4274
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
4275
+ for (let i = 0; i < conflictGroups.length; ++i) {
4276
+ const group = conflictGroups[i];
4277
+ classGroupsInConflict.push(modifierId + group);
4278
+ }
4279
+ result = originalClassName + (result.length > 0 ? " " + result : result);
4280
+ }
4281
+ return result;
4282
+ };
4283
+ function twJoin() {
4284
+ let index = 0;
4285
+ let argument;
4286
+ let resolvedValue;
4287
+ let string = "";
4288
+ while (index < arguments.length) {
4289
+ if (argument = arguments[index++]) {
4290
+ if (resolvedValue = toValue(argument)) {
4291
+ string && (string += " ");
4292
+ string += resolvedValue;
4293
+ }
4294
+ }
4295
+ }
4296
+ return string;
4297
+ }
4298
+ var toValue = (mix) => {
4299
+ if (typeof mix === "string") {
4300
+ return mix;
4301
+ }
4302
+ let resolvedValue;
4303
+ let string = "";
4304
+ for (let k = 0; k < mix.length; k++) {
4305
+ if (mix[k]) {
4306
+ if (resolvedValue = toValue(mix[k])) {
4307
+ string && (string += " ");
4308
+ string += resolvedValue;
4309
+ }
4310
+ }
4311
+ }
4312
+ return string;
4313
+ };
4314
+ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
4315
+ let configUtils;
4316
+ let cacheGet;
4317
+ let cacheSet;
4318
+ let functionToCall = initTailwindMerge;
4319
+ function initTailwindMerge(classList) {
4320
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
4321
+ configUtils = createConfigUtils(config);
4322
+ cacheGet = configUtils.cache.get;
4323
+ cacheSet = configUtils.cache.set;
4324
+ functionToCall = tailwindMerge;
4325
+ return tailwindMerge(classList);
4326
+ }
4327
+ function tailwindMerge(classList) {
4328
+ const cachedResult = cacheGet(classList);
4329
+ if (cachedResult) {
4330
+ return cachedResult;
4331
+ }
4332
+ const result = mergeClassList(classList, configUtils);
4333
+ cacheSet(classList, result);
4334
+ return result;
4335
+ }
4336
+ return function callTailwindMerge() {
4337
+ return functionToCall(twJoin.apply(null, arguments));
4338
+ };
4339
+ }
4340
+ var fromTheme = (key) => {
4341
+ const themeGetter = (theme) => theme[key] || [];
4342
+ themeGetter.isThemeGetter = true;
4343
+ return themeGetter;
4344
+ };
4345
+ var arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i;
4346
+ var fractionRegex = /^\d+\/\d+$/;
4347
+ var stringLengths = /* @__PURE__ */ new Set(["px", "full", "screen"]);
4348
+ var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
4349
+ var lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
4350
+ var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
4351
+ var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
4352
+ var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
4353
+ var isLength = (value) => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);
4354
+ var isArbitraryLength = (value) => getIsArbitraryValue(value, "length", isLengthOnly);
4355
+ var isNumber = (value) => Boolean(value) && !Number.isNaN(Number(value));
4356
+ var isArbitraryNumber = (value) => getIsArbitraryValue(value, "number", isNumber);
4357
+ var isInteger = (value) => Boolean(value) && Number.isInteger(Number(value));
4358
+ var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
4359
+ var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
4360
+ var isTshirtSize = (value) => tshirtUnitRegex.test(value);
4361
+ var sizeLabels = /* @__PURE__ */ new Set(["length", "size", "percentage"]);
4362
+ var isArbitrarySize = (value) => getIsArbitraryValue(value, sizeLabels, isNever);
4363
+ var isArbitraryPosition = (value) => getIsArbitraryValue(value, "position", isNever);
4364
+ var imageLabels = /* @__PURE__ */ new Set(["image", "url"]);
4365
+ var isArbitraryImage = (value) => getIsArbitraryValue(value, imageLabels, isImage);
4366
+ var isArbitraryShadow = (value) => getIsArbitraryValue(value, "", isShadow);
4367
+ var isAny = () => true;
4368
+ var getIsArbitraryValue = (value, label, testValue) => {
4369
+ const result = arbitraryValueRegex.exec(value);
4370
+ if (result) {
4371
+ if (result[1]) {
4372
+ return typeof label === "string" ? result[1] === label : label.has(result[1]);
4373
+ }
4374
+ return testValue(result[2]);
4375
+ }
4376
+ return false;
4377
+ };
4378
+ var isLengthOnly = (value) => (
4379
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
4380
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
4381
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
4382
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
4383
+ );
4384
+ var isNever = () => false;
4385
+ var isShadow = (value) => shadowRegex.test(value);
4386
+ var isImage = (value) => imageRegex.test(value);
4387
+ var getDefaultConfig = () => {
4388
+ const colors = fromTheme("colors");
4389
+ const spacing = fromTheme("spacing");
4390
+ const blur = fromTheme("blur");
4391
+ const brightness = fromTheme("brightness");
4392
+ const borderColor = fromTheme("borderColor");
4393
+ const borderRadius = fromTheme("borderRadius");
4394
+ const borderSpacing = fromTheme("borderSpacing");
4395
+ const borderWidth = fromTheme("borderWidth");
4396
+ const contrast = fromTheme("contrast");
4397
+ const grayscale = fromTheme("grayscale");
4398
+ const hueRotate = fromTheme("hueRotate");
4399
+ const invert = fromTheme("invert");
4400
+ const gap = fromTheme("gap");
4401
+ const gradientColorStops = fromTheme("gradientColorStops");
4402
+ const gradientColorStopPositions = fromTheme("gradientColorStopPositions");
4403
+ const inset = fromTheme("inset");
4404
+ const margin = fromTheme("margin");
4405
+ const opacity = fromTheme("opacity");
4406
+ const padding = fromTheme("padding");
4407
+ const saturate = fromTheme("saturate");
4408
+ const scale = fromTheme("scale");
4409
+ const sepia = fromTheme("sepia");
4410
+ const skew = fromTheme("skew");
4411
+ const space = fromTheme("space");
4412
+ const translate = fromTheme("translate");
4413
+ const getOverscroll = () => ["auto", "contain", "none"];
4414
+ const getOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
4415
+ const getSpacingWithAutoAndArbitrary = () => ["auto", isArbitraryValue, spacing];
4416
+ const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];
4417
+ const getLengthWithEmptyAndArbitrary = () => ["", isLength, isArbitraryLength];
4418
+ const getNumberWithAutoAndArbitrary = () => ["auto", isNumber, isArbitraryValue];
4419
+ const getPositions = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"];
4420
+ const getLineStyles = () => ["solid", "dashed", "dotted", "double", "none"];
4421
+ const getBlendModes = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
4422
+ const getAlign = () => ["start", "end", "center", "between", "around", "evenly", "stretch"];
4423
+ const getZeroAndEmpty = () => ["", "0", isArbitraryValue];
4424
+ const getBreaks = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
4425
+ const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];
4426
+ return {
4427
+ cacheSize: 500,
4428
+ separator: ":",
4429
+ theme: {
4430
+ colors: [isAny],
4431
+ spacing: [isLength, isArbitraryLength],
4432
+ blur: ["none", "", isTshirtSize, isArbitraryValue],
4433
+ brightness: getNumberAndArbitrary(),
4434
+ borderColor: [colors],
4435
+ borderRadius: ["none", "", "full", isTshirtSize, isArbitraryValue],
4436
+ borderSpacing: getSpacingWithArbitrary(),
4437
+ borderWidth: getLengthWithEmptyAndArbitrary(),
4438
+ contrast: getNumberAndArbitrary(),
4439
+ grayscale: getZeroAndEmpty(),
4440
+ hueRotate: getNumberAndArbitrary(),
4441
+ invert: getZeroAndEmpty(),
4442
+ gap: getSpacingWithArbitrary(),
4443
+ gradientColorStops: [colors],
4444
+ gradientColorStopPositions: [isPercent, isArbitraryLength],
4445
+ inset: getSpacingWithAutoAndArbitrary(),
4446
+ margin: getSpacingWithAutoAndArbitrary(),
4447
+ opacity: getNumberAndArbitrary(),
4448
+ padding: getSpacingWithArbitrary(),
4449
+ saturate: getNumberAndArbitrary(),
4450
+ scale: getNumberAndArbitrary(),
4451
+ sepia: getZeroAndEmpty(),
4452
+ skew: getNumberAndArbitrary(),
4453
+ space: getSpacingWithArbitrary(),
4454
+ translate: getSpacingWithArbitrary()
4455
+ },
4456
+ classGroups: {
4457
+ // Layout
4458
+ /**
4459
+ * Aspect Ratio
4460
+ * @see https://tailwindcss.com/docs/aspect-ratio
4461
+ */
4462
+ aspect: [{
4463
+ aspect: ["auto", "square", "video", isArbitraryValue]
4464
+ }],
4465
+ /**
4466
+ * Container
4467
+ * @see https://tailwindcss.com/docs/container
4468
+ */
4469
+ container: ["container"],
4470
+ /**
4471
+ * Columns
4472
+ * @see https://tailwindcss.com/docs/columns
4473
+ */
4474
+ columns: [{
4475
+ columns: [isTshirtSize]
4476
+ }],
4477
+ /**
4478
+ * Break After
4479
+ * @see https://tailwindcss.com/docs/break-after
4480
+ */
4481
+ "break-after": [{
4482
+ "break-after": getBreaks()
4483
+ }],
4484
+ /**
4485
+ * Break Before
4486
+ * @see https://tailwindcss.com/docs/break-before
4487
+ */
4488
+ "break-before": [{
4489
+ "break-before": getBreaks()
4490
+ }],
4491
+ /**
4492
+ * Break Inside
4493
+ * @see https://tailwindcss.com/docs/break-inside
4494
+ */
4495
+ "break-inside": [{
4496
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
4497
+ }],
4498
+ /**
4499
+ * Box Decoration Break
4500
+ * @see https://tailwindcss.com/docs/box-decoration-break
4501
+ */
4502
+ "box-decoration": [{
4503
+ "box-decoration": ["slice", "clone"]
4504
+ }],
4505
+ /**
4506
+ * Box Sizing
4507
+ * @see https://tailwindcss.com/docs/box-sizing
4508
+ */
4509
+ box: [{
4510
+ box: ["border", "content"]
4511
+ }],
4512
+ /**
4513
+ * Display
4514
+ * @see https://tailwindcss.com/docs/display
4515
+ */
4516
+ 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"],
4517
+ /**
4518
+ * Floats
4519
+ * @see https://tailwindcss.com/docs/float
4520
+ */
4521
+ float: [{
4522
+ float: ["right", "left", "none", "start", "end"]
4523
+ }],
4524
+ /**
4525
+ * Clear
4526
+ * @see https://tailwindcss.com/docs/clear
4527
+ */
4528
+ clear: [{
4529
+ clear: ["left", "right", "both", "none", "start", "end"]
4530
+ }],
4531
+ /**
4532
+ * Isolation
4533
+ * @see https://tailwindcss.com/docs/isolation
4534
+ */
4535
+ isolation: ["isolate", "isolation-auto"],
4536
+ /**
4537
+ * Object Fit
4538
+ * @see https://tailwindcss.com/docs/object-fit
4539
+ */
4540
+ "object-fit": [{
4541
+ object: ["contain", "cover", "fill", "none", "scale-down"]
4542
+ }],
4543
+ /**
4544
+ * Object Position
4545
+ * @see https://tailwindcss.com/docs/object-position
4546
+ */
4547
+ "object-position": [{
4548
+ object: [...getPositions(), isArbitraryValue]
4549
+ }],
4550
+ /**
4551
+ * Overflow
4552
+ * @see https://tailwindcss.com/docs/overflow
4553
+ */
4554
+ overflow: [{
4555
+ overflow: getOverflow()
4556
+ }],
4557
+ /**
4558
+ * Overflow X
4559
+ * @see https://tailwindcss.com/docs/overflow
4560
+ */
4561
+ "overflow-x": [{
4562
+ "overflow-x": getOverflow()
4563
+ }],
4564
+ /**
4565
+ * Overflow Y
4566
+ * @see https://tailwindcss.com/docs/overflow
4567
+ */
4568
+ "overflow-y": [{
4569
+ "overflow-y": getOverflow()
4570
+ }],
4571
+ /**
4572
+ * Overscroll Behavior
4573
+ * @see https://tailwindcss.com/docs/overscroll-behavior
4574
+ */
4575
+ overscroll: [{
4576
+ overscroll: getOverscroll()
4577
+ }],
4578
+ /**
4579
+ * Overscroll Behavior X
4580
+ * @see https://tailwindcss.com/docs/overscroll-behavior
4581
+ */
4582
+ "overscroll-x": [{
4583
+ "overscroll-x": getOverscroll()
4584
+ }],
4585
+ /**
4586
+ * Overscroll Behavior Y
4587
+ * @see https://tailwindcss.com/docs/overscroll-behavior
4588
+ */
4589
+ "overscroll-y": [{
4590
+ "overscroll-y": getOverscroll()
4591
+ }],
4592
+ /**
4593
+ * Position
4594
+ * @see https://tailwindcss.com/docs/position
4595
+ */
4596
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
4597
+ /**
4598
+ * Top / Right / Bottom / Left
4599
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4600
+ */
4601
+ inset: [{
4602
+ inset: [inset]
4603
+ }],
4604
+ /**
4605
+ * Right / Left
4606
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4607
+ */
4608
+ "inset-x": [{
4609
+ "inset-x": [inset]
4610
+ }],
4611
+ /**
4612
+ * Top / Bottom
4613
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4614
+ */
4615
+ "inset-y": [{
4616
+ "inset-y": [inset]
4617
+ }],
4618
+ /**
4619
+ * Start
4620
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4621
+ */
4622
+ start: [{
4623
+ start: [inset]
4624
+ }],
4625
+ /**
4626
+ * End
4627
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4628
+ */
4629
+ end: [{
4630
+ end: [inset]
4631
+ }],
4632
+ /**
4633
+ * Top
4634
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4635
+ */
4636
+ top: [{
4637
+ top: [inset]
4638
+ }],
4639
+ /**
4640
+ * Right
4641
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4642
+ */
4643
+ right: [{
4644
+ right: [inset]
4645
+ }],
4646
+ /**
4647
+ * Bottom
4648
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4649
+ */
4650
+ bottom: [{
4651
+ bottom: [inset]
4652
+ }],
4653
+ /**
4654
+ * Left
4655
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4656
+ */
4657
+ left: [{
4658
+ left: [inset]
4659
+ }],
4660
+ /**
4661
+ * Visibility
4662
+ * @see https://tailwindcss.com/docs/visibility
4663
+ */
4664
+ visibility: ["visible", "invisible", "collapse"],
4665
+ /**
4666
+ * Z-Index
4667
+ * @see https://tailwindcss.com/docs/z-index
4668
+ */
4669
+ z: [{
4670
+ z: ["auto", isInteger, isArbitraryValue]
4671
+ }],
4672
+ // Flexbox and Grid
4673
+ /**
4674
+ * Flex Basis
4675
+ * @see https://tailwindcss.com/docs/flex-basis
4676
+ */
4677
+ basis: [{
4678
+ basis: getSpacingWithAutoAndArbitrary()
4679
+ }],
4680
+ /**
4681
+ * Flex Direction
4682
+ * @see https://tailwindcss.com/docs/flex-direction
4683
+ */
4684
+ "flex-direction": [{
4685
+ flex: ["row", "row-reverse", "col", "col-reverse"]
4686
+ }],
4687
+ /**
4688
+ * Flex Wrap
4689
+ * @see https://tailwindcss.com/docs/flex-wrap
4690
+ */
4691
+ "flex-wrap": [{
4692
+ flex: ["wrap", "wrap-reverse", "nowrap"]
4693
+ }],
4694
+ /**
4695
+ * Flex
4696
+ * @see https://tailwindcss.com/docs/flex
4697
+ */
4698
+ flex: [{
4699
+ flex: ["1", "auto", "initial", "none", isArbitraryValue]
4700
+ }],
4701
+ /**
4702
+ * Flex Grow
4703
+ * @see https://tailwindcss.com/docs/flex-grow
4704
+ */
4705
+ grow: [{
4706
+ grow: getZeroAndEmpty()
4707
+ }],
4708
+ /**
4709
+ * Flex Shrink
4710
+ * @see https://tailwindcss.com/docs/flex-shrink
4711
+ */
4712
+ shrink: [{
4713
+ shrink: getZeroAndEmpty()
4714
+ }],
4715
+ /**
4716
+ * Order
4717
+ * @see https://tailwindcss.com/docs/order
4718
+ */
4719
+ order: [{
4720
+ order: ["first", "last", "none", isInteger, isArbitraryValue]
4721
+ }],
4722
+ /**
4723
+ * Grid Template Columns
4724
+ * @see https://tailwindcss.com/docs/grid-template-columns
4725
+ */
4726
+ "grid-cols": [{
4727
+ "grid-cols": [isAny]
4728
+ }],
4729
+ /**
4730
+ * Grid Column Start / End
4731
+ * @see https://tailwindcss.com/docs/grid-column
4732
+ */
4733
+ "col-start-end": [{
4734
+ col: ["auto", {
4735
+ span: ["full", isInteger, isArbitraryValue]
4736
+ }, isArbitraryValue]
4737
+ }],
4738
+ /**
4739
+ * Grid Column Start
4740
+ * @see https://tailwindcss.com/docs/grid-column
4741
+ */
4742
+ "col-start": [{
4743
+ "col-start": getNumberWithAutoAndArbitrary()
4744
+ }],
4745
+ /**
4746
+ * Grid Column End
4747
+ * @see https://tailwindcss.com/docs/grid-column
4748
+ */
4749
+ "col-end": [{
4750
+ "col-end": getNumberWithAutoAndArbitrary()
4751
+ }],
4752
+ /**
4753
+ * Grid Template Rows
4754
+ * @see https://tailwindcss.com/docs/grid-template-rows
4755
+ */
4756
+ "grid-rows": [{
4757
+ "grid-rows": [isAny]
4758
+ }],
4759
+ /**
4760
+ * Grid Row Start / End
4761
+ * @see https://tailwindcss.com/docs/grid-row
4762
+ */
4763
+ "row-start-end": [{
4764
+ row: ["auto", {
4765
+ span: [isInteger, isArbitraryValue]
4766
+ }, isArbitraryValue]
4767
+ }],
4768
+ /**
4769
+ * Grid Row Start
4770
+ * @see https://tailwindcss.com/docs/grid-row
4771
+ */
4772
+ "row-start": [{
4773
+ "row-start": getNumberWithAutoAndArbitrary()
4774
+ }],
4775
+ /**
4776
+ * Grid Row End
4777
+ * @see https://tailwindcss.com/docs/grid-row
4778
+ */
4779
+ "row-end": [{
4780
+ "row-end": getNumberWithAutoAndArbitrary()
4781
+ }],
4782
+ /**
4783
+ * Grid Auto Flow
4784
+ * @see https://tailwindcss.com/docs/grid-auto-flow
4785
+ */
4786
+ "grid-flow": [{
4787
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
4788
+ }],
4789
+ /**
4790
+ * Grid Auto Columns
4791
+ * @see https://tailwindcss.com/docs/grid-auto-columns
4792
+ */
4793
+ "auto-cols": [{
4794
+ "auto-cols": ["auto", "min", "max", "fr", isArbitraryValue]
4795
+ }],
4796
+ /**
4797
+ * Grid Auto Rows
4798
+ * @see https://tailwindcss.com/docs/grid-auto-rows
4799
+ */
4800
+ "auto-rows": [{
4801
+ "auto-rows": ["auto", "min", "max", "fr", isArbitraryValue]
4802
+ }],
4803
+ /**
4804
+ * Gap
4805
+ * @see https://tailwindcss.com/docs/gap
4806
+ */
4807
+ gap: [{
4808
+ gap: [gap]
4809
+ }],
4810
+ /**
4811
+ * Gap X
4812
+ * @see https://tailwindcss.com/docs/gap
4813
+ */
4814
+ "gap-x": [{
4815
+ "gap-x": [gap]
4816
+ }],
4817
+ /**
4818
+ * Gap Y
4819
+ * @see https://tailwindcss.com/docs/gap
4820
+ */
4821
+ "gap-y": [{
4822
+ "gap-y": [gap]
4823
+ }],
4824
+ /**
4825
+ * Justify Content
4826
+ * @see https://tailwindcss.com/docs/justify-content
4827
+ */
4828
+ "justify-content": [{
4829
+ justify: ["normal", ...getAlign()]
4830
+ }],
4831
+ /**
4832
+ * Justify Items
4833
+ * @see https://tailwindcss.com/docs/justify-items
4834
+ */
4835
+ "justify-items": [{
4836
+ "justify-items": ["start", "end", "center", "stretch"]
4837
+ }],
4838
+ /**
4839
+ * Justify Self
4840
+ * @see https://tailwindcss.com/docs/justify-self
4841
+ */
4842
+ "justify-self": [{
4843
+ "justify-self": ["auto", "start", "end", "center", "stretch"]
4844
+ }],
4845
+ /**
4846
+ * Align Content
4847
+ * @see https://tailwindcss.com/docs/align-content
4848
+ */
4849
+ "align-content": [{
4850
+ content: ["normal", ...getAlign(), "baseline"]
4851
+ }],
4852
+ /**
4853
+ * Align Items
4854
+ * @see https://tailwindcss.com/docs/align-items
4855
+ */
4856
+ "align-items": [{
4857
+ items: ["start", "end", "center", "baseline", "stretch"]
4858
+ }],
4859
+ /**
4860
+ * Align Self
4861
+ * @see https://tailwindcss.com/docs/align-self
4862
+ */
4863
+ "align-self": [{
4864
+ self: ["auto", "start", "end", "center", "stretch", "baseline"]
4865
+ }],
4866
+ /**
4867
+ * Place Content
4868
+ * @see https://tailwindcss.com/docs/place-content
4869
+ */
4870
+ "place-content": [{
4871
+ "place-content": [...getAlign(), "baseline"]
4872
+ }],
4873
+ /**
4874
+ * Place Items
4875
+ * @see https://tailwindcss.com/docs/place-items
4876
+ */
4877
+ "place-items": [{
4878
+ "place-items": ["start", "end", "center", "baseline", "stretch"]
4879
+ }],
4880
+ /**
4881
+ * Place Self
4882
+ * @see https://tailwindcss.com/docs/place-self
4883
+ */
4884
+ "place-self": [{
4885
+ "place-self": ["auto", "start", "end", "center", "stretch"]
4886
+ }],
4887
+ // Spacing
4888
+ /**
4889
+ * Padding
4890
+ * @see https://tailwindcss.com/docs/padding
4891
+ */
4892
+ p: [{
4893
+ p: [padding]
4894
+ }],
4895
+ /**
4896
+ * Padding X
4897
+ * @see https://tailwindcss.com/docs/padding
4898
+ */
4899
+ px: [{
4900
+ px: [padding]
4901
+ }],
4902
+ /**
4903
+ * Padding Y
4904
+ * @see https://tailwindcss.com/docs/padding
4905
+ */
4906
+ py: [{
4907
+ py: [padding]
4908
+ }],
4909
+ /**
4910
+ * Padding Start
4911
+ * @see https://tailwindcss.com/docs/padding
4912
+ */
4913
+ ps: [{
4914
+ ps: [padding]
4915
+ }],
4916
+ /**
4917
+ * Padding End
4918
+ * @see https://tailwindcss.com/docs/padding
4919
+ */
4920
+ pe: [{
4921
+ pe: [padding]
4922
+ }],
4923
+ /**
4924
+ * Padding Top
4925
+ * @see https://tailwindcss.com/docs/padding
4926
+ */
4927
+ pt: [{
4928
+ pt: [padding]
4929
+ }],
4930
+ /**
4931
+ * Padding Right
4932
+ * @see https://tailwindcss.com/docs/padding
4933
+ */
4934
+ pr: [{
4935
+ pr: [padding]
4936
+ }],
4937
+ /**
4938
+ * Padding Bottom
4939
+ * @see https://tailwindcss.com/docs/padding
4940
+ */
4941
+ pb: [{
4942
+ pb: [padding]
4943
+ }],
4944
+ /**
4945
+ * Padding Left
4946
+ * @see https://tailwindcss.com/docs/padding
4947
+ */
4948
+ pl: [{
4949
+ pl: [padding]
4950
+ }],
4951
+ /**
4952
+ * Margin
4953
+ * @see https://tailwindcss.com/docs/margin
4954
+ */
4955
+ m: [{
4956
+ m: [margin]
4957
+ }],
4958
+ /**
4959
+ * Margin X
4960
+ * @see https://tailwindcss.com/docs/margin
4961
+ */
4962
+ mx: [{
4963
+ mx: [margin]
4964
+ }],
4965
+ /**
4966
+ * Margin Y
4967
+ * @see https://tailwindcss.com/docs/margin
4968
+ */
4969
+ my: [{
4970
+ my: [margin]
4971
+ }],
4972
+ /**
4973
+ * Margin Start
4974
+ * @see https://tailwindcss.com/docs/margin
4975
+ */
4976
+ ms: [{
4977
+ ms: [margin]
4978
+ }],
4979
+ /**
4980
+ * Margin End
4981
+ * @see https://tailwindcss.com/docs/margin
4982
+ */
4983
+ me: [{
4984
+ me: [margin]
4985
+ }],
4986
+ /**
4987
+ * Margin Top
4988
+ * @see https://tailwindcss.com/docs/margin
4989
+ */
4990
+ mt: [{
4991
+ mt: [margin]
4992
+ }],
4993
+ /**
4994
+ * Margin Right
4995
+ * @see https://tailwindcss.com/docs/margin
4996
+ */
4997
+ mr: [{
4998
+ mr: [margin]
4999
+ }],
5000
+ /**
5001
+ * Margin Bottom
5002
+ * @see https://tailwindcss.com/docs/margin
5003
+ */
5004
+ mb: [{
5005
+ mb: [margin]
5006
+ }],
5007
+ /**
5008
+ * Margin Left
5009
+ * @see https://tailwindcss.com/docs/margin
5010
+ */
5011
+ ml: [{
5012
+ ml: [margin]
5013
+ }],
5014
+ /**
5015
+ * Space Between X
5016
+ * @see https://tailwindcss.com/docs/space
5017
+ */
5018
+ "space-x": [{
5019
+ "space-x": [space]
5020
+ }],
5021
+ /**
5022
+ * Space Between X Reverse
5023
+ * @see https://tailwindcss.com/docs/space
5024
+ */
5025
+ "space-x-reverse": ["space-x-reverse"],
5026
+ /**
5027
+ * Space Between Y
5028
+ * @see https://tailwindcss.com/docs/space
5029
+ */
5030
+ "space-y": [{
5031
+ "space-y": [space]
5032
+ }],
5033
+ /**
5034
+ * Space Between Y Reverse
5035
+ * @see https://tailwindcss.com/docs/space
5036
+ */
5037
+ "space-y-reverse": ["space-y-reverse"],
5038
+ // Sizing
5039
+ /**
5040
+ * Width
5041
+ * @see https://tailwindcss.com/docs/width
5042
+ */
5043
+ w: [{
5044
+ w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", isArbitraryValue, spacing]
5045
+ }],
5046
+ /**
5047
+ * Min-Width
5048
+ * @see https://tailwindcss.com/docs/min-width
5049
+ */
5050
+ "min-w": [{
5051
+ "min-w": [isArbitraryValue, spacing, "min", "max", "fit"]
5052
+ }],
5053
+ /**
5054
+ * Max-Width
5055
+ * @see https://tailwindcss.com/docs/max-width
5056
+ */
5057
+ "max-w": [{
5058
+ "max-w": [isArbitraryValue, spacing, "none", "full", "min", "max", "fit", "prose", {
5059
+ screen: [isTshirtSize]
5060
+ }, isTshirtSize]
5061
+ }],
5062
+ /**
5063
+ * Height
5064
+ * @see https://tailwindcss.com/docs/height
5065
+ */
5066
+ h: [{
5067
+ h: [isArbitraryValue, spacing, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
5068
+ }],
5069
+ /**
5070
+ * Min-Height
5071
+ * @see https://tailwindcss.com/docs/min-height
5072
+ */
5073
+ "min-h": [{
5074
+ "min-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
5075
+ }],
5076
+ /**
5077
+ * Max-Height
5078
+ * @see https://tailwindcss.com/docs/max-height
5079
+ */
5080
+ "max-h": [{
5081
+ "max-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
5082
+ }],
5083
+ /**
5084
+ * Size
5085
+ * @see https://tailwindcss.com/docs/size
5086
+ */
5087
+ size: [{
5088
+ size: [isArbitraryValue, spacing, "auto", "min", "max", "fit"]
5089
+ }],
5090
+ // Typography
5091
+ /**
5092
+ * Font Size
5093
+ * @see https://tailwindcss.com/docs/font-size
5094
+ */
5095
+ "font-size": [{
5096
+ text: ["base", isTshirtSize, isArbitraryLength]
5097
+ }],
5098
+ /**
5099
+ * Font Smoothing
5100
+ * @see https://tailwindcss.com/docs/font-smoothing
5101
+ */
5102
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
5103
+ /**
5104
+ * Font Style
5105
+ * @see https://tailwindcss.com/docs/font-style
5106
+ */
5107
+ "font-style": ["italic", "not-italic"],
5108
+ /**
5109
+ * Font Weight
5110
+ * @see https://tailwindcss.com/docs/font-weight
5111
+ */
5112
+ "font-weight": [{
5113
+ font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", isArbitraryNumber]
5114
+ }],
5115
+ /**
5116
+ * Font Family
5117
+ * @see https://tailwindcss.com/docs/font-family
5118
+ */
5119
+ "font-family": [{
5120
+ font: [isAny]
5121
+ }],
5122
+ /**
5123
+ * Font Variant Numeric
5124
+ * @see https://tailwindcss.com/docs/font-variant-numeric
5125
+ */
5126
+ "fvn-normal": ["normal-nums"],
5127
+ /**
5128
+ * Font Variant Numeric
5129
+ * @see https://tailwindcss.com/docs/font-variant-numeric
5130
+ */
5131
+ "fvn-ordinal": ["ordinal"],
5132
+ /**
5133
+ * Font Variant Numeric
5134
+ * @see https://tailwindcss.com/docs/font-variant-numeric
5135
+ */
5136
+ "fvn-slashed-zero": ["slashed-zero"],
5137
+ /**
5138
+ * Font Variant Numeric
5139
+ * @see https://tailwindcss.com/docs/font-variant-numeric
5140
+ */
5141
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
5142
+ /**
5143
+ * Font Variant Numeric
5144
+ * @see https://tailwindcss.com/docs/font-variant-numeric
5145
+ */
5146
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
5147
+ /**
5148
+ * Font Variant Numeric
5149
+ * @see https://tailwindcss.com/docs/font-variant-numeric
5150
+ */
5151
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
5152
+ /**
5153
+ * Letter Spacing
5154
+ * @see https://tailwindcss.com/docs/letter-spacing
5155
+ */
5156
+ tracking: [{
5157
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", isArbitraryValue]
5158
+ }],
5159
+ /**
5160
+ * Line Clamp
5161
+ * @see https://tailwindcss.com/docs/line-clamp
5162
+ */
5163
+ "line-clamp": [{
5164
+ "line-clamp": ["none", isNumber, isArbitraryNumber]
5165
+ }],
5166
+ /**
5167
+ * Line Height
5168
+ * @see https://tailwindcss.com/docs/line-height
5169
+ */
5170
+ leading: [{
5171
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose", isLength, isArbitraryValue]
5172
+ }],
5173
+ /**
5174
+ * List Style Image
5175
+ * @see https://tailwindcss.com/docs/list-style-image
5176
+ */
5177
+ "list-image": [{
5178
+ "list-image": ["none", isArbitraryValue]
5179
+ }],
5180
+ /**
5181
+ * List Style Type
5182
+ * @see https://tailwindcss.com/docs/list-style-type
5183
+ */
5184
+ "list-style-type": [{
5185
+ list: ["none", "disc", "decimal", isArbitraryValue]
5186
+ }],
5187
+ /**
5188
+ * List Style Position
5189
+ * @see https://tailwindcss.com/docs/list-style-position
5190
+ */
5191
+ "list-style-position": [{
5192
+ list: ["inside", "outside"]
5193
+ }],
5194
+ /**
5195
+ * Placeholder Color
5196
+ * @deprecated since Tailwind CSS v3.0.0
5197
+ * @see https://tailwindcss.com/docs/placeholder-color
5198
+ */
5199
+ "placeholder-color": [{
5200
+ placeholder: [colors]
5201
+ }],
5202
+ /**
5203
+ * Placeholder Opacity
5204
+ * @see https://tailwindcss.com/docs/placeholder-opacity
5205
+ */
5206
+ "placeholder-opacity": [{
5207
+ "placeholder-opacity": [opacity]
5208
+ }],
5209
+ /**
5210
+ * Text Alignment
5211
+ * @see https://tailwindcss.com/docs/text-align
5212
+ */
5213
+ "text-alignment": [{
5214
+ text: ["left", "center", "right", "justify", "start", "end"]
5215
+ }],
5216
+ /**
5217
+ * Text Color
5218
+ * @see https://tailwindcss.com/docs/text-color
5219
+ */
5220
+ "text-color": [{
5221
+ text: [colors]
5222
+ }],
5223
+ /**
5224
+ * Text Opacity
5225
+ * @see https://tailwindcss.com/docs/text-opacity
5226
+ */
5227
+ "text-opacity": [{
5228
+ "text-opacity": [opacity]
5229
+ }],
5230
+ /**
5231
+ * Text Decoration
5232
+ * @see https://tailwindcss.com/docs/text-decoration
5233
+ */
5234
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
5235
+ /**
5236
+ * Text Decoration Style
5237
+ * @see https://tailwindcss.com/docs/text-decoration-style
5238
+ */
5239
+ "text-decoration-style": [{
5240
+ decoration: [...getLineStyles(), "wavy"]
5241
+ }],
5242
+ /**
5243
+ * Text Decoration Thickness
5244
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
5245
+ */
5246
+ "text-decoration-thickness": [{
5247
+ decoration: ["auto", "from-font", isLength, isArbitraryLength]
5248
+ }],
5249
+ /**
5250
+ * Text Underline Offset
5251
+ * @see https://tailwindcss.com/docs/text-underline-offset
5252
+ */
5253
+ "underline-offset": [{
5254
+ "underline-offset": ["auto", isLength, isArbitraryValue]
5255
+ }],
5256
+ /**
5257
+ * Text Decoration Color
5258
+ * @see https://tailwindcss.com/docs/text-decoration-color
5259
+ */
5260
+ "text-decoration-color": [{
5261
+ decoration: [colors]
5262
+ }],
5263
+ /**
5264
+ * Text Transform
5265
+ * @see https://tailwindcss.com/docs/text-transform
5266
+ */
5267
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
5268
+ /**
5269
+ * Text Overflow
5270
+ * @see https://tailwindcss.com/docs/text-overflow
5271
+ */
5272
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
5273
+ /**
5274
+ * Text Wrap
5275
+ * @see https://tailwindcss.com/docs/text-wrap
5276
+ */
5277
+ "text-wrap": [{
5278
+ text: ["wrap", "nowrap", "balance", "pretty"]
5279
+ }],
5280
+ /**
5281
+ * Text Indent
5282
+ * @see https://tailwindcss.com/docs/text-indent
5283
+ */
5284
+ indent: [{
5285
+ indent: getSpacingWithArbitrary()
5286
+ }],
5287
+ /**
5288
+ * Vertical Alignment
5289
+ * @see https://tailwindcss.com/docs/vertical-align
5290
+ */
5291
+ "vertical-align": [{
5292
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryValue]
5293
+ }],
5294
+ /**
5295
+ * Whitespace
5296
+ * @see https://tailwindcss.com/docs/whitespace
5297
+ */
5298
+ whitespace: [{
5299
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
5300
+ }],
5301
+ /**
5302
+ * Word Break
5303
+ * @see https://tailwindcss.com/docs/word-break
5304
+ */
5305
+ break: [{
5306
+ break: ["normal", "words", "all", "keep"]
5307
+ }],
5308
+ /**
5309
+ * Hyphens
5310
+ * @see https://tailwindcss.com/docs/hyphens
5311
+ */
5312
+ hyphens: [{
5313
+ hyphens: ["none", "manual", "auto"]
5314
+ }],
5315
+ /**
5316
+ * Content
5317
+ * @see https://tailwindcss.com/docs/content
5318
+ */
5319
+ content: [{
5320
+ content: ["none", isArbitraryValue]
5321
+ }],
5322
+ // Backgrounds
5323
+ /**
5324
+ * Background Attachment
5325
+ * @see https://tailwindcss.com/docs/background-attachment
5326
+ */
5327
+ "bg-attachment": [{
5328
+ bg: ["fixed", "local", "scroll"]
5329
+ }],
5330
+ /**
5331
+ * Background Clip
5332
+ * @see https://tailwindcss.com/docs/background-clip
5333
+ */
5334
+ "bg-clip": [{
5335
+ "bg-clip": ["border", "padding", "content", "text"]
5336
+ }],
5337
+ /**
5338
+ * Background Opacity
5339
+ * @deprecated since Tailwind CSS v3.0.0
5340
+ * @see https://tailwindcss.com/docs/background-opacity
5341
+ */
5342
+ "bg-opacity": [{
5343
+ "bg-opacity": [opacity]
5344
+ }],
5345
+ /**
5346
+ * Background Origin
5347
+ * @see https://tailwindcss.com/docs/background-origin
5348
+ */
5349
+ "bg-origin": [{
5350
+ "bg-origin": ["border", "padding", "content"]
5351
+ }],
5352
+ /**
5353
+ * Background Position
5354
+ * @see https://tailwindcss.com/docs/background-position
5355
+ */
5356
+ "bg-position": [{
5357
+ bg: [...getPositions(), isArbitraryPosition]
5358
+ }],
5359
+ /**
5360
+ * Background Repeat
5361
+ * @see https://tailwindcss.com/docs/background-repeat
5362
+ */
5363
+ "bg-repeat": [{
5364
+ bg: ["no-repeat", {
5365
+ repeat: ["", "x", "y", "round", "space"]
5366
+ }]
5367
+ }],
5368
+ /**
5369
+ * Background Size
5370
+ * @see https://tailwindcss.com/docs/background-size
5371
+ */
5372
+ "bg-size": [{
5373
+ bg: ["auto", "cover", "contain", isArbitrarySize]
5374
+ }],
5375
+ /**
5376
+ * Background Image
5377
+ * @see https://tailwindcss.com/docs/background-image
5378
+ */
5379
+ "bg-image": [{
5380
+ bg: ["none", {
5381
+ "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
5382
+ }, isArbitraryImage]
5383
+ }],
5384
+ /**
5385
+ * Background Color
5386
+ * @see https://tailwindcss.com/docs/background-color
5387
+ */
5388
+ "bg-color": [{
5389
+ bg: [colors]
5390
+ }],
5391
+ /**
5392
+ * Gradient Color Stops From Position
5393
+ * @see https://tailwindcss.com/docs/gradient-color-stops
5394
+ */
5395
+ "gradient-from-pos": [{
5396
+ from: [gradientColorStopPositions]
5397
+ }],
5398
+ /**
5399
+ * Gradient Color Stops Via Position
5400
+ * @see https://tailwindcss.com/docs/gradient-color-stops
5401
+ */
5402
+ "gradient-via-pos": [{
5403
+ via: [gradientColorStopPositions]
5404
+ }],
5405
+ /**
5406
+ * Gradient Color Stops To Position
5407
+ * @see https://tailwindcss.com/docs/gradient-color-stops
5408
+ */
5409
+ "gradient-to-pos": [{
5410
+ to: [gradientColorStopPositions]
5411
+ }],
5412
+ /**
5413
+ * Gradient Color Stops From
5414
+ * @see https://tailwindcss.com/docs/gradient-color-stops
5415
+ */
5416
+ "gradient-from": [{
5417
+ from: [gradientColorStops]
5418
+ }],
5419
+ /**
5420
+ * Gradient Color Stops Via
5421
+ * @see https://tailwindcss.com/docs/gradient-color-stops
5422
+ */
5423
+ "gradient-via": [{
5424
+ via: [gradientColorStops]
5425
+ }],
5426
+ /**
5427
+ * Gradient Color Stops To
5428
+ * @see https://tailwindcss.com/docs/gradient-color-stops
5429
+ */
5430
+ "gradient-to": [{
5431
+ to: [gradientColorStops]
5432
+ }],
5433
+ // Borders
5434
+ /**
5435
+ * Border Radius
5436
+ * @see https://tailwindcss.com/docs/border-radius
5437
+ */
5438
+ rounded: [{
5439
+ rounded: [borderRadius]
5440
+ }],
5441
+ /**
5442
+ * Border Radius Start
5443
+ * @see https://tailwindcss.com/docs/border-radius
5444
+ */
5445
+ "rounded-s": [{
5446
+ "rounded-s": [borderRadius]
5447
+ }],
5448
+ /**
5449
+ * Border Radius End
5450
+ * @see https://tailwindcss.com/docs/border-radius
5451
+ */
5452
+ "rounded-e": [{
5453
+ "rounded-e": [borderRadius]
5454
+ }],
5455
+ /**
5456
+ * Border Radius Top
5457
+ * @see https://tailwindcss.com/docs/border-radius
5458
+ */
5459
+ "rounded-t": [{
5460
+ "rounded-t": [borderRadius]
5461
+ }],
5462
+ /**
5463
+ * Border Radius Right
5464
+ * @see https://tailwindcss.com/docs/border-radius
5465
+ */
5466
+ "rounded-r": [{
5467
+ "rounded-r": [borderRadius]
5468
+ }],
5469
+ /**
5470
+ * Border Radius Bottom
5471
+ * @see https://tailwindcss.com/docs/border-radius
5472
+ */
5473
+ "rounded-b": [{
5474
+ "rounded-b": [borderRadius]
5475
+ }],
5476
+ /**
5477
+ * Border Radius Left
5478
+ * @see https://tailwindcss.com/docs/border-radius
5479
+ */
5480
+ "rounded-l": [{
5481
+ "rounded-l": [borderRadius]
5482
+ }],
5483
+ /**
5484
+ * Border Radius Start Start
5485
+ * @see https://tailwindcss.com/docs/border-radius
5486
+ */
5487
+ "rounded-ss": [{
5488
+ "rounded-ss": [borderRadius]
5489
+ }],
5490
+ /**
5491
+ * Border Radius Start End
5492
+ * @see https://tailwindcss.com/docs/border-radius
5493
+ */
5494
+ "rounded-se": [{
5495
+ "rounded-se": [borderRadius]
5496
+ }],
5497
+ /**
5498
+ * Border Radius End End
5499
+ * @see https://tailwindcss.com/docs/border-radius
5500
+ */
5501
+ "rounded-ee": [{
5502
+ "rounded-ee": [borderRadius]
5503
+ }],
5504
+ /**
5505
+ * Border Radius End Start
5506
+ * @see https://tailwindcss.com/docs/border-radius
5507
+ */
5508
+ "rounded-es": [{
5509
+ "rounded-es": [borderRadius]
5510
+ }],
5511
+ /**
5512
+ * Border Radius Top Left
5513
+ * @see https://tailwindcss.com/docs/border-radius
5514
+ */
5515
+ "rounded-tl": [{
5516
+ "rounded-tl": [borderRadius]
5517
+ }],
5518
+ /**
5519
+ * Border Radius Top Right
5520
+ * @see https://tailwindcss.com/docs/border-radius
5521
+ */
5522
+ "rounded-tr": [{
5523
+ "rounded-tr": [borderRadius]
5524
+ }],
5525
+ /**
5526
+ * Border Radius Bottom Right
5527
+ * @see https://tailwindcss.com/docs/border-radius
5528
+ */
5529
+ "rounded-br": [{
5530
+ "rounded-br": [borderRadius]
5531
+ }],
5532
+ /**
5533
+ * Border Radius Bottom Left
5534
+ * @see https://tailwindcss.com/docs/border-radius
5535
+ */
5536
+ "rounded-bl": [{
5537
+ "rounded-bl": [borderRadius]
5538
+ }],
5539
+ /**
5540
+ * Border Width
5541
+ * @see https://tailwindcss.com/docs/border-width
5542
+ */
5543
+ "border-w": [{
5544
+ border: [borderWidth]
5545
+ }],
5546
+ /**
5547
+ * Border Width X
5548
+ * @see https://tailwindcss.com/docs/border-width
5549
+ */
5550
+ "border-w-x": [{
5551
+ "border-x": [borderWidth]
5552
+ }],
5553
+ /**
5554
+ * Border Width Y
5555
+ * @see https://tailwindcss.com/docs/border-width
5556
+ */
5557
+ "border-w-y": [{
5558
+ "border-y": [borderWidth]
5559
+ }],
5560
+ /**
5561
+ * Border Width Start
5562
+ * @see https://tailwindcss.com/docs/border-width
5563
+ */
5564
+ "border-w-s": [{
5565
+ "border-s": [borderWidth]
5566
+ }],
5567
+ /**
5568
+ * Border Width End
5569
+ * @see https://tailwindcss.com/docs/border-width
5570
+ */
5571
+ "border-w-e": [{
5572
+ "border-e": [borderWidth]
5573
+ }],
5574
+ /**
5575
+ * Border Width Top
5576
+ * @see https://tailwindcss.com/docs/border-width
5577
+ */
5578
+ "border-w-t": [{
5579
+ "border-t": [borderWidth]
5580
+ }],
5581
+ /**
5582
+ * Border Width Right
5583
+ * @see https://tailwindcss.com/docs/border-width
5584
+ */
5585
+ "border-w-r": [{
5586
+ "border-r": [borderWidth]
5587
+ }],
5588
+ /**
5589
+ * Border Width Bottom
5590
+ * @see https://tailwindcss.com/docs/border-width
5591
+ */
5592
+ "border-w-b": [{
5593
+ "border-b": [borderWidth]
5594
+ }],
5595
+ /**
5596
+ * Border Width Left
5597
+ * @see https://tailwindcss.com/docs/border-width
5598
+ */
5599
+ "border-w-l": [{
5600
+ "border-l": [borderWidth]
5601
+ }],
5602
+ /**
5603
+ * Border Opacity
5604
+ * @see https://tailwindcss.com/docs/border-opacity
5605
+ */
5606
+ "border-opacity": [{
5607
+ "border-opacity": [opacity]
5608
+ }],
5609
+ /**
5610
+ * Border Style
5611
+ * @see https://tailwindcss.com/docs/border-style
5612
+ */
5613
+ "border-style": [{
5614
+ border: [...getLineStyles(), "hidden"]
5615
+ }],
5616
+ /**
5617
+ * Divide Width X
5618
+ * @see https://tailwindcss.com/docs/divide-width
5619
+ */
5620
+ "divide-x": [{
5621
+ "divide-x": [borderWidth]
5622
+ }],
5623
+ /**
5624
+ * Divide Width X Reverse
5625
+ * @see https://tailwindcss.com/docs/divide-width
5626
+ */
5627
+ "divide-x-reverse": ["divide-x-reverse"],
5628
+ /**
5629
+ * Divide Width Y
5630
+ * @see https://tailwindcss.com/docs/divide-width
5631
+ */
5632
+ "divide-y": [{
5633
+ "divide-y": [borderWidth]
5634
+ }],
5635
+ /**
5636
+ * Divide Width Y Reverse
5637
+ * @see https://tailwindcss.com/docs/divide-width
5638
+ */
5639
+ "divide-y-reverse": ["divide-y-reverse"],
5640
+ /**
5641
+ * Divide Opacity
5642
+ * @see https://tailwindcss.com/docs/divide-opacity
5643
+ */
5644
+ "divide-opacity": [{
5645
+ "divide-opacity": [opacity]
5646
+ }],
5647
+ /**
5648
+ * Divide Style
5649
+ * @see https://tailwindcss.com/docs/divide-style
5650
+ */
5651
+ "divide-style": [{
5652
+ divide: getLineStyles()
5653
+ }],
5654
+ /**
5655
+ * Border Color
5656
+ * @see https://tailwindcss.com/docs/border-color
5657
+ */
5658
+ "border-color": [{
5659
+ border: [borderColor]
5660
+ }],
5661
+ /**
5662
+ * Border Color X
5663
+ * @see https://tailwindcss.com/docs/border-color
5664
+ */
5665
+ "border-color-x": [{
5666
+ "border-x": [borderColor]
5667
+ }],
5668
+ /**
5669
+ * Border Color Y
5670
+ * @see https://tailwindcss.com/docs/border-color
5671
+ */
5672
+ "border-color-y": [{
5673
+ "border-y": [borderColor]
5674
+ }],
5675
+ /**
5676
+ * Border Color S
5677
+ * @see https://tailwindcss.com/docs/border-color
5678
+ */
5679
+ "border-color-s": [{
5680
+ "border-s": [borderColor]
5681
+ }],
5682
+ /**
5683
+ * Border Color E
5684
+ * @see https://tailwindcss.com/docs/border-color
5685
+ */
5686
+ "border-color-e": [{
5687
+ "border-e": [borderColor]
5688
+ }],
5689
+ /**
5690
+ * Border Color Top
5691
+ * @see https://tailwindcss.com/docs/border-color
5692
+ */
5693
+ "border-color-t": [{
5694
+ "border-t": [borderColor]
5695
+ }],
5696
+ /**
5697
+ * Border Color Right
5698
+ * @see https://tailwindcss.com/docs/border-color
5699
+ */
5700
+ "border-color-r": [{
5701
+ "border-r": [borderColor]
5702
+ }],
5703
+ /**
5704
+ * Border Color Bottom
5705
+ * @see https://tailwindcss.com/docs/border-color
5706
+ */
5707
+ "border-color-b": [{
5708
+ "border-b": [borderColor]
5709
+ }],
5710
+ /**
5711
+ * Border Color Left
5712
+ * @see https://tailwindcss.com/docs/border-color
5713
+ */
5714
+ "border-color-l": [{
5715
+ "border-l": [borderColor]
5716
+ }],
5717
+ /**
5718
+ * Divide Color
5719
+ * @see https://tailwindcss.com/docs/divide-color
5720
+ */
5721
+ "divide-color": [{
5722
+ divide: [borderColor]
5723
+ }],
5724
+ /**
5725
+ * Outline Style
5726
+ * @see https://tailwindcss.com/docs/outline-style
5727
+ */
5728
+ "outline-style": [{
5729
+ outline: ["", ...getLineStyles()]
5730
+ }],
5731
+ /**
5732
+ * Outline Offset
5733
+ * @see https://tailwindcss.com/docs/outline-offset
5734
+ */
5735
+ "outline-offset": [{
5736
+ "outline-offset": [isLength, isArbitraryValue]
5737
+ }],
5738
+ /**
5739
+ * Outline Width
5740
+ * @see https://tailwindcss.com/docs/outline-width
5741
+ */
5742
+ "outline-w": [{
5743
+ outline: [isLength, isArbitraryLength]
5744
+ }],
5745
+ /**
5746
+ * Outline Color
5747
+ * @see https://tailwindcss.com/docs/outline-color
5748
+ */
5749
+ "outline-color": [{
5750
+ outline: [colors]
5751
+ }],
5752
+ /**
5753
+ * Ring Width
5754
+ * @see https://tailwindcss.com/docs/ring-width
5755
+ */
5756
+ "ring-w": [{
5757
+ ring: getLengthWithEmptyAndArbitrary()
5758
+ }],
5759
+ /**
5760
+ * Ring Width Inset
5761
+ * @see https://tailwindcss.com/docs/ring-width
5762
+ */
5763
+ "ring-w-inset": ["ring-inset"],
5764
+ /**
5765
+ * Ring Color
5766
+ * @see https://tailwindcss.com/docs/ring-color
5767
+ */
5768
+ "ring-color": [{
5769
+ ring: [colors]
5770
+ }],
5771
+ /**
5772
+ * Ring Opacity
5773
+ * @see https://tailwindcss.com/docs/ring-opacity
5774
+ */
5775
+ "ring-opacity": [{
5776
+ "ring-opacity": [opacity]
5777
+ }],
5778
+ /**
5779
+ * Ring Offset Width
5780
+ * @see https://tailwindcss.com/docs/ring-offset-width
5781
+ */
5782
+ "ring-offset-w": [{
5783
+ "ring-offset": [isLength, isArbitraryLength]
5784
+ }],
5785
+ /**
5786
+ * Ring Offset Color
5787
+ * @see https://tailwindcss.com/docs/ring-offset-color
5788
+ */
5789
+ "ring-offset-color": [{
5790
+ "ring-offset": [colors]
5791
+ }],
5792
+ // Effects
5793
+ /**
5794
+ * Box Shadow
5795
+ * @see https://tailwindcss.com/docs/box-shadow
5796
+ */
5797
+ shadow: [{
5798
+ shadow: ["", "inner", "none", isTshirtSize, isArbitraryShadow]
5799
+ }],
5800
+ /**
5801
+ * Box Shadow Color
5802
+ * @see https://tailwindcss.com/docs/box-shadow-color
5803
+ */
5804
+ "shadow-color": [{
5805
+ shadow: [isAny]
5806
+ }],
5807
+ /**
5808
+ * Opacity
5809
+ * @see https://tailwindcss.com/docs/opacity
5810
+ */
5811
+ opacity: [{
5812
+ opacity: [opacity]
5813
+ }],
5814
+ /**
5815
+ * Mix Blend Mode
5816
+ * @see https://tailwindcss.com/docs/mix-blend-mode
5817
+ */
5818
+ "mix-blend": [{
5819
+ "mix-blend": [...getBlendModes(), "plus-lighter", "plus-darker"]
5820
+ }],
5821
+ /**
5822
+ * Background Blend Mode
5823
+ * @see https://tailwindcss.com/docs/background-blend-mode
5824
+ */
5825
+ "bg-blend": [{
5826
+ "bg-blend": getBlendModes()
5827
+ }],
5828
+ // Filters
5829
+ /**
5830
+ * Filter
5831
+ * @deprecated since Tailwind CSS v3.0.0
5832
+ * @see https://tailwindcss.com/docs/filter
5833
+ */
5834
+ filter: [{
5835
+ filter: ["", "none"]
5836
+ }],
5837
+ /**
5838
+ * Blur
5839
+ * @see https://tailwindcss.com/docs/blur
5840
+ */
5841
+ blur: [{
5842
+ blur: [blur]
5843
+ }],
5844
+ /**
5845
+ * Brightness
5846
+ * @see https://tailwindcss.com/docs/brightness
5847
+ */
5848
+ brightness: [{
5849
+ brightness: [brightness]
5850
+ }],
5851
+ /**
5852
+ * Contrast
5853
+ * @see https://tailwindcss.com/docs/contrast
5854
+ */
5855
+ contrast: [{
5856
+ contrast: [contrast]
5857
+ }],
5858
+ /**
5859
+ * Drop Shadow
5860
+ * @see https://tailwindcss.com/docs/drop-shadow
5861
+ */
5862
+ "drop-shadow": [{
5863
+ "drop-shadow": ["", "none", isTshirtSize, isArbitraryValue]
5864
+ }],
5865
+ /**
5866
+ * Grayscale
5867
+ * @see https://tailwindcss.com/docs/grayscale
5868
+ */
5869
+ grayscale: [{
5870
+ grayscale: [grayscale]
5871
+ }],
5872
+ /**
5873
+ * Hue Rotate
5874
+ * @see https://tailwindcss.com/docs/hue-rotate
5875
+ */
5876
+ "hue-rotate": [{
5877
+ "hue-rotate": [hueRotate]
5878
+ }],
5879
+ /**
5880
+ * Invert
5881
+ * @see https://tailwindcss.com/docs/invert
5882
+ */
5883
+ invert: [{
5884
+ invert: [invert]
5885
+ }],
5886
+ /**
5887
+ * Saturate
5888
+ * @see https://tailwindcss.com/docs/saturate
5889
+ */
5890
+ saturate: [{
5891
+ saturate: [saturate]
5892
+ }],
5893
+ /**
5894
+ * Sepia
5895
+ * @see https://tailwindcss.com/docs/sepia
5896
+ */
5897
+ sepia: [{
5898
+ sepia: [sepia]
5899
+ }],
5900
+ /**
5901
+ * Backdrop Filter
5902
+ * @deprecated since Tailwind CSS v3.0.0
5903
+ * @see https://tailwindcss.com/docs/backdrop-filter
5904
+ */
5905
+ "backdrop-filter": [{
5906
+ "backdrop-filter": ["", "none"]
5907
+ }],
5908
+ /**
5909
+ * Backdrop Blur
5910
+ * @see https://tailwindcss.com/docs/backdrop-blur
5911
+ */
5912
+ "backdrop-blur": [{
5913
+ "backdrop-blur": [blur]
5914
+ }],
5915
+ /**
5916
+ * Backdrop Brightness
5917
+ * @see https://tailwindcss.com/docs/backdrop-brightness
5918
+ */
5919
+ "backdrop-brightness": [{
5920
+ "backdrop-brightness": [brightness]
5921
+ }],
5922
+ /**
5923
+ * Backdrop Contrast
5924
+ * @see https://tailwindcss.com/docs/backdrop-contrast
5925
+ */
5926
+ "backdrop-contrast": [{
5927
+ "backdrop-contrast": [contrast]
5928
+ }],
5929
+ /**
5930
+ * Backdrop Grayscale
5931
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
5932
+ */
5933
+ "backdrop-grayscale": [{
5934
+ "backdrop-grayscale": [grayscale]
5935
+ }],
5936
+ /**
5937
+ * Backdrop Hue Rotate
5938
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
5939
+ */
5940
+ "backdrop-hue-rotate": [{
5941
+ "backdrop-hue-rotate": [hueRotate]
5942
+ }],
5943
+ /**
5944
+ * Backdrop Invert
5945
+ * @see https://tailwindcss.com/docs/backdrop-invert
5946
+ */
5947
+ "backdrop-invert": [{
5948
+ "backdrop-invert": [invert]
5949
+ }],
5950
+ /**
5951
+ * Backdrop Opacity
5952
+ * @see https://tailwindcss.com/docs/backdrop-opacity
5953
+ */
5954
+ "backdrop-opacity": [{
5955
+ "backdrop-opacity": [opacity]
5956
+ }],
5957
+ /**
5958
+ * Backdrop Saturate
5959
+ * @see https://tailwindcss.com/docs/backdrop-saturate
5960
+ */
5961
+ "backdrop-saturate": [{
5962
+ "backdrop-saturate": [saturate]
5963
+ }],
5964
+ /**
5965
+ * Backdrop Sepia
5966
+ * @see https://tailwindcss.com/docs/backdrop-sepia
5967
+ */
5968
+ "backdrop-sepia": [{
5969
+ "backdrop-sepia": [sepia]
5970
+ }],
5971
+ // Tables
5972
+ /**
5973
+ * Border Collapse
5974
+ * @see https://tailwindcss.com/docs/border-collapse
5975
+ */
5976
+ "border-collapse": [{
5977
+ border: ["collapse", "separate"]
5978
+ }],
5979
+ /**
5980
+ * Border Spacing
5981
+ * @see https://tailwindcss.com/docs/border-spacing
5982
+ */
5983
+ "border-spacing": [{
5984
+ "border-spacing": [borderSpacing]
5985
+ }],
5986
+ /**
5987
+ * Border Spacing X
5988
+ * @see https://tailwindcss.com/docs/border-spacing
5989
+ */
5990
+ "border-spacing-x": [{
5991
+ "border-spacing-x": [borderSpacing]
5992
+ }],
5993
+ /**
5994
+ * Border Spacing Y
5995
+ * @see https://tailwindcss.com/docs/border-spacing
5996
+ */
5997
+ "border-spacing-y": [{
5998
+ "border-spacing-y": [borderSpacing]
5999
+ }],
6000
+ /**
6001
+ * Table Layout
6002
+ * @see https://tailwindcss.com/docs/table-layout
6003
+ */
6004
+ "table-layout": [{
6005
+ table: ["auto", "fixed"]
6006
+ }],
6007
+ /**
6008
+ * Caption Side
6009
+ * @see https://tailwindcss.com/docs/caption-side
6010
+ */
6011
+ caption: [{
6012
+ caption: ["top", "bottom"]
6013
+ }],
6014
+ // Transitions and Animation
6015
+ /**
6016
+ * Tranisition Property
6017
+ * @see https://tailwindcss.com/docs/transition-property
6018
+ */
6019
+ transition: [{
6020
+ transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", isArbitraryValue]
6021
+ }],
6022
+ /**
6023
+ * Transition Duration
6024
+ * @see https://tailwindcss.com/docs/transition-duration
6025
+ */
6026
+ duration: [{
6027
+ duration: getNumberAndArbitrary()
6028
+ }],
6029
+ /**
6030
+ * Transition Timing Function
6031
+ * @see https://tailwindcss.com/docs/transition-timing-function
6032
+ */
6033
+ ease: [{
6034
+ ease: ["linear", "in", "out", "in-out", isArbitraryValue]
6035
+ }],
6036
+ /**
6037
+ * Transition Delay
6038
+ * @see https://tailwindcss.com/docs/transition-delay
6039
+ */
6040
+ delay: [{
6041
+ delay: getNumberAndArbitrary()
6042
+ }],
6043
+ /**
6044
+ * Animation
6045
+ * @see https://tailwindcss.com/docs/animation
6046
+ */
6047
+ animate: [{
6048
+ animate: ["none", "spin", "ping", "pulse", "bounce", isArbitraryValue]
6049
+ }],
6050
+ // Transforms
6051
+ /**
6052
+ * Transform
6053
+ * @see https://tailwindcss.com/docs/transform
6054
+ */
6055
+ transform: [{
6056
+ transform: ["", "gpu", "none"]
6057
+ }],
6058
+ /**
6059
+ * Scale
6060
+ * @see https://tailwindcss.com/docs/scale
6061
+ */
6062
+ scale: [{
6063
+ scale: [scale]
6064
+ }],
6065
+ /**
6066
+ * Scale X
6067
+ * @see https://tailwindcss.com/docs/scale
6068
+ */
6069
+ "scale-x": [{
6070
+ "scale-x": [scale]
6071
+ }],
6072
+ /**
6073
+ * Scale Y
6074
+ * @see https://tailwindcss.com/docs/scale
6075
+ */
6076
+ "scale-y": [{
6077
+ "scale-y": [scale]
6078
+ }],
6079
+ /**
6080
+ * Rotate
6081
+ * @see https://tailwindcss.com/docs/rotate
6082
+ */
6083
+ rotate: [{
6084
+ rotate: [isInteger, isArbitraryValue]
6085
+ }],
6086
+ /**
6087
+ * Translate X
6088
+ * @see https://tailwindcss.com/docs/translate
6089
+ */
6090
+ "translate-x": [{
6091
+ "translate-x": [translate]
6092
+ }],
6093
+ /**
6094
+ * Translate Y
6095
+ * @see https://tailwindcss.com/docs/translate
6096
+ */
6097
+ "translate-y": [{
6098
+ "translate-y": [translate]
6099
+ }],
6100
+ /**
6101
+ * Skew X
6102
+ * @see https://tailwindcss.com/docs/skew
6103
+ */
6104
+ "skew-x": [{
6105
+ "skew-x": [skew]
6106
+ }],
6107
+ /**
6108
+ * Skew Y
6109
+ * @see https://tailwindcss.com/docs/skew
6110
+ */
6111
+ "skew-y": [{
6112
+ "skew-y": [skew]
6113
+ }],
6114
+ /**
6115
+ * Transform Origin
6116
+ * @see https://tailwindcss.com/docs/transform-origin
6117
+ */
6118
+ "transform-origin": [{
6119
+ origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", isArbitraryValue]
6120
+ }],
6121
+ // Interactivity
6122
+ /**
6123
+ * Accent Color
6124
+ * @see https://tailwindcss.com/docs/accent-color
6125
+ */
6126
+ accent: [{
6127
+ accent: ["auto", colors]
6128
+ }],
6129
+ /**
6130
+ * Appearance
6131
+ * @see https://tailwindcss.com/docs/appearance
6132
+ */
6133
+ appearance: [{
6134
+ appearance: ["none", "auto"]
6135
+ }],
6136
+ /**
6137
+ * Cursor
6138
+ * @see https://tailwindcss.com/docs/cursor
6139
+ */
6140
+ cursor: [{
6141
+ 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", isArbitraryValue]
6142
+ }],
6143
+ /**
6144
+ * Caret Color
6145
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
6146
+ */
6147
+ "caret-color": [{
6148
+ caret: [colors]
6149
+ }],
6150
+ /**
6151
+ * Pointer Events
6152
+ * @see https://tailwindcss.com/docs/pointer-events
6153
+ */
6154
+ "pointer-events": [{
6155
+ "pointer-events": ["none", "auto"]
6156
+ }],
6157
+ /**
6158
+ * Resize
6159
+ * @see https://tailwindcss.com/docs/resize
6160
+ */
6161
+ resize: [{
6162
+ resize: ["none", "y", "x", ""]
6163
+ }],
6164
+ /**
6165
+ * Scroll Behavior
6166
+ * @see https://tailwindcss.com/docs/scroll-behavior
6167
+ */
6168
+ "scroll-behavior": [{
6169
+ scroll: ["auto", "smooth"]
6170
+ }],
6171
+ /**
6172
+ * Scroll Margin
6173
+ * @see https://tailwindcss.com/docs/scroll-margin
6174
+ */
6175
+ "scroll-m": [{
6176
+ "scroll-m": getSpacingWithArbitrary()
6177
+ }],
6178
+ /**
6179
+ * Scroll Margin X
6180
+ * @see https://tailwindcss.com/docs/scroll-margin
6181
+ */
6182
+ "scroll-mx": [{
6183
+ "scroll-mx": getSpacingWithArbitrary()
6184
+ }],
6185
+ /**
6186
+ * Scroll Margin Y
6187
+ * @see https://tailwindcss.com/docs/scroll-margin
6188
+ */
6189
+ "scroll-my": [{
6190
+ "scroll-my": getSpacingWithArbitrary()
6191
+ }],
6192
+ /**
6193
+ * Scroll Margin Start
6194
+ * @see https://tailwindcss.com/docs/scroll-margin
6195
+ */
6196
+ "scroll-ms": [{
6197
+ "scroll-ms": getSpacingWithArbitrary()
6198
+ }],
6199
+ /**
6200
+ * Scroll Margin End
6201
+ * @see https://tailwindcss.com/docs/scroll-margin
6202
+ */
6203
+ "scroll-me": [{
6204
+ "scroll-me": getSpacingWithArbitrary()
6205
+ }],
6206
+ /**
6207
+ * Scroll Margin Top
6208
+ * @see https://tailwindcss.com/docs/scroll-margin
6209
+ */
6210
+ "scroll-mt": [{
6211
+ "scroll-mt": getSpacingWithArbitrary()
6212
+ }],
6213
+ /**
6214
+ * Scroll Margin Right
6215
+ * @see https://tailwindcss.com/docs/scroll-margin
6216
+ */
6217
+ "scroll-mr": [{
6218
+ "scroll-mr": getSpacingWithArbitrary()
6219
+ }],
6220
+ /**
6221
+ * Scroll Margin Bottom
6222
+ * @see https://tailwindcss.com/docs/scroll-margin
6223
+ */
6224
+ "scroll-mb": [{
6225
+ "scroll-mb": getSpacingWithArbitrary()
6226
+ }],
6227
+ /**
6228
+ * Scroll Margin Left
6229
+ * @see https://tailwindcss.com/docs/scroll-margin
6230
+ */
6231
+ "scroll-ml": [{
6232
+ "scroll-ml": getSpacingWithArbitrary()
6233
+ }],
6234
+ /**
6235
+ * Scroll Padding
6236
+ * @see https://tailwindcss.com/docs/scroll-padding
6237
+ */
6238
+ "scroll-p": [{
6239
+ "scroll-p": getSpacingWithArbitrary()
6240
+ }],
6241
+ /**
6242
+ * Scroll Padding X
6243
+ * @see https://tailwindcss.com/docs/scroll-padding
6244
+ */
6245
+ "scroll-px": [{
6246
+ "scroll-px": getSpacingWithArbitrary()
6247
+ }],
6248
+ /**
6249
+ * Scroll Padding Y
6250
+ * @see https://tailwindcss.com/docs/scroll-padding
6251
+ */
6252
+ "scroll-py": [{
6253
+ "scroll-py": getSpacingWithArbitrary()
6254
+ }],
6255
+ /**
6256
+ * Scroll Padding Start
6257
+ * @see https://tailwindcss.com/docs/scroll-padding
6258
+ */
6259
+ "scroll-ps": [{
6260
+ "scroll-ps": getSpacingWithArbitrary()
6261
+ }],
6262
+ /**
6263
+ * Scroll Padding End
6264
+ * @see https://tailwindcss.com/docs/scroll-padding
6265
+ */
6266
+ "scroll-pe": [{
6267
+ "scroll-pe": getSpacingWithArbitrary()
6268
+ }],
6269
+ /**
6270
+ * Scroll Padding Top
6271
+ * @see https://tailwindcss.com/docs/scroll-padding
6272
+ */
6273
+ "scroll-pt": [{
6274
+ "scroll-pt": getSpacingWithArbitrary()
6275
+ }],
6276
+ /**
6277
+ * Scroll Padding Right
6278
+ * @see https://tailwindcss.com/docs/scroll-padding
6279
+ */
6280
+ "scroll-pr": [{
6281
+ "scroll-pr": getSpacingWithArbitrary()
6282
+ }],
6283
+ /**
6284
+ * Scroll Padding Bottom
6285
+ * @see https://tailwindcss.com/docs/scroll-padding
6286
+ */
6287
+ "scroll-pb": [{
6288
+ "scroll-pb": getSpacingWithArbitrary()
6289
+ }],
6290
+ /**
6291
+ * Scroll Padding Left
6292
+ * @see https://tailwindcss.com/docs/scroll-padding
6293
+ */
6294
+ "scroll-pl": [{
6295
+ "scroll-pl": getSpacingWithArbitrary()
6296
+ }],
6297
+ /**
6298
+ * Scroll Snap Align
6299
+ * @see https://tailwindcss.com/docs/scroll-snap-align
6300
+ */
6301
+ "snap-align": [{
6302
+ snap: ["start", "end", "center", "align-none"]
6303
+ }],
6304
+ /**
6305
+ * Scroll Snap Stop
6306
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
6307
+ */
6308
+ "snap-stop": [{
6309
+ snap: ["normal", "always"]
6310
+ }],
6311
+ /**
6312
+ * Scroll Snap Type
6313
+ * @see https://tailwindcss.com/docs/scroll-snap-type
6314
+ */
6315
+ "snap-type": [{
6316
+ snap: ["none", "x", "y", "both"]
6317
+ }],
6318
+ /**
6319
+ * Scroll Snap Type Strictness
6320
+ * @see https://tailwindcss.com/docs/scroll-snap-type
6321
+ */
6322
+ "snap-strictness": [{
6323
+ snap: ["mandatory", "proximity"]
6324
+ }],
6325
+ /**
6326
+ * Touch Action
6327
+ * @see https://tailwindcss.com/docs/touch-action
6328
+ */
6329
+ touch: [{
6330
+ touch: ["auto", "none", "manipulation"]
6331
+ }],
6332
+ /**
6333
+ * Touch Action X
6334
+ * @see https://tailwindcss.com/docs/touch-action
6335
+ */
6336
+ "touch-x": [{
6337
+ "touch-pan": ["x", "left", "right"]
6338
+ }],
6339
+ /**
6340
+ * Touch Action Y
6341
+ * @see https://tailwindcss.com/docs/touch-action
6342
+ */
6343
+ "touch-y": [{
6344
+ "touch-pan": ["y", "up", "down"]
6345
+ }],
6346
+ /**
6347
+ * Touch Action Pinch Zoom
6348
+ * @see https://tailwindcss.com/docs/touch-action
6349
+ */
6350
+ "touch-pz": ["touch-pinch-zoom"],
6351
+ /**
6352
+ * User Select
6353
+ * @see https://tailwindcss.com/docs/user-select
6354
+ */
6355
+ select: [{
6356
+ select: ["none", "text", "all", "auto"]
6357
+ }],
6358
+ /**
6359
+ * Will Change
6360
+ * @see https://tailwindcss.com/docs/will-change
6361
+ */
6362
+ "will-change": [{
6363
+ "will-change": ["auto", "scroll", "contents", "transform", isArbitraryValue]
6364
+ }],
6365
+ // SVG
6366
+ /**
6367
+ * Fill
6368
+ * @see https://tailwindcss.com/docs/fill
6369
+ */
6370
+ fill: [{
6371
+ fill: [colors, "none"]
6372
+ }],
6373
+ /**
6374
+ * Stroke Width
6375
+ * @see https://tailwindcss.com/docs/stroke-width
6376
+ */
6377
+ "stroke-w": [{
6378
+ stroke: [isLength, isArbitraryLength, isArbitraryNumber]
6379
+ }],
6380
+ /**
6381
+ * Stroke
6382
+ * @see https://tailwindcss.com/docs/stroke
6383
+ */
6384
+ stroke: [{
6385
+ stroke: [colors, "none"]
6386
+ }],
6387
+ // Accessibility
6388
+ /**
6389
+ * Screen Readers
6390
+ * @see https://tailwindcss.com/docs/screen-readers
6391
+ */
6392
+ sr: ["sr-only", "not-sr-only"],
6393
+ /**
6394
+ * Forced Color Adjust
6395
+ * @see https://tailwindcss.com/docs/forced-color-adjust
6396
+ */
6397
+ "forced-color-adjust": [{
6398
+ "forced-color-adjust": ["auto", "none"]
6399
+ }]
6400
+ },
6401
+ conflictingClassGroups: {
6402
+ overflow: ["overflow-x", "overflow-y"],
6403
+ overscroll: ["overscroll-x", "overscroll-y"],
6404
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
6405
+ "inset-x": ["right", "left"],
6406
+ "inset-y": ["top", "bottom"],
6407
+ flex: ["basis", "grow", "shrink"],
6408
+ gap: ["gap-x", "gap-y"],
6409
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
6410
+ px: ["pr", "pl"],
6411
+ py: ["pt", "pb"],
6412
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
6413
+ mx: ["mr", "ml"],
6414
+ my: ["mt", "mb"],
6415
+ size: ["w", "h"],
6416
+ "font-size": ["leading"],
6417
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
6418
+ "fvn-ordinal": ["fvn-normal"],
6419
+ "fvn-slashed-zero": ["fvn-normal"],
6420
+ "fvn-figure": ["fvn-normal"],
6421
+ "fvn-spacing": ["fvn-normal"],
6422
+ "fvn-fraction": ["fvn-normal"],
6423
+ "line-clamp": ["display", "overflow"],
6424
+ 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"],
6425
+ "rounded-s": ["rounded-ss", "rounded-es"],
6426
+ "rounded-e": ["rounded-se", "rounded-ee"],
6427
+ "rounded-t": ["rounded-tl", "rounded-tr"],
6428
+ "rounded-r": ["rounded-tr", "rounded-br"],
6429
+ "rounded-b": ["rounded-br", "rounded-bl"],
6430
+ "rounded-l": ["rounded-tl", "rounded-bl"],
6431
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
6432
+ "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
6433
+ "border-w-x": ["border-w-r", "border-w-l"],
6434
+ "border-w-y": ["border-w-t", "border-w-b"],
6435
+ "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
6436
+ "border-color-x": ["border-color-r", "border-color-l"],
6437
+ "border-color-y": ["border-color-t", "border-color-b"],
6438
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
6439
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
6440
+ "scroll-my": ["scroll-mt", "scroll-mb"],
6441
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
6442
+ "scroll-px": ["scroll-pr", "scroll-pl"],
6443
+ "scroll-py": ["scroll-pt", "scroll-pb"],
6444
+ touch: ["touch-x", "touch-y", "touch-pz"],
6445
+ "touch-x": ["touch"],
6446
+ "touch-y": ["touch"],
6447
+ "touch-pz": ["touch"]
6448
+ },
6449
+ conflictingClassGroupModifiers: {
6450
+ "font-size": ["leading"]
6451
+ }
6452
+ };
6453
+ };
6454
+ var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
6455
+
6456
+ // lib/cn.ts
6457
+ function cn(...inputs) {
6458
+ return twMerge(clsx(inputs));
6459
+ }
6460
+ var EventBusContext = React26.createContext(null);
6461
+
6462
+ // hooks/useEventBus.ts
6463
+ function getGlobalEventBus() {
6464
+ if (typeof window !== "undefined") {
6465
+ return window.__kflowEventBus ?? null;
6466
+ }
6467
+ return null;
6468
+ }
6469
+ var fallbackListeners = /* @__PURE__ */ new Map();
6470
+ var fallbackAnyListeners = /* @__PURE__ */ new Set();
6471
+ var fallbackEventBus = {
6472
+ emit: (type, payload) => {
6473
+ const event = {
6474
+ type,
6475
+ payload,
6476
+ timestamp: Date.now()
6477
+ };
6478
+ const handlers = fallbackListeners.get(type);
6479
+ if (handlers) {
6480
+ handlers.forEach((handler) => {
6481
+ try {
6482
+ handler(event);
6483
+ } catch (error) {
6484
+ console.error(`[EventBus] Error in listener for '${type}':`, error);
6485
+ }
6486
+ });
6487
+ }
6488
+ fallbackAnyListeners.forEach((handler) => {
6489
+ try {
6490
+ handler(event);
6491
+ } catch (error) {
6492
+ console.error(`[EventBus] Error in onAny listener for '${type}':`, error);
6493
+ }
6494
+ });
6495
+ },
6496
+ on: (type, listener) => {
6497
+ if (!fallbackListeners.has(type)) {
6498
+ fallbackListeners.set(type, /* @__PURE__ */ new Set());
6499
+ }
6500
+ fallbackListeners.get(type).add(listener);
6501
+ return () => {
6502
+ const handlers = fallbackListeners.get(type);
6503
+ if (handlers) {
6504
+ handlers.delete(listener);
6505
+ if (handlers.size === 0) {
6506
+ fallbackListeners.delete(type);
6507
+ }
6508
+ }
6509
+ };
6510
+ },
6511
+ once: (type, listener) => {
6512
+ const wrappedListener = (event) => {
6513
+ fallbackListeners.get(type)?.delete(wrappedListener);
6514
+ listener(event);
6515
+ };
6516
+ return fallbackEventBus.on(type, wrappedListener);
6517
+ },
6518
+ hasListeners: (type) => {
6519
+ const handlers = fallbackListeners.get(type);
6520
+ return handlers !== void 0 && handlers.size > 0;
6521
+ },
6522
+ onAny: (listener) => {
6523
+ fallbackAnyListeners.add(listener);
6524
+ return () => {
6525
+ fallbackAnyListeners.delete(listener);
6526
+ };
6527
+ }
6528
+ };
6529
+ function useEventBus() {
6530
+ const context = React26.useContext(EventBusContext);
6531
+ return context ?? getGlobalEventBus() ?? fallbackEventBus;
6532
+ }
6533
+ var paddingStyles = {
6534
+ none: "p-0",
6535
+ xs: "p-1",
6536
+ sm: "p-2",
6537
+ md: "p-4",
6538
+ lg: "p-6",
6539
+ xl: "p-8",
6540
+ "2xl": "p-12"
6541
+ };
6542
+ var paddingXStyles = {
6543
+ none: "px-0",
6544
+ xs: "px-1",
6545
+ sm: "px-2",
6546
+ md: "px-4",
6547
+ lg: "px-6",
6548
+ xl: "px-8",
6549
+ "2xl": "px-12"
6550
+ };
6551
+ var paddingYStyles = {
6552
+ none: "py-0",
6553
+ xs: "py-1",
6554
+ sm: "py-2",
6555
+ md: "py-4",
6556
+ lg: "py-6",
6557
+ xl: "py-8",
6558
+ "2xl": "py-12"
6559
+ };
6560
+ var marginStyles = {
6561
+ none: "m-0",
6562
+ xs: "m-1",
6563
+ sm: "m-2",
6564
+ md: "m-4",
6565
+ lg: "m-6",
6566
+ xl: "m-8",
6567
+ "2xl": "m-12",
6568
+ auto: "m-auto"
6569
+ };
6570
+ var marginXStyles = {
6571
+ none: "mx-0",
6572
+ xs: "mx-1",
6573
+ sm: "mx-2",
6574
+ md: "mx-4",
6575
+ lg: "mx-6",
6576
+ xl: "mx-8",
6577
+ "2xl": "mx-12",
6578
+ auto: "mx-auto"
6579
+ };
6580
+ var marginYStyles = {
6581
+ none: "my-0",
6582
+ xs: "my-1",
6583
+ sm: "my-2",
6584
+ md: "my-4",
6585
+ lg: "my-6",
6586
+ xl: "my-8",
6587
+ "2xl": "my-12",
6588
+ auto: "my-auto"
6589
+ };
6590
+ var bgStyles = {
6591
+ transparent: "bg-transparent",
6592
+ primary: "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]",
6593
+ secondary: "bg-[var(--color-secondary)] text-[var(--color-secondary-foreground)]",
6594
+ muted: "bg-[var(--color-muted)] text-[var(--color-foreground)]",
6595
+ accent: "bg-[var(--color-accent)] text-[var(--color-accent-foreground)]",
6596
+ surface: "bg-[var(--color-card)]",
6597
+ overlay: "bg-[var(--color-card)]/80 backdrop-blur-sm"
6598
+ };
6599
+ var roundedStyles = {
6600
+ none: "rounded-none",
6601
+ sm: "rounded-[var(--radius-sm)]",
6602
+ md: "rounded-[var(--radius-md)]",
6603
+ lg: "rounded-[var(--radius-lg)]",
6604
+ xl: "rounded-[var(--radius-xl)]",
6605
+ "2xl": "rounded-[var(--radius-xl)]",
6606
+ full: "rounded-[var(--radius-full)]"
6607
+ };
6608
+ var shadowStyles = {
6609
+ none: "shadow-none",
6610
+ sm: "shadow-[var(--shadow-sm)]",
6611
+ md: "shadow-[var(--shadow-main)]",
6612
+ lg: "shadow-[var(--shadow-lg)]",
6613
+ xl: "shadow-[var(--shadow-lg)]"
6614
+ };
6615
+ var displayStyles = {
6616
+ block: "block",
6617
+ inline: "inline",
6618
+ "inline-block": "inline-block",
6619
+ flex: "flex",
6620
+ "inline-flex": "inline-flex",
6621
+ grid: "grid"
6622
+ };
6623
+ var overflowStyles2 = {
6624
+ auto: "overflow-auto",
6625
+ hidden: "overflow-hidden",
6626
+ visible: "overflow-visible",
6627
+ scroll: "overflow-scroll"
6628
+ };
6629
+ var positionStyles = {
6630
+ relative: "relative",
6631
+ absolute: "absolute",
6632
+ fixed: "fixed",
6633
+ sticky: "sticky"
6634
+ };
6635
+ var Box = React26__default.default.forwardRef(
6636
+ ({
6637
+ padding,
6638
+ paddingX,
6639
+ paddingY,
6640
+ margin,
6641
+ marginX,
6642
+ marginY,
6643
+ bg = "transparent",
6644
+ border = false,
6645
+ rounded = "none",
6646
+ shadow = "none",
6647
+ display,
6648
+ fullWidth = false,
6649
+ fullHeight = false,
6650
+ overflow,
6651
+ position,
6652
+ className,
6653
+ children,
6654
+ as: Component = "div",
6655
+ action,
6656
+ actionPayload,
6657
+ hoverEvent,
6658
+ onClick,
6659
+ onMouseEnter,
6660
+ onMouseLeave,
6661
+ ...rest
6662
+ }, ref) => {
6663
+ const eventBus = useEventBus();
6664
+ const handleClick = React26.useCallback((e) => {
6665
+ if (action) {
6666
+ e.stopPropagation();
6667
+ eventBus.emit(`UI:${action}`, actionPayload ?? {});
6668
+ }
6669
+ onClick?.(e);
6670
+ }, [action, actionPayload, eventBus, onClick]);
6671
+ const handleMouseEnter = React26.useCallback((e) => {
6672
+ if (hoverEvent) {
6673
+ eventBus.emit(`UI:${hoverEvent}`, { hovered: true });
6674
+ }
6675
+ onMouseEnter?.(e);
6676
+ }, [hoverEvent, eventBus, onMouseEnter]);
6677
+ const handleMouseLeave = React26.useCallback((e) => {
6678
+ if (hoverEvent) {
6679
+ eventBus.emit(`UI:${hoverEvent}`, { hovered: false });
6680
+ }
6681
+ onMouseLeave?.(e);
6682
+ }, [hoverEvent, eventBus, onMouseLeave]);
6683
+ const isClickable = action || onClick;
6684
+ const Comp = Component;
6685
+ return /* @__PURE__ */ jsxRuntime.jsx(
6686
+ Comp,
6687
+ {
6688
+ ref,
6689
+ className: cn(
6690
+ // Padding
6691
+ padding && paddingStyles[padding],
6692
+ paddingX && paddingXStyles[paddingX],
6693
+ paddingY && paddingYStyles[paddingY],
6694
+ // Margin
6695
+ margin && marginStyles[margin],
6696
+ marginX && marginXStyles[marginX],
6697
+ marginY && marginYStyles[marginY],
6698
+ // Background
6699
+ bgStyles[bg],
6700
+ // Border - uses theme variables
6701
+ border && "border-[length:var(--border-width)] border-[var(--color-border)]",
6702
+ // Rounded
6703
+ roundedStyles[rounded],
6704
+ // Shadow
6705
+ shadowStyles[shadow],
6706
+ // Display
6707
+ display && displayStyles[display],
6708
+ // Dimensions
6709
+ fullWidth && "w-full",
6710
+ fullHeight && "h-full",
6711
+ // Overflow
6712
+ overflow && overflowStyles2[overflow],
6713
+ // Position
6714
+ position && positionStyles[position],
6715
+ // Cursor for clickable
6716
+ isClickable && "cursor-pointer",
6717
+ className
6718
+ ),
6719
+ onClick: isClickable ? handleClick : void 0,
6720
+ onMouseEnter: hoverEvent || onMouseEnter ? handleMouseEnter : void 0,
6721
+ onMouseLeave: hoverEvent || onMouseLeave ? handleMouseLeave : void 0,
6722
+ ...rest,
6723
+ children
6724
+ }
6725
+ );
6726
+ }
6727
+ );
6728
+ Box.displayName = "Box";
6729
+
3978
6730
  // components/molecules/avl/avl-layout.ts
3979
- function ringPositions(cx, cy, r, count, startAngle = -Math.PI / 2) {
6731
+ function ringPositions(cx, cy, r2, count, startAngle = -Math.PI / 2) {
3980
6732
  if (count === 0) return [];
3981
6733
  if (count === 1) {
3982
6734
  return [{ x: cx, y: cy, angle: 0 }];
3983
6735
  }
3984
6736
  if (count === 2) {
3985
6737
  return [
3986
- { x: cx - r * 0.7, y: cy, angle: Math.PI },
3987
- { x: cx + r * 0.7, y: cy, angle: 0 }
6738
+ { x: cx - r2 * 0.7, y: cy, angle: Math.PI },
6739
+ { x: cx + r2 * 0.7, y: cy, angle: 0 }
3988
6740
  ];
3989
6741
  }
3990
6742
  return Array.from({ length: count }, (_, i) => {
3991
6743
  const angle = startAngle + Math.PI * 2 * i / count;
3992
6744
  return {
3993
- x: cx + r * Math.cos(angle),
3994
- y: cy + r * Math.sin(angle),
6745
+ x: cx + r2 * Math.cos(angle),
6746
+ y: cy + r2 * Math.sin(angle),
3995
6747
  angle
3996
6748
  };
3997
6749
  });
@@ -4004,17 +6756,17 @@ var AvlStateMachine = ({
4004
6756
  color = "var(--color-primary)",
4005
6757
  animated = false
4006
6758
  }) => {
4007
- const ids = React24__default.default.useMemo(() => {
6759
+ const ids = React26__default.default.useMemo(() => {
4008
6760
  avlSmId += 1;
4009
6761
  const base = `avl-sm-${avlSmId}`;
4010
6762
  return { glow: `${base}-glow`, grad: `${base}-grad` };
4011
6763
  }, []);
4012
6764
  const cx = 300;
4013
6765
  const cy = 200;
4014
- const r = 150;
6766
+ const r2 = 150;
4015
6767
  const stateWidth = 90;
4016
6768
  const stateHeight = 36;
4017
- const positions = ringPositions(cx, cy, r, states.length);
6769
+ const positions = ringPositions(cx, cy, r2, states.length);
4018
6770
  const stateIndex = new Map(states.map((s, i) => [s.name, i]));
4019
6771
  const pairCount = /* @__PURE__ */ new Map();
4020
6772
  const pairSeen = /* @__PURE__ */ new Map();
@@ -4039,7 +6791,7 @@ var AvlStateMachine = ({
4039
6791
  animated && /* @__PURE__ */ jsxRuntime.jsx("style", { children: `
4040
6792
  @keyframes avl-sm-dash { from { stroke-dashoffset: 20; } to { stroke-dashoffset: 0; } }
4041
6793
  ` }),
4042
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: r + 30, fill: `url(#${ids.grad})` }),
6794
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: r2 + 30, fill: `url(#${ids.grad})` }),
4043
6795
  transitions.map((tr, i) => {
4044
6796
  if (tr.from !== tr.to) return null;
4045
6797
  const idx = stateIndex.get(tr.from);
@@ -4199,7 +6951,7 @@ var AvlOrbitalUnit = ({
4199
6951
  color = "var(--color-primary)",
4200
6952
  animated = false
4201
6953
  }) => {
4202
- const ids = React24__default.default.useMemo(() => {
6954
+ const ids = React26__default.default.useMemo(() => {
4203
6955
  avlOuId += 1;
4204
6956
  const base = `avl-ou-${avlOuId}`;
4205
6957
  return { glow: `${base}-glow`, grad: `${base}-grad` };
@@ -4291,17 +7043,17 @@ var AvlClosedCircuit = ({
4291
7043
  color = "var(--color-primary)",
4292
7044
  animated = false
4293
7045
  }) => {
4294
- const ids = React24__default.default.useMemo(() => {
7046
+ const ids = React26__default.default.useMemo(() => {
4295
7047
  avlCcId += 1;
4296
7048
  const base = `avl-cc-${avlCcId}`;
4297
7049
  return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
4298
7050
  }, []);
4299
7051
  const cx = 300;
4300
7052
  const cy = 200;
4301
- const r = 120;
7053
+ const r2 = 120;
4302
7054
  const stateW = 80;
4303
7055
  const stateH = 32;
4304
- const positions = ringPositions(cx, cy, r, states.length);
7056
+ const positions = ringPositions(cx, cy, r2, states.length);
4305
7057
  const stateIndex = new Map(states.map((s, i) => [s.name, i]));
4306
7058
  return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 600 400", xmlns: "http://www.w3.org/2000/svg", className, children: [
4307
7059
  /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
@@ -4334,7 +7086,7 @@ var AvlClosedCircuit = ({
4334
7086
  animated && /* @__PURE__ */ jsxRuntime.jsx("style", { children: `
4335
7087
  @keyframes avl-cc-flow { from { stroke-dashoffset: 24; } to { stroke-dashoffset: 0; } }
4336
7088
  ` }),
4337
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: r + 30, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.06 }),
7089
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: r2 + 30, fill: "none", stroke: color, strokeWidth: 0.3, opacity: 0.06 }),
4338
7090
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r: 50, fill: "none", stroke: color, strokeWidth: 0.5, opacity: 0.08 }),
4339
7091
  transitions.map((tr, i) => {
4340
7092
  const fromIdx = stateIndex.get(tr.from);
@@ -4444,7 +7196,7 @@ var AvlEmitListen = ({
4444
7196
  color = "var(--color-primary)",
4445
7197
  animated = false
4446
7198
  }) => {
4447
- const ids = React24__default.default.useMemo(() => {
7199
+ const ids = React26__default.default.useMemo(() => {
4448
7200
  avlElId += 1;
4449
7201
  const base = `avl-el-${avlElId}`;
4450
7202
  return { arrow: `${base}-arrow`, grad: `${base}-grad` };
@@ -4634,39 +7386,58 @@ var AvlSlotMap = ({
4634
7386
  children: "Page Layout"
4635
7387
  }
4636
7388
  ),
4637
- resolvedSlots.map((slot) => /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
4638
- /* @__PURE__ */ jsxRuntime.jsx(
4639
- "rect",
4640
- {
4641
- x: ox + slot.x,
4642
- y: oy + 24 + slot.y,
4643
- width: slot.width,
4644
- height: slot.height,
4645
- rx: 3,
4646
- ry: 3,
4647
- fill: color,
4648
- opacity: 0.08,
4649
- stroke: color,
4650
- strokeWidth: 1,
4651
- strokeDasharray: "4 2",
4652
- style: animated ? { animation: "avl-slot-pulse 2s ease-in-out infinite" } : void 0
4653
- }
4654
- ),
4655
- /* @__PURE__ */ jsxRuntime.jsx(
4656
- "text",
4657
- {
4658
- x: ox + slot.x + slot.width / 2,
4659
- y: oy + 24 + slot.y + slot.height / 2,
4660
- textAnchor: "middle",
4661
- dominantBaseline: "central",
4662
- fill: color,
4663
- fontSize: 9,
4664
- fontFamily: "inherit",
4665
- opacity: 0.6,
4666
- children: slot.name
4667
- }
4668
- )
4669
- ] }, slot.name))
7389
+ resolvedSlots.map((slot) => {
7390
+ const isOverlay = ["modal", "drawer", "toast"].includes(slot.name);
7391
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7392
+ isOverlay && /* @__PURE__ */ jsxRuntime.jsx(
7393
+ "rect",
7394
+ {
7395
+ x: ox + slot.x + 3,
7396
+ y: oy + 24 + slot.y + 3,
7397
+ width: slot.width,
7398
+ height: slot.height,
7399
+ rx: 3,
7400
+ ry: 3,
7401
+ fill: "black",
7402
+ opacity: 0.06
7403
+ }
7404
+ ),
7405
+ /* @__PURE__ */ jsxRuntime.jsx(
7406
+ "rect",
7407
+ {
7408
+ x: ox + slot.x,
7409
+ y: oy + 24 + slot.y,
7410
+ width: slot.width,
7411
+ height: slot.height,
7412
+ rx: 3,
7413
+ ry: 3,
7414
+ fill: isOverlay ? "var(--color-surface, #fff)" : color,
7415
+ opacity: isOverlay ? 0.9 : 0.08,
7416
+ stroke: color,
7417
+ strokeWidth: isOverlay ? 1.5 : 1,
7418
+ strokeDasharray: isOverlay ? "6 3" : "4 2",
7419
+ style: animated ? { animation: "avl-slot-pulse 2s ease-in-out infinite" } : void 0
7420
+ }
7421
+ ),
7422
+ /* @__PURE__ */ jsxRuntime.jsxs(
7423
+ "text",
7424
+ {
7425
+ x: ox + slot.x + slot.width / 2,
7426
+ y: oy + 24 + slot.y + slot.height / 2,
7427
+ textAnchor: "middle",
7428
+ dominantBaseline: "central",
7429
+ fill: color,
7430
+ fontSize: 9,
7431
+ fontFamily: "inherit",
7432
+ opacity: 0.6,
7433
+ children: [
7434
+ slot.name,
7435
+ isOverlay ? " (overlay)" : ""
7436
+ ]
7437
+ }
7438
+ )
7439
+ ] }, slot.name);
7440
+ })
4670
7441
  ] });
4671
7442
  };
4672
7443
  AvlSlotMap.displayName = "AvlSlotMap";
@@ -4679,7 +7450,7 @@ function layoutTree(node, x, y, hSpacing, vSpacing) {
4679
7450
  const totalWidth = (children.length - 1) * hSpacing;
4680
7451
  const startX = x - totalWidth / 2;
4681
7452
  const layoutChildren = children.map(
4682
- (child, i) => layoutTree(child, startX + i * hSpacing, y + vSpacing, hSpacing * 0.65, vSpacing)
7453
+ (child, i) => layoutTree(child, startX + i * hSpacing, y + vSpacing, hSpacing * 0.75, vSpacing)
4683
7454
  );
4684
7455
  return { label: node.label, type: node.type, x, y, children: layoutChildren };
4685
7456
  }
@@ -4696,9 +7467,9 @@ function nodeColor(type, baseColor) {
4696
7467
  function renderNode(node, color, glowId) {
4697
7468
  const labelLen = node.label.length;
4698
7469
  const baseR = node.type === "operator" ? 20 : 16;
4699
- const r = Math.max(baseR, labelLen * 3.5 + 6);
7470
+ const r2 = Math.max(baseR, labelLen * 3.5 + 6);
4700
7471
  const nc = nodeColor(node.type, color);
4701
- return /* @__PURE__ */ jsxRuntime.jsxs(React24__default.default.Fragment, { children: [
7472
+ return /* @__PURE__ */ jsxRuntime.jsxs(React26__default.default.Fragment, { children: [
4702
7473
  node.children.map((child, i) => {
4703
7474
  const childR = Math.max(
4704
7475
  child.type === "operator" ? 20 : 16,
@@ -4708,7 +7479,7 @@ function renderNode(node, color, glowId) {
4708
7479
  "line",
4709
7480
  {
4710
7481
  x1: node.x,
4711
- y1: node.y + (node.type === "operator" ? r * 0.7 : r),
7482
+ y1: node.y + (node.type === "operator" ? r2 * 0.7 : r2),
4712
7483
  x2: child.x,
4713
7484
  y2: child.y - (child.type === "operator" ? childR * 0.7 : childR),
4714
7485
  stroke: color,
@@ -4721,10 +7492,10 @@ function renderNode(node, color, glowId) {
4721
7492
  node.type === "operator" ? /* @__PURE__ */ jsxRuntime.jsx(
4722
7493
  "rect",
4723
7494
  {
4724
- x: node.x - r,
4725
- y: node.y - r * 0.6,
4726
- width: r * 2,
4727
- height: r * 1.2,
7495
+ x: node.x - r2,
7496
+ y: node.y - r2 * 0.6,
7497
+ width: r2 * 2,
7498
+ height: r2 * 1.2,
4728
7499
  rx: 4,
4729
7500
  ry: 4,
4730
7501
  fill: color,
@@ -4732,7 +7503,7 @@ function renderNode(node, color, glowId) {
4732
7503
  stroke: nc,
4733
7504
  strokeWidth: 1.5
4734
7505
  }
4735
- ) : node.type === "binding" ? /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: node.x, cy: node.y, r, fill: "none", stroke: nc, strokeWidth: 1.5, strokeDasharray: "3 2" }) : /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: node.x, cy: node.y, r, fill: "none", stroke: nc, strokeWidth: 1, opacity: 0.5 }),
7506
+ ) : node.type === "binding" ? /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: node.x, cy: node.y, r: r2, fill: "none", stroke: nc, strokeWidth: 1.5, strokeDasharray: "3 2" }) : /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: node.x, cy: node.y, r: r2, fill: "none", stroke: nc, strokeWidth: 1, opacity: 0.5 }),
4736
7507
  /* @__PURE__ */ jsxRuntime.jsx(
4737
7508
  "text",
4738
7509
  {
@@ -4755,11 +7526,11 @@ var AvlExprTree = ({
4755
7526
  className,
4756
7527
  color = "var(--color-primary)"
4757
7528
  }) => {
4758
- const ids = React24__default.default.useMemo(() => {
7529
+ const ids = React26__default.default.useMemo(() => {
4759
7530
  avlEtId += 1;
4760
7531
  return { glow: `avl-et-${avlEtId}-glow` };
4761
7532
  }, []);
4762
- const layout = layoutTree(expression, 300, 70, 150, 85);
7533
+ const layout = layoutTree(expression, 300, 60, 200, 90);
4763
7534
  return /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 600 400", xmlns: "http://www.w3.org/2000/svg", className, children: [
4764
7535
  /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs("filter", { id: ids.glow, x: "-50%", y: "-50%", width: "200%", height: "200%", children: [
4765
7536
  /* @__PURE__ */ jsxRuntime.jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "2", result: "blur" }),