@solvimon/solvimon-web 0.1.0-alpha.6 → 0.1.0-alpha.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 (179) hide show
  1. package/dist/Alert.vue.es-DMPvSykx.js +1 -0
  2. package/dist/Alert.vue.es-DsJ1ckRU.mjs +172 -0
  3. package/dist/Amount.vue.es-C6JE5rL8.mjs +23 -0
  4. package/dist/Amount.vue.es-h8wulbBG.js +1 -0
  5. package/dist/Avatar.vue.es-Ba8ZGfm4.mjs +93 -0
  6. package/dist/Avatar.vue.es-BbyE0AjW.js +1 -0
  7. package/dist/BillingInformation.vue_vue_type_script_setup_true_lang-C4Ndo83E.js +1 -0
  8. package/dist/{BillingInformation.vue_vue_type_script_setup_true_lang-DZ1XkSJ3.mjs → BillingInformation.vue_vue_type_script_setup_true_lang-CupcH8TZ.mjs} +6 -4
  9. package/dist/Button.vue.es-6sBk5tBL.mjs +408 -0
  10. package/dist/Button.vue.es-BC4_TItq.js +1 -0
  11. package/dist/CardContent.vue.es-ChEMrFCc.mjs +115 -0
  12. package/dist/CardContent.vue.es-i9ivuGKG.js +1 -0
  13. package/dist/Chip.vue.es-D0fkSe8a.js +1 -0
  14. package/dist/Chip.vue.es-DcW2CjUA.mjs +1576 -0
  15. package/dist/Comparators.vue.es-BdxDqU8o.js +1 -0
  16. package/dist/Comparators.vue.es-DdTKGB80.mjs +406 -0
  17. package/dist/{ContentWithAsideLayout-D_T137tN.mjs → ContentWithAsideLayout-Ct24RV-2.mjs} +1 -1
  18. package/dist/{ContentWithAsideLayout-BZJPhvLh.js → ContentWithAsideLayout-UHovpjZu.js} +1 -1
  19. package/dist/CustomerBillingInformation.vue.es-9rP7-RzN.js +1 -0
  20. package/dist/CustomerBillingInformation.vue.es-DBMl01Es.mjs +175 -0
  21. package/dist/CustomerPaymentMethods.vue_vue_type_script_setup_true_lang-CYTCcMgP.js +1 -0
  22. package/dist/{CustomerPaymentMethods.vue_vue_type_script_setup_true_lang-DK6tiecN.mjs → CustomerPaymentMethods.vue_vue_type_script_setup_true_lang-DZJ0xukI.mjs} +14 -11
  23. package/dist/Divider.vue.es-ClFG8QtG.js +1 -0
  24. package/dist/Divider.vue.es-wKkIVBgb.mjs +24 -0
  25. package/dist/DividerText.vue.es-B7oa5Xpn.mjs +72 -0
  26. package/dist/DividerText.vue.es-yiFdPQvo.js +1 -0
  27. package/dist/ErrorNotification.vue.es-Bgw0MIl8.mjs +30 -0
  28. package/dist/ErrorNotification.vue.es-FpRyg0De.js +1 -0
  29. package/dist/FormMessage.vue.es-DFQXxiSC.mjs +46 -0
  30. package/dist/FormMessage.vue.es-LeWoj774.js +1 -0
  31. package/dist/IconButton.vue.es-DNCwwH_j.mjs +825 -0
  32. package/dist/IconButton.vue.es-DiSiGPWO.js +1 -0
  33. package/dist/InvoiceDetailsBlock.vue_vue_type_script_setup_true_lang-BDitcx8B.js +1 -0
  34. package/dist/{InvoiceDetailsBlock.vue_vue_type_script_setup_true_lang-BWXmZmGZ.mjs → InvoiceDetailsBlock.vue_vue_type_script_setup_true_lang-DsrBsrtk.mjs} +3 -2
  35. package/dist/PaymentHistoryBlock.vue_vue_type_script_setup_true_lang-6yi47YWd.js +1 -0
  36. package/dist/{PaymentHistoryBlock.vue_vue_type_script_setup_true_lang-BSn_Zy0Y.mjs → PaymentHistoryBlock.vue_vue_type_script_setup_true_lang-BnKwmJ2s.mjs} +9 -5
  37. package/dist/PaymentIntegrationForm.vue_vue_type_script_setup_true_lang-BE1lWOk9.mjs +1067 -0
  38. package/dist/PaymentIntegrationForm.vue_vue_type_script_setup_true_lang-CC3hm3nx.js +1 -0
  39. package/dist/PaymentMethod.vue.es-DYlnmZh7.js +1 -0
  40. package/dist/PaymentMethod.vue.es-nXZoQjG3.mjs +1255 -0
  41. package/dist/{PricingGroupContent.vue_vue_type_script_setup_true_lang-X7-dfeZP.mjs → PricingGroupContent.vue_vue_type_script_setup_true_lang-BbvDXvIS.mjs} +6 -5
  42. package/dist/PricingGroupContent.vue_vue_type_script_setup_true_lang-CmQILA3q.js +1 -0
  43. package/dist/Section.vue.es-3-H1pUTB.mjs +79 -0
  44. package/dist/Section.vue.es-BuzTXRLP.js +1 -0
  45. package/dist/{SubscriptionsList.vue_vue_type_script_setup_true_lang-AxYjVFUM.mjs → SubscriptionsList.vue_vue_type_script_setup_true_lang-DVhJy0t8.mjs} +23 -20
  46. package/dist/SubscriptionsList.vue_vue_type_script_setup_true_lang-Pq3d7DTb.js +1 -0
  47. package/dist/TooltipParagraph.vue.es-DVJLF9Kv.mjs +136 -0
  48. package/dist/TooltipParagraph.vue.es-kTbRGoPF.js +1 -0
  49. package/dist/TrialChip.vue.es-BHYbW8b6.mjs +759 -0
  50. package/dist/TrialChip.vue.es-C6Xg_5rR.js +1 -0
  51. package/dist/_flatRest.es-BHFPCqZh.mjs +642 -0
  52. package/dist/_flatRest.es-dFffnTpX.js +1 -0
  53. package/dist/adyen-51SvcyqV.mjs +4 -0
  54. package/dist/adyen-DZsyEXkw.js +1 -0
  55. package/dist/api.es-B4qAAJKr.js +1 -0
  56. package/dist/api.es-UkfpLiLL.mjs +83 -0
  57. package/dist/{cloneDeep-DranHQkY.js → cloneDeep-Hs8Pp07F.js} +1 -1
  58. package/dist/cn.es-C7xoIs3C.js +1 -0
  59. package/dist/cn.es-tfxVlz02.mjs +3191 -0
  60. package/dist/component-ZRZIt3ZW.js +1 -0
  61. package/dist/component-dpA83LIN.mjs +6569 -0
  62. package/dist/components/BillingInformation/BillingInformation.ce.d.ts +1 -1
  63. package/dist/components/BillingInformation/BillingInformation.cjs.js +1 -1
  64. package/dist/components/BillingInformation/BillingInformation.es.js +14 -10
  65. package/dist/components/BillingInformationForm/BillingInformationForm.ce.d.ts +1 -1
  66. package/dist/components/BillingInformationForm/BillingInformationForm.cjs.js +1 -1
  67. package/dist/components/BillingInformationForm/BillingInformationForm.es.js +27 -23
  68. package/dist/components/CustomerPaymentMethods/CustomerPaymentMethods.ce.d.ts +1 -1
  69. package/dist/components/CustomerPaymentMethods/CustomerPaymentMethods.cjs.js +1 -1
  70. package/dist/components/CustomerPaymentMethods/CustomerPaymentMethods.es.js +3 -3
  71. package/dist/components/Invoice/Invoice.ce.d.ts +1 -1
  72. package/dist/components/Invoice/Invoice.cjs.js +1 -1
  73. package/dist/components/Invoice/Invoice.es.js +2612 -28
  74. package/dist/components/InvoiceDetails/InvoiceDetails.ce.d.ts +1 -1
  75. package/dist/components/InvoiceDetails/InvoiceDetails.cjs.js +1 -1
  76. package/dist/components/InvoiceDetails/InvoiceDetails.es.js +3 -3
  77. package/dist/components/InvoicesList/InvoicesList.ce.d.ts +1 -1
  78. package/dist/components/InvoicesList/InvoicesList.cjs.js +1 -1
  79. package/dist/components/InvoicesList/InvoicesList.es.js +2 -2
  80. package/dist/components/PaymentHistory/PaymentHistory.ce.d.ts +1 -1
  81. package/dist/components/PaymentHistory/PaymentHistory.cjs.js +1 -1
  82. package/dist/components/PaymentHistory/PaymentHistory.es.js +3 -3
  83. package/dist/components/PaymentMethodForm/PaymentMethodForm.ce.d.ts +1 -1
  84. package/dist/components/PaymentMethodForm/PaymentMethodForm.cjs.js +1 -1
  85. package/dist/components/PaymentMethodForm/PaymentMethodForm.es.js +10 -8
  86. package/dist/components/SubscriptionSchedules/SubscriptionSchedules.ce.d.ts +1 -1
  87. package/dist/components/SubscriptionSchedules/SubscriptionSchedules.cjs.js +1 -1
  88. package/dist/components/SubscriptionSchedules/SubscriptionSchedules.es.js +4820 -7
  89. package/dist/components/SubscriptionsList/SubscriptionsList.ce.d.ts +1 -1
  90. package/dist/components/SubscriptionsList/SubscriptionsList.cjs.js +1 -1
  91. package/dist/components/SubscriptionsList/SubscriptionsList.es.js +4 -4
  92. package/dist/components/WalletBalances/WalletBalances.ce.d.ts +1 -1
  93. package/dist/components/WalletBalances/WalletBalances.cjs.js +1 -1
  94. package/dist/components/WalletBalances/WalletBalances.es.js +2 -2
  95. package/dist/core/index.cjs.js +1 -1
  96. package/dist/core/index.es.js +1 -1
  97. package/dist/countryData.es--zJAd6LA.mjs +252 -0
  98. package/dist/countryData.es-D3MFzU92.js +1 -0
  99. package/dist/customer-CJrpbGX4.mjs +32 -0
  100. package/dist/customer-CcQR-JIm.js +1 -0
  101. package/dist/customer.es-D42Md24r.js +1 -0
  102. package/dist/customer.es-LIW2YmLL.mjs +30 -0
  103. package/dist/formatting.es-9hM8aHSg.js +1 -0
  104. package/dist/formatting.es-D5H_ySFv.mjs +68 -0
  105. package/dist/getCountryNameByCode.es-fP52nO_7.js +1 -0
  106. package/dist/getCountryNameByCode.es-ymC9R46j.mjs +8 -0
  107. package/dist/index-CI71bVGE.mjs +2521 -0
  108. package/dist/index-WLSPwi90.js +1 -0
  109. package/dist/index.cjs.js +1 -1
  110. package/dist/index.es-BBJF2O2l.js +1 -0
  111. package/dist/index.es-LCAKs4tH.mjs +438 -0
  112. package/dist/index.es.js +1 -1
  113. package/dist/invoices-3kVHsAXr.js +1 -0
  114. package/dist/{invoices-C7BHqB0g.mjs → invoices-CNK1Ushv.mjs} +15 -1
  115. package/dist/isEmpty.es-Bp1SbWFu.mjs +131 -0
  116. package/dist/isEmpty.es-Dycf-CD_.js +1 -0
  117. package/dist/{paymentMethods-BA7Kt8ti.mjs → paymentMethods-C-ApE-G4.mjs} +2 -1
  118. package/dist/paymentMethods-DZRf0WRl.js +1 -0
  119. package/dist/{payments-NTHUh5je.mjs → payments-CE9U7aKK.mjs} +1 -1
  120. package/dist/{payments-B8W0W6wZ.js → payments-CLt0SExf.js} +1 -1
  121. package/dist/pick.es-BgDAfhAl.js +1 -0
  122. package/dist/pick.es-DdVOyp0Q.mjs +45 -0
  123. package/dist/{registry-DgRnFEVF.mjs → registry-B99ZnfEn.mjs} +1 -2
  124. package/dist/registry-ClZ43bQn.js +1 -0
  125. package/dist/screens/Checkout/Checkout.ce.d.ts +1 -1
  126. package/dist/screens/Checkout/Checkout.cjs.js +1 -1
  127. package/dist/screens/Checkout/Checkout.es.js +1862 -162
  128. package/dist/screens/CustomerOverview/CustomerOverview.ce.d.ts +1 -1
  129. package/dist/screens/CustomerOverview/CustomerOverview.cjs.js +1 -1
  130. package/dist/screens/CustomerOverview/CustomerOverview.es.js +11 -11
  131. package/dist/screens/UpgradeSubscription/UpgradeSubscription.ce.d.ts +1 -1
  132. package/dist/screens/UpgradeSubscription/UpgradeSubscription.cjs.js +1 -1
  133. package/dist/screens/UpgradeSubscription/UpgradeSubscription.es.js +46 -40
  134. package/dist/solvimon-web.css +1 -1
  135. package/dist/subscriptions-CS8HTxzC.js +1 -0
  136. package/dist/{subscriptions-BEoXaAHw.mjs → subscriptions-CoeCrY1I.mjs} +2 -1
  137. package/dist/typeGuards.es-C4nR5FkL.js +1 -0
  138. package/dist/typeGuards.es-fwUoeMCe.mjs +12 -0
  139. package/dist/{useActionDispatchProvider-DmTJ_bqE.js → useActionDispatchProvider-CWVV_xsi.js} +1 -1
  140. package/dist/{useActionDispatchProvider-zSXRlc2S.mjs → useActionDispatchProvider-eO2qFPGv.mjs} +1 -1
  141. package/dist/useCustomer--jycAz--.mjs +25 -0
  142. package/dist/useCustomer-PthyTFLl.js +1 -0
  143. package/dist/useIncrementalLoading-CAdNW-Bf.js +1 -0
  144. package/dist/{useIncrementalLoading-Bgs0mqyb.mjs → useIncrementalLoading-CcnL3flF.mjs} +5 -1
  145. package/dist/{useInvoiceData-B6P2VShe.mjs → useInvoiceData-BiMMoVoW.mjs} +2 -2
  146. package/dist/{useInvoiceData-CS7hLTea.js → useInvoiceData-DvQO_nKz.js} +1 -1
  147. package/dist/useInvoicesList-CHkwSNO9.js +1 -0
  148. package/dist/{useInvoicesList-23Ra-23Z.mjs → useInvoicesList-DFhF_gp7.mjs} +260 -23
  149. package/dist/{usePaymentMethods-BK4unvj2.js → usePaymentMethods-BRQ7-dUr.js} +1 -1
  150. package/dist/{usePaymentMethods-B8Nft16c.mjs → usePaymentMethods-BX2RnHZN.mjs} +2 -2
  151. package/dist/{useService-D-CUtlp3.js → useService-B67YWAcN.js} +1 -1
  152. package/dist/{useService-B4qv5N2D.mjs → useService-DG_zedHV.mjs} +1 -0
  153. package/dist/useWalletBalanceItems-B5FMmoU2.mjs +308 -0
  154. package/dist/useWalletBalanceItems-BY3gq0fc.js +1 -0
  155. package/package.json +14 -8
  156. package/dist/BillingInformation.vue_vue_type_script_setup_true_lang-eRGZRjmq.js +0 -1
  157. package/dist/CustomerPaymentMethods.vue_vue_type_script_setup_true_lang-BvmKLc2H.js +0 -1
  158. package/dist/InvoiceDetailsBlock.vue_vue_type_script_setup_true_lang-DNWspHtC.js +0 -1
  159. package/dist/PaymentHistoryBlock.vue_vue_type_script_setup_true_lang-Cx4c8E4i.js +0 -1
  160. package/dist/PaymentIntegrationForm.vue_vue_type_script_setup_true_lang-Ct26TY0a.js +0 -1
  161. package/dist/PaymentIntegrationForm.vue_vue_type_script_setup_true_lang-WRXecMCj.mjs +0 -6568
  162. package/dist/PricingGroupContent.vue_vue_type_script_setup_true_lang-KnhKv07X.js +0 -1
  163. package/dist/SubscriptionsList.vue_vue_type_script_setup_true_lang-D9_G7CyE.js +0 -1
  164. package/dist/component-DI3AxwdD.mjs +0 -58733
  165. package/dist/component-yWF07boR.js +0 -1
  166. package/dist/index-CzL1ZcGi.mjs +0 -85
  167. package/dist/index-DRdBmZ2-.js +0 -1
  168. package/dist/invoices-CjBHfDXp.js +0 -1
  169. package/dist/paymentMethods-A-5SBmy1.js +0 -1
  170. package/dist/registry-SwmYGFn7.js +0 -1
  171. package/dist/subscriptions-DSi93KpN.js +0 -1
  172. package/dist/useCustomer-DkrBNt5f.mjs +0 -45
  173. package/dist/useCustomer-fK-w7ifj.js +0 -1
  174. package/dist/useIncrementalLoading-BK6N8sYW.js +0 -1
  175. package/dist/useInvoicesList-CIFGVsDj.js +0 -1
  176. package/dist/useWalletBalanceItems-DreHuOra.mjs +0 -105
  177. package/dist/useWalletBalanceItems-NlFk6jPD.js +0 -1
  178. /package/dist/{sprite-DZD704h3-CCc3Mz1x.js → sprite.svg.es-CCc3Mz1x.js} +0 -0
  179. /package/dist/{sprite-DZD704h3-DZD704h3.mjs → sprite.svg.es-DZD704h3.mjs} +0 -0
@@ -0,0 +1,3191 @@
1
+ function r(e) {
2
+ var t, f, n = "";
3
+ if ("string" == typeof e || "number" == typeof e) n += e;
4
+ else if ("object" == typeof e) if (Array.isArray(e)) {
5
+ var o = e.length;
6
+ for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
7
+ } else for (f in e) e[f] && (n && (n += " "), n += f);
8
+ return n;
9
+ }
10
+ function clsx() {
11
+ for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
12
+ return n;
13
+ }
14
+ const concatArrays = (array1, array2) => {
15
+ const combinedArray = new Array(array1.length + array2.length);
16
+ for (let i = 0; i < array1.length; i++) {
17
+ combinedArray[i] = array1[i];
18
+ }
19
+ for (let i = 0; i < array2.length; i++) {
20
+ combinedArray[array1.length + i] = array2[i];
21
+ }
22
+ return combinedArray;
23
+ };
24
+ const createClassValidatorObject = (classGroupId, validator) => ({
25
+ classGroupId,
26
+ validator
27
+ });
28
+ const createClassPartObject = (nextPart = /* @__PURE__ */ new Map(), validators = null, classGroupId) => ({
29
+ nextPart,
30
+ validators,
31
+ classGroupId
32
+ });
33
+ const CLASS_PART_SEPARATOR = "-";
34
+ const EMPTY_CONFLICTS = [];
35
+ const ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
36
+ const createClassGroupUtils = (config) => {
37
+ const classMap = createClassMap(config);
38
+ const {
39
+ conflictingClassGroups,
40
+ conflictingClassGroupModifiers
41
+ } = config;
42
+ const getClassGroupId = (className) => {
43
+ if (className.startsWith("[") && className.endsWith("]")) {
44
+ return getGroupIdForArbitraryProperty(className);
45
+ }
46
+ const classParts = className.split(CLASS_PART_SEPARATOR);
47
+ const startIndex = classParts[0] === "" && classParts.length > 1 ? 1 : 0;
48
+ return getGroupRecursive(classParts, startIndex, classMap);
49
+ };
50
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
51
+ if (hasPostfixModifier) {
52
+ const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
53
+ const baseConflicts = conflictingClassGroups[classGroupId];
54
+ if (modifierConflicts) {
55
+ if (baseConflicts) {
56
+ return concatArrays(baseConflicts, modifierConflicts);
57
+ }
58
+ return modifierConflicts;
59
+ }
60
+ return baseConflicts || EMPTY_CONFLICTS;
61
+ }
62
+ return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
63
+ };
64
+ return {
65
+ getClassGroupId,
66
+ getConflictingClassGroupIds
67
+ };
68
+ };
69
+ const getGroupRecursive = (classParts, startIndex, classPartObject) => {
70
+ const classPathsLength = classParts.length - startIndex;
71
+ if (classPathsLength === 0) {
72
+ return classPartObject.classGroupId;
73
+ }
74
+ const currentClassPart = classParts[startIndex];
75
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
76
+ if (nextClassPartObject) {
77
+ const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
78
+ if (result) return result;
79
+ }
80
+ const validators = classPartObject.validators;
81
+ if (validators === null) {
82
+ return void 0;
83
+ }
84
+ const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
85
+ const validatorsLength = validators.length;
86
+ for (let i = 0; i < validatorsLength; i++) {
87
+ const validatorObj = validators[i];
88
+ if (validatorObj.validator(classRest)) {
89
+ return validatorObj.classGroupId;
90
+ }
91
+ }
92
+ return void 0;
93
+ };
94
+ const getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
95
+ const content = className.slice(1, -1);
96
+ const colonIndex = content.indexOf(":");
97
+ const property = content.slice(0, colonIndex);
98
+ return property ? ARBITRARY_PROPERTY_PREFIX + property : void 0;
99
+ })();
100
+ const createClassMap = (config) => {
101
+ const {
102
+ theme,
103
+ classGroups
104
+ } = config;
105
+ return processClassGroups(classGroups, theme);
106
+ };
107
+ const processClassGroups = (classGroups, theme) => {
108
+ const classMap = createClassPartObject();
109
+ for (const classGroupId in classGroups) {
110
+ const group = classGroups[classGroupId];
111
+ processClassesRecursively(group, classMap, classGroupId, theme);
112
+ }
113
+ return classMap;
114
+ };
115
+ const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
116
+ const len = classGroup.length;
117
+ for (let i = 0; i < len; i++) {
118
+ const classDefinition = classGroup[i];
119
+ processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
120
+ }
121
+ };
122
+ const processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
123
+ if (typeof classDefinition === "string") {
124
+ processStringDefinition(classDefinition, classPartObject, classGroupId);
125
+ return;
126
+ }
127
+ if (typeof classDefinition === "function") {
128
+ processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
129
+ return;
130
+ }
131
+ processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
132
+ };
133
+ const processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
134
+ const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
135
+ classPartObjectToEdit.classGroupId = classGroupId;
136
+ };
137
+ const processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
138
+ if (isThemeGetter(classDefinition)) {
139
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
140
+ return;
141
+ }
142
+ if (classPartObject.validators === null) {
143
+ classPartObject.validators = [];
144
+ }
145
+ classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
146
+ };
147
+ const processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
148
+ const entries = Object.entries(classDefinition);
149
+ const len = entries.length;
150
+ for (let i = 0; i < len; i++) {
151
+ const [key, value] = entries[i];
152
+ processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
153
+ }
154
+ };
155
+ const getPart = (classPartObject, path) => {
156
+ let current = classPartObject;
157
+ const parts = path.split(CLASS_PART_SEPARATOR);
158
+ const len = parts.length;
159
+ for (let i = 0; i < len; i++) {
160
+ const part = parts[i];
161
+ let next = current.nextPart.get(part);
162
+ if (!next) {
163
+ next = createClassPartObject();
164
+ current.nextPart.set(part, next);
165
+ }
166
+ current = next;
167
+ }
168
+ return current;
169
+ };
170
+ const isThemeGetter = (func) => "isThemeGetter" in func && func.isThemeGetter === true;
171
+ const createLruCache = (maxCacheSize) => {
172
+ if (maxCacheSize < 1) {
173
+ return {
174
+ get: () => void 0,
175
+ set: () => {
176
+ }
177
+ };
178
+ }
179
+ let cacheSize = 0;
180
+ let cache = /* @__PURE__ */ Object.create(null);
181
+ let previousCache = /* @__PURE__ */ Object.create(null);
182
+ const update = (key, value) => {
183
+ cache[key] = value;
184
+ cacheSize++;
185
+ if (cacheSize > maxCacheSize) {
186
+ cacheSize = 0;
187
+ previousCache = cache;
188
+ cache = /* @__PURE__ */ Object.create(null);
189
+ }
190
+ };
191
+ return {
192
+ get(key) {
193
+ let value = cache[key];
194
+ if (value !== void 0) {
195
+ return value;
196
+ }
197
+ if ((value = previousCache[key]) !== void 0) {
198
+ update(key, value);
199
+ return value;
200
+ }
201
+ },
202
+ set(key, value) {
203
+ if (key in cache) {
204
+ cache[key] = value;
205
+ } else {
206
+ update(key, value);
207
+ }
208
+ }
209
+ };
210
+ };
211
+ const IMPORTANT_MODIFIER = "!";
212
+ const MODIFIER_SEPARATOR = ":";
213
+ const EMPTY_MODIFIERS = [];
214
+ const createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
215
+ modifiers,
216
+ hasImportantModifier,
217
+ baseClassName,
218
+ maybePostfixModifierPosition,
219
+ isExternal
220
+ });
221
+ const createParseClassName = (config) => {
222
+ const {
223
+ prefix,
224
+ experimentalParseClassName
225
+ } = config;
226
+ let parseClassName = (className) => {
227
+ const modifiers = [];
228
+ let bracketDepth = 0;
229
+ let parenDepth = 0;
230
+ let modifierStart = 0;
231
+ let postfixModifierPosition;
232
+ const len = className.length;
233
+ for (let index = 0; index < len; index++) {
234
+ const currentCharacter = className[index];
235
+ if (bracketDepth === 0 && parenDepth === 0) {
236
+ if (currentCharacter === MODIFIER_SEPARATOR) {
237
+ modifiers.push(className.slice(modifierStart, index));
238
+ modifierStart = index + 1;
239
+ continue;
240
+ }
241
+ if (currentCharacter === "/") {
242
+ postfixModifierPosition = index;
243
+ continue;
244
+ }
245
+ }
246
+ if (currentCharacter === "[") bracketDepth++;
247
+ else if (currentCharacter === "]") bracketDepth--;
248
+ else if (currentCharacter === "(") parenDepth++;
249
+ else if (currentCharacter === ")") parenDepth--;
250
+ }
251
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
252
+ let baseClassName = baseClassNameWithImportantModifier;
253
+ let hasImportantModifier = false;
254
+ if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
255
+ baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
256
+ hasImportantModifier = true;
257
+ } else if (
258
+ /**
259
+ * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
260
+ * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
261
+ */
262
+ baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)
263
+ ) {
264
+ baseClassName = baseClassNameWithImportantModifier.slice(1);
265
+ hasImportantModifier = true;
266
+ }
267
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
268
+ return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
269
+ };
270
+ if (prefix) {
271
+ const fullPrefix = prefix + MODIFIER_SEPARATOR;
272
+ const parseClassNameOriginal = parseClassName;
273
+ parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, void 0, true);
274
+ }
275
+ if (experimentalParseClassName) {
276
+ const parseClassNameOriginal = parseClassName;
277
+ parseClassName = (className) => experimentalParseClassName({
278
+ className,
279
+ parseClassName: parseClassNameOriginal
280
+ });
281
+ }
282
+ return parseClassName;
283
+ };
284
+ const createSortModifiers = (config) => {
285
+ const modifierWeights = /* @__PURE__ */ new Map();
286
+ config.orderSensitiveModifiers.forEach((mod, index) => {
287
+ modifierWeights.set(mod, 1e6 + index);
288
+ });
289
+ return (modifiers) => {
290
+ const result = [];
291
+ let currentSegment = [];
292
+ for (let i = 0; i < modifiers.length; i++) {
293
+ const modifier = modifiers[i];
294
+ const isArbitrary = modifier[0] === "[";
295
+ const isOrderSensitive = modifierWeights.has(modifier);
296
+ if (isArbitrary || isOrderSensitive) {
297
+ if (currentSegment.length > 0) {
298
+ currentSegment.sort();
299
+ result.push(...currentSegment);
300
+ currentSegment = [];
301
+ }
302
+ result.push(modifier);
303
+ } else {
304
+ currentSegment.push(modifier);
305
+ }
306
+ }
307
+ if (currentSegment.length > 0) {
308
+ currentSegment.sort();
309
+ result.push(...currentSegment);
310
+ }
311
+ return result;
312
+ };
313
+ };
314
+ const createConfigUtils = (config) => ({
315
+ cache: createLruCache(config.cacheSize),
316
+ parseClassName: createParseClassName(config),
317
+ sortModifiers: createSortModifiers(config),
318
+ ...createClassGroupUtils(config)
319
+ });
320
+ const SPLIT_CLASSES_REGEX = /\s+/;
321
+ const mergeClassList = (classList, configUtils) => {
322
+ const {
323
+ parseClassName,
324
+ getClassGroupId,
325
+ getConflictingClassGroupIds,
326
+ sortModifiers
327
+ } = configUtils;
328
+ const classGroupsInConflict = [];
329
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
330
+ let result = "";
331
+ for (let index = classNames.length - 1; index >= 0; index -= 1) {
332
+ const originalClassName = classNames[index];
333
+ const {
334
+ isExternal,
335
+ modifiers,
336
+ hasImportantModifier,
337
+ baseClassName,
338
+ maybePostfixModifierPosition
339
+ } = parseClassName(originalClassName);
340
+ if (isExternal) {
341
+ result = originalClassName + (result.length > 0 ? " " + result : result);
342
+ continue;
343
+ }
344
+ let hasPostfixModifier = !!maybePostfixModifierPosition;
345
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
346
+ if (!classGroupId) {
347
+ if (!hasPostfixModifier) {
348
+ result = originalClassName + (result.length > 0 ? " " + result : result);
349
+ continue;
350
+ }
351
+ classGroupId = getClassGroupId(baseClassName);
352
+ if (!classGroupId) {
353
+ result = originalClassName + (result.length > 0 ? " " + result : result);
354
+ continue;
355
+ }
356
+ hasPostfixModifier = false;
357
+ }
358
+ const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
359
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
360
+ const classId = modifierId + classGroupId;
361
+ if (classGroupsInConflict.indexOf(classId) > -1) {
362
+ continue;
363
+ }
364
+ classGroupsInConflict.push(classId);
365
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
366
+ for (let i = 0; i < conflictGroups.length; ++i) {
367
+ const group = conflictGroups[i];
368
+ classGroupsInConflict.push(modifierId + group);
369
+ }
370
+ result = originalClassName + (result.length > 0 ? " " + result : result);
371
+ }
372
+ return result;
373
+ };
374
+ const twJoin = (...classLists) => {
375
+ let index = 0;
376
+ let argument;
377
+ let resolvedValue;
378
+ let string = "";
379
+ while (index < classLists.length) {
380
+ if (argument = classLists[index++]) {
381
+ if (resolvedValue = toValue(argument)) {
382
+ string && (string += " ");
383
+ string += resolvedValue;
384
+ }
385
+ }
386
+ }
387
+ return string;
388
+ };
389
+ const toValue = (mix) => {
390
+ if (typeof mix === "string") {
391
+ return mix;
392
+ }
393
+ let resolvedValue;
394
+ let string = "";
395
+ for (let k = 0; k < mix.length; k++) {
396
+ if (mix[k]) {
397
+ if (resolvedValue = toValue(mix[k])) {
398
+ string && (string += " ");
399
+ string += resolvedValue;
400
+ }
401
+ }
402
+ }
403
+ return string;
404
+ };
405
+ const createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
406
+ let configUtils;
407
+ let cacheGet;
408
+ let cacheSet;
409
+ let functionToCall;
410
+ const initTailwindMerge = (classList) => {
411
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
412
+ configUtils = createConfigUtils(config);
413
+ cacheGet = configUtils.cache.get;
414
+ cacheSet = configUtils.cache.set;
415
+ functionToCall = tailwindMerge;
416
+ return tailwindMerge(classList);
417
+ };
418
+ const tailwindMerge = (classList) => {
419
+ const cachedResult = cacheGet(classList);
420
+ if (cachedResult) {
421
+ return cachedResult;
422
+ }
423
+ const result = mergeClassList(classList, configUtils);
424
+ cacheSet(classList, result);
425
+ return result;
426
+ };
427
+ functionToCall = initTailwindMerge;
428
+ return (...args) => functionToCall(twJoin(...args));
429
+ };
430
+ const fallbackThemeArr = [];
431
+ const fromTheme = (key) => {
432
+ const themeGetter = (theme) => theme[key] || fallbackThemeArr;
433
+ themeGetter.isThemeGetter = true;
434
+ return themeGetter;
435
+ };
436
+ const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
437
+ const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
438
+ const fractionRegex = /^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/;
439
+ const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
440
+ const 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$/;
441
+ const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
442
+ const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
443
+ const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
444
+ const isFraction = (value) => fractionRegex.test(value);
445
+ const isNumber = (value) => !!value && !Number.isNaN(Number(value));
446
+ const isInteger = (value) => !!value && Number.isInteger(Number(value));
447
+ const isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
448
+ const isTshirtSize = (value) => tshirtUnitRegex.test(value);
449
+ const isAny = () => true;
450
+ const isLengthOnly = (value) => (
451
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
452
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
453
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
454
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
455
+ );
456
+ const isNever = () => false;
457
+ const isShadow = (value) => shadowRegex.test(value);
458
+ const isImage = (value) => imageRegex.test(value);
459
+ const isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
460
+ const isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
461
+ const isArbitraryValue = (value) => arbitraryValueRegex.test(value);
462
+ const isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
463
+ const isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
464
+ const isArbitraryWeight = (value) => getIsArbitraryValue(value, isLabelWeight, isAny);
465
+ const isArbitraryFamilyName = (value) => getIsArbitraryValue(value, isLabelFamilyName, isNever);
466
+ const isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
467
+ const isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
468
+ const isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
469
+ const isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
470
+ const isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
471
+ const isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
472
+ const isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
473
+ const isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
474
+ const isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
475
+ const isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
476
+ const isArbitraryVariableWeight = (value) => getIsArbitraryVariable(value, isLabelWeight, true);
477
+ const getIsArbitraryValue = (value, testLabel, testValue) => {
478
+ const result = arbitraryValueRegex.exec(value);
479
+ if (result) {
480
+ if (result[1]) {
481
+ return testLabel(result[1]);
482
+ }
483
+ return testValue(result[2]);
484
+ }
485
+ return false;
486
+ };
487
+ const getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
488
+ const result = arbitraryVariableRegex.exec(value);
489
+ if (result) {
490
+ if (result[1]) {
491
+ return testLabel(result[1]);
492
+ }
493
+ return shouldMatchNoLabel;
494
+ }
495
+ return false;
496
+ };
497
+ const isLabelPosition = (label) => label === "position" || label === "percentage";
498
+ const isLabelImage = (label) => label === "image" || label === "url";
499
+ const isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
500
+ const isLabelLength = (label) => label === "length";
501
+ const isLabelNumber = (label) => label === "number";
502
+ const isLabelFamilyName = (label) => label === "family-name";
503
+ const isLabelWeight = (label) => label === "number" || label === "weight";
504
+ const isLabelShadow = (label) => label === "shadow";
505
+ const getDefaultConfig = () => {
506
+ const themeColor = fromTheme("color");
507
+ const themeFont = fromTheme("font");
508
+ const themeText = fromTheme("text");
509
+ const themeFontWeight = fromTheme("font-weight");
510
+ const themeTracking = fromTheme("tracking");
511
+ const themeLeading = fromTheme("leading");
512
+ const themeBreakpoint = fromTheme("breakpoint");
513
+ const themeContainer = fromTheme("container");
514
+ const themeSpacing = fromTheme("spacing");
515
+ const themeRadius = fromTheme("radius");
516
+ const themeShadow = fromTheme("shadow");
517
+ const themeInsetShadow = fromTheme("inset-shadow");
518
+ const themeTextShadow = fromTheme("text-shadow");
519
+ const themeDropShadow = fromTheme("drop-shadow");
520
+ const themeBlur = fromTheme("blur");
521
+ const themePerspective = fromTheme("perspective");
522
+ const themeAspect = fromTheme("aspect");
523
+ const themeEase = fromTheme("ease");
524
+ const themeAnimate = fromTheme("animate");
525
+ const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
526
+ const scalePosition = () => [
527
+ "center",
528
+ "top",
529
+ "bottom",
530
+ "left",
531
+ "right",
532
+ "top-left",
533
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
534
+ "left-top",
535
+ "top-right",
536
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
537
+ "right-top",
538
+ "bottom-right",
539
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
540
+ "right-bottom",
541
+ "bottom-left",
542
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
543
+ "left-bottom"
544
+ ];
545
+ const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
546
+ const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
547
+ const scaleOverscroll = () => ["auto", "contain", "none"];
548
+ const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
549
+ const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()];
550
+ const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue];
551
+ const scaleGridColRowStartAndEnd = () => ["auto", {
552
+ span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
553
+ }, isInteger, isArbitraryVariable, isArbitraryValue];
554
+ const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue];
555
+ const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue];
556
+ const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"];
557
+ const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"];
558
+ const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
559
+ const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
560
+ const scaleSizingInline = () => [isFraction, "screen", "full", "dvw", "lvw", "svw", "min", "max", "fit", ...scaleUnambiguousSpacing()];
561
+ const scaleSizingBlock = () => [isFraction, "screen", "full", "lh", "dvh", "lvh", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
562
+ const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
563
+ const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
564
+ position: [isArbitraryVariable, isArbitraryValue]
565
+ }];
566
+ const scaleBgRepeat = () => ["no-repeat", {
567
+ repeat: ["", "x", "y", "space", "round"]
568
+ }];
569
+ const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
570
+ size: [isArbitraryVariable, isArbitraryValue]
571
+ }];
572
+ const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
573
+ const scaleRadius = () => [
574
+ // Deprecated since Tailwind CSS v4.0.0
575
+ "",
576
+ "none",
577
+ "full",
578
+ themeRadius,
579
+ isArbitraryVariable,
580
+ isArbitraryValue
581
+ ];
582
+ const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength];
583
+ const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"];
584
+ const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
585
+ const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
586
+ const scaleBlur = () => [
587
+ // Deprecated since Tailwind CSS v4.0.0
588
+ "",
589
+ "none",
590
+ themeBlur,
591
+ isArbitraryVariable,
592
+ isArbitraryValue
593
+ ];
594
+ const scaleRotate = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
595
+ const scaleScale = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
596
+ const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
597
+ const scaleTranslate = () => [isFraction, "full", ...scaleUnambiguousSpacing()];
598
+ return {
599
+ cacheSize: 500,
600
+ theme: {
601
+ animate: ["spin", "ping", "pulse", "bounce"],
602
+ aspect: ["video"],
603
+ blur: [isTshirtSize],
604
+ breakpoint: [isTshirtSize],
605
+ color: [isAny],
606
+ container: [isTshirtSize],
607
+ "drop-shadow": [isTshirtSize],
608
+ ease: ["in", "out", "in-out"],
609
+ font: [isAnyNonArbitrary],
610
+ "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
611
+ "inset-shadow": [isTshirtSize],
612
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
613
+ perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
614
+ radius: [isTshirtSize],
615
+ shadow: [isTshirtSize],
616
+ spacing: ["px", isNumber],
617
+ text: [isTshirtSize],
618
+ "text-shadow": [isTshirtSize],
619
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
620
+ },
621
+ classGroups: {
622
+ // --------------
623
+ // --- Layout ---
624
+ // --------------
625
+ /**
626
+ * Aspect Ratio
627
+ * @see https://tailwindcss.com/docs/aspect-ratio
628
+ */
629
+ aspect: [{
630
+ aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
631
+ }],
632
+ /**
633
+ * Container
634
+ * @see https://tailwindcss.com/docs/container
635
+ * @deprecated since Tailwind CSS v4.0.0
636
+ */
637
+ container: ["container"],
638
+ /**
639
+ * Columns
640
+ * @see https://tailwindcss.com/docs/columns
641
+ */
642
+ columns: [{
643
+ columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
644
+ }],
645
+ /**
646
+ * Break After
647
+ * @see https://tailwindcss.com/docs/break-after
648
+ */
649
+ "break-after": [{
650
+ "break-after": scaleBreak()
651
+ }],
652
+ /**
653
+ * Break Before
654
+ * @see https://tailwindcss.com/docs/break-before
655
+ */
656
+ "break-before": [{
657
+ "break-before": scaleBreak()
658
+ }],
659
+ /**
660
+ * Break Inside
661
+ * @see https://tailwindcss.com/docs/break-inside
662
+ */
663
+ "break-inside": [{
664
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
665
+ }],
666
+ /**
667
+ * Box Decoration Break
668
+ * @see https://tailwindcss.com/docs/box-decoration-break
669
+ */
670
+ "box-decoration": [{
671
+ "box-decoration": ["slice", "clone"]
672
+ }],
673
+ /**
674
+ * Box Sizing
675
+ * @see https://tailwindcss.com/docs/box-sizing
676
+ */
677
+ box: [{
678
+ box: ["border", "content"]
679
+ }],
680
+ /**
681
+ * Display
682
+ * @see https://tailwindcss.com/docs/display
683
+ */
684
+ 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"],
685
+ /**
686
+ * Screen Reader Only
687
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
688
+ */
689
+ sr: ["sr-only", "not-sr-only"],
690
+ /**
691
+ * Floats
692
+ * @see https://tailwindcss.com/docs/float
693
+ */
694
+ float: [{
695
+ float: ["right", "left", "none", "start", "end"]
696
+ }],
697
+ /**
698
+ * Clear
699
+ * @see https://tailwindcss.com/docs/clear
700
+ */
701
+ clear: [{
702
+ clear: ["left", "right", "both", "none", "start", "end"]
703
+ }],
704
+ /**
705
+ * Isolation
706
+ * @see https://tailwindcss.com/docs/isolation
707
+ */
708
+ isolation: ["isolate", "isolation-auto"],
709
+ /**
710
+ * Object Fit
711
+ * @see https://tailwindcss.com/docs/object-fit
712
+ */
713
+ "object-fit": [{
714
+ object: ["contain", "cover", "fill", "none", "scale-down"]
715
+ }],
716
+ /**
717
+ * Object Position
718
+ * @see https://tailwindcss.com/docs/object-position
719
+ */
720
+ "object-position": [{
721
+ object: scalePositionWithArbitrary()
722
+ }],
723
+ /**
724
+ * Overflow
725
+ * @see https://tailwindcss.com/docs/overflow
726
+ */
727
+ overflow: [{
728
+ overflow: scaleOverflow()
729
+ }],
730
+ /**
731
+ * Overflow X
732
+ * @see https://tailwindcss.com/docs/overflow
733
+ */
734
+ "overflow-x": [{
735
+ "overflow-x": scaleOverflow()
736
+ }],
737
+ /**
738
+ * Overflow Y
739
+ * @see https://tailwindcss.com/docs/overflow
740
+ */
741
+ "overflow-y": [{
742
+ "overflow-y": scaleOverflow()
743
+ }],
744
+ /**
745
+ * Overscroll Behavior
746
+ * @see https://tailwindcss.com/docs/overscroll-behavior
747
+ */
748
+ overscroll: [{
749
+ overscroll: scaleOverscroll()
750
+ }],
751
+ /**
752
+ * Overscroll Behavior X
753
+ * @see https://tailwindcss.com/docs/overscroll-behavior
754
+ */
755
+ "overscroll-x": [{
756
+ "overscroll-x": scaleOverscroll()
757
+ }],
758
+ /**
759
+ * Overscroll Behavior Y
760
+ * @see https://tailwindcss.com/docs/overscroll-behavior
761
+ */
762
+ "overscroll-y": [{
763
+ "overscroll-y": scaleOverscroll()
764
+ }],
765
+ /**
766
+ * Position
767
+ * @see https://tailwindcss.com/docs/position
768
+ */
769
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
770
+ /**
771
+ * Inset
772
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
773
+ */
774
+ inset: [{
775
+ inset: scaleInset()
776
+ }],
777
+ /**
778
+ * Inset Inline
779
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
780
+ */
781
+ "inset-x": [{
782
+ "inset-x": scaleInset()
783
+ }],
784
+ /**
785
+ * Inset Block
786
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
787
+ */
788
+ "inset-y": [{
789
+ "inset-y": scaleInset()
790
+ }],
791
+ /**
792
+ * Inset Inline Start
793
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
794
+ * @todo class group will be renamed to `inset-s` in next major release
795
+ */
796
+ start: [{
797
+ "inset-s": scaleInset(),
798
+ /**
799
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.
800
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
801
+ */
802
+ start: scaleInset()
803
+ }],
804
+ /**
805
+ * Inset Inline End
806
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
807
+ * @todo class group will be renamed to `inset-e` in next major release
808
+ */
809
+ end: [{
810
+ "inset-e": scaleInset(),
811
+ /**
812
+ * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.
813
+ * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
814
+ */
815
+ end: scaleInset()
816
+ }],
817
+ /**
818
+ * Inset Block Start
819
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
820
+ */
821
+ "inset-bs": [{
822
+ "inset-bs": scaleInset()
823
+ }],
824
+ /**
825
+ * Inset Block End
826
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
827
+ */
828
+ "inset-be": [{
829
+ "inset-be": scaleInset()
830
+ }],
831
+ /**
832
+ * Top
833
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
834
+ */
835
+ top: [{
836
+ top: scaleInset()
837
+ }],
838
+ /**
839
+ * Right
840
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
841
+ */
842
+ right: [{
843
+ right: scaleInset()
844
+ }],
845
+ /**
846
+ * Bottom
847
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
848
+ */
849
+ bottom: [{
850
+ bottom: scaleInset()
851
+ }],
852
+ /**
853
+ * Left
854
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
855
+ */
856
+ left: [{
857
+ left: scaleInset()
858
+ }],
859
+ /**
860
+ * Visibility
861
+ * @see https://tailwindcss.com/docs/visibility
862
+ */
863
+ visibility: ["visible", "invisible", "collapse"],
864
+ /**
865
+ * Z-Index
866
+ * @see https://tailwindcss.com/docs/z-index
867
+ */
868
+ z: [{
869
+ z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
870
+ }],
871
+ // ------------------------
872
+ // --- Flexbox and Grid ---
873
+ // ------------------------
874
+ /**
875
+ * Flex Basis
876
+ * @see https://tailwindcss.com/docs/flex-basis
877
+ */
878
+ basis: [{
879
+ basis: [isFraction, "full", "auto", themeContainer, ...scaleUnambiguousSpacing()]
880
+ }],
881
+ /**
882
+ * Flex Direction
883
+ * @see https://tailwindcss.com/docs/flex-direction
884
+ */
885
+ "flex-direction": [{
886
+ flex: ["row", "row-reverse", "col", "col-reverse"]
887
+ }],
888
+ /**
889
+ * Flex Wrap
890
+ * @see https://tailwindcss.com/docs/flex-wrap
891
+ */
892
+ "flex-wrap": [{
893
+ flex: ["nowrap", "wrap", "wrap-reverse"]
894
+ }],
895
+ /**
896
+ * Flex
897
+ * @see https://tailwindcss.com/docs/flex
898
+ */
899
+ flex: [{
900
+ flex: [isNumber, isFraction, "auto", "initial", "none", isArbitraryValue]
901
+ }],
902
+ /**
903
+ * Flex Grow
904
+ * @see https://tailwindcss.com/docs/flex-grow
905
+ */
906
+ grow: [{
907
+ grow: ["", isNumber, isArbitraryVariable, isArbitraryValue]
908
+ }],
909
+ /**
910
+ * Flex Shrink
911
+ * @see https://tailwindcss.com/docs/flex-shrink
912
+ */
913
+ shrink: [{
914
+ shrink: ["", isNumber, isArbitraryVariable, isArbitraryValue]
915
+ }],
916
+ /**
917
+ * Order
918
+ * @see https://tailwindcss.com/docs/order
919
+ */
920
+ order: [{
921
+ order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
922
+ }],
923
+ /**
924
+ * Grid Template Columns
925
+ * @see https://tailwindcss.com/docs/grid-template-columns
926
+ */
927
+ "grid-cols": [{
928
+ "grid-cols": scaleGridTemplateColsRows()
929
+ }],
930
+ /**
931
+ * Grid Column Start / End
932
+ * @see https://tailwindcss.com/docs/grid-column
933
+ */
934
+ "col-start-end": [{
935
+ col: scaleGridColRowStartAndEnd()
936
+ }],
937
+ /**
938
+ * Grid Column Start
939
+ * @see https://tailwindcss.com/docs/grid-column
940
+ */
941
+ "col-start": [{
942
+ "col-start": scaleGridColRowStartOrEnd()
943
+ }],
944
+ /**
945
+ * Grid Column End
946
+ * @see https://tailwindcss.com/docs/grid-column
947
+ */
948
+ "col-end": [{
949
+ "col-end": scaleGridColRowStartOrEnd()
950
+ }],
951
+ /**
952
+ * Grid Template Rows
953
+ * @see https://tailwindcss.com/docs/grid-template-rows
954
+ */
955
+ "grid-rows": [{
956
+ "grid-rows": scaleGridTemplateColsRows()
957
+ }],
958
+ /**
959
+ * Grid Row Start / End
960
+ * @see https://tailwindcss.com/docs/grid-row
961
+ */
962
+ "row-start-end": [{
963
+ row: scaleGridColRowStartAndEnd()
964
+ }],
965
+ /**
966
+ * Grid Row Start
967
+ * @see https://tailwindcss.com/docs/grid-row
968
+ */
969
+ "row-start": [{
970
+ "row-start": scaleGridColRowStartOrEnd()
971
+ }],
972
+ /**
973
+ * Grid Row End
974
+ * @see https://tailwindcss.com/docs/grid-row
975
+ */
976
+ "row-end": [{
977
+ "row-end": scaleGridColRowStartOrEnd()
978
+ }],
979
+ /**
980
+ * Grid Auto Flow
981
+ * @see https://tailwindcss.com/docs/grid-auto-flow
982
+ */
983
+ "grid-flow": [{
984
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
985
+ }],
986
+ /**
987
+ * Grid Auto Columns
988
+ * @see https://tailwindcss.com/docs/grid-auto-columns
989
+ */
990
+ "auto-cols": [{
991
+ "auto-cols": scaleGridAutoColsRows()
992
+ }],
993
+ /**
994
+ * Grid Auto Rows
995
+ * @see https://tailwindcss.com/docs/grid-auto-rows
996
+ */
997
+ "auto-rows": [{
998
+ "auto-rows": scaleGridAutoColsRows()
999
+ }],
1000
+ /**
1001
+ * Gap
1002
+ * @see https://tailwindcss.com/docs/gap
1003
+ */
1004
+ gap: [{
1005
+ gap: scaleUnambiguousSpacing()
1006
+ }],
1007
+ /**
1008
+ * Gap X
1009
+ * @see https://tailwindcss.com/docs/gap
1010
+ */
1011
+ "gap-x": [{
1012
+ "gap-x": scaleUnambiguousSpacing()
1013
+ }],
1014
+ /**
1015
+ * Gap Y
1016
+ * @see https://tailwindcss.com/docs/gap
1017
+ */
1018
+ "gap-y": [{
1019
+ "gap-y": scaleUnambiguousSpacing()
1020
+ }],
1021
+ /**
1022
+ * Justify Content
1023
+ * @see https://tailwindcss.com/docs/justify-content
1024
+ */
1025
+ "justify-content": [{
1026
+ justify: [...scaleAlignPrimaryAxis(), "normal"]
1027
+ }],
1028
+ /**
1029
+ * Justify Items
1030
+ * @see https://tailwindcss.com/docs/justify-items
1031
+ */
1032
+ "justify-items": [{
1033
+ "justify-items": [...scaleAlignSecondaryAxis(), "normal"]
1034
+ }],
1035
+ /**
1036
+ * Justify Self
1037
+ * @see https://tailwindcss.com/docs/justify-self
1038
+ */
1039
+ "justify-self": [{
1040
+ "justify-self": ["auto", ...scaleAlignSecondaryAxis()]
1041
+ }],
1042
+ /**
1043
+ * Align Content
1044
+ * @see https://tailwindcss.com/docs/align-content
1045
+ */
1046
+ "align-content": [{
1047
+ content: ["normal", ...scaleAlignPrimaryAxis()]
1048
+ }],
1049
+ /**
1050
+ * Align Items
1051
+ * @see https://tailwindcss.com/docs/align-items
1052
+ */
1053
+ "align-items": [{
1054
+ items: [...scaleAlignSecondaryAxis(), {
1055
+ baseline: ["", "last"]
1056
+ }]
1057
+ }],
1058
+ /**
1059
+ * Align Self
1060
+ * @see https://tailwindcss.com/docs/align-self
1061
+ */
1062
+ "align-self": [{
1063
+ self: ["auto", ...scaleAlignSecondaryAxis(), {
1064
+ baseline: ["", "last"]
1065
+ }]
1066
+ }],
1067
+ /**
1068
+ * Place Content
1069
+ * @see https://tailwindcss.com/docs/place-content
1070
+ */
1071
+ "place-content": [{
1072
+ "place-content": scaleAlignPrimaryAxis()
1073
+ }],
1074
+ /**
1075
+ * Place Items
1076
+ * @see https://tailwindcss.com/docs/place-items
1077
+ */
1078
+ "place-items": [{
1079
+ "place-items": [...scaleAlignSecondaryAxis(), "baseline"]
1080
+ }],
1081
+ /**
1082
+ * Place Self
1083
+ * @see https://tailwindcss.com/docs/place-self
1084
+ */
1085
+ "place-self": [{
1086
+ "place-self": ["auto", ...scaleAlignSecondaryAxis()]
1087
+ }],
1088
+ // Spacing
1089
+ /**
1090
+ * Padding
1091
+ * @see https://tailwindcss.com/docs/padding
1092
+ */
1093
+ p: [{
1094
+ p: scaleUnambiguousSpacing()
1095
+ }],
1096
+ /**
1097
+ * Padding Inline
1098
+ * @see https://tailwindcss.com/docs/padding
1099
+ */
1100
+ px: [{
1101
+ px: scaleUnambiguousSpacing()
1102
+ }],
1103
+ /**
1104
+ * Padding Block
1105
+ * @see https://tailwindcss.com/docs/padding
1106
+ */
1107
+ py: [{
1108
+ py: scaleUnambiguousSpacing()
1109
+ }],
1110
+ /**
1111
+ * Padding Inline Start
1112
+ * @see https://tailwindcss.com/docs/padding
1113
+ */
1114
+ ps: [{
1115
+ ps: scaleUnambiguousSpacing()
1116
+ }],
1117
+ /**
1118
+ * Padding Inline End
1119
+ * @see https://tailwindcss.com/docs/padding
1120
+ */
1121
+ pe: [{
1122
+ pe: scaleUnambiguousSpacing()
1123
+ }],
1124
+ /**
1125
+ * Padding Block Start
1126
+ * @see https://tailwindcss.com/docs/padding
1127
+ */
1128
+ pbs: [{
1129
+ pbs: scaleUnambiguousSpacing()
1130
+ }],
1131
+ /**
1132
+ * Padding Block End
1133
+ * @see https://tailwindcss.com/docs/padding
1134
+ */
1135
+ pbe: [{
1136
+ pbe: scaleUnambiguousSpacing()
1137
+ }],
1138
+ /**
1139
+ * Padding Top
1140
+ * @see https://tailwindcss.com/docs/padding
1141
+ */
1142
+ pt: [{
1143
+ pt: scaleUnambiguousSpacing()
1144
+ }],
1145
+ /**
1146
+ * Padding Right
1147
+ * @see https://tailwindcss.com/docs/padding
1148
+ */
1149
+ pr: [{
1150
+ pr: scaleUnambiguousSpacing()
1151
+ }],
1152
+ /**
1153
+ * Padding Bottom
1154
+ * @see https://tailwindcss.com/docs/padding
1155
+ */
1156
+ pb: [{
1157
+ pb: scaleUnambiguousSpacing()
1158
+ }],
1159
+ /**
1160
+ * Padding Left
1161
+ * @see https://tailwindcss.com/docs/padding
1162
+ */
1163
+ pl: [{
1164
+ pl: scaleUnambiguousSpacing()
1165
+ }],
1166
+ /**
1167
+ * Margin
1168
+ * @see https://tailwindcss.com/docs/margin
1169
+ */
1170
+ m: [{
1171
+ m: scaleMargin()
1172
+ }],
1173
+ /**
1174
+ * Margin Inline
1175
+ * @see https://tailwindcss.com/docs/margin
1176
+ */
1177
+ mx: [{
1178
+ mx: scaleMargin()
1179
+ }],
1180
+ /**
1181
+ * Margin Block
1182
+ * @see https://tailwindcss.com/docs/margin
1183
+ */
1184
+ my: [{
1185
+ my: scaleMargin()
1186
+ }],
1187
+ /**
1188
+ * Margin Inline Start
1189
+ * @see https://tailwindcss.com/docs/margin
1190
+ */
1191
+ ms: [{
1192
+ ms: scaleMargin()
1193
+ }],
1194
+ /**
1195
+ * Margin Inline End
1196
+ * @see https://tailwindcss.com/docs/margin
1197
+ */
1198
+ me: [{
1199
+ me: scaleMargin()
1200
+ }],
1201
+ /**
1202
+ * Margin Block Start
1203
+ * @see https://tailwindcss.com/docs/margin
1204
+ */
1205
+ mbs: [{
1206
+ mbs: scaleMargin()
1207
+ }],
1208
+ /**
1209
+ * Margin Block End
1210
+ * @see https://tailwindcss.com/docs/margin
1211
+ */
1212
+ mbe: [{
1213
+ mbe: scaleMargin()
1214
+ }],
1215
+ /**
1216
+ * Margin Top
1217
+ * @see https://tailwindcss.com/docs/margin
1218
+ */
1219
+ mt: [{
1220
+ mt: scaleMargin()
1221
+ }],
1222
+ /**
1223
+ * Margin Right
1224
+ * @see https://tailwindcss.com/docs/margin
1225
+ */
1226
+ mr: [{
1227
+ mr: scaleMargin()
1228
+ }],
1229
+ /**
1230
+ * Margin Bottom
1231
+ * @see https://tailwindcss.com/docs/margin
1232
+ */
1233
+ mb: [{
1234
+ mb: scaleMargin()
1235
+ }],
1236
+ /**
1237
+ * Margin Left
1238
+ * @see https://tailwindcss.com/docs/margin
1239
+ */
1240
+ ml: [{
1241
+ ml: scaleMargin()
1242
+ }],
1243
+ /**
1244
+ * Space Between X
1245
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1246
+ */
1247
+ "space-x": [{
1248
+ "space-x": scaleUnambiguousSpacing()
1249
+ }],
1250
+ /**
1251
+ * Space Between X Reverse
1252
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1253
+ */
1254
+ "space-x-reverse": ["space-x-reverse"],
1255
+ /**
1256
+ * Space Between Y
1257
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1258
+ */
1259
+ "space-y": [{
1260
+ "space-y": scaleUnambiguousSpacing()
1261
+ }],
1262
+ /**
1263
+ * Space Between Y Reverse
1264
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1265
+ */
1266
+ "space-y-reverse": ["space-y-reverse"],
1267
+ // --------------
1268
+ // --- Sizing ---
1269
+ // --------------
1270
+ /**
1271
+ * Size
1272
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
1273
+ */
1274
+ size: [{
1275
+ size: scaleSizing()
1276
+ }],
1277
+ /**
1278
+ * Inline Size
1279
+ * @see https://tailwindcss.com/docs/width
1280
+ */
1281
+ "inline-size": [{
1282
+ inline: ["auto", ...scaleSizingInline()]
1283
+ }],
1284
+ /**
1285
+ * Min-Inline Size
1286
+ * @see https://tailwindcss.com/docs/min-width
1287
+ */
1288
+ "min-inline-size": [{
1289
+ "min-inline": ["auto", ...scaleSizingInline()]
1290
+ }],
1291
+ /**
1292
+ * Max-Inline Size
1293
+ * @see https://tailwindcss.com/docs/max-width
1294
+ */
1295
+ "max-inline-size": [{
1296
+ "max-inline": ["none", ...scaleSizingInline()]
1297
+ }],
1298
+ /**
1299
+ * Block Size
1300
+ * @see https://tailwindcss.com/docs/height
1301
+ */
1302
+ "block-size": [{
1303
+ block: ["auto", ...scaleSizingBlock()]
1304
+ }],
1305
+ /**
1306
+ * Min-Block Size
1307
+ * @see https://tailwindcss.com/docs/min-height
1308
+ */
1309
+ "min-block-size": [{
1310
+ "min-block": ["auto", ...scaleSizingBlock()]
1311
+ }],
1312
+ /**
1313
+ * Max-Block Size
1314
+ * @see https://tailwindcss.com/docs/max-height
1315
+ */
1316
+ "max-block-size": [{
1317
+ "max-block": ["none", ...scaleSizingBlock()]
1318
+ }],
1319
+ /**
1320
+ * Width
1321
+ * @see https://tailwindcss.com/docs/width
1322
+ */
1323
+ w: [{
1324
+ w: [themeContainer, "screen", ...scaleSizing()]
1325
+ }],
1326
+ /**
1327
+ * Min-Width
1328
+ * @see https://tailwindcss.com/docs/min-width
1329
+ */
1330
+ "min-w": [{
1331
+ "min-w": [
1332
+ themeContainer,
1333
+ "screen",
1334
+ /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1335
+ "none",
1336
+ ...scaleSizing()
1337
+ ]
1338
+ }],
1339
+ /**
1340
+ * Max-Width
1341
+ * @see https://tailwindcss.com/docs/max-width
1342
+ */
1343
+ "max-w": [{
1344
+ "max-w": [
1345
+ themeContainer,
1346
+ "screen",
1347
+ "none",
1348
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1349
+ "prose",
1350
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1351
+ {
1352
+ screen: [themeBreakpoint]
1353
+ },
1354
+ ...scaleSizing()
1355
+ ]
1356
+ }],
1357
+ /**
1358
+ * Height
1359
+ * @see https://tailwindcss.com/docs/height
1360
+ */
1361
+ h: [{
1362
+ h: ["screen", "lh", ...scaleSizing()]
1363
+ }],
1364
+ /**
1365
+ * Min-Height
1366
+ * @see https://tailwindcss.com/docs/min-height
1367
+ */
1368
+ "min-h": [{
1369
+ "min-h": ["screen", "lh", "none", ...scaleSizing()]
1370
+ }],
1371
+ /**
1372
+ * Max-Height
1373
+ * @see https://tailwindcss.com/docs/max-height
1374
+ */
1375
+ "max-h": [{
1376
+ "max-h": ["screen", "lh", ...scaleSizing()]
1377
+ }],
1378
+ // ------------------
1379
+ // --- Typography ---
1380
+ // ------------------
1381
+ /**
1382
+ * Font Size
1383
+ * @see https://tailwindcss.com/docs/font-size
1384
+ */
1385
+ "font-size": [{
1386
+ text: ["base", themeText, isArbitraryVariableLength, isArbitraryLength]
1387
+ }],
1388
+ /**
1389
+ * Font Smoothing
1390
+ * @see https://tailwindcss.com/docs/font-smoothing
1391
+ */
1392
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
1393
+ /**
1394
+ * Font Style
1395
+ * @see https://tailwindcss.com/docs/font-style
1396
+ */
1397
+ "font-style": ["italic", "not-italic"],
1398
+ /**
1399
+ * Font Weight
1400
+ * @see https://tailwindcss.com/docs/font-weight
1401
+ */
1402
+ "font-weight": [{
1403
+ font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]
1404
+ }],
1405
+ /**
1406
+ * Font Stretch
1407
+ * @see https://tailwindcss.com/docs/font-stretch
1408
+ */
1409
+ "font-stretch": [{
1410
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent, isArbitraryValue]
1411
+ }],
1412
+ /**
1413
+ * Font Family
1414
+ * @see https://tailwindcss.com/docs/font-family
1415
+ */
1416
+ "font-family": [{
1417
+ font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]
1418
+ }],
1419
+ /**
1420
+ * Font Feature Settings
1421
+ * @see https://tailwindcss.com/docs/font-feature-settings
1422
+ */
1423
+ "font-features": [{
1424
+ "font-features": [isArbitraryValue]
1425
+ }],
1426
+ /**
1427
+ * Font Variant Numeric
1428
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1429
+ */
1430
+ "fvn-normal": ["normal-nums"],
1431
+ /**
1432
+ * Font Variant Numeric
1433
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1434
+ */
1435
+ "fvn-ordinal": ["ordinal"],
1436
+ /**
1437
+ * Font Variant Numeric
1438
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1439
+ */
1440
+ "fvn-slashed-zero": ["slashed-zero"],
1441
+ /**
1442
+ * Font Variant Numeric
1443
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1444
+ */
1445
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
1446
+ /**
1447
+ * Font Variant Numeric
1448
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1449
+ */
1450
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
1451
+ /**
1452
+ * Font Variant Numeric
1453
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1454
+ */
1455
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1456
+ /**
1457
+ * Letter Spacing
1458
+ * @see https://tailwindcss.com/docs/letter-spacing
1459
+ */
1460
+ tracking: [{
1461
+ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
1462
+ }],
1463
+ /**
1464
+ * Line Clamp
1465
+ * @see https://tailwindcss.com/docs/line-clamp
1466
+ */
1467
+ "line-clamp": [{
1468
+ "line-clamp": [isNumber, "none", isArbitraryVariable, isArbitraryNumber]
1469
+ }],
1470
+ /**
1471
+ * Line Height
1472
+ * @see https://tailwindcss.com/docs/line-height
1473
+ */
1474
+ leading: [{
1475
+ leading: [
1476
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1477
+ themeLeading,
1478
+ ...scaleUnambiguousSpacing()
1479
+ ]
1480
+ }],
1481
+ /**
1482
+ * List Style Image
1483
+ * @see https://tailwindcss.com/docs/list-style-image
1484
+ */
1485
+ "list-image": [{
1486
+ "list-image": ["none", isArbitraryVariable, isArbitraryValue]
1487
+ }],
1488
+ /**
1489
+ * List Style Position
1490
+ * @see https://tailwindcss.com/docs/list-style-position
1491
+ */
1492
+ "list-style-position": [{
1493
+ list: ["inside", "outside"]
1494
+ }],
1495
+ /**
1496
+ * List Style Type
1497
+ * @see https://tailwindcss.com/docs/list-style-type
1498
+ */
1499
+ "list-style-type": [{
1500
+ list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue]
1501
+ }],
1502
+ /**
1503
+ * Text Alignment
1504
+ * @see https://tailwindcss.com/docs/text-align
1505
+ */
1506
+ "text-alignment": [{
1507
+ text: ["left", "center", "right", "justify", "start", "end"]
1508
+ }],
1509
+ /**
1510
+ * Placeholder Color
1511
+ * @deprecated since Tailwind CSS v3.0.0
1512
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
1513
+ */
1514
+ "placeholder-color": [{
1515
+ placeholder: scaleColor()
1516
+ }],
1517
+ /**
1518
+ * Text Color
1519
+ * @see https://tailwindcss.com/docs/text-color
1520
+ */
1521
+ "text-color": [{
1522
+ text: scaleColor()
1523
+ }],
1524
+ /**
1525
+ * Text Decoration
1526
+ * @see https://tailwindcss.com/docs/text-decoration
1527
+ */
1528
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1529
+ /**
1530
+ * Text Decoration Style
1531
+ * @see https://tailwindcss.com/docs/text-decoration-style
1532
+ */
1533
+ "text-decoration-style": [{
1534
+ decoration: [...scaleLineStyle(), "wavy"]
1535
+ }],
1536
+ /**
1537
+ * Text Decoration Thickness
1538
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1539
+ */
1540
+ "text-decoration-thickness": [{
1541
+ decoration: [isNumber, "from-font", "auto", isArbitraryVariable, isArbitraryLength]
1542
+ }],
1543
+ /**
1544
+ * Text Decoration Color
1545
+ * @see https://tailwindcss.com/docs/text-decoration-color
1546
+ */
1547
+ "text-decoration-color": [{
1548
+ decoration: scaleColor()
1549
+ }],
1550
+ /**
1551
+ * Text Underline Offset
1552
+ * @see https://tailwindcss.com/docs/text-underline-offset
1553
+ */
1554
+ "underline-offset": [{
1555
+ "underline-offset": [isNumber, "auto", isArbitraryVariable, isArbitraryValue]
1556
+ }],
1557
+ /**
1558
+ * Text Transform
1559
+ * @see https://tailwindcss.com/docs/text-transform
1560
+ */
1561
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1562
+ /**
1563
+ * Text Overflow
1564
+ * @see https://tailwindcss.com/docs/text-overflow
1565
+ */
1566
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1567
+ /**
1568
+ * Text Wrap
1569
+ * @see https://tailwindcss.com/docs/text-wrap
1570
+ */
1571
+ "text-wrap": [{
1572
+ text: ["wrap", "nowrap", "balance", "pretty"]
1573
+ }],
1574
+ /**
1575
+ * Text Indent
1576
+ * @see https://tailwindcss.com/docs/text-indent
1577
+ */
1578
+ indent: [{
1579
+ indent: scaleUnambiguousSpacing()
1580
+ }],
1581
+ /**
1582
+ * Vertical Alignment
1583
+ * @see https://tailwindcss.com/docs/vertical-align
1584
+ */
1585
+ "vertical-align": [{
1586
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue]
1587
+ }],
1588
+ /**
1589
+ * Whitespace
1590
+ * @see https://tailwindcss.com/docs/whitespace
1591
+ */
1592
+ whitespace: [{
1593
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1594
+ }],
1595
+ /**
1596
+ * Word Break
1597
+ * @see https://tailwindcss.com/docs/word-break
1598
+ */
1599
+ break: [{
1600
+ break: ["normal", "words", "all", "keep"]
1601
+ }],
1602
+ /**
1603
+ * Overflow Wrap
1604
+ * @see https://tailwindcss.com/docs/overflow-wrap
1605
+ */
1606
+ wrap: [{
1607
+ wrap: ["break-word", "anywhere", "normal"]
1608
+ }],
1609
+ /**
1610
+ * Hyphens
1611
+ * @see https://tailwindcss.com/docs/hyphens
1612
+ */
1613
+ hyphens: [{
1614
+ hyphens: ["none", "manual", "auto"]
1615
+ }],
1616
+ /**
1617
+ * Content
1618
+ * @see https://tailwindcss.com/docs/content
1619
+ */
1620
+ content: [{
1621
+ content: ["none", isArbitraryVariable, isArbitraryValue]
1622
+ }],
1623
+ // -------------------
1624
+ // --- Backgrounds ---
1625
+ // -------------------
1626
+ /**
1627
+ * Background Attachment
1628
+ * @see https://tailwindcss.com/docs/background-attachment
1629
+ */
1630
+ "bg-attachment": [{
1631
+ bg: ["fixed", "local", "scroll"]
1632
+ }],
1633
+ /**
1634
+ * Background Clip
1635
+ * @see https://tailwindcss.com/docs/background-clip
1636
+ */
1637
+ "bg-clip": [{
1638
+ "bg-clip": ["border", "padding", "content", "text"]
1639
+ }],
1640
+ /**
1641
+ * Background Origin
1642
+ * @see https://tailwindcss.com/docs/background-origin
1643
+ */
1644
+ "bg-origin": [{
1645
+ "bg-origin": ["border", "padding", "content"]
1646
+ }],
1647
+ /**
1648
+ * Background Position
1649
+ * @see https://tailwindcss.com/docs/background-position
1650
+ */
1651
+ "bg-position": [{
1652
+ bg: scaleBgPosition()
1653
+ }],
1654
+ /**
1655
+ * Background Repeat
1656
+ * @see https://tailwindcss.com/docs/background-repeat
1657
+ */
1658
+ "bg-repeat": [{
1659
+ bg: scaleBgRepeat()
1660
+ }],
1661
+ /**
1662
+ * Background Size
1663
+ * @see https://tailwindcss.com/docs/background-size
1664
+ */
1665
+ "bg-size": [{
1666
+ bg: scaleBgSize()
1667
+ }],
1668
+ /**
1669
+ * Background Image
1670
+ * @see https://tailwindcss.com/docs/background-image
1671
+ */
1672
+ "bg-image": [{
1673
+ bg: ["none", {
1674
+ linear: [{
1675
+ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1676
+ }, isInteger, isArbitraryVariable, isArbitraryValue],
1677
+ radial: ["", isArbitraryVariable, isArbitraryValue],
1678
+ conic: [isInteger, isArbitraryVariable, isArbitraryValue]
1679
+ }, isArbitraryVariableImage, isArbitraryImage]
1680
+ }],
1681
+ /**
1682
+ * Background Color
1683
+ * @see https://tailwindcss.com/docs/background-color
1684
+ */
1685
+ "bg-color": [{
1686
+ bg: scaleColor()
1687
+ }],
1688
+ /**
1689
+ * Gradient Color Stops From Position
1690
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1691
+ */
1692
+ "gradient-from-pos": [{
1693
+ from: scaleGradientStopPosition()
1694
+ }],
1695
+ /**
1696
+ * Gradient Color Stops Via Position
1697
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1698
+ */
1699
+ "gradient-via-pos": [{
1700
+ via: scaleGradientStopPosition()
1701
+ }],
1702
+ /**
1703
+ * Gradient Color Stops To Position
1704
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1705
+ */
1706
+ "gradient-to-pos": [{
1707
+ to: scaleGradientStopPosition()
1708
+ }],
1709
+ /**
1710
+ * Gradient Color Stops From
1711
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1712
+ */
1713
+ "gradient-from": [{
1714
+ from: scaleColor()
1715
+ }],
1716
+ /**
1717
+ * Gradient Color Stops Via
1718
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1719
+ */
1720
+ "gradient-via": [{
1721
+ via: scaleColor()
1722
+ }],
1723
+ /**
1724
+ * Gradient Color Stops To
1725
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1726
+ */
1727
+ "gradient-to": [{
1728
+ to: scaleColor()
1729
+ }],
1730
+ // ---------------
1731
+ // --- Borders ---
1732
+ // ---------------
1733
+ /**
1734
+ * Border Radius
1735
+ * @see https://tailwindcss.com/docs/border-radius
1736
+ */
1737
+ rounded: [{
1738
+ rounded: scaleRadius()
1739
+ }],
1740
+ /**
1741
+ * Border Radius Start
1742
+ * @see https://tailwindcss.com/docs/border-radius
1743
+ */
1744
+ "rounded-s": [{
1745
+ "rounded-s": scaleRadius()
1746
+ }],
1747
+ /**
1748
+ * Border Radius End
1749
+ * @see https://tailwindcss.com/docs/border-radius
1750
+ */
1751
+ "rounded-e": [{
1752
+ "rounded-e": scaleRadius()
1753
+ }],
1754
+ /**
1755
+ * Border Radius Top
1756
+ * @see https://tailwindcss.com/docs/border-radius
1757
+ */
1758
+ "rounded-t": [{
1759
+ "rounded-t": scaleRadius()
1760
+ }],
1761
+ /**
1762
+ * Border Radius Right
1763
+ * @see https://tailwindcss.com/docs/border-radius
1764
+ */
1765
+ "rounded-r": [{
1766
+ "rounded-r": scaleRadius()
1767
+ }],
1768
+ /**
1769
+ * Border Radius Bottom
1770
+ * @see https://tailwindcss.com/docs/border-radius
1771
+ */
1772
+ "rounded-b": [{
1773
+ "rounded-b": scaleRadius()
1774
+ }],
1775
+ /**
1776
+ * Border Radius Left
1777
+ * @see https://tailwindcss.com/docs/border-radius
1778
+ */
1779
+ "rounded-l": [{
1780
+ "rounded-l": scaleRadius()
1781
+ }],
1782
+ /**
1783
+ * Border Radius Start Start
1784
+ * @see https://tailwindcss.com/docs/border-radius
1785
+ */
1786
+ "rounded-ss": [{
1787
+ "rounded-ss": scaleRadius()
1788
+ }],
1789
+ /**
1790
+ * Border Radius Start End
1791
+ * @see https://tailwindcss.com/docs/border-radius
1792
+ */
1793
+ "rounded-se": [{
1794
+ "rounded-se": scaleRadius()
1795
+ }],
1796
+ /**
1797
+ * Border Radius End End
1798
+ * @see https://tailwindcss.com/docs/border-radius
1799
+ */
1800
+ "rounded-ee": [{
1801
+ "rounded-ee": scaleRadius()
1802
+ }],
1803
+ /**
1804
+ * Border Radius End Start
1805
+ * @see https://tailwindcss.com/docs/border-radius
1806
+ */
1807
+ "rounded-es": [{
1808
+ "rounded-es": scaleRadius()
1809
+ }],
1810
+ /**
1811
+ * Border Radius Top Left
1812
+ * @see https://tailwindcss.com/docs/border-radius
1813
+ */
1814
+ "rounded-tl": [{
1815
+ "rounded-tl": scaleRadius()
1816
+ }],
1817
+ /**
1818
+ * Border Radius Top Right
1819
+ * @see https://tailwindcss.com/docs/border-radius
1820
+ */
1821
+ "rounded-tr": [{
1822
+ "rounded-tr": scaleRadius()
1823
+ }],
1824
+ /**
1825
+ * Border Radius Bottom Right
1826
+ * @see https://tailwindcss.com/docs/border-radius
1827
+ */
1828
+ "rounded-br": [{
1829
+ "rounded-br": scaleRadius()
1830
+ }],
1831
+ /**
1832
+ * Border Radius Bottom Left
1833
+ * @see https://tailwindcss.com/docs/border-radius
1834
+ */
1835
+ "rounded-bl": [{
1836
+ "rounded-bl": scaleRadius()
1837
+ }],
1838
+ /**
1839
+ * Border Width
1840
+ * @see https://tailwindcss.com/docs/border-width
1841
+ */
1842
+ "border-w": [{
1843
+ border: scaleBorderWidth()
1844
+ }],
1845
+ /**
1846
+ * Border Width Inline
1847
+ * @see https://tailwindcss.com/docs/border-width
1848
+ */
1849
+ "border-w-x": [{
1850
+ "border-x": scaleBorderWidth()
1851
+ }],
1852
+ /**
1853
+ * Border Width Block
1854
+ * @see https://tailwindcss.com/docs/border-width
1855
+ */
1856
+ "border-w-y": [{
1857
+ "border-y": scaleBorderWidth()
1858
+ }],
1859
+ /**
1860
+ * Border Width Inline Start
1861
+ * @see https://tailwindcss.com/docs/border-width
1862
+ */
1863
+ "border-w-s": [{
1864
+ "border-s": scaleBorderWidth()
1865
+ }],
1866
+ /**
1867
+ * Border Width Inline End
1868
+ * @see https://tailwindcss.com/docs/border-width
1869
+ */
1870
+ "border-w-e": [{
1871
+ "border-e": scaleBorderWidth()
1872
+ }],
1873
+ /**
1874
+ * Border Width Block Start
1875
+ * @see https://tailwindcss.com/docs/border-width
1876
+ */
1877
+ "border-w-bs": [{
1878
+ "border-bs": scaleBorderWidth()
1879
+ }],
1880
+ /**
1881
+ * Border Width Block End
1882
+ * @see https://tailwindcss.com/docs/border-width
1883
+ */
1884
+ "border-w-be": [{
1885
+ "border-be": scaleBorderWidth()
1886
+ }],
1887
+ /**
1888
+ * Border Width Top
1889
+ * @see https://tailwindcss.com/docs/border-width
1890
+ */
1891
+ "border-w-t": [{
1892
+ "border-t": scaleBorderWidth()
1893
+ }],
1894
+ /**
1895
+ * Border Width Right
1896
+ * @see https://tailwindcss.com/docs/border-width
1897
+ */
1898
+ "border-w-r": [{
1899
+ "border-r": scaleBorderWidth()
1900
+ }],
1901
+ /**
1902
+ * Border Width Bottom
1903
+ * @see https://tailwindcss.com/docs/border-width
1904
+ */
1905
+ "border-w-b": [{
1906
+ "border-b": scaleBorderWidth()
1907
+ }],
1908
+ /**
1909
+ * Border Width Left
1910
+ * @see https://tailwindcss.com/docs/border-width
1911
+ */
1912
+ "border-w-l": [{
1913
+ "border-l": scaleBorderWidth()
1914
+ }],
1915
+ /**
1916
+ * Divide Width X
1917
+ * @see https://tailwindcss.com/docs/border-width#between-children
1918
+ */
1919
+ "divide-x": [{
1920
+ "divide-x": scaleBorderWidth()
1921
+ }],
1922
+ /**
1923
+ * Divide Width X Reverse
1924
+ * @see https://tailwindcss.com/docs/border-width#between-children
1925
+ */
1926
+ "divide-x-reverse": ["divide-x-reverse"],
1927
+ /**
1928
+ * Divide Width Y
1929
+ * @see https://tailwindcss.com/docs/border-width#between-children
1930
+ */
1931
+ "divide-y": [{
1932
+ "divide-y": scaleBorderWidth()
1933
+ }],
1934
+ /**
1935
+ * Divide Width Y Reverse
1936
+ * @see https://tailwindcss.com/docs/border-width#between-children
1937
+ */
1938
+ "divide-y-reverse": ["divide-y-reverse"],
1939
+ /**
1940
+ * Border Style
1941
+ * @see https://tailwindcss.com/docs/border-style
1942
+ */
1943
+ "border-style": [{
1944
+ border: [...scaleLineStyle(), "hidden", "none"]
1945
+ }],
1946
+ /**
1947
+ * Divide Style
1948
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
1949
+ */
1950
+ "divide-style": [{
1951
+ divide: [...scaleLineStyle(), "hidden", "none"]
1952
+ }],
1953
+ /**
1954
+ * Border Color
1955
+ * @see https://tailwindcss.com/docs/border-color
1956
+ */
1957
+ "border-color": [{
1958
+ border: scaleColor()
1959
+ }],
1960
+ /**
1961
+ * Border Color Inline
1962
+ * @see https://tailwindcss.com/docs/border-color
1963
+ */
1964
+ "border-color-x": [{
1965
+ "border-x": scaleColor()
1966
+ }],
1967
+ /**
1968
+ * Border Color Block
1969
+ * @see https://tailwindcss.com/docs/border-color
1970
+ */
1971
+ "border-color-y": [{
1972
+ "border-y": scaleColor()
1973
+ }],
1974
+ /**
1975
+ * Border Color Inline Start
1976
+ * @see https://tailwindcss.com/docs/border-color
1977
+ */
1978
+ "border-color-s": [{
1979
+ "border-s": scaleColor()
1980
+ }],
1981
+ /**
1982
+ * Border Color Inline End
1983
+ * @see https://tailwindcss.com/docs/border-color
1984
+ */
1985
+ "border-color-e": [{
1986
+ "border-e": scaleColor()
1987
+ }],
1988
+ /**
1989
+ * Border Color Block Start
1990
+ * @see https://tailwindcss.com/docs/border-color
1991
+ */
1992
+ "border-color-bs": [{
1993
+ "border-bs": scaleColor()
1994
+ }],
1995
+ /**
1996
+ * Border Color Block End
1997
+ * @see https://tailwindcss.com/docs/border-color
1998
+ */
1999
+ "border-color-be": [{
2000
+ "border-be": scaleColor()
2001
+ }],
2002
+ /**
2003
+ * Border Color Top
2004
+ * @see https://tailwindcss.com/docs/border-color
2005
+ */
2006
+ "border-color-t": [{
2007
+ "border-t": scaleColor()
2008
+ }],
2009
+ /**
2010
+ * Border Color Right
2011
+ * @see https://tailwindcss.com/docs/border-color
2012
+ */
2013
+ "border-color-r": [{
2014
+ "border-r": scaleColor()
2015
+ }],
2016
+ /**
2017
+ * Border Color Bottom
2018
+ * @see https://tailwindcss.com/docs/border-color
2019
+ */
2020
+ "border-color-b": [{
2021
+ "border-b": scaleColor()
2022
+ }],
2023
+ /**
2024
+ * Border Color Left
2025
+ * @see https://tailwindcss.com/docs/border-color
2026
+ */
2027
+ "border-color-l": [{
2028
+ "border-l": scaleColor()
2029
+ }],
2030
+ /**
2031
+ * Divide Color
2032
+ * @see https://tailwindcss.com/docs/divide-color
2033
+ */
2034
+ "divide-color": [{
2035
+ divide: scaleColor()
2036
+ }],
2037
+ /**
2038
+ * Outline Style
2039
+ * @see https://tailwindcss.com/docs/outline-style
2040
+ */
2041
+ "outline-style": [{
2042
+ outline: [...scaleLineStyle(), "none", "hidden"]
2043
+ }],
2044
+ /**
2045
+ * Outline Offset
2046
+ * @see https://tailwindcss.com/docs/outline-offset
2047
+ */
2048
+ "outline-offset": [{
2049
+ "outline-offset": [isNumber, isArbitraryVariable, isArbitraryValue]
2050
+ }],
2051
+ /**
2052
+ * Outline Width
2053
+ * @see https://tailwindcss.com/docs/outline-width
2054
+ */
2055
+ "outline-w": [{
2056
+ outline: ["", isNumber, isArbitraryVariableLength, isArbitraryLength]
2057
+ }],
2058
+ /**
2059
+ * Outline Color
2060
+ * @see https://tailwindcss.com/docs/outline-color
2061
+ */
2062
+ "outline-color": [{
2063
+ outline: scaleColor()
2064
+ }],
2065
+ // ---------------
2066
+ // --- Effects ---
2067
+ // ---------------
2068
+ /**
2069
+ * Box Shadow
2070
+ * @see https://tailwindcss.com/docs/box-shadow
2071
+ */
2072
+ shadow: [{
2073
+ shadow: [
2074
+ // Deprecated since Tailwind CSS v4.0.0
2075
+ "",
2076
+ "none",
2077
+ themeShadow,
2078
+ isArbitraryVariableShadow,
2079
+ isArbitraryShadow
2080
+ ]
2081
+ }],
2082
+ /**
2083
+ * Box Shadow Color
2084
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
2085
+ */
2086
+ "shadow-color": [{
2087
+ shadow: scaleColor()
2088
+ }],
2089
+ /**
2090
+ * Inset Box Shadow
2091
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
2092
+ */
2093
+ "inset-shadow": [{
2094
+ "inset-shadow": ["none", themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
2095
+ }],
2096
+ /**
2097
+ * Inset Box Shadow Color
2098
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
2099
+ */
2100
+ "inset-shadow-color": [{
2101
+ "inset-shadow": scaleColor()
2102
+ }],
2103
+ /**
2104
+ * Ring Width
2105
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
2106
+ */
2107
+ "ring-w": [{
2108
+ ring: scaleBorderWidth()
2109
+ }],
2110
+ /**
2111
+ * Ring Width Inset
2112
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
2113
+ * @deprecated since Tailwind CSS v4.0.0
2114
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2115
+ */
2116
+ "ring-w-inset": ["ring-inset"],
2117
+ /**
2118
+ * Ring Color
2119
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
2120
+ */
2121
+ "ring-color": [{
2122
+ ring: scaleColor()
2123
+ }],
2124
+ /**
2125
+ * Ring Offset Width
2126
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
2127
+ * @deprecated since Tailwind CSS v4.0.0
2128
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2129
+ */
2130
+ "ring-offset-w": [{
2131
+ "ring-offset": [isNumber, isArbitraryLength]
2132
+ }],
2133
+ /**
2134
+ * Ring Offset Color
2135
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
2136
+ * @deprecated since Tailwind CSS v4.0.0
2137
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2138
+ */
2139
+ "ring-offset-color": [{
2140
+ "ring-offset": scaleColor()
2141
+ }],
2142
+ /**
2143
+ * Inset Ring Width
2144
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
2145
+ */
2146
+ "inset-ring-w": [{
2147
+ "inset-ring": scaleBorderWidth()
2148
+ }],
2149
+ /**
2150
+ * Inset Ring Color
2151
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
2152
+ */
2153
+ "inset-ring-color": [{
2154
+ "inset-ring": scaleColor()
2155
+ }],
2156
+ /**
2157
+ * Text Shadow
2158
+ * @see https://tailwindcss.com/docs/text-shadow
2159
+ */
2160
+ "text-shadow": [{
2161
+ "text-shadow": ["none", themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
2162
+ }],
2163
+ /**
2164
+ * Text Shadow Color
2165
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
2166
+ */
2167
+ "text-shadow-color": [{
2168
+ "text-shadow": scaleColor()
2169
+ }],
2170
+ /**
2171
+ * Opacity
2172
+ * @see https://tailwindcss.com/docs/opacity
2173
+ */
2174
+ opacity: [{
2175
+ opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
2176
+ }],
2177
+ /**
2178
+ * Mix Blend Mode
2179
+ * @see https://tailwindcss.com/docs/mix-blend-mode
2180
+ */
2181
+ "mix-blend": [{
2182
+ "mix-blend": [...scaleBlendMode(), "plus-darker", "plus-lighter"]
2183
+ }],
2184
+ /**
2185
+ * Background Blend Mode
2186
+ * @see https://tailwindcss.com/docs/background-blend-mode
2187
+ */
2188
+ "bg-blend": [{
2189
+ "bg-blend": scaleBlendMode()
2190
+ }],
2191
+ /**
2192
+ * Mask Clip
2193
+ * @see https://tailwindcss.com/docs/mask-clip
2194
+ */
2195
+ "mask-clip": [{
2196
+ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
2197
+ }, "mask-no-clip"],
2198
+ /**
2199
+ * Mask Composite
2200
+ * @see https://tailwindcss.com/docs/mask-composite
2201
+ */
2202
+ "mask-composite": [{
2203
+ mask: ["add", "subtract", "intersect", "exclude"]
2204
+ }],
2205
+ /**
2206
+ * Mask Image
2207
+ * @see https://tailwindcss.com/docs/mask-image
2208
+ */
2209
+ "mask-image-linear-pos": [{
2210
+ "mask-linear": [isNumber]
2211
+ }],
2212
+ "mask-image-linear-from-pos": [{
2213
+ "mask-linear-from": scaleMaskImagePosition()
2214
+ }],
2215
+ "mask-image-linear-to-pos": [{
2216
+ "mask-linear-to": scaleMaskImagePosition()
2217
+ }],
2218
+ "mask-image-linear-from-color": [{
2219
+ "mask-linear-from": scaleColor()
2220
+ }],
2221
+ "mask-image-linear-to-color": [{
2222
+ "mask-linear-to": scaleColor()
2223
+ }],
2224
+ "mask-image-t-from-pos": [{
2225
+ "mask-t-from": scaleMaskImagePosition()
2226
+ }],
2227
+ "mask-image-t-to-pos": [{
2228
+ "mask-t-to": scaleMaskImagePosition()
2229
+ }],
2230
+ "mask-image-t-from-color": [{
2231
+ "mask-t-from": scaleColor()
2232
+ }],
2233
+ "mask-image-t-to-color": [{
2234
+ "mask-t-to": scaleColor()
2235
+ }],
2236
+ "mask-image-r-from-pos": [{
2237
+ "mask-r-from": scaleMaskImagePosition()
2238
+ }],
2239
+ "mask-image-r-to-pos": [{
2240
+ "mask-r-to": scaleMaskImagePosition()
2241
+ }],
2242
+ "mask-image-r-from-color": [{
2243
+ "mask-r-from": scaleColor()
2244
+ }],
2245
+ "mask-image-r-to-color": [{
2246
+ "mask-r-to": scaleColor()
2247
+ }],
2248
+ "mask-image-b-from-pos": [{
2249
+ "mask-b-from": scaleMaskImagePosition()
2250
+ }],
2251
+ "mask-image-b-to-pos": [{
2252
+ "mask-b-to": scaleMaskImagePosition()
2253
+ }],
2254
+ "mask-image-b-from-color": [{
2255
+ "mask-b-from": scaleColor()
2256
+ }],
2257
+ "mask-image-b-to-color": [{
2258
+ "mask-b-to": scaleColor()
2259
+ }],
2260
+ "mask-image-l-from-pos": [{
2261
+ "mask-l-from": scaleMaskImagePosition()
2262
+ }],
2263
+ "mask-image-l-to-pos": [{
2264
+ "mask-l-to": scaleMaskImagePosition()
2265
+ }],
2266
+ "mask-image-l-from-color": [{
2267
+ "mask-l-from": scaleColor()
2268
+ }],
2269
+ "mask-image-l-to-color": [{
2270
+ "mask-l-to": scaleColor()
2271
+ }],
2272
+ "mask-image-x-from-pos": [{
2273
+ "mask-x-from": scaleMaskImagePosition()
2274
+ }],
2275
+ "mask-image-x-to-pos": [{
2276
+ "mask-x-to": scaleMaskImagePosition()
2277
+ }],
2278
+ "mask-image-x-from-color": [{
2279
+ "mask-x-from": scaleColor()
2280
+ }],
2281
+ "mask-image-x-to-color": [{
2282
+ "mask-x-to": scaleColor()
2283
+ }],
2284
+ "mask-image-y-from-pos": [{
2285
+ "mask-y-from": scaleMaskImagePosition()
2286
+ }],
2287
+ "mask-image-y-to-pos": [{
2288
+ "mask-y-to": scaleMaskImagePosition()
2289
+ }],
2290
+ "mask-image-y-from-color": [{
2291
+ "mask-y-from": scaleColor()
2292
+ }],
2293
+ "mask-image-y-to-color": [{
2294
+ "mask-y-to": scaleColor()
2295
+ }],
2296
+ "mask-image-radial": [{
2297
+ "mask-radial": [isArbitraryVariable, isArbitraryValue]
2298
+ }],
2299
+ "mask-image-radial-from-pos": [{
2300
+ "mask-radial-from": scaleMaskImagePosition()
2301
+ }],
2302
+ "mask-image-radial-to-pos": [{
2303
+ "mask-radial-to": scaleMaskImagePosition()
2304
+ }],
2305
+ "mask-image-radial-from-color": [{
2306
+ "mask-radial-from": scaleColor()
2307
+ }],
2308
+ "mask-image-radial-to-color": [{
2309
+ "mask-radial-to": scaleColor()
2310
+ }],
2311
+ "mask-image-radial-shape": [{
2312
+ "mask-radial": ["circle", "ellipse"]
2313
+ }],
2314
+ "mask-image-radial-size": [{
2315
+ "mask-radial": [{
2316
+ closest: ["side", "corner"],
2317
+ farthest: ["side", "corner"]
2318
+ }]
2319
+ }],
2320
+ "mask-image-radial-pos": [{
2321
+ "mask-radial-at": scalePosition()
2322
+ }],
2323
+ "mask-image-conic-pos": [{
2324
+ "mask-conic": [isNumber]
2325
+ }],
2326
+ "mask-image-conic-from-pos": [{
2327
+ "mask-conic-from": scaleMaskImagePosition()
2328
+ }],
2329
+ "mask-image-conic-to-pos": [{
2330
+ "mask-conic-to": scaleMaskImagePosition()
2331
+ }],
2332
+ "mask-image-conic-from-color": [{
2333
+ "mask-conic-from": scaleColor()
2334
+ }],
2335
+ "mask-image-conic-to-color": [{
2336
+ "mask-conic-to": scaleColor()
2337
+ }],
2338
+ /**
2339
+ * Mask Mode
2340
+ * @see https://tailwindcss.com/docs/mask-mode
2341
+ */
2342
+ "mask-mode": [{
2343
+ mask: ["alpha", "luminance", "match"]
2344
+ }],
2345
+ /**
2346
+ * Mask Origin
2347
+ * @see https://tailwindcss.com/docs/mask-origin
2348
+ */
2349
+ "mask-origin": [{
2350
+ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
2351
+ }],
2352
+ /**
2353
+ * Mask Position
2354
+ * @see https://tailwindcss.com/docs/mask-position
2355
+ */
2356
+ "mask-position": [{
2357
+ mask: scaleBgPosition()
2358
+ }],
2359
+ /**
2360
+ * Mask Repeat
2361
+ * @see https://tailwindcss.com/docs/mask-repeat
2362
+ */
2363
+ "mask-repeat": [{
2364
+ mask: scaleBgRepeat()
2365
+ }],
2366
+ /**
2367
+ * Mask Size
2368
+ * @see https://tailwindcss.com/docs/mask-size
2369
+ */
2370
+ "mask-size": [{
2371
+ mask: scaleBgSize()
2372
+ }],
2373
+ /**
2374
+ * Mask Type
2375
+ * @see https://tailwindcss.com/docs/mask-type
2376
+ */
2377
+ "mask-type": [{
2378
+ "mask-type": ["alpha", "luminance"]
2379
+ }],
2380
+ /**
2381
+ * Mask Image
2382
+ * @see https://tailwindcss.com/docs/mask-image
2383
+ */
2384
+ "mask-image": [{
2385
+ mask: ["none", isArbitraryVariable, isArbitraryValue]
2386
+ }],
2387
+ // ---------------
2388
+ // --- Filters ---
2389
+ // ---------------
2390
+ /**
2391
+ * Filter
2392
+ * @see https://tailwindcss.com/docs/filter
2393
+ */
2394
+ filter: [{
2395
+ filter: [
2396
+ // Deprecated since Tailwind CSS v3.0.0
2397
+ "",
2398
+ "none",
2399
+ isArbitraryVariable,
2400
+ isArbitraryValue
2401
+ ]
2402
+ }],
2403
+ /**
2404
+ * Blur
2405
+ * @see https://tailwindcss.com/docs/blur
2406
+ */
2407
+ blur: [{
2408
+ blur: scaleBlur()
2409
+ }],
2410
+ /**
2411
+ * Brightness
2412
+ * @see https://tailwindcss.com/docs/brightness
2413
+ */
2414
+ brightness: [{
2415
+ brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
2416
+ }],
2417
+ /**
2418
+ * Contrast
2419
+ * @see https://tailwindcss.com/docs/contrast
2420
+ */
2421
+ contrast: [{
2422
+ contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
2423
+ }],
2424
+ /**
2425
+ * Drop Shadow
2426
+ * @see https://tailwindcss.com/docs/drop-shadow
2427
+ */
2428
+ "drop-shadow": [{
2429
+ "drop-shadow": [
2430
+ // Deprecated since Tailwind CSS v4.0.0
2431
+ "",
2432
+ "none",
2433
+ themeDropShadow,
2434
+ isArbitraryVariableShadow,
2435
+ isArbitraryShadow
2436
+ ]
2437
+ }],
2438
+ /**
2439
+ * Drop Shadow Color
2440
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
2441
+ */
2442
+ "drop-shadow-color": [{
2443
+ "drop-shadow": scaleColor()
2444
+ }],
2445
+ /**
2446
+ * Grayscale
2447
+ * @see https://tailwindcss.com/docs/grayscale
2448
+ */
2449
+ grayscale: [{
2450
+ grayscale: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2451
+ }],
2452
+ /**
2453
+ * Hue Rotate
2454
+ * @see https://tailwindcss.com/docs/hue-rotate
2455
+ */
2456
+ "hue-rotate": [{
2457
+ "hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
2458
+ }],
2459
+ /**
2460
+ * Invert
2461
+ * @see https://tailwindcss.com/docs/invert
2462
+ */
2463
+ invert: [{
2464
+ invert: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2465
+ }],
2466
+ /**
2467
+ * Saturate
2468
+ * @see https://tailwindcss.com/docs/saturate
2469
+ */
2470
+ saturate: [{
2471
+ saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
2472
+ }],
2473
+ /**
2474
+ * Sepia
2475
+ * @see https://tailwindcss.com/docs/sepia
2476
+ */
2477
+ sepia: [{
2478
+ sepia: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2479
+ }],
2480
+ /**
2481
+ * Backdrop Filter
2482
+ * @see https://tailwindcss.com/docs/backdrop-filter
2483
+ */
2484
+ "backdrop-filter": [{
2485
+ "backdrop-filter": [
2486
+ // Deprecated since Tailwind CSS v3.0.0
2487
+ "",
2488
+ "none",
2489
+ isArbitraryVariable,
2490
+ isArbitraryValue
2491
+ ]
2492
+ }],
2493
+ /**
2494
+ * Backdrop Blur
2495
+ * @see https://tailwindcss.com/docs/backdrop-blur
2496
+ */
2497
+ "backdrop-blur": [{
2498
+ "backdrop-blur": scaleBlur()
2499
+ }],
2500
+ /**
2501
+ * Backdrop Brightness
2502
+ * @see https://tailwindcss.com/docs/backdrop-brightness
2503
+ */
2504
+ "backdrop-brightness": [{
2505
+ "backdrop-brightness": [isNumber, isArbitraryVariable, isArbitraryValue]
2506
+ }],
2507
+ /**
2508
+ * Backdrop Contrast
2509
+ * @see https://tailwindcss.com/docs/backdrop-contrast
2510
+ */
2511
+ "backdrop-contrast": [{
2512
+ "backdrop-contrast": [isNumber, isArbitraryVariable, isArbitraryValue]
2513
+ }],
2514
+ /**
2515
+ * Backdrop Grayscale
2516
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
2517
+ */
2518
+ "backdrop-grayscale": [{
2519
+ "backdrop-grayscale": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2520
+ }],
2521
+ /**
2522
+ * Backdrop Hue Rotate
2523
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2524
+ */
2525
+ "backdrop-hue-rotate": [{
2526
+ "backdrop-hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
2527
+ }],
2528
+ /**
2529
+ * Backdrop Invert
2530
+ * @see https://tailwindcss.com/docs/backdrop-invert
2531
+ */
2532
+ "backdrop-invert": [{
2533
+ "backdrop-invert": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2534
+ }],
2535
+ /**
2536
+ * Backdrop Opacity
2537
+ * @see https://tailwindcss.com/docs/backdrop-opacity
2538
+ */
2539
+ "backdrop-opacity": [{
2540
+ "backdrop-opacity": [isNumber, isArbitraryVariable, isArbitraryValue]
2541
+ }],
2542
+ /**
2543
+ * Backdrop Saturate
2544
+ * @see https://tailwindcss.com/docs/backdrop-saturate
2545
+ */
2546
+ "backdrop-saturate": [{
2547
+ "backdrop-saturate": [isNumber, isArbitraryVariable, isArbitraryValue]
2548
+ }],
2549
+ /**
2550
+ * Backdrop Sepia
2551
+ * @see https://tailwindcss.com/docs/backdrop-sepia
2552
+ */
2553
+ "backdrop-sepia": [{
2554
+ "backdrop-sepia": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2555
+ }],
2556
+ // --------------
2557
+ // --- Tables ---
2558
+ // --------------
2559
+ /**
2560
+ * Border Collapse
2561
+ * @see https://tailwindcss.com/docs/border-collapse
2562
+ */
2563
+ "border-collapse": [{
2564
+ border: ["collapse", "separate"]
2565
+ }],
2566
+ /**
2567
+ * Border Spacing
2568
+ * @see https://tailwindcss.com/docs/border-spacing
2569
+ */
2570
+ "border-spacing": [{
2571
+ "border-spacing": scaleUnambiguousSpacing()
2572
+ }],
2573
+ /**
2574
+ * Border Spacing X
2575
+ * @see https://tailwindcss.com/docs/border-spacing
2576
+ */
2577
+ "border-spacing-x": [{
2578
+ "border-spacing-x": scaleUnambiguousSpacing()
2579
+ }],
2580
+ /**
2581
+ * Border Spacing Y
2582
+ * @see https://tailwindcss.com/docs/border-spacing
2583
+ */
2584
+ "border-spacing-y": [{
2585
+ "border-spacing-y": scaleUnambiguousSpacing()
2586
+ }],
2587
+ /**
2588
+ * Table Layout
2589
+ * @see https://tailwindcss.com/docs/table-layout
2590
+ */
2591
+ "table-layout": [{
2592
+ table: ["auto", "fixed"]
2593
+ }],
2594
+ /**
2595
+ * Caption Side
2596
+ * @see https://tailwindcss.com/docs/caption-side
2597
+ */
2598
+ caption: [{
2599
+ caption: ["top", "bottom"]
2600
+ }],
2601
+ // ---------------------------------
2602
+ // --- Transitions and Animation ---
2603
+ // ---------------------------------
2604
+ /**
2605
+ * Transition Property
2606
+ * @see https://tailwindcss.com/docs/transition-property
2607
+ */
2608
+ transition: [{
2609
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", isArbitraryVariable, isArbitraryValue]
2610
+ }],
2611
+ /**
2612
+ * Transition Behavior
2613
+ * @see https://tailwindcss.com/docs/transition-behavior
2614
+ */
2615
+ "transition-behavior": [{
2616
+ transition: ["normal", "discrete"]
2617
+ }],
2618
+ /**
2619
+ * Transition Duration
2620
+ * @see https://tailwindcss.com/docs/transition-duration
2621
+ */
2622
+ duration: [{
2623
+ duration: [isNumber, "initial", isArbitraryVariable, isArbitraryValue]
2624
+ }],
2625
+ /**
2626
+ * Transition Timing Function
2627
+ * @see https://tailwindcss.com/docs/transition-timing-function
2628
+ */
2629
+ ease: [{
2630
+ ease: ["linear", "initial", themeEase, isArbitraryVariable, isArbitraryValue]
2631
+ }],
2632
+ /**
2633
+ * Transition Delay
2634
+ * @see https://tailwindcss.com/docs/transition-delay
2635
+ */
2636
+ delay: [{
2637
+ delay: [isNumber, isArbitraryVariable, isArbitraryValue]
2638
+ }],
2639
+ /**
2640
+ * Animation
2641
+ * @see https://tailwindcss.com/docs/animation
2642
+ */
2643
+ animate: [{
2644
+ animate: ["none", themeAnimate, isArbitraryVariable, isArbitraryValue]
2645
+ }],
2646
+ // ------------------
2647
+ // --- Transforms ---
2648
+ // ------------------
2649
+ /**
2650
+ * Backface Visibility
2651
+ * @see https://tailwindcss.com/docs/backface-visibility
2652
+ */
2653
+ backface: [{
2654
+ backface: ["hidden", "visible"]
2655
+ }],
2656
+ /**
2657
+ * Perspective
2658
+ * @see https://tailwindcss.com/docs/perspective
2659
+ */
2660
+ perspective: [{
2661
+ perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
2662
+ }],
2663
+ /**
2664
+ * Perspective Origin
2665
+ * @see https://tailwindcss.com/docs/perspective-origin
2666
+ */
2667
+ "perspective-origin": [{
2668
+ "perspective-origin": scalePositionWithArbitrary()
2669
+ }],
2670
+ /**
2671
+ * Rotate
2672
+ * @see https://tailwindcss.com/docs/rotate
2673
+ */
2674
+ rotate: [{
2675
+ rotate: scaleRotate()
2676
+ }],
2677
+ /**
2678
+ * Rotate X
2679
+ * @see https://tailwindcss.com/docs/rotate
2680
+ */
2681
+ "rotate-x": [{
2682
+ "rotate-x": scaleRotate()
2683
+ }],
2684
+ /**
2685
+ * Rotate Y
2686
+ * @see https://tailwindcss.com/docs/rotate
2687
+ */
2688
+ "rotate-y": [{
2689
+ "rotate-y": scaleRotate()
2690
+ }],
2691
+ /**
2692
+ * Rotate Z
2693
+ * @see https://tailwindcss.com/docs/rotate
2694
+ */
2695
+ "rotate-z": [{
2696
+ "rotate-z": scaleRotate()
2697
+ }],
2698
+ /**
2699
+ * Scale
2700
+ * @see https://tailwindcss.com/docs/scale
2701
+ */
2702
+ scale: [{
2703
+ scale: scaleScale()
2704
+ }],
2705
+ /**
2706
+ * Scale X
2707
+ * @see https://tailwindcss.com/docs/scale
2708
+ */
2709
+ "scale-x": [{
2710
+ "scale-x": scaleScale()
2711
+ }],
2712
+ /**
2713
+ * Scale Y
2714
+ * @see https://tailwindcss.com/docs/scale
2715
+ */
2716
+ "scale-y": [{
2717
+ "scale-y": scaleScale()
2718
+ }],
2719
+ /**
2720
+ * Scale Z
2721
+ * @see https://tailwindcss.com/docs/scale
2722
+ */
2723
+ "scale-z": [{
2724
+ "scale-z": scaleScale()
2725
+ }],
2726
+ /**
2727
+ * Scale 3D
2728
+ * @see https://tailwindcss.com/docs/scale
2729
+ */
2730
+ "scale-3d": ["scale-3d"],
2731
+ /**
2732
+ * Skew
2733
+ * @see https://tailwindcss.com/docs/skew
2734
+ */
2735
+ skew: [{
2736
+ skew: scaleSkew()
2737
+ }],
2738
+ /**
2739
+ * Skew X
2740
+ * @see https://tailwindcss.com/docs/skew
2741
+ */
2742
+ "skew-x": [{
2743
+ "skew-x": scaleSkew()
2744
+ }],
2745
+ /**
2746
+ * Skew Y
2747
+ * @see https://tailwindcss.com/docs/skew
2748
+ */
2749
+ "skew-y": [{
2750
+ "skew-y": scaleSkew()
2751
+ }],
2752
+ /**
2753
+ * Transform
2754
+ * @see https://tailwindcss.com/docs/transform
2755
+ */
2756
+ transform: [{
2757
+ transform: [isArbitraryVariable, isArbitraryValue, "", "none", "gpu", "cpu"]
2758
+ }],
2759
+ /**
2760
+ * Transform Origin
2761
+ * @see https://tailwindcss.com/docs/transform-origin
2762
+ */
2763
+ "transform-origin": [{
2764
+ origin: scalePositionWithArbitrary()
2765
+ }],
2766
+ /**
2767
+ * Transform Style
2768
+ * @see https://tailwindcss.com/docs/transform-style
2769
+ */
2770
+ "transform-style": [{
2771
+ transform: ["3d", "flat"]
2772
+ }],
2773
+ /**
2774
+ * Translate
2775
+ * @see https://tailwindcss.com/docs/translate
2776
+ */
2777
+ translate: [{
2778
+ translate: scaleTranslate()
2779
+ }],
2780
+ /**
2781
+ * Translate X
2782
+ * @see https://tailwindcss.com/docs/translate
2783
+ */
2784
+ "translate-x": [{
2785
+ "translate-x": scaleTranslate()
2786
+ }],
2787
+ /**
2788
+ * Translate Y
2789
+ * @see https://tailwindcss.com/docs/translate
2790
+ */
2791
+ "translate-y": [{
2792
+ "translate-y": scaleTranslate()
2793
+ }],
2794
+ /**
2795
+ * Translate Z
2796
+ * @see https://tailwindcss.com/docs/translate
2797
+ */
2798
+ "translate-z": [{
2799
+ "translate-z": scaleTranslate()
2800
+ }],
2801
+ /**
2802
+ * Translate None
2803
+ * @see https://tailwindcss.com/docs/translate
2804
+ */
2805
+ "translate-none": ["translate-none"],
2806
+ // ---------------------
2807
+ // --- Interactivity ---
2808
+ // ---------------------
2809
+ /**
2810
+ * Accent Color
2811
+ * @see https://tailwindcss.com/docs/accent-color
2812
+ */
2813
+ accent: [{
2814
+ accent: scaleColor()
2815
+ }],
2816
+ /**
2817
+ * Appearance
2818
+ * @see https://tailwindcss.com/docs/appearance
2819
+ */
2820
+ appearance: [{
2821
+ appearance: ["none", "auto"]
2822
+ }],
2823
+ /**
2824
+ * Caret Color
2825
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2826
+ */
2827
+ "caret-color": [{
2828
+ caret: scaleColor()
2829
+ }],
2830
+ /**
2831
+ * Color Scheme
2832
+ * @see https://tailwindcss.com/docs/color-scheme
2833
+ */
2834
+ "color-scheme": [{
2835
+ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
2836
+ }],
2837
+ /**
2838
+ * Cursor
2839
+ * @see https://tailwindcss.com/docs/cursor
2840
+ */
2841
+ cursor: [{
2842
+ 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", isArbitraryVariable, isArbitraryValue]
2843
+ }],
2844
+ /**
2845
+ * Field Sizing
2846
+ * @see https://tailwindcss.com/docs/field-sizing
2847
+ */
2848
+ "field-sizing": [{
2849
+ "field-sizing": ["fixed", "content"]
2850
+ }],
2851
+ /**
2852
+ * Pointer Events
2853
+ * @see https://tailwindcss.com/docs/pointer-events
2854
+ */
2855
+ "pointer-events": [{
2856
+ "pointer-events": ["auto", "none"]
2857
+ }],
2858
+ /**
2859
+ * Resize
2860
+ * @see https://tailwindcss.com/docs/resize
2861
+ */
2862
+ resize: [{
2863
+ resize: ["none", "", "y", "x"]
2864
+ }],
2865
+ /**
2866
+ * Scroll Behavior
2867
+ * @see https://tailwindcss.com/docs/scroll-behavior
2868
+ */
2869
+ "scroll-behavior": [{
2870
+ scroll: ["auto", "smooth"]
2871
+ }],
2872
+ /**
2873
+ * Scroll Margin
2874
+ * @see https://tailwindcss.com/docs/scroll-margin
2875
+ */
2876
+ "scroll-m": [{
2877
+ "scroll-m": scaleUnambiguousSpacing()
2878
+ }],
2879
+ /**
2880
+ * Scroll Margin Inline
2881
+ * @see https://tailwindcss.com/docs/scroll-margin
2882
+ */
2883
+ "scroll-mx": [{
2884
+ "scroll-mx": scaleUnambiguousSpacing()
2885
+ }],
2886
+ /**
2887
+ * Scroll Margin Block
2888
+ * @see https://tailwindcss.com/docs/scroll-margin
2889
+ */
2890
+ "scroll-my": [{
2891
+ "scroll-my": scaleUnambiguousSpacing()
2892
+ }],
2893
+ /**
2894
+ * Scroll Margin Inline Start
2895
+ * @see https://tailwindcss.com/docs/scroll-margin
2896
+ */
2897
+ "scroll-ms": [{
2898
+ "scroll-ms": scaleUnambiguousSpacing()
2899
+ }],
2900
+ /**
2901
+ * Scroll Margin Inline End
2902
+ * @see https://tailwindcss.com/docs/scroll-margin
2903
+ */
2904
+ "scroll-me": [{
2905
+ "scroll-me": scaleUnambiguousSpacing()
2906
+ }],
2907
+ /**
2908
+ * Scroll Margin Block Start
2909
+ * @see https://tailwindcss.com/docs/scroll-margin
2910
+ */
2911
+ "scroll-mbs": [{
2912
+ "scroll-mbs": scaleUnambiguousSpacing()
2913
+ }],
2914
+ /**
2915
+ * Scroll Margin Block End
2916
+ * @see https://tailwindcss.com/docs/scroll-margin
2917
+ */
2918
+ "scroll-mbe": [{
2919
+ "scroll-mbe": scaleUnambiguousSpacing()
2920
+ }],
2921
+ /**
2922
+ * Scroll Margin Top
2923
+ * @see https://tailwindcss.com/docs/scroll-margin
2924
+ */
2925
+ "scroll-mt": [{
2926
+ "scroll-mt": scaleUnambiguousSpacing()
2927
+ }],
2928
+ /**
2929
+ * Scroll Margin Right
2930
+ * @see https://tailwindcss.com/docs/scroll-margin
2931
+ */
2932
+ "scroll-mr": [{
2933
+ "scroll-mr": scaleUnambiguousSpacing()
2934
+ }],
2935
+ /**
2936
+ * Scroll Margin Bottom
2937
+ * @see https://tailwindcss.com/docs/scroll-margin
2938
+ */
2939
+ "scroll-mb": [{
2940
+ "scroll-mb": scaleUnambiguousSpacing()
2941
+ }],
2942
+ /**
2943
+ * Scroll Margin Left
2944
+ * @see https://tailwindcss.com/docs/scroll-margin
2945
+ */
2946
+ "scroll-ml": [{
2947
+ "scroll-ml": scaleUnambiguousSpacing()
2948
+ }],
2949
+ /**
2950
+ * Scroll Padding
2951
+ * @see https://tailwindcss.com/docs/scroll-padding
2952
+ */
2953
+ "scroll-p": [{
2954
+ "scroll-p": scaleUnambiguousSpacing()
2955
+ }],
2956
+ /**
2957
+ * Scroll Padding Inline
2958
+ * @see https://tailwindcss.com/docs/scroll-padding
2959
+ */
2960
+ "scroll-px": [{
2961
+ "scroll-px": scaleUnambiguousSpacing()
2962
+ }],
2963
+ /**
2964
+ * Scroll Padding Block
2965
+ * @see https://tailwindcss.com/docs/scroll-padding
2966
+ */
2967
+ "scroll-py": [{
2968
+ "scroll-py": scaleUnambiguousSpacing()
2969
+ }],
2970
+ /**
2971
+ * Scroll Padding Inline Start
2972
+ * @see https://tailwindcss.com/docs/scroll-padding
2973
+ */
2974
+ "scroll-ps": [{
2975
+ "scroll-ps": scaleUnambiguousSpacing()
2976
+ }],
2977
+ /**
2978
+ * Scroll Padding Inline End
2979
+ * @see https://tailwindcss.com/docs/scroll-padding
2980
+ */
2981
+ "scroll-pe": [{
2982
+ "scroll-pe": scaleUnambiguousSpacing()
2983
+ }],
2984
+ /**
2985
+ * Scroll Padding Block Start
2986
+ * @see https://tailwindcss.com/docs/scroll-padding
2987
+ */
2988
+ "scroll-pbs": [{
2989
+ "scroll-pbs": scaleUnambiguousSpacing()
2990
+ }],
2991
+ /**
2992
+ * Scroll Padding Block End
2993
+ * @see https://tailwindcss.com/docs/scroll-padding
2994
+ */
2995
+ "scroll-pbe": [{
2996
+ "scroll-pbe": scaleUnambiguousSpacing()
2997
+ }],
2998
+ /**
2999
+ * Scroll Padding Top
3000
+ * @see https://tailwindcss.com/docs/scroll-padding
3001
+ */
3002
+ "scroll-pt": [{
3003
+ "scroll-pt": scaleUnambiguousSpacing()
3004
+ }],
3005
+ /**
3006
+ * Scroll Padding Right
3007
+ * @see https://tailwindcss.com/docs/scroll-padding
3008
+ */
3009
+ "scroll-pr": [{
3010
+ "scroll-pr": scaleUnambiguousSpacing()
3011
+ }],
3012
+ /**
3013
+ * Scroll Padding Bottom
3014
+ * @see https://tailwindcss.com/docs/scroll-padding
3015
+ */
3016
+ "scroll-pb": [{
3017
+ "scroll-pb": scaleUnambiguousSpacing()
3018
+ }],
3019
+ /**
3020
+ * Scroll Padding Left
3021
+ * @see https://tailwindcss.com/docs/scroll-padding
3022
+ */
3023
+ "scroll-pl": [{
3024
+ "scroll-pl": scaleUnambiguousSpacing()
3025
+ }],
3026
+ /**
3027
+ * Scroll Snap Align
3028
+ * @see https://tailwindcss.com/docs/scroll-snap-align
3029
+ */
3030
+ "snap-align": [{
3031
+ snap: ["start", "end", "center", "align-none"]
3032
+ }],
3033
+ /**
3034
+ * Scroll Snap Stop
3035
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
3036
+ */
3037
+ "snap-stop": [{
3038
+ snap: ["normal", "always"]
3039
+ }],
3040
+ /**
3041
+ * Scroll Snap Type
3042
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3043
+ */
3044
+ "snap-type": [{
3045
+ snap: ["none", "x", "y", "both"]
3046
+ }],
3047
+ /**
3048
+ * Scroll Snap Type Strictness
3049
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3050
+ */
3051
+ "snap-strictness": [{
3052
+ snap: ["mandatory", "proximity"]
3053
+ }],
3054
+ /**
3055
+ * Touch Action
3056
+ * @see https://tailwindcss.com/docs/touch-action
3057
+ */
3058
+ touch: [{
3059
+ touch: ["auto", "none", "manipulation"]
3060
+ }],
3061
+ /**
3062
+ * Touch Action X
3063
+ * @see https://tailwindcss.com/docs/touch-action
3064
+ */
3065
+ "touch-x": [{
3066
+ "touch-pan": ["x", "left", "right"]
3067
+ }],
3068
+ /**
3069
+ * Touch Action Y
3070
+ * @see https://tailwindcss.com/docs/touch-action
3071
+ */
3072
+ "touch-y": [{
3073
+ "touch-pan": ["y", "up", "down"]
3074
+ }],
3075
+ /**
3076
+ * Touch Action Pinch Zoom
3077
+ * @see https://tailwindcss.com/docs/touch-action
3078
+ */
3079
+ "touch-pz": ["touch-pinch-zoom"],
3080
+ /**
3081
+ * User Select
3082
+ * @see https://tailwindcss.com/docs/user-select
3083
+ */
3084
+ select: [{
3085
+ select: ["none", "text", "all", "auto"]
3086
+ }],
3087
+ /**
3088
+ * Will Change
3089
+ * @see https://tailwindcss.com/docs/will-change
3090
+ */
3091
+ "will-change": [{
3092
+ "will-change": ["auto", "scroll", "contents", "transform", isArbitraryVariable, isArbitraryValue]
3093
+ }],
3094
+ // -----------
3095
+ // --- SVG ---
3096
+ // -----------
3097
+ /**
3098
+ * Fill
3099
+ * @see https://tailwindcss.com/docs/fill
3100
+ */
3101
+ fill: [{
3102
+ fill: ["none", ...scaleColor()]
3103
+ }],
3104
+ /**
3105
+ * Stroke Width
3106
+ * @see https://tailwindcss.com/docs/stroke-width
3107
+ */
3108
+ "stroke-w": [{
3109
+ stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
3110
+ }],
3111
+ /**
3112
+ * Stroke
3113
+ * @see https://tailwindcss.com/docs/stroke
3114
+ */
3115
+ stroke: [{
3116
+ stroke: ["none", ...scaleColor()]
3117
+ }],
3118
+ // ---------------------
3119
+ // --- Accessibility ---
3120
+ // ---------------------
3121
+ /**
3122
+ * Forced Color Adjust
3123
+ * @see https://tailwindcss.com/docs/forced-color-adjust
3124
+ */
3125
+ "forced-color-adjust": [{
3126
+ "forced-color-adjust": ["auto", "none"]
3127
+ }]
3128
+ },
3129
+ conflictingClassGroups: {
3130
+ overflow: ["overflow-x", "overflow-y"],
3131
+ overscroll: ["overscroll-x", "overscroll-y"],
3132
+ inset: ["inset-x", "inset-y", "inset-bs", "inset-be", "start", "end", "top", "right", "bottom", "left"],
3133
+ "inset-x": ["right", "left"],
3134
+ "inset-y": ["top", "bottom"],
3135
+ flex: ["basis", "grow", "shrink"],
3136
+ gap: ["gap-x", "gap-y"],
3137
+ p: ["px", "py", "ps", "pe", "pbs", "pbe", "pt", "pr", "pb", "pl"],
3138
+ px: ["pr", "pl"],
3139
+ py: ["pt", "pb"],
3140
+ m: ["mx", "my", "ms", "me", "mbs", "mbe", "mt", "mr", "mb", "ml"],
3141
+ mx: ["mr", "ml"],
3142
+ my: ["mt", "mb"],
3143
+ size: ["w", "h"],
3144
+ "font-size": ["leading"],
3145
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
3146
+ "fvn-ordinal": ["fvn-normal"],
3147
+ "fvn-slashed-zero": ["fvn-normal"],
3148
+ "fvn-figure": ["fvn-normal"],
3149
+ "fvn-spacing": ["fvn-normal"],
3150
+ "fvn-fraction": ["fvn-normal"],
3151
+ "line-clamp": ["display", "overflow"],
3152
+ 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"],
3153
+ "rounded-s": ["rounded-ss", "rounded-es"],
3154
+ "rounded-e": ["rounded-se", "rounded-ee"],
3155
+ "rounded-t": ["rounded-tl", "rounded-tr"],
3156
+ "rounded-r": ["rounded-tr", "rounded-br"],
3157
+ "rounded-b": ["rounded-br", "rounded-bl"],
3158
+ "rounded-l": ["rounded-tl", "rounded-bl"],
3159
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
3160
+ "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-bs", "border-w-be", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
3161
+ "border-w-x": ["border-w-r", "border-w-l"],
3162
+ "border-w-y": ["border-w-t", "border-w-b"],
3163
+ "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-bs", "border-color-be", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
3164
+ "border-color-x": ["border-color-r", "border-color-l"],
3165
+ "border-color-y": ["border-color-t", "border-color-b"],
3166
+ translate: ["translate-x", "translate-y", "translate-none"],
3167
+ "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
3168
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mbs", "scroll-mbe", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
3169
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
3170
+ "scroll-my": ["scroll-mt", "scroll-mb"],
3171
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pbs", "scroll-pbe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
3172
+ "scroll-px": ["scroll-pr", "scroll-pl"],
3173
+ "scroll-py": ["scroll-pt", "scroll-pb"],
3174
+ touch: ["touch-x", "touch-y", "touch-pz"],
3175
+ "touch-x": ["touch"],
3176
+ "touch-y": ["touch"],
3177
+ "touch-pz": ["touch"]
3178
+ },
3179
+ conflictingClassGroupModifiers: {
3180
+ "font-size": ["leading"]
3181
+ },
3182
+ orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
3183
+ };
3184
+ };
3185
+ const twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
3186
+ function cn(...inputs) {
3187
+ return twMerge(clsx(inputs));
3188
+ }
3189
+ export {
3190
+ cn as c
3191
+ };