adp-web-components 0.0.65 → 0.0.67

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 (317) hide show
  1. package/dist/cjs/app-globals-4aa8f46f.js +46 -0
  2. package/dist/cjs/cn-f559f9e5.js +2588 -0
  3. package/dist/cjs/contact-us-form.cjs.entry.js +209 -0
  4. package/dist/cjs/dead-stock-lookup_3.cjs.entry.js +445 -0
  5. package/dist/cjs/dynamic-claim_6.cjs.entry.js +1180 -0
  6. package/dist/cjs/dynamic-redeem.cjs.entry.js +156 -0
  7. package/dist/cjs/form-dialog_8.cjs.entry.js +503 -0
  8. package/dist/cjs/get-local-language-ec0e41e0.js +2381 -0
  9. package/dist/cjs/index-603d8f32.js +1610 -0
  10. package/dist/cjs/index.cjs.js +6 -0
  11. package/dist/cjs/loader-baf2418b.js +9 -0
  12. package/dist/cjs/loader.cjs.js +19 -0
  13. package/dist/cjs/loading-spinner.cjs.entry.js +27 -0
  14. package/dist/cjs/part-lookup.cjs.entry.js +129 -0
  15. package/dist/cjs/service-booking-form.cjs.entry.js +209 -0
  16. package/dist/cjs/shift-components.cjs.js +29 -0
  17. package/dist/cjs/urls-9077b31c.js +4874 -0
  18. package/dist/cjs/vehicle-lookup.cjs.entry.js +203 -0
  19. package/dist/collection/collection-manifest.json +35 -0
  20. package/dist/collection/components/components/loading-spinner.css +1 -0
  21. package/dist/collection/components/components/loading-spinner.js +47 -0
  22. package/dist/collection/components/form-elements/form-dialog.css +1 -0
  23. package/dist/collection/components/form-elements/form-dialog.js +137 -0
  24. package/dist/collection/components/form-elements/form-input.css +1 -0
  25. package/dist/collection/components/form-elements/form-input.js +323 -0
  26. package/dist/collection/components/form-elements/form-select.css +1 -0
  27. package/dist/collection/components/form-elements/form-select.js +400 -0
  28. package/dist/collection/components/form-elements/form-shadow-input.css +1 -0
  29. package/dist/collection/components/form-elements/form-shadow-input.js +100 -0
  30. package/dist/collection/components/form-elements/form-structure-error.css +1 -0
  31. package/dist/collection/components/form-elements/form-structure-error.js +72 -0
  32. package/dist/collection/components/form-elements/form-structure.css +1 -0
  33. package/dist/collection/components/form-elements/form-structure.js +269 -0
  34. package/dist/collection/components/form-elements/form-submit.css +1 -0
  35. package/dist/collection/components/form-elements/form-submit.js +140 -0
  36. package/dist/collection/components/form-elements/form-text-area.css +1 -0
  37. package/dist/collection/components/form-elements/form-text-area.js +264 -0
  38. package/dist/collection/components/forms/contact-us/element-mapper.js +87 -0
  39. package/dist/collection/components/forms/contact-us/form.css +1 -0
  40. package/dist/collection/components/forms/contact-us/validations.js +19 -0
  41. package/dist/collection/components/forms/contact-us-form.js +280 -0
  42. package/dist/collection/components/forms/service-booking/element-mapper.js +87 -0
  43. package/dist/collection/components/forms/service-booking/form.css +1 -0
  44. package/dist/collection/components/forms/service-booking/validations.js +19 -0
  45. package/dist/collection/components/forms/service-booking-form.js +280 -0
  46. package/dist/collection/components/part-lookup/dead-stock-lookup.css +1 -0
  47. package/dist/collection/components/part-lookup/dead-stock-lookup.js +405 -0
  48. package/dist/collection/components/part-lookup/distributor-lookup.css +1 -0
  49. package/dist/collection/components/part-lookup/distributor-lookup.js +470 -0
  50. package/dist/collection/components/part-lookup/manufacturer-lookup.css +1 -0
  51. package/dist/collection/components/part-lookup/manufacturer-lookup.js +468 -0
  52. package/dist/collection/components/part-lookup/part-lookup.css +1 -0
  53. package/dist/collection/components/part-lookup/part-lookup.js +376 -0
  54. package/dist/collection/components/vehicle-lookup/assets/cancelled.svg +8 -0
  55. package/dist/collection/components/vehicle-lookup/assets/check.svg +4 -0
  56. package/dist/collection/components/vehicle-lookup/assets/expired.svg +9 -0
  57. package/dist/collection/components/vehicle-lookup/assets/loader.svg +11 -0
  58. package/dist/collection/components/vehicle-lookup/assets/pending.svg +9 -0
  59. package/dist/collection/components/vehicle-lookup/assets/processed.svg +9 -0
  60. package/dist/collection/components/vehicle-lookup/assets/x-mark.svg +4 -0
  61. package/dist/collection/components/vehicle-lookup/components/CardsContainer.js +13 -0
  62. package/dist/collection/components/vehicle-lookup/components/Loading.js +10 -0
  63. package/dist/collection/components/vehicle-lookup/components/SSCTable.js +16 -0
  64. package/dist/collection/components/vehicle-lookup/components/StatusCard.js +11 -0
  65. package/dist/collection/components/vehicle-lookup/dynamic-claim.css +1 -0
  66. package/dist/collection/components/vehicle-lookup/dynamic-claim.js +662 -0
  67. package/dist/collection/components/vehicle-lookup/dynamic-redeem.css +1 -0
  68. package/dist/collection/components/vehicle-lookup/dynamic-redeem.js +373 -0
  69. package/dist/collection/components/vehicle-lookup/paint-thickness.css +1 -0
  70. package/dist/collection/components/vehicle-lookup/paint-thickness.js +410 -0
  71. package/dist/collection/components/vehicle-lookup/service-history.css +1 -0
  72. package/dist/collection/components/vehicle-lookup/service-history.js +393 -0
  73. package/dist/collection/components/vehicle-lookup/vehicle-accessories.css +1 -0
  74. package/dist/collection/components/vehicle-lookup/vehicle-accessories.js +414 -0
  75. package/dist/collection/components/vehicle-lookup/vehicle-lookup.css +1 -0
  76. package/dist/collection/components/vehicle-lookup/vehicle-lookup.js +406 -0
  77. package/dist/collection/components/vehicle-lookup/vehicle-specification.css +1 -0
  78. package/dist/collection/components/vehicle-lookup/vehicle-specification.js +405 -0
  79. package/dist/collection/components/vehicle-lookup/warranty-details.css +1 -0
  80. package/dist/collection/components/vehicle-lookup/warranty-details.js +780 -0
  81. package/dist/collection/global/api/partInformation.js +32 -0
  82. package/dist/collection/global/api/urls.js +6 -0
  83. package/dist/collection/global/api/vehicleInformation.js +48 -0
  84. package/dist/collection/global/assets/eye.svg +5 -0
  85. package/dist/collection/global/assets/loader.svg +11 -0
  86. package/dist/collection/global/assets/white-loader.svg +11 -0
  87. package/dist/collection/global/lib/cn.js +9 -0
  88. package/dist/collection/global/lib/form-hook.js +162 -0
  89. package/dist/collection/global/lib/general.js +9 -0
  90. package/dist/collection/global/lib/get-local-language.js +20 -0
  91. package/dist/collection/global/lib/image-expansion.js +69 -0
  92. package/dist/collection/global/lib/middleware.js +39 -0
  93. package/dist/collection/global/lib/recaptcha.js +25 -0
  94. package/dist/collection/global/lib/utils.js +7 -0
  95. package/dist/collection/global/lib/validate-form-structure.js +47 -0
  96. package/dist/collection/global/lib/validate-vin.js +62 -0
  97. package/dist/collection/global/types/components.js +1 -0
  98. package/dist/collection/global/types/forms.js +1 -0
  99. package/dist/collection/global/types/general.js +1 -0
  100. package/dist/collection/global/types/locales/error-schema.js +17 -0
  101. package/dist/collection/global/types/locales/forms/contact-us-schema.js +24 -0
  102. package/dist/collection/global/types/locales/forms/index.js +11 -0
  103. package/dist/collection/global/types/locales/general.js +11 -0
  104. package/dist/collection/global/types/locales/index.js +33 -0
  105. package/dist/collection/global/types/locales/inquiryTypes.js +15 -0
  106. package/dist/collection/global/types/locales/part-lookup/dead-stock-schema.js +10 -0
  107. package/dist/collection/global/types/locales/part-lookup/distributor-schema.js +21 -0
  108. package/dist/collection/global/types/locales/part-lookup/index.js +13 -0
  109. package/dist/collection/global/types/locales/part-lookup/manufacturer-schema.js +22 -0
  110. package/dist/collection/global/types/locales/vehicle-lookup/accessories-schema.js +13 -0
  111. package/dist/collection/global/types/locales/vehicle-lookup/dynamic-claim-schema.js +21 -0
  112. package/dist/collection/global/types/locales/vehicle-lookup/dynamic-redeem-schema.js +19 -0
  113. package/dist/collection/global/types/locales/vehicle-lookup/index.js +21 -0
  114. package/dist/collection/global/types/locales/vehicle-lookup/paint-thickness-schema.js +14 -0
  115. package/dist/collection/global/types/locales/vehicle-lookup/service-history-schema.js +15 -0
  116. package/dist/collection/global/types/locales/vehicle-lookup/specification-schema.js +15 -0
  117. package/dist/collection/global/types/locales/vehicle-lookup/warranty-schema.js +23 -0
  118. package/dist/collection/global/types/part-information.js +1 -0
  119. package/dist/collection/global/types/vehicle-information.js +5 -0
  120. package/dist/collection/index.js +1 -0
  121. package/dist/collection/templates/part-lookup/mock-data.js +199 -0
  122. package/dist/collection/templates/vehicle-lookup/mock-data.js +4165 -0
  123. package/dist/collection/templates/vehicle-lookup/vehicle-lookup.js +285 -0
  124. package/dist/collection/templates/vehicle-lookup/warranty-mock-data.js +3064 -0
  125. package/dist/components/contact-us-form.d.ts +11 -0
  126. package/dist/components/contact-us-form.js +5 -0
  127. package/dist/components/dead-stock-lookup.d.ts +11 -0
  128. package/dist/components/dead-stock-lookup.js +5 -0
  129. package/dist/components/distributor-lookup.d.ts +11 -0
  130. package/dist/components/distributor-lookup.js +5 -0
  131. package/dist/components/dynamic-claim.d.ts +11 -0
  132. package/dist/components/dynamic-claim.js +5 -0
  133. package/dist/components/dynamic-redeem.d.ts +11 -0
  134. package/dist/components/dynamic-redeem.js +5 -0
  135. package/dist/components/form-dialog.d.ts +11 -0
  136. package/dist/components/form-dialog.js +5 -0
  137. package/dist/components/form-input.d.ts +11 -0
  138. package/dist/components/form-input.js +5 -0
  139. package/dist/components/form-select.d.ts +11 -0
  140. package/dist/components/form-select.js +5 -0
  141. package/dist/components/form-shadow-input.d.ts +11 -0
  142. package/dist/components/form-shadow-input.js +5 -0
  143. package/dist/components/form-structure-error.d.ts +11 -0
  144. package/dist/components/form-structure-error.js +5 -0
  145. package/dist/components/form-structure.d.ts +11 -0
  146. package/dist/components/form-structure.js +5 -0
  147. package/dist/components/form-submit.d.ts +11 -0
  148. package/dist/components/form-submit.js +5 -0
  149. package/dist/components/form-text-area.d.ts +11 -0
  150. package/dist/components/form-text-area.js +5 -0
  151. package/dist/components/index.d.ts +33 -0
  152. package/dist/components/index.js +5 -0
  153. package/dist/components/loading-spinner.d.ts +11 -0
  154. package/dist/components/loading-spinner.js +5 -0
  155. package/dist/components/manufacturer-lookup.d.ts +11 -0
  156. package/dist/components/manufacturer-lookup.js +5 -0
  157. package/dist/components/p-00d97183.js +5 -0
  158. package/dist/components/p-1e9e4abd.js +5 -0
  159. package/dist/components/p-1f001d39.js +5 -0
  160. package/dist/components/p-1fe65d6e.js +5 -0
  161. package/dist/components/p-3f19382d.js +5 -0
  162. package/dist/components/p-5b4b3060.js +5 -0
  163. package/dist/components/p-5d3cc3c1.js +5 -0
  164. package/dist/components/p-6055174a.js +5 -0
  165. package/dist/components/p-6e3ab655.js +5 -0
  166. package/dist/components/p-73a5d441.js +5 -0
  167. package/dist/components/p-75476014.js +5 -0
  168. package/dist/components/p-810e84ab.js +5 -0
  169. package/dist/components/p-8b1d90d7.js +5 -0
  170. package/dist/components/p-927296bb.js +5 -0
  171. package/dist/components/p-932ff922.js +5 -0
  172. package/dist/components/p-98d9e7ab.js +5 -0
  173. package/dist/components/p-a21e2e2e.js +5 -0
  174. package/dist/components/p-a2c14be5.js +5 -0
  175. package/dist/components/p-a57338da.js +5 -0
  176. package/dist/components/p-bacd1638.js +5 -0
  177. package/dist/components/p-c526513b.js +5 -0
  178. package/dist/components/p-cb600b18.js +5 -0
  179. package/dist/components/p-ceea200f.js +5 -0
  180. package/dist/components/p-cefc0575.js +5 -0
  181. package/dist/components/p-d5ff7544.js +5 -0
  182. package/dist/components/p-e2158fc6.js +5 -0
  183. package/dist/components/p-fab97ac7.js +5 -0
  184. package/dist/components/paint-thickness.d.ts +11 -0
  185. package/dist/components/paint-thickness.js +5 -0
  186. package/dist/components/part-lookup.d.ts +11 -0
  187. package/dist/components/part-lookup.js +5 -0
  188. package/dist/components/service-booking-form.d.ts +11 -0
  189. package/dist/components/service-booking-form.js +5 -0
  190. package/dist/components/service-history.d.ts +11 -0
  191. package/dist/components/service-history.js +5 -0
  192. package/dist/components/vehicle-accessories.d.ts +11 -0
  193. package/dist/components/vehicle-accessories.js +5 -0
  194. package/dist/components/vehicle-lookup.d.ts +11 -0
  195. package/dist/components/vehicle-lookup.js +5 -0
  196. package/dist/components/vehicle-specification.d.ts +11 -0
  197. package/dist/components/vehicle-specification.js +5 -0
  198. package/dist/components/warranty-details.d.ts +11 -0
  199. package/dist/components/warranty-details.js +5 -0
  200. package/dist/esm/app-globals-68faa233.js +44 -0
  201. package/dist/esm/cn-cc419b94.js +2586 -0
  202. package/dist/esm/contact-us-form.entry.js +205 -0
  203. package/dist/esm/dead-stock-lookup_3.entry.js +439 -0
  204. package/dist/esm/dynamic-claim_6.entry.js +1171 -0
  205. package/dist/esm/dynamic-redeem.entry.js +152 -0
  206. package/dist/esm/form-dialog_8.entry.js +492 -0
  207. package/dist/esm/get-local-language-98c26a89.js +2376 -0
  208. package/dist/esm/index-cac905b0.js +1581 -0
  209. package/dist/esm/index.js +4 -0
  210. package/dist/esm/loader-027b88af.js +7 -0
  211. package/dist/esm/loader.js +15 -0
  212. package/dist/esm/loading-spinner.entry.js +23 -0
  213. package/dist/esm/part-lookup.entry.js +125 -0
  214. package/dist/esm/service-booking-form.entry.js +205 -0
  215. package/dist/esm/shift-components.js +24 -0
  216. package/dist/esm/urls-e22234f9.js +4870 -0
  217. package/dist/esm/vehicle-lookup.entry.js +199 -0
  218. package/dist/index.cjs.js +1 -0
  219. package/dist/index.js +1 -0
  220. package/dist/locales/ar.json +185 -0
  221. package/dist/locales/en.json +185 -0
  222. package/dist/locales/ku.json +185 -0
  223. package/dist/locales/ru.json +185 -0
  224. package/dist/shift-components/index.esm.js +4 -0
  225. package/dist/shift-components/p-014f3fba.entry.js +5 -0
  226. package/dist/shift-components/p-0739b7d7.entry.js +5 -0
  227. package/dist/shift-components/p-446d908d.js +5 -0
  228. package/dist/shift-components/p-46878289.entry.js +5 -0
  229. package/dist/shift-components/p-62c8eed3.entry.js +5 -0
  230. package/dist/shift-components/p-65102e7a.js +6 -0
  231. package/dist/shift-components/p-65a5ebdf.entry.js +5 -0
  232. package/dist/shift-components/p-87f8fbb3.entry.js +5 -0
  233. package/dist/shift-components/p-8830682d.entry.js +5 -0
  234. package/dist/shift-components/p-932ff922.js +5 -0
  235. package/dist/shift-components/p-98d9e7ab.js +5 -0
  236. package/dist/shift-components/p-a21e2e2e.js +5 -0
  237. package/dist/shift-components/p-c06844c1.js +5 -0
  238. package/dist/shift-components/p-da1511a0.entry.js +5 -0
  239. package/dist/shift-components/p-f68052c1.entry.js +5 -0
  240. package/dist/shift-components/shift-components.esm.js +5 -0
  241. package/dist/types/components/components/loading-spinner.d.ts +4 -0
  242. package/dist/types/components/form-elements/form-dialog.d.ts +13 -0
  243. package/dist/types/components/form-elements/form-input.d.ts +28 -0
  244. package/dist/types/components/form-elements/form-select.d.ts +39 -0
  245. package/dist/types/components/form-elements/form-shadow-input.d.ts +9 -0
  246. package/dist/types/components/form-elements/form-structure-error.d.ts +8 -0
  247. package/dist/types/components/form-elements/form-structure.d.ts +23 -0
  248. package/dist/types/components/form-elements/form-submit.d.ts +12 -0
  249. package/dist/types/components/form-elements/form-text-area.d.ts +24 -0
  250. package/dist/types/components/forms/contact-us/element-mapper.d.ts +3 -0
  251. package/dist/types/components/forms/contact-us/validations.d.ts +26 -0
  252. package/dist/types/components/forms/contact-us-form.d.ts +32 -0
  253. package/dist/types/components/forms/service-booking/element-mapper.d.ts +3 -0
  254. package/dist/types/components/forms/service-booking/validations.d.ts +26 -0
  255. package/dist/types/components/forms/service-booking-form.d.ts +32 -0
  256. package/dist/types/components/part-lookup/dead-stock-lookup.d.ts +31 -0
  257. package/dist/types/components/part-lookup/distributor-lookup.d.ts +32 -0
  258. package/dist/types/components/part-lookup/manufacturer-lookup.d.ts +33 -0
  259. package/dist/types/components/part-lookup/part-lookup.d.ts +43 -0
  260. package/dist/types/components/vehicle-lookup/components/CardsContainer.d.ts +10 -0
  261. package/dist/types/components/vehicle-lookup/components/Loading.d.ts +5 -0
  262. package/dist/types/components/vehicle-lookup/components/SSCTable.d.ts +8 -0
  263. package/dist/types/components/vehicle-lookup/components/StatusCard.d.ts +12 -0
  264. package/dist/types/components/vehicle-lookup/dynamic-claim.d.ts +57 -0
  265. package/dist/types/components/vehicle-lookup/dynamic-redeem.d.ts +39 -0
  266. package/dist/types/components/vehicle-lookup/paint-thickness.d.ts +35 -0
  267. package/dist/types/components/vehicle-lookup/service-history.d.ts +30 -0
  268. package/dist/types/components/vehicle-lookup/vehicle-accessories.d.ts +35 -0
  269. package/dist/types/components/vehicle-lookup/vehicle-lookup.d.ts +53 -0
  270. package/dist/types/components/vehicle-lookup/vehicle-specification.d.ts +29 -0
  271. package/dist/types/components/vehicle-lookup/warranty-details.d.ts +57 -0
  272. package/dist/types/components.d.ts +764 -0
  273. package/dist/types/global/api/partInformation.d.ts +19 -0
  274. package/dist/types/global/api/urls.d.ts +2 -0
  275. package/dist/types/global/api/vehicleInformation.d.ts +33 -0
  276. package/dist/types/global/lib/cn.d.ts +2 -0
  277. package/dist/types/global/lib/form-hook.d.ts +47 -0
  278. package/dist/types/global/lib/general.d.ts +1 -0
  279. package/dist/types/global/lib/get-local-language.d.ts +2 -0
  280. package/dist/types/global/lib/image-expansion.d.ts +9 -0
  281. package/dist/types/global/lib/middleware.d.ts +0 -0
  282. package/dist/types/global/lib/recaptcha.d.ts +16 -0
  283. package/dist/types/global/lib/utils.d.ts +1 -0
  284. package/dist/types/global/lib/validate-form-structure.d.ts +3 -0
  285. package/dist/types/global/lib/validate-vin.d.ts +1 -0
  286. package/dist/types/global/types/components.d.ts +7 -0
  287. package/dist/types/global/types/forms.d.ts +63 -0
  288. package/dist/types/global/types/general.d.ts +23 -0
  289. package/dist/types/global/types/locales/error-schema.d.ts +23 -0
  290. package/dist/types/global/types/locales/forms/contact-us-schema.d.ts +37 -0
  291. package/dist/types/global/types/locales/forms/index.d.ts +45 -0
  292. package/dist/types/global/types/locales/general.d.ts +11 -0
  293. package/dist/types/global/types/locales/index.d.ts +382 -0
  294. package/dist/types/global/types/locales/inquiryTypes.d.ts +19 -0
  295. package/dist/types/global/types/locales/part-lookup/dead-stock-schema.d.ts +9 -0
  296. package/dist/types/global/types/locales/part-lookup/distributor-schema.d.ts +31 -0
  297. package/dist/types/global/types/locales/part-lookup/index.d.ts +79 -0
  298. package/dist/types/global/types/locales/part-lookup/manufacturer-schema.d.ts +33 -0
  299. package/dist/types/global/types/locales/vehicle-lookup/accessories-schema.d.ts +15 -0
  300. package/dist/types/global/types/locales/vehicle-lookup/dynamic-claim-schema.d.ts +31 -0
  301. package/dist/types/global/types/locales/vehicle-lookup/dynamic-redeem-schema.d.ts +27 -0
  302. package/dist/types/global/types/locales/vehicle-lookup/index.d.ts +173 -0
  303. package/dist/types/global/types/locales/vehicle-lookup/paint-thickness-schema.d.ts +17 -0
  304. package/dist/types/global/types/locales/vehicle-lookup/service-history-schema.d.ts +19 -0
  305. package/dist/types/global/types/locales/vehicle-lookup/specification-schema.d.ts +19 -0
  306. package/dist/types/global/types/locales/vehicle-lookup/warranty-schema.d.ts +35 -0
  307. package/dist/types/global/types/part-information.d.ts +53 -0
  308. package/dist/types/global/types/vehicle-information.d.ts +172 -0
  309. package/dist/types/index.d.ts +10 -0
  310. package/dist/types/stencil-public-runtime.d.ts +1680 -0
  311. package/loader/cdn.js +5 -0
  312. package/loader/index.cjs.js +5 -0
  313. package/loader/index.d.ts +24 -0
  314. package/loader/index.es2017.js +5 -0
  315. package/loader/index.js +6 -0
  316. package/loader/package.json +11 -0
  317. package/package.json +1 -1
@@ -0,0 +1,2588 @@
1
+ /*!
2
+ * Built by ShiftSoftware
3
+ * Copyright (c)
4
+ */
5
+ 'use strict';
6
+
7
+ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
8
+
9
+ var bundleCjs = {};
10
+
11
+ (function (exports) {
12
+
13
+ Object.defineProperty(exports, Symbol.toStringTag, {
14
+ value: 'Module'
15
+ });
16
+ const CLASS_PART_SEPARATOR = '-';
17
+ const createClassGroupUtils = config => {
18
+ const classMap = createClassMap(config);
19
+ const {
20
+ conflictingClassGroups,
21
+ conflictingClassGroupModifiers
22
+ } = config;
23
+ const getClassGroupId = className => {
24
+ const classParts = className.split(CLASS_PART_SEPARATOR);
25
+ // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.
26
+ if (classParts[0] === '' && classParts.length !== 1) {
27
+ classParts.shift();
28
+ }
29
+ return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
30
+ };
31
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
32
+ const conflicts = conflictingClassGroups[classGroupId] || [];
33
+ if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
34
+ return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
35
+ }
36
+ return conflicts;
37
+ };
38
+ return {
39
+ getClassGroupId,
40
+ getConflictingClassGroupIds
41
+ };
42
+ };
43
+ const getGroupRecursive = (classParts, classPartObject) => {
44
+ if (classParts.length === 0) {
45
+ return classPartObject.classGroupId;
46
+ }
47
+ const currentClassPart = classParts[0];
48
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
49
+ const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;
50
+ if (classGroupFromNextClassPart) {
51
+ return classGroupFromNextClassPart;
52
+ }
53
+ if (classPartObject.validators.length === 0) {
54
+ return undefined;
55
+ }
56
+ const classRest = classParts.join(CLASS_PART_SEPARATOR);
57
+ return classPartObject.validators.find(({
58
+ validator
59
+ }) => validator(classRest))?.classGroupId;
60
+ };
61
+ const arbitraryPropertyRegex = /^\[(.+)\]$/;
62
+ const getGroupIdForArbitraryProperty = className => {
63
+ if (arbitraryPropertyRegex.test(className)) {
64
+ const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
65
+ const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));
66
+ if (property) {
67
+ // I use two dots here because one dot is used as prefix for class groups in plugins
68
+ return 'arbitrary..' + property;
69
+ }
70
+ }
71
+ };
72
+ /**
73
+ * Exported for testing only
74
+ */
75
+ const createClassMap = config => {
76
+ const {
77
+ theme,
78
+ prefix
79
+ } = config;
80
+ const classMap = {
81
+ nextPart: new Map(),
82
+ validators: []
83
+ };
84
+ const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);
85
+ prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {
86
+ processClassesRecursively(classGroup, classMap, classGroupId, theme);
87
+ });
88
+ return classMap;
89
+ };
90
+ const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
91
+ classGroup.forEach(classDefinition => {
92
+ if (typeof classDefinition === 'string') {
93
+ const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);
94
+ classPartObjectToEdit.classGroupId = classGroupId;
95
+ return;
96
+ }
97
+ if (typeof classDefinition === 'function') {
98
+ if (isThemeGetter(classDefinition)) {
99
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
100
+ return;
101
+ }
102
+ classPartObject.validators.push({
103
+ validator: classDefinition,
104
+ classGroupId
105
+ });
106
+ return;
107
+ }
108
+ Object.entries(classDefinition).forEach(([key, classGroup]) => {
109
+ processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);
110
+ });
111
+ });
112
+ };
113
+ const getPart = (classPartObject, path) => {
114
+ let currentClassPartObject = classPartObject;
115
+ path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {
116
+ if (!currentClassPartObject.nextPart.has(pathPart)) {
117
+ currentClassPartObject.nextPart.set(pathPart, {
118
+ nextPart: new Map(),
119
+ validators: []
120
+ });
121
+ }
122
+ currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
123
+ });
124
+ return currentClassPartObject;
125
+ };
126
+ const isThemeGetter = func => func.isThemeGetter;
127
+ const getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {
128
+ if (!prefix) {
129
+ return classGroupEntries;
130
+ }
131
+ return classGroupEntries.map(([classGroupId, classGroup]) => {
132
+ const prefixedClassGroup = classGroup.map(classDefinition => {
133
+ if (typeof classDefinition === 'string') {
134
+ return prefix + classDefinition;
135
+ }
136
+ if (typeof classDefinition === 'object') {
137
+ return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));
138
+ }
139
+ return classDefinition;
140
+ });
141
+ return [classGroupId, prefixedClassGroup];
142
+ });
143
+ };
144
+
145
+ // LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance
146
+ const createLruCache = maxCacheSize => {
147
+ if (maxCacheSize < 1) {
148
+ return {
149
+ get: () => undefined,
150
+ set: () => {}
151
+ };
152
+ }
153
+ let cacheSize = 0;
154
+ let cache = new Map();
155
+ let previousCache = new Map();
156
+ const update = (key, value) => {
157
+ cache.set(key, value);
158
+ cacheSize++;
159
+ if (cacheSize > maxCacheSize) {
160
+ cacheSize = 0;
161
+ previousCache = cache;
162
+ cache = new Map();
163
+ }
164
+ };
165
+ return {
166
+ get(key) {
167
+ let value = cache.get(key);
168
+ if (value !== undefined) {
169
+ return value;
170
+ }
171
+ if ((value = previousCache.get(key)) !== undefined) {
172
+ update(key, value);
173
+ return value;
174
+ }
175
+ },
176
+ set(key, value) {
177
+ if (cache.has(key)) {
178
+ cache.set(key, value);
179
+ } else {
180
+ update(key, value);
181
+ }
182
+ }
183
+ };
184
+ };
185
+ const IMPORTANT_MODIFIER = '!';
186
+ const createParseClassName = config => {
187
+ const {
188
+ separator,
189
+ experimentalParseClassName
190
+ } = config;
191
+ const isSeparatorSingleCharacter = separator.length === 1;
192
+ const firstSeparatorCharacter = separator[0];
193
+ const separatorLength = separator.length;
194
+ // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js
195
+ const parseClassName = className => {
196
+ const modifiers = [];
197
+ let bracketDepth = 0;
198
+ let modifierStart = 0;
199
+ let postfixModifierPosition;
200
+ for (let index = 0; index < className.length; index++) {
201
+ let currentCharacter = className[index];
202
+ if (bracketDepth === 0) {
203
+ if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {
204
+ modifiers.push(className.slice(modifierStart, index));
205
+ modifierStart = index + separatorLength;
206
+ continue;
207
+ }
208
+ if (currentCharacter === '/') {
209
+ postfixModifierPosition = index;
210
+ continue;
211
+ }
212
+ }
213
+ if (currentCharacter === '[') {
214
+ bracketDepth++;
215
+ } else if (currentCharacter === ']') {
216
+ bracketDepth--;
217
+ }
218
+ }
219
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
220
+ const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
221
+ const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
222
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
223
+ return {
224
+ modifiers,
225
+ hasImportantModifier,
226
+ baseClassName,
227
+ maybePostfixModifierPosition
228
+ };
229
+ };
230
+ if (experimentalParseClassName) {
231
+ return className => experimentalParseClassName({
232
+ className,
233
+ parseClassName
234
+ });
235
+ }
236
+ return parseClassName;
237
+ };
238
+ /**
239
+ * Sorts modifiers according to following schema:
240
+ * - Predefined modifiers are sorted alphabetically
241
+ * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it
242
+ */
243
+ const sortModifiers = modifiers => {
244
+ if (modifiers.length <= 1) {
245
+ return modifiers;
246
+ }
247
+ const sortedModifiers = [];
248
+ let unsortedModifiers = [];
249
+ modifiers.forEach(modifier => {
250
+ const isArbitraryVariant = modifier[0] === '[';
251
+ if (isArbitraryVariant) {
252
+ sortedModifiers.push(...unsortedModifiers.sort(), modifier);
253
+ unsortedModifiers = [];
254
+ } else {
255
+ unsortedModifiers.push(modifier);
256
+ }
257
+ });
258
+ sortedModifiers.push(...unsortedModifiers.sort());
259
+ return sortedModifiers;
260
+ };
261
+ const createConfigUtils = config => ({
262
+ cache: createLruCache(config.cacheSize),
263
+ parseClassName: createParseClassName(config),
264
+ ...createClassGroupUtils(config)
265
+ });
266
+ const SPLIT_CLASSES_REGEX = /\s+/;
267
+ const mergeClassList = (classList, configUtils) => {
268
+ const {
269
+ parseClassName,
270
+ getClassGroupId,
271
+ getConflictingClassGroupIds
272
+ } = configUtils;
273
+ /**
274
+ * Set of classGroupIds in following format:
275
+ * `{importantModifier}{variantModifiers}{classGroupId}`
276
+ * @example 'float'
277
+ * @example 'hover:focus:bg-color'
278
+ * @example 'md:!pr'
279
+ */
280
+ const classGroupsInConflict = [];
281
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
282
+ let result = '';
283
+ for (let index = classNames.length - 1; index >= 0; index -= 1) {
284
+ const originalClassName = classNames[index];
285
+ const {
286
+ modifiers,
287
+ hasImportantModifier,
288
+ baseClassName,
289
+ maybePostfixModifierPosition
290
+ } = parseClassName(originalClassName);
291
+ let hasPostfixModifier = Boolean(maybePostfixModifierPosition);
292
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
293
+ if (!classGroupId) {
294
+ if (!hasPostfixModifier) {
295
+ // Not a Tailwind class
296
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
297
+ continue;
298
+ }
299
+ classGroupId = getClassGroupId(baseClassName);
300
+ if (!classGroupId) {
301
+ // Not a Tailwind class
302
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
303
+ continue;
304
+ }
305
+ hasPostfixModifier = false;
306
+ }
307
+ const variantModifier = sortModifiers(modifiers).join(':');
308
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
309
+ const classId = modifierId + classGroupId;
310
+ if (classGroupsInConflict.includes(classId)) {
311
+ // Tailwind class omitted due to conflict
312
+ continue;
313
+ }
314
+ classGroupsInConflict.push(classId);
315
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
316
+ for (let i = 0; i < conflictGroups.length; ++i) {
317
+ const group = conflictGroups[i];
318
+ classGroupsInConflict.push(modifierId + group);
319
+ }
320
+ // Tailwind class not in conflict
321
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
322
+ }
323
+ return result;
324
+ };
325
+
326
+ /**
327
+ * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.
328
+ *
329
+ * Specifically:
330
+ * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js
331
+ * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts
332
+ *
333
+ * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
334
+ */
335
+ function twJoin() {
336
+ let index = 0;
337
+ let argument;
338
+ let resolvedValue;
339
+ let string = '';
340
+ while (index < arguments.length) {
341
+ if (argument = arguments[index++]) {
342
+ if (resolvedValue = toValue(argument)) {
343
+ string && (string += ' ');
344
+ string += resolvedValue;
345
+ }
346
+ }
347
+ }
348
+ return string;
349
+ }
350
+ const toValue = mix => {
351
+ if (typeof mix === 'string') {
352
+ return mix;
353
+ }
354
+ let resolvedValue;
355
+ let string = '';
356
+ for (let k = 0; k < mix.length; k++) {
357
+ if (mix[k]) {
358
+ if (resolvedValue = toValue(mix[k])) {
359
+ string && (string += ' ');
360
+ string += resolvedValue;
361
+ }
362
+ }
363
+ }
364
+ return string;
365
+ };
366
+ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
367
+ let configUtils;
368
+ let cacheGet;
369
+ let cacheSet;
370
+ let functionToCall = initTailwindMerge;
371
+ function initTailwindMerge(classList) {
372
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
373
+ configUtils = createConfigUtils(config);
374
+ cacheGet = configUtils.cache.get;
375
+ cacheSet = configUtils.cache.set;
376
+ functionToCall = tailwindMerge;
377
+ return tailwindMerge(classList);
378
+ }
379
+ function tailwindMerge(classList) {
380
+ const cachedResult = cacheGet(classList);
381
+ if (cachedResult) {
382
+ return cachedResult;
383
+ }
384
+ const result = mergeClassList(classList, configUtils);
385
+ cacheSet(classList, result);
386
+ return result;
387
+ }
388
+ return function callTailwindMerge() {
389
+ return functionToCall(twJoin.apply(null, arguments));
390
+ };
391
+ }
392
+ const fromTheme = key => {
393
+ const themeGetter = theme => theme[key] || [];
394
+ themeGetter.isThemeGetter = true;
395
+ return themeGetter;
396
+ };
397
+ const arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i;
398
+ const fractionRegex = /^\d+\/\d+$/;
399
+ const stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);
400
+ const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
401
+ 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$/;
402
+ const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
403
+ // Shadow always begins with x and y offset separated by underscore optionally prepended by inset
404
+ const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
405
+ const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
406
+ const isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);
407
+ const isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);
408
+ const isNumber = value => Boolean(value) && !Number.isNaN(Number(value));
409
+ const isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);
410
+ const isInteger = value => Boolean(value) && Number.isInteger(Number(value));
411
+ const isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));
412
+ const isArbitraryValue = value => arbitraryValueRegex.test(value);
413
+ const isTshirtSize = value => tshirtUnitRegex.test(value);
414
+ const sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);
415
+ const isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);
416
+ const isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);
417
+ const imageLabels = /*#__PURE__*/new Set(['image', 'url']);
418
+ const isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);
419
+ const isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);
420
+ const isAny = () => true;
421
+ const getIsArbitraryValue = (value, label, testValue) => {
422
+ const result = arbitraryValueRegex.exec(value);
423
+ if (result) {
424
+ if (result[1]) {
425
+ return typeof label === 'string' ? result[1] === label : label.has(result[1]);
426
+ }
427
+ return testValue(result[2]);
428
+ }
429
+ return false;
430
+ };
431
+ const isLengthOnly = value =>
432
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
433
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
434
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
435
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);
436
+ const isNever = () => false;
437
+ const isShadow = value => shadowRegex.test(value);
438
+ const isImage = value => imageRegex.test(value);
439
+ const validators = /*#__PURE__*/Object.defineProperty({
440
+ __proto__: null,
441
+ isAny,
442
+ isArbitraryImage,
443
+ isArbitraryLength,
444
+ isArbitraryNumber,
445
+ isArbitraryPosition,
446
+ isArbitraryShadow,
447
+ isArbitrarySize,
448
+ isArbitraryValue,
449
+ isInteger,
450
+ isLength,
451
+ isNumber,
452
+ isPercent,
453
+ isTshirtSize
454
+ }, Symbol.toStringTag, {
455
+ value: 'Module'
456
+ });
457
+ const getDefaultConfig = () => {
458
+ const colors = fromTheme('colors');
459
+ const spacing = fromTheme('spacing');
460
+ const blur = fromTheme('blur');
461
+ const brightness = fromTheme('brightness');
462
+ const borderColor = fromTheme('borderColor');
463
+ const borderRadius = fromTheme('borderRadius');
464
+ const borderSpacing = fromTheme('borderSpacing');
465
+ const borderWidth = fromTheme('borderWidth');
466
+ const contrast = fromTheme('contrast');
467
+ const grayscale = fromTheme('grayscale');
468
+ const hueRotate = fromTheme('hueRotate');
469
+ const invert = fromTheme('invert');
470
+ const gap = fromTheme('gap');
471
+ const gradientColorStops = fromTheme('gradientColorStops');
472
+ const gradientColorStopPositions = fromTheme('gradientColorStopPositions');
473
+ const inset = fromTheme('inset');
474
+ const margin = fromTheme('margin');
475
+ const opacity = fromTheme('opacity');
476
+ const padding = fromTheme('padding');
477
+ const saturate = fromTheme('saturate');
478
+ const scale = fromTheme('scale');
479
+ const sepia = fromTheme('sepia');
480
+ const skew = fromTheme('skew');
481
+ const space = fromTheme('space');
482
+ const translate = fromTheme('translate');
483
+ const getOverscroll = () => ['auto', 'contain', 'none'];
484
+ const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];
485
+ const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];
486
+ const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];
487
+ const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];
488
+ const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];
489
+ const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];
490
+ const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];
491
+ const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];
492
+ const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];
493
+ const getZeroAndEmpty = () => ['', '0', isArbitraryValue];
494
+ const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];
495
+ const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];
496
+ return {
497
+ cacheSize: 500,
498
+ separator: ':',
499
+ theme: {
500
+ colors: [isAny],
501
+ spacing: [isLength, isArbitraryLength],
502
+ blur: ['none', '', isTshirtSize, isArbitraryValue],
503
+ brightness: getNumberAndArbitrary(),
504
+ borderColor: [colors],
505
+ borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],
506
+ borderSpacing: getSpacingWithArbitrary(),
507
+ borderWidth: getLengthWithEmptyAndArbitrary(),
508
+ contrast: getNumberAndArbitrary(),
509
+ grayscale: getZeroAndEmpty(),
510
+ hueRotate: getNumberAndArbitrary(),
511
+ invert: getZeroAndEmpty(),
512
+ gap: getSpacingWithArbitrary(),
513
+ gradientColorStops: [colors],
514
+ gradientColorStopPositions: [isPercent, isArbitraryLength],
515
+ inset: getSpacingWithAutoAndArbitrary(),
516
+ margin: getSpacingWithAutoAndArbitrary(),
517
+ opacity: getNumberAndArbitrary(),
518
+ padding: getSpacingWithArbitrary(),
519
+ saturate: getNumberAndArbitrary(),
520
+ scale: getNumberAndArbitrary(),
521
+ sepia: getZeroAndEmpty(),
522
+ skew: getNumberAndArbitrary(),
523
+ space: getSpacingWithArbitrary(),
524
+ translate: getSpacingWithArbitrary()
525
+ },
526
+ classGroups: {
527
+ // Layout
528
+ /**
529
+ * Aspect Ratio
530
+ * @see https://tailwindcss.com/docs/aspect-ratio
531
+ */
532
+ aspect: [{
533
+ aspect: ['auto', 'square', 'video', isArbitraryValue]
534
+ }],
535
+ /**
536
+ * Container
537
+ * @see https://tailwindcss.com/docs/container
538
+ */
539
+ container: ['container'],
540
+ /**
541
+ * Columns
542
+ * @see https://tailwindcss.com/docs/columns
543
+ */
544
+ columns: [{
545
+ columns: [isTshirtSize]
546
+ }],
547
+ /**
548
+ * Break After
549
+ * @see https://tailwindcss.com/docs/break-after
550
+ */
551
+ 'break-after': [{
552
+ 'break-after': getBreaks()
553
+ }],
554
+ /**
555
+ * Break Before
556
+ * @see https://tailwindcss.com/docs/break-before
557
+ */
558
+ 'break-before': [{
559
+ 'break-before': getBreaks()
560
+ }],
561
+ /**
562
+ * Break Inside
563
+ * @see https://tailwindcss.com/docs/break-inside
564
+ */
565
+ 'break-inside': [{
566
+ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']
567
+ }],
568
+ /**
569
+ * Box Decoration Break
570
+ * @see https://tailwindcss.com/docs/box-decoration-break
571
+ */
572
+ 'box-decoration': [{
573
+ 'box-decoration': ['slice', 'clone']
574
+ }],
575
+ /**
576
+ * Box Sizing
577
+ * @see https://tailwindcss.com/docs/box-sizing
578
+ */
579
+ box: [{
580
+ box: ['border', 'content']
581
+ }],
582
+ /**
583
+ * Display
584
+ * @see https://tailwindcss.com/docs/display
585
+ */
586
+ 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'],
587
+ /**
588
+ * Floats
589
+ * @see https://tailwindcss.com/docs/float
590
+ */
591
+ float: [{
592
+ float: ['right', 'left', 'none', 'start', 'end']
593
+ }],
594
+ /**
595
+ * Clear
596
+ * @see https://tailwindcss.com/docs/clear
597
+ */
598
+ clear: [{
599
+ clear: ['left', 'right', 'both', 'none', 'start', 'end']
600
+ }],
601
+ /**
602
+ * Isolation
603
+ * @see https://tailwindcss.com/docs/isolation
604
+ */
605
+ isolation: ['isolate', 'isolation-auto'],
606
+ /**
607
+ * Object Fit
608
+ * @see https://tailwindcss.com/docs/object-fit
609
+ */
610
+ 'object-fit': [{
611
+ object: ['contain', 'cover', 'fill', 'none', 'scale-down']
612
+ }],
613
+ /**
614
+ * Object Position
615
+ * @see https://tailwindcss.com/docs/object-position
616
+ */
617
+ 'object-position': [{
618
+ object: [...getPositions(), isArbitraryValue]
619
+ }],
620
+ /**
621
+ * Overflow
622
+ * @see https://tailwindcss.com/docs/overflow
623
+ */
624
+ overflow: [{
625
+ overflow: getOverflow()
626
+ }],
627
+ /**
628
+ * Overflow X
629
+ * @see https://tailwindcss.com/docs/overflow
630
+ */
631
+ 'overflow-x': [{
632
+ 'overflow-x': getOverflow()
633
+ }],
634
+ /**
635
+ * Overflow Y
636
+ * @see https://tailwindcss.com/docs/overflow
637
+ */
638
+ 'overflow-y': [{
639
+ 'overflow-y': getOverflow()
640
+ }],
641
+ /**
642
+ * Overscroll Behavior
643
+ * @see https://tailwindcss.com/docs/overscroll-behavior
644
+ */
645
+ overscroll: [{
646
+ overscroll: getOverscroll()
647
+ }],
648
+ /**
649
+ * Overscroll Behavior X
650
+ * @see https://tailwindcss.com/docs/overscroll-behavior
651
+ */
652
+ 'overscroll-x': [{
653
+ 'overscroll-x': getOverscroll()
654
+ }],
655
+ /**
656
+ * Overscroll Behavior Y
657
+ * @see https://tailwindcss.com/docs/overscroll-behavior
658
+ */
659
+ 'overscroll-y': [{
660
+ 'overscroll-y': getOverscroll()
661
+ }],
662
+ /**
663
+ * Position
664
+ * @see https://tailwindcss.com/docs/position
665
+ */
666
+ position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],
667
+ /**
668
+ * Top / Right / Bottom / Left
669
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
670
+ */
671
+ inset: [{
672
+ inset: [inset]
673
+ }],
674
+ /**
675
+ * Right / Left
676
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
677
+ */
678
+ 'inset-x': [{
679
+ 'inset-x': [inset]
680
+ }],
681
+ /**
682
+ * Top / Bottom
683
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
684
+ */
685
+ 'inset-y': [{
686
+ 'inset-y': [inset]
687
+ }],
688
+ /**
689
+ * Start
690
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
691
+ */
692
+ start: [{
693
+ start: [inset]
694
+ }],
695
+ /**
696
+ * End
697
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
698
+ */
699
+ end: [{
700
+ end: [inset]
701
+ }],
702
+ /**
703
+ * Top
704
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
705
+ */
706
+ top: [{
707
+ top: [inset]
708
+ }],
709
+ /**
710
+ * Right
711
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
712
+ */
713
+ right: [{
714
+ right: [inset]
715
+ }],
716
+ /**
717
+ * Bottom
718
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
719
+ */
720
+ bottom: [{
721
+ bottom: [inset]
722
+ }],
723
+ /**
724
+ * Left
725
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
726
+ */
727
+ left: [{
728
+ left: [inset]
729
+ }],
730
+ /**
731
+ * Visibility
732
+ * @see https://tailwindcss.com/docs/visibility
733
+ */
734
+ visibility: ['visible', 'invisible', 'collapse'],
735
+ /**
736
+ * Z-Index
737
+ * @see https://tailwindcss.com/docs/z-index
738
+ */
739
+ z: [{
740
+ z: ['auto', isInteger, isArbitraryValue]
741
+ }],
742
+ // Flexbox and Grid
743
+ /**
744
+ * Flex Basis
745
+ * @see https://tailwindcss.com/docs/flex-basis
746
+ */
747
+ basis: [{
748
+ basis: getSpacingWithAutoAndArbitrary()
749
+ }],
750
+ /**
751
+ * Flex Direction
752
+ * @see https://tailwindcss.com/docs/flex-direction
753
+ */
754
+ 'flex-direction': [{
755
+ flex: ['row', 'row-reverse', 'col', 'col-reverse']
756
+ }],
757
+ /**
758
+ * Flex Wrap
759
+ * @see https://tailwindcss.com/docs/flex-wrap
760
+ */
761
+ 'flex-wrap': [{
762
+ flex: ['wrap', 'wrap-reverse', 'nowrap']
763
+ }],
764
+ /**
765
+ * Flex
766
+ * @see https://tailwindcss.com/docs/flex
767
+ */
768
+ flex: [{
769
+ flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]
770
+ }],
771
+ /**
772
+ * Flex Grow
773
+ * @see https://tailwindcss.com/docs/flex-grow
774
+ */
775
+ grow: [{
776
+ grow: getZeroAndEmpty()
777
+ }],
778
+ /**
779
+ * Flex Shrink
780
+ * @see https://tailwindcss.com/docs/flex-shrink
781
+ */
782
+ shrink: [{
783
+ shrink: getZeroAndEmpty()
784
+ }],
785
+ /**
786
+ * Order
787
+ * @see https://tailwindcss.com/docs/order
788
+ */
789
+ order: [{
790
+ order: ['first', 'last', 'none', isInteger, isArbitraryValue]
791
+ }],
792
+ /**
793
+ * Grid Template Columns
794
+ * @see https://tailwindcss.com/docs/grid-template-columns
795
+ */
796
+ 'grid-cols': [{
797
+ 'grid-cols': [isAny]
798
+ }],
799
+ /**
800
+ * Grid Column Start / End
801
+ * @see https://tailwindcss.com/docs/grid-column
802
+ */
803
+ 'col-start-end': [{
804
+ col: ['auto', {
805
+ span: ['full', isInteger, isArbitraryValue]
806
+ }, isArbitraryValue]
807
+ }],
808
+ /**
809
+ * Grid Column Start
810
+ * @see https://tailwindcss.com/docs/grid-column
811
+ */
812
+ 'col-start': [{
813
+ 'col-start': getNumberWithAutoAndArbitrary()
814
+ }],
815
+ /**
816
+ * Grid Column End
817
+ * @see https://tailwindcss.com/docs/grid-column
818
+ */
819
+ 'col-end': [{
820
+ 'col-end': getNumberWithAutoAndArbitrary()
821
+ }],
822
+ /**
823
+ * Grid Template Rows
824
+ * @see https://tailwindcss.com/docs/grid-template-rows
825
+ */
826
+ 'grid-rows': [{
827
+ 'grid-rows': [isAny]
828
+ }],
829
+ /**
830
+ * Grid Row Start / End
831
+ * @see https://tailwindcss.com/docs/grid-row
832
+ */
833
+ 'row-start-end': [{
834
+ row: ['auto', {
835
+ span: [isInteger, isArbitraryValue]
836
+ }, isArbitraryValue]
837
+ }],
838
+ /**
839
+ * Grid Row Start
840
+ * @see https://tailwindcss.com/docs/grid-row
841
+ */
842
+ 'row-start': [{
843
+ 'row-start': getNumberWithAutoAndArbitrary()
844
+ }],
845
+ /**
846
+ * Grid Row End
847
+ * @see https://tailwindcss.com/docs/grid-row
848
+ */
849
+ 'row-end': [{
850
+ 'row-end': getNumberWithAutoAndArbitrary()
851
+ }],
852
+ /**
853
+ * Grid Auto Flow
854
+ * @see https://tailwindcss.com/docs/grid-auto-flow
855
+ */
856
+ 'grid-flow': [{
857
+ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']
858
+ }],
859
+ /**
860
+ * Grid Auto Columns
861
+ * @see https://tailwindcss.com/docs/grid-auto-columns
862
+ */
863
+ 'auto-cols': [{
864
+ 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]
865
+ }],
866
+ /**
867
+ * Grid Auto Rows
868
+ * @see https://tailwindcss.com/docs/grid-auto-rows
869
+ */
870
+ 'auto-rows': [{
871
+ 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]
872
+ }],
873
+ /**
874
+ * Gap
875
+ * @see https://tailwindcss.com/docs/gap
876
+ */
877
+ gap: [{
878
+ gap: [gap]
879
+ }],
880
+ /**
881
+ * Gap X
882
+ * @see https://tailwindcss.com/docs/gap
883
+ */
884
+ 'gap-x': [{
885
+ 'gap-x': [gap]
886
+ }],
887
+ /**
888
+ * Gap Y
889
+ * @see https://tailwindcss.com/docs/gap
890
+ */
891
+ 'gap-y': [{
892
+ 'gap-y': [gap]
893
+ }],
894
+ /**
895
+ * Justify Content
896
+ * @see https://tailwindcss.com/docs/justify-content
897
+ */
898
+ 'justify-content': [{
899
+ justify: ['normal', ...getAlign()]
900
+ }],
901
+ /**
902
+ * Justify Items
903
+ * @see https://tailwindcss.com/docs/justify-items
904
+ */
905
+ 'justify-items': [{
906
+ 'justify-items': ['start', 'end', 'center', 'stretch']
907
+ }],
908
+ /**
909
+ * Justify Self
910
+ * @see https://tailwindcss.com/docs/justify-self
911
+ */
912
+ 'justify-self': [{
913
+ 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']
914
+ }],
915
+ /**
916
+ * Align Content
917
+ * @see https://tailwindcss.com/docs/align-content
918
+ */
919
+ 'align-content': [{
920
+ content: ['normal', ...getAlign(), 'baseline']
921
+ }],
922
+ /**
923
+ * Align Items
924
+ * @see https://tailwindcss.com/docs/align-items
925
+ */
926
+ 'align-items': [{
927
+ items: ['start', 'end', 'center', 'baseline', 'stretch']
928
+ }],
929
+ /**
930
+ * Align Self
931
+ * @see https://tailwindcss.com/docs/align-self
932
+ */
933
+ 'align-self': [{
934
+ self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']
935
+ }],
936
+ /**
937
+ * Place Content
938
+ * @see https://tailwindcss.com/docs/place-content
939
+ */
940
+ 'place-content': [{
941
+ 'place-content': [...getAlign(), 'baseline']
942
+ }],
943
+ /**
944
+ * Place Items
945
+ * @see https://tailwindcss.com/docs/place-items
946
+ */
947
+ 'place-items': [{
948
+ 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']
949
+ }],
950
+ /**
951
+ * Place Self
952
+ * @see https://tailwindcss.com/docs/place-self
953
+ */
954
+ 'place-self': [{
955
+ 'place-self': ['auto', 'start', 'end', 'center', 'stretch']
956
+ }],
957
+ // Spacing
958
+ /**
959
+ * Padding
960
+ * @see https://tailwindcss.com/docs/padding
961
+ */
962
+ p: [{
963
+ p: [padding]
964
+ }],
965
+ /**
966
+ * Padding X
967
+ * @see https://tailwindcss.com/docs/padding
968
+ */
969
+ px: [{
970
+ px: [padding]
971
+ }],
972
+ /**
973
+ * Padding Y
974
+ * @see https://tailwindcss.com/docs/padding
975
+ */
976
+ py: [{
977
+ py: [padding]
978
+ }],
979
+ /**
980
+ * Padding Start
981
+ * @see https://tailwindcss.com/docs/padding
982
+ */
983
+ ps: [{
984
+ ps: [padding]
985
+ }],
986
+ /**
987
+ * Padding End
988
+ * @see https://tailwindcss.com/docs/padding
989
+ */
990
+ pe: [{
991
+ pe: [padding]
992
+ }],
993
+ /**
994
+ * Padding Top
995
+ * @see https://tailwindcss.com/docs/padding
996
+ */
997
+ pt: [{
998
+ pt: [padding]
999
+ }],
1000
+ /**
1001
+ * Padding Right
1002
+ * @see https://tailwindcss.com/docs/padding
1003
+ */
1004
+ pr: [{
1005
+ pr: [padding]
1006
+ }],
1007
+ /**
1008
+ * Padding Bottom
1009
+ * @see https://tailwindcss.com/docs/padding
1010
+ */
1011
+ pb: [{
1012
+ pb: [padding]
1013
+ }],
1014
+ /**
1015
+ * Padding Left
1016
+ * @see https://tailwindcss.com/docs/padding
1017
+ */
1018
+ pl: [{
1019
+ pl: [padding]
1020
+ }],
1021
+ /**
1022
+ * Margin
1023
+ * @see https://tailwindcss.com/docs/margin
1024
+ */
1025
+ m: [{
1026
+ m: [margin]
1027
+ }],
1028
+ /**
1029
+ * Margin X
1030
+ * @see https://tailwindcss.com/docs/margin
1031
+ */
1032
+ mx: [{
1033
+ mx: [margin]
1034
+ }],
1035
+ /**
1036
+ * Margin Y
1037
+ * @see https://tailwindcss.com/docs/margin
1038
+ */
1039
+ my: [{
1040
+ my: [margin]
1041
+ }],
1042
+ /**
1043
+ * Margin Start
1044
+ * @see https://tailwindcss.com/docs/margin
1045
+ */
1046
+ ms: [{
1047
+ ms: [margin]
1048
+ }],
1049
+ /**
1050
+ * Margin End
1051
+ * @see https://tailwindcss.com/docs/margin
1052
+ */
1053
+ me: [{
1054
+ me: [margin]
1055
+ }],
1056
+ /**
1057
+ * Margin Top
1058
+ * @see https://tailwindcss.com/docs/margin
1059
+ */
1060
+ mt: [{
1061
+ mt: [margin]
1062
+ }],
1063
+ /**
1064
+ * Margin Right
1065
+ * @see https://tailwindcss.com/docs/margin
1066
+ */
1067
+ mr: [{
1068
+ mr: [margin]
1069
+ }],
1070
+ /**
1071
+ * Margin Bottom
1072
+ * @see https://tailwindcss.com/docs/margin
1073
+ */
1074
+ mb: [{
1075
+ mb: [margin]
1076
+ }],
1077
+ /**
1078
+ * Margin Left
1079
+ * @see https://tailwindcss.com/docs/margin
1080
+ */
1081
+ ml: [{
1082
+ ml: [margin]
1083
+ }],
1084
+ /**
1085
+ * Space Between X
1086
+ * @see https://tailwindcss.com/docs/space
1087
+ */
1088
+ 'space-x': [{
1089
+ 'space-x': [space]
1090
+ }],
1091
+ /**
1092
+ * Space Between X Reverse
1093
+ * @see https://tailwindcss.com/docs/space
1094
+ */
1095
+ 'space-x-reverse': ['space-x-reverse'],
1096
+ /**
1097
+ * Space Between Y
1098
+ * @see https://tailwindcss.com/docs/space
1099
+ */
1100
+ 'space-y': [{
1101
+ 'space-y': [space]
1102
+ }],
1103
+ /**
1104
+ * Space Between Y Reverse
1105
+ * @see https://tailwindcss.com/docs/space
1106
+ */
1107
+ 'space-y-reverse': ['space-y-reverse'],
1108
+ // Sizing
1109
+ /**
1110
+ * Width
1111
+ * @see https://tailwindcss.com/docs/width
1112
+ */
1113
+ w: [{
1114
+ w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]
1115
+ }],
1116
+ /**
1117
+ * Min-Width
1118
+ * @see https://tailwindcss.com/docs/min-width
1119
+ */
1120
+ 'min-w': [{
1121
+ 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']
1122
+ }],
1123
+ /**
1124
+ * Max-Width
1125
+ * @see https://tailwindcss.com/docs/max-width
1126
+ */
1127
+ 'max-w': [{
1128
+ 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {
1129
+ screen: [isTshirtSize]
1130
+ }, isTshirtSize]
1131
+ }],
1132
+ /**
1133
+ * Height
1134
+ * @see https://tailwindcss.com/docs/height
1135
+ */
1136
+ h: [{
1137
+ h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']
1138
+ }],
1139
+ /**
1140
+ * Min-Height
1141
+ * @see https://tailwindcss.com/docs/min-height
1142
+ */
1143
+ 'min-h': [{
1144
+ 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']
1145
+ }],
1146
+ /**
1147
+ * Max-Height
1148
+ * @see https://tailwindcss.com/docs/max-height
1149
+ */
1150
+ 'max-h': [{
1151
+ 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']
1152
+ }],
1153
+ /**
1154
+ * Size
1155
+ * @see https://tailwindcss.com/docs/size
1156
+ */
1157
+ size: [{
1158
+ size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']
1159
+ }],
1160
+ // Typography
1161
+ /**
1162
+ * Font Size
1163
+ * @see https://tailwindcss.com/docs/font-size
1164
+ */
1165
+ 'font-size': [{
1166
+ text: ['base', isTshirtSize, isArbitraryLength]
1167
+ }],
1168
+ /**
1169
+ * Font Smoothing
1170
+ * @see https://tailwindcss.com/docs/font-smoothing
1171
+ */
1172
+ 'font-smoothing': ['antialiased', 'subpixel-antialiased'],
1173
+ /**
1174
+ * Font Style
1175
+ * @see https://tailwindcss.com/docs/font-style
1176
+ */
1177
+ 'font-style': ['italic', 'not-italic'],
1178
+ /**
1179
+ * Font Weight
1180
+ * @see https://tailwindcss.com/docs/font-weight
1181
+ */
1182
+ 'font-weight': [{
1183
+ font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]
1184
+ }],
1185
+ /**
1186
+ * Font Family
1187
+ * @see https://tailwindcss.com/docs/font-family
1188
+ */
1189
+ 'font-family': [{
1190
+ font: [isAny]
1191
+ }],
1192
+ /**
1193
+ * Font Variant Numeric
1194
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1195
+ */
1196
+ 'fvn-normal': ['normal-nums'],
1197
+ /**
1198
+ * Font Variant Numeric
1199
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1200
+ */
1201
+ 'fvn-ordinal': ['ordinal'],
1202
+ /**
1203
+ * Font Variant Numeric
1204
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1205
+ */
1206
+ 'fvn-slashed-zero': ['slashed-zero'],
1207
+ /**
1208
+ * Font Variant Numeric
1209
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1210
+ */
1211
+ 'fvn-figure': ['lining-nums', 'oldstyle-nums'],
1212
+ /**
1213
+ * Font Variant Numeric
1214
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1215
+ */
1216
+ 'fvn-spacing': ['proportional-nums', 'tabular-nums'],
1217
+ /**
1218
+ * Font Variant Numeric
1219
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1220
+ */
1221
+ 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],
1222
+ /**
1223
+ * Letter Spacing
1224
+ * @see https://tailwindcss.com/docs/letter-spacing
1225
+ */
1226
+ tracking: [{
1227
+ tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]
1228
+ }],
1229
+ /**
1230
+ * Line Clamp
1231
+ * @see https://tailwindcss.com/docs/line-clamp
1232
+ */
1233
+ 'line-clamp': [{
1234
+ 'line-clamp': ['none', isNumber, isArbitraryNumber]
1235
+ }],
1236
+ /**
1237
+ * Line Height
1238
+ * @see https://tailwindcss.com/docs/line-height
1239
+ */
1240
+ leading: [{
1241
+ leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]
1242
+ }],
1243
+ /**
1244
+ * List Style Image
1245
+ * @see https://tailwindcss.com/docs/list-style-image
1246
+ */
1247
+ 'list-image': [{
1248
+ 'list-image': ['none', isArbitraryValue]
1249
+ }],
1250
+ /**
1251
+ * List Style Type
1252
+ * @see https://tailwindcss.com/docs/list-style-type
1253
+ */
1254
+ 'list-style-type': [{
1255
+ list: ['none', 'disc', 'decimal', isArbitraryValue]
1256
+ }],
1257
+ /**
1258
+ * List Style Position
1259
+ * @see https://tailwindcss.com/docs/list-style-position
1260
+ */
1261
+ 'list-style-position': [{
1262
+ list: ['inside', 'outside']
1263
+ }],
1264
+ /**
1265
+ * Placeholder Color
1266
+ * @deprecated since Tailwind CSS v3.0.0
1267
+ * @see https://tailwindcss.com/docs/placeholder-color
1268
+ */
1269
+ 'placeholder-color': [{
1270
+ placeholder: [colors]
1271
+ }],
1272
+ /**
1273
+ * Placeholder Opacity
1274
+ * @see https://tailwindcss.com/docs/placeholder-opacity
1275
+ */
1276
+ 'placeholder-opacity': [{
1277
+ 'placeholder-opacity': [opacity]
1278
+ }],
1279
+ /**
1280
+ * Text Alignment
1281
+ * @see https://tailwindcss.com/docs/text-align
1282
+ */
1283
+ 'text-alignment': [{
1284
+ text: ['left', 'center', 'right', 'justify', 'start', 'end']
1285
+ }],
1286
+ /**
1287
+ * Text Color
1288
+ * @see https://tailwindcss.com/docs/text-color
1289
+ */
1290
+ 'text-color': [{
1291
+ text: [colors]
1292
+ }],
1293
+ /**
1294
+ * Text Opacity
1295
+ * @see https://tailwindcss.com/docs/text-opacity
1296
+ */
1297
+ 'text-opacity': [{
1298
+ 'text-opacity': [opacity]
1299
+ }],
1300
+ /**
1301
+ * Text Decoration
1302
+ * @see https://tailwindcss.com/docs/text-decoration
1303
+ */
1304
+ 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],
1305
+ /**
1306
+ * Text Decoration Style
1307
+ * @see https://tailwindcss.com/docs/text-decoration-style
1308
+ */
1309
+ 'text-decoration-style': [{
1310
+ decoration: [...getLineStyles(), 'wavy']
1311
+ }],
1312
+ /**
1313
+ * Text Decoration Thickness
1314
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1315
+ */
1316
+ 'text-decoration-thickness': [{
1317
+ decoration: ['auto', 'from-font', isLength, isArbitraryLength]
1318
+ }],
1319
+ /**
1320
+ * Text Underline Offset
1321
+ * @see https://tailwindcss.com/docs/text-underline-offset
1322
+ */
1323
+ 'underline-offset': [{
1324
+ 'underline-offset': ['auto', isLength, isArbitraryValue]
1325
+ }],
1326
+ /**
1327
+ * Text Decoration Color
1328
+ * @see https://tailwindcss.com/docs/text-decoration-color
1329
+ */
1330
+ 'text-decoration-color': [{
1331
+ decoration: [colors]
1332
+ }],
1333
+ /**
1334
+ * Text Transform
1335
+ * @see https://tailwindcss.com/docs/text-transform
1336
+ */
1337
+ 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],
1338
+ /**
1339
+ * Text Overflow
1340
+ * @see https://tailwindcss.com/docs/text-overflow
1341
+ */
1342
+ 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],
1343
+ /**
1344
+ * Text Wrap
1345
+ * @see https://tailwindcss.com/docs/text-wrap
1346
+ */
1347
+ 'text-wrap': [{
1348
+ text: ['wrap', 'nowrap', 'balance', 'pretty']
1349
+ }],
1350
+ /**
1351
+ * Text Indent
1352
+ * @see https://tailwindcss.com/docs/text-indent
1353
+ */
1354
+ indent: [{
1355
+ indent: getSpacingWithArbitrary()
1356
+ }],
1357
+ /**
1358
+ * Vertical Alignment
1359
+ * @see https://tailwindcss.com/docs/vertical-align
1360
+ */
1361
+ 'vertical-align': [{
1362
+ align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]
1363
+ }],
1364
+ /**
1365
+ * Whitespace
1366
+ * @see https://tailwindcss.com/docs/whitespace
1367
+ */
1368
+ whitespace: [{
1369
+ whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']
1370
+ }],
1371
+ /**
1372
+ * Word Break
1373
+ * @see https://tailwindcss.com/docs/word-break
1374
+ */
1375
+ break: [{
1376
+ break: ['normal', 'words', 'all', 'keep']
1377
+ }],
1378
+ /**
1379
+ * Hyphens
1380
+ * @see https://tailwindcss.com/docs/hyphens
1381
+ */
1382
+ hyphens: [{
1383
+ hyphens: ['none', 'manual', 'auto']
1384
+ }],
1385
+ /**
1386
+ * Content
1387
+ * @see https://tailwindcss.com/docs/content
1388
+ */
1389
+ content: [{
1390
+ content: ['none', isArbitraryValue]
1391
+ }],
1392
+ // Backgrounds
1393
+ /**
1394
+ * Background Attachment
1395
+ * @see https://tailwindcss.com/docs/background-attachment
1396
+ */
1397
+ 'bg-attachment': [{
1398
+ bg: ['fixed', 'local', 'scroll']
1399
+ }],
1400
+ /**
1401
+ * Background Clip
1402
+ * @see https://tailwindcss.com/docs/background-clip
1403
+ */
1404
+ 'bg-clip': [{
1405
+ 'bg-clip': ['border', 'padding', 'content', 'text']
1406
+ }],
1407
+ /**
1408
+ * Background Opacity
1409
+ * @deprecated since Tailwind CSS v3.0.0
1410
+ * @see https://tailwindcss.com/docs/background-opacity
1411
+ */
1412
+ 'bg-opacity': [{
1413
+ 'bg-opacity': [opacity]
1414
+ }],
1415
+ /**
1416
+ * Background Origin
1417
+ * @see https://tailwindcss.com/docs/background-origin
1418
+ */
1419
+ 'bg-origin': [{
1420
+ 'bg-origin': ['border', 'padding', 'content']
1421
+ }],
1422
+ /**
1423
+ * Background Position
1424
+ * @see https://tailwindcss.com/docs/background-position
1425
+ */
1426
+ 'bg-position': [{
1427
+ bg: [...getPositions(), isArbitraryPosition]
1428
+ }],
1429
+ /**
1430
+ * Background Repeat
1431
+ * @see https://tailwindcss.com/docs/background-repeat
1432
+ */
1433
+ 'bg-repeat': [{
1434
+ bg: ['no-repeat', {
1435
+ repeat: ['', 'x', 'y', 'round', 'space']
1436
+ }]
1437
+ }],
1438
+ /**
1439
+ * Background Size
1440
+ * @see https://tailwindcss.com/docs/background-size
1441
+ */
1442
+ 'bg-size': [{
1443
+ bg: ['auto', 'cover', 'contain', isArbitrarySize]
1444
+ }],
1445
+ /**
1446
+ * Background Image
1447
+ * @see https://tailwindcss.com/docs/background-image
1448
+ */
1449
+ 'bg-image': [{
1450
+ bg: ['none', {
1451
+ 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']
1452
+ }, isArbitraryImage]
1453
+ }],
1454
+ /**
1455
+ * Background Color
1456
+ * @see https://tailwindcss.com/docs/background-color
1457
+ */
1458
+ 'bg-color': [{
1459
+ bg: [colors]
1460
+ }],
1461
+ /**
1462
+ * Gradient Color Stops From Position
1463
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1464
+ */
1465
+ 'gradient-from-pos': [{
1466
+ from: [gradientColorStopPositions]
1467
+ }],
1468
+ /**
1469
+ * Gradient Color Stops Via Position
1470
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1471
+ */
1472
+ 'gradient-via-pos': [{
1473
+ via: [gradientColorStopPositions]
1474
+ }],
1475
+ /**
1476
+ * Gradient Color Stops To Position
1477
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1478
+ */
1479
+ 'gradient-to-pos': [{
1480
+ to: [gradientColorStopPositions]
1481
+ }],
1482
+ /**
1483
+ * Gradient Color Stops From
1484
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1485
+ */
1486
+ 'gradient-from': [{
1487
+ from: [gradientColorStops]
1488
+ }],
1489
+ /**
1490
+ * Gradient Color Stops Via
1491
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1492
+ */
1493
+ 'gradient-via': [{
1494
+ via: [gradientColorStops]
1495
+ }],
1496
+ /**
1497
+ * Gradient Color Stops To
1498
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1499
+ */
1500
+ 'gradient-to': [{
1501
+ to: [gradientColorStops]
1502
+ }],
1503
+ // Borders
1504
+ /**
1505
+ * Border Radius
1506
+ * @see https://tailwindcss.com/docs/border-radius
1507
+ */
1508
+ rounded: [{
1509
+ rounded: [borderRadius]
1510
+ }],
1511
+ /**
1512
+ * Border Radius Start
1513
+ * @see https://tailwindcss.com/docs/border-radius
1514
+ */
1515
+ 'rounded-s': [{
1516
+ 'rounded-s': [borderRadius]
1517
+ }],
1518
+ /**
1519
+ * Border Radius End
1520
+ * @see https://tailwindcss.com/docs/border-radius
1521
+ */
1522
+ 'rounded-e': [{
1523
+ 'rounded-e': [borderRadius]
1524
+ }],
1525
+ /**
1526
+ * Border Radius Top
1527
+ * @see https://tailwindcss.com/docs/border-radius
1528
+ */
1529
+ 'rounded-t': [{
1530
+ 'rounded-t': [borderRadius]
1531
+ }],
1532
+ /**
1533
+ * Border Radius Right
1534
+ * @see https://tailwindcss.com/docs/border-radius
1535
+ */
1536
+ 'rounded-r': [{
1537
+ 'rounded-r': [borderRadius]
1538
+ }],
1539
+ /**
1540
+ * Border Radius Bottom
1541
+ * @see https://tailwindcss.com/docs/border-radius
1542
+ */
1543
+ 'rounded-b': [{
1544
+ 'rounded-b': [borderRadius]
1545
+ }],
1546
+ /**
1547
+ * Border Radius Left
1548
+ * @see https://tailwindcss.com/docs/border-radius
1549
+ */
1550
+ 'rounded-l': [{
1551
+ 'rounded-l': [borderRadius]
1552
+ }],
1553
+ /**
1554
+ * Border Radius Start Start
1555
+ * @see https://tailwindcss.com/docs/border-radius
1556
+ */
1557
+ 'rounded-ss': [{
1558
+ 'rounded-ss': [borderRadius]
1559
+ }],
1560
+ /**
1561
+ * Border Radius Start End
1562
+ * @see https://tailwindcss.com/docs/border-radius
1563
+ */
1564
+ 'rounded-se': [{
1565
+ 'rounded-se': [borderRadius]
1566
+ }],
1567
+ /**
1568
+ * Border Radius End End
1569
+ * @see https://tailwindcss.com/docs/border-radius
1570
+ */
1571
+ 'rounded-ee': [{
1572
+ 'rounded-ee': [borderRadius]
1573
+ }],
1574
+ /**
1575
+ * Border Radius End Start
1576
+ * @see https://tailwindcss.com/docs/border-radius
1577
+ */
1578
+ 'rounded-es': [{
1579
+ 'rounded-es': [borderRadius]
1580
+ }],
1581
+ /**
1582
+ * Border Radius Top Left
1583
+ * @see https://tailwindcss.com/docs/border-radius
1584
+ */
1585
+ 'rounded-tl': [{
1586
+ 'rounded-tl': [borderRadius]
1587
+ }],
1588
+ /**
1589
+ * Border Radius Top Right
1590
+ * @see https://tailwindcss.com/docs/border-radius
1591
+ */
1592
+ 'rounded-tr': [{
1593
+ 'rounded-tr': [borderRadius]
1594
+ }],
1595
+ /**
1596
+ * Border Radius Bottom Right
1597
+ * @see https://tailwindcss.com/docs/border-radius
1598
+ */
1599
+ 'rounded-br': [{
1600
+ 'rounded-br': [borderRadius]
1601
+ }],
1602
+ /**
1603
+ * Border Radius Bottom Left
1604
+ * @see https://tailwindcss.com/docs/border-radius
1605
+ */
1606
+ 'rounded-bl': [{
1607
+ 'rounded-bl': [borderRadius]
1608
+ }],
1609
+ /**
1610
+ * Border Width
1611
+ * @see https://tailwindcss.com/docs/border-width
1612
+ */
1613
+ 'border-w': [{
1614
+ border: [borderWidth]
1615
+ }],
1616
+ /**
1617
+ * Border Width X
1618
+ * @see https://tailwindcss.com/docs/border-width
1619
+ */
1620
+ 'border-w-x': [{
1621
+ 'border-x': [borderWidth]
1622
+ }],
1623
+ /**
1624
+ * Border Width Y
1625
+ * @see https://tailwindcss.com/docs/border-width
1626
+ */
1627
+ 'border-w-y': [{
1628
+ 'border-y': [borderWidth]
1629
+ }],
1630
+ /**
1631
+ * Border Width Start
1632
+ * @see https://tailwindcss.com/docs/border-width
1633
+ */
1634
+ 'border-w-s': [{
1635
+ 'border-s': [borderWidth]
1636
+ }],
1637
+ /**
1638
+ * Border Width End
1639
+ * @see https://tailwindcss.com/docs/border-width
1640
+ */
1641
+ 'border-w-e': [{
1642
+ 'border-e': [borderWidth]
1643
+ }],
1644
+ /**
1645
+ * Border Width Top
1646
+ * @see https://tailwindcss.com/docs/border-width
1647
+ */
1648
+ 'border-w-t': [{
1649
+ 'border-t': [borderWidth]
1650
+ }],
1651
+ /**
1652
+ * Border Width Right
1653
+ * @see https://tailwindcss.com/docs/border-width
1654
+ */
1655
+ 'border-w-r': [{
1656
+ 'border-r': [borderWidth]
1657
+ }],
1658
+ /**
1659
+ * Border Width Bottom
1660
+ * @see https://tailwindcss.com/docs/border-width
1661
+ */
1662
+ 'border-w-b': [{
1663
+ 'border-b': [borderWidth]
1664
+ }],
1665
+ /**
1666
+ * Border Width Left
1667
+ * @see https://tailwindcss.com/docs/border-width
1668
+ */
1669
+ 'border-w-l': [{
1670
+ 'border-l': [borderWidth]
1671
+ }],
1672
+ /**
1673
+ * Border Opacity
1674
+ * @see https://tailwindcss.com/docs/border-opacity
1675
+ */
1676
+ 'border-opacity': [{
1677
+ 'border-opacity': [opacity]
1678
+ }],
1679
+ /**
1680
+ * Border Style
1681
+ * @see https://tailwindcss.com/docs/border-style
1682
+ */
1683
+ 'border-style': [{
1684
+ border: [...getLineStyles(), 'hidden']
1685
+ }],
1686
+ /**
1687
+ * Divide Width X
1688
+ * @see https://tailwindcss.com/docs/divide-width
1689
+ */
1690
+ 'divide-x': [{
1691
+ 'divide-x': [borderWidth]
1692
+ }],
1693
+ /**
1694
+ * Divide Width X Reverse
1695
+ * @see https://tailwindcss.com/docs/divide-width
1696
+ */
1697
+ 'divide-x-reverse': ['divide-x-reverse'],
1698
+ /**
1699
+ * Divide Width Y
1700
+ * @see https://tailwindcss.com/docs/divide-width
1701
+ */
1702
+ 'divide-y': [{
1703
+ 'divide-y': [borderWidth]
1704
+ }],
1705
+ /**
1706
+ * Divide Width Y Reverse
1707
+ * @see https://tailwindcss.com/docs/divide-width
1708
+ */
1709
+ 'divide-y-reverse': ['divide-y-reverse'],
1710
+ /**
1711
+ * Divide Opacity
1712
+ * @see https://tailwindcss.com/docs/divide-opacity
1713
+ */
1714
+ 'divide-opacity': [{
1715
+ 'divide-opacity': [opacity]
1716
+ }],
1717
+ /**
1718
+ * Divide Style
1719
+ * @see https://tailwindcss.com/docs/divide-style
1720
+ */
1721
+ 'divide-style': [{
1722
+ divide: getLineStyles()
1723
+ }],
1724
+ /**
1725
+ * Border Color
1726
+ * @see https://tailwindcss.com/docs/border-color
1727
+ */
1728
+ 'border-color': [{
1729
+ border: [borderColor]
1730
+ }],
1731
+ /**
1732
+ * Border Color X
1733
+ * @see https://tailwindcss.com/docs/border-color
1734
+ */
1735
+ 'border-color-x': [{
1736
+ 'border-x': [borderColor]
1737
+ }],
1738
+ /**
1739
+ * Border Color Y
1740
+ * @see https://tailwindcss.com/docs/border-color
1741
+ */
1742
+ 'border-color-y': [{
1743
+ 'border-y': [borderColor]
1744
+ }],
1745
+ /**
1746
+ * Border Color S
1747
+ * @see https://tailwindcss.com/docs/border-color
1748
+ */
1749
+ 'border-color-s': [{
1750
+ 'border-s': [borderColor]
1751
+ }],
1752
+ /**
1753
+ * Border Color E
1754
+ * @see https://tailwindcss.com/docs/border-color
1755
+ */
1756
+ 'border-color-e': [{
1757
+ 'border-e': [borderColor]
1758
+ }],
1759
+ /**
1760
+ * Border Color Top
1761
+ * @see https://tailwindcss.com/docs/border-color
1762
+ */
1763
+ 'border-color-t': [{
1764
+ 'border-t': [borderColor]
1765
+ }],
1766
+ /**
1767
+ * Border Color Right
1768
+ * @see https://tailwindcss.com/docs/border-color
1769
+ */
1770
+ 'border-color-r': [{
1771
+ 'border-r': [borderColor]
1772
+ }],
1773
+ /**
1774
+ * Border Color Bottom
1775
+ * @see https://tailwindcss.com/docs/border-color
1776
+ */
1777
+ 'border-color-b': [{
1778
+ 'border-b': [borderColor]
1779
+ }],
1780
+ /**
1781
+ * Border Color Left
1782
+ * @see https://tailwindcss.com/docs/border-color
1783
+ */
1784
+ 'border-color-l': [{
1785
+ 'border-l': [borderColor]
1786
+ }],
1787
+ /**
1788
+ * Divide Color
1789
+ * @see https://tailwindcss.com/docs/divide-color
1790
+ */
1791
+ 'divide-color': [{
1792
+ divide: [borderColor]
1793
+ }],
1794
+ /**
1795
+ * Outline Style
1796
+ * @see https://tailwindcss.com/docs/outline-style
1797
+ */
1798
+ 'outline-style': [{
1799
+ outline: ['', ...getLineStyles()]
1800
+ }],
1801
+ /**
1802
+ * Outline Offset
1803
+ * @see https://tailwindcss.com/docs/outline-offset
1804
+ */
1805
+ 'outline-offset': [{
1806
+ 'outline-offset': [isLength, isArbitraryValue]
1807
+ }],
1808
+ /**
1809
+ * Outline Width
1810
+ * @see https://tailwindcss.com/docs/outline-width
1811
+ */
1812
+ 'outline-w': [{
1813
+ outline: [isLength, isArbitraryLength]
1814
+ }],
1815
+ /**
1816
+ * Outline Color
1817
+ * @see https://tailwindcss.com/docs/outline-color
1818
+ */
1819
+ 'outline-color': [{
1820
+ outline: [colors]
1821
+ }],
1822
+ /**
1823
+ * Ring Width
1824
+ * @see https://tailwindcss.com/docs/ring-width
1825
+ */
1826
+ 'ring-w': [{
1827
+ ring: getLengthWithEmptyAndArbitrary()
1828
+ }],
1829
+ /**
1830
+ * Ring Width Inset
1831
+ * @see https://tailwindcss.com/docs/ring-width
1832
+ */
1833
+ 'ring-w-inset': ['ring-inset'],
1834
+ /**
1835
+ * Ring Color
1836
+ * @see https://tailwindcss.com/docs/ring-color
1837
+ */
1838
+ 'ring-color': [{
1839
+ ring: [colors]
1840
+ }],
1841
+ /**
1842
+ * Ring Opacity
1843
+ * @see https://tailwindcss.com/docs/ring-opacity
1844
+ */
1845
+ 'ring-opacity': [{
1846
+ 'ring-opacity': [opacity]
1847
+ }],
1848
+ /**
1849
+ * Ring Offset Width
1850
+ * @see https://tailwindcss.com/docs/ring-offset-width
1851
+ */
1852
+ 'ring-offset-w': [{
1853
+ 'ring-offset': [isLength, isArbitraryLength]
1854
+ }],
1855
+ /**
1856
+ * Ring Offset Color
1857
+ * @see https://tailwindcss.com/docs/ring-offset-color
1858
+ */
1859
+ 'ring-offset-color': [{
1860
+ 'ring-offset': [colors]
1861
+ }],
1862
+ // Effects
1863
+ /**
1864
+ * Box Shadow
1865
+ * @see https://tailwindcss.com/docs/box-shadow
1866
+ */
1867
+ shadow: [{
1868
+ shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]
1869
+ }],
1870
+ /**
1871
+ * Box Shadow Color
1872
+ * @see https://tailwindcss.com/docs/box-shadow-color
1873
+ */
1874
+ 'shadow-color': [{
1875
+ shadow: [isAny]
1876
+ }],
1877
+ /**
1878
+ * Opacity
1879
+ * @see https://tailwindcss.com/docs/opacity
1880
+ */
1881
+ opacity: [{
1882
+ opacity: [opacity]
1883
+ }],
1884
+ /**
1885
+ * Mix Blend Mode
1886
+ * @see https://tailwindcss.com/docs/mix-blend-mode
1887
+ */
1888
+ 'mix-blend': [{
1889
+ 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']
1890
+ }],
1891
+ /**
1892
+ * Background Blend Mode
1893
+ * @see https://tailwindcss.com/docs/background-blend-mode
1894
+ */
1895
+ 'bg-blend': [{
1896
+ 'bg-blend': getBlendModes()
1897
+ }],
1898
+ // Filters
1899
+ /**
1900
+ * Filter
1901
+ * @deprecated since Tailwind CSS v3.0.0
1902
+ * @see https://tailwindcss.com/docs/filter
1903
+ */
1904
+ filter: [{
1905
+ filter: ['', 'none']
1906
+ }],
1907
+ /**
1908
+ * Blur
1909
+ * @see https://tailwindcss.com/docs/blur
1910
+ */
1911
+ blur: [{
1912
+ blur: [blur]
1913
+ }],
1914
+ /**
1915
+ * Brightness
1916
+ * @see https://tailwindcss.com/docs/brightness
1917
+ */
1918
+ brightness: [{
1919
+ brightness: [brightness]
1920
+ }],
1921
+ /**
1922
+ * Contrast
1923
+ * @see https://tailwindcss.com/docs/contrast
1924
+ */
1925
+ contrast: [{
1926
+ contrast: [contrast]
1927
+ }],
1928
+ /**
1929
+ * Drop Shadow
1930
+ * @see https://tailwindcss.com/docs/drop-shadow
1931
+ */
1932
+ 'drop-shadow': [{
1933
+ 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]
1934
+ }],
1935
+ /**
1936
+ * Grayscale
1937
+ * @see https://tailwindcss.com/docs/grayscale
1938
+ */
1939
+ grayscale: [{
1940
+ grayscale: [grayscale]
1941
+ }],
1942
+ /**
1943
+ * Hue Rotate
1944
+ * @see https://tailwindcss.com/docs/hue-rotate
1945
+ */
1946
+ 'hue-rotate': [{
1947
+ 'hue-rotate': [hueRotate]
1948
+ }],
1949
+ /**
1950
+ * Invert
1951
+ * @see https://tailwindcss.com/docs/invert
1952
+ */
1953
+ invert: [{
1954
+ invert: [invert]
1955
+ }],
1956
+ /**
1957
+ * Saturate
1958
+ * @see https://tailwindcss.com/docs/saturate
1959
+ */
1960
+ saturate: [{
1961
+ saturate: [saturate]
1962
+ }],
1963
+ /**
1964
+ * Sepia
1965
+ * @see https://tailwindcss.com/docs/sepia
1966
+ */
1967
+ sepia: [{
1968
+ sepia: [sepia]
1969
+ }],
1970
+ /**
1971
+ * Backdrop Filter
1972
+ * @deprecated since Tailwind CSS v3.0.0
1973
+ * @see https://tailwindcss.com/docs/backdrop-filter
1974
+ */
1975
+ 'backdrop-filter': [{
1976
+ 'backdrop-filter': ['', 'none']
1977
+ }],
1978
+ /**
1979
+ * Backdrop Blur
1980
+ * @see https://tailwindcss.com/docs/backdrop-blur
1981
+ */
1982
+ 'backdrop-blur': [{
1983
+ 'backdrop-blur': [blur]
1984
+ }],
1985
+ /**
1986
+ * Backdrop Brightness
1987
+ * @see https://tailwindcss.com/docs/backdrop-brightness
1988
+ */
1989
+ 'backdrop-brightness': [{
1990
+ 'backdrop-brightness': [brightness]
1991
+ }],
1992
+ /**
1993
+ * Backdrop Contrast
1994
+ * @see https://tailwindcss.com/docs/backdrop-contrast
1995
+ */
1996
+ 'backdrop-contrast': [{
1997
+ 'backdrop-contrast': [contrast]
1998
+ }],
1999
+ /**
2000
+ * Backdrop Grayscale
2001
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
2002
+ */
2003
+ 'backdrop-grayscale': [{
2004
+ 'backdrop-grayscale': [grayscale]
2005
+ }],
2006
+ /**
2007
+ * Backdrop Hue Rotate
2008
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2009
+ */
2010
+ 'backdrop-hue-rotate': [{
2011
+ 'backdrop-hue-rotate': [hueRotate]
2012
+ }],
2013
+ /**
2014
+ * Backdrop Invert
2015
+ * @see https://tailwindcss.com/docs/backdrop-invert
2016
+ */
2017
+ 'backdrop-invert': [{
2018
+ 'backdrop-invert': [invert]
2019
+ }],
2020
+ /**
2021
+ * Backdrop Opacity
2022
+ * @see https://tailwindcss.com/docs/backdrop-opacity
2023
+ */
2024
+ 'backdrop-opacity': [{
2025
+ 'backdrop-opacity': [opacity]
2026
+ }],
2027
+ /**
2028
+ * Backdrop Saturate
2029
+ * @see https://tailwindcss.com/docs/backdrop-saturate
2030
+ */
2031
+ 'backdrop-saturate': [{
2032
+ 'backdrop-saturate': [saturate]
2033
+ }],
2034
+ /**
2035
+ * Backdrop Sepia
2036
+ * @see https://tailwindcss.com/docs/backdrop-sepia
2037
+ */
2038
+ 'backdrop-sepia': [{
2039
+ 'backdrop-sepia': [sepia]
2040
+ }],
2041
+ // Tables
2042
+ /**
2043
+ * Border Collapse
2044
+ * @see https://tailwindcss.com/docs/border-collapse
2045
+ */
2046
+ 'border-collapse': [{
2047
+ border: ['collapse', 'separate']
2048
+ }],
2049
+ /**
2050
+ * Border Spacing
2051
+ * @see https://tailwindcss.com/docs/border-spacing
2052
+ */
2053
+ 'border-spacing': [{
2054
+ 'border-spacing': [borderSpacing]
2055
+ }],
2056
+ /**
2057
+ * Border Spacing X
2058
+ * @see https://tailwindcss.com/docs/border-spacing
2059
+ */
2060
+ 'border-spacing-x': [{
2061
+ 'border-spacing-x': [borderSpacing]
2062
+ }],
2063
+ /**
2064
+ * Border Spacing Y
2065
+ * @see https://tailwindcss.com/docs/border-spacing
2066
+ */
2067
+ 'border-spacing-y': [{
2068
+ 'border-spacing-y': [borderSpacing]
2069
+ }],
2070
+ /**
2071
+ * Table Layout
2072
+ * @see https://tailwindcss.com/docs/table-layout
2073
+ */
2074
+ 'table-layout': [{
2075
+ table: ['auto', 'fixed']
2076
+ }],
2077
+ /**
2078
+ * Caption Side
2079
+ * @see https://tailwindcss.com/docs/caption-side
2080
+ */
2081
+ caption: [{
2082
+ caption: ['top', 'bottom']
2083
+ }],
2084
+ // Transitions and Animation
2085
+ /**
2086
+ * Tranisition Property
2087
+ * @see https://tailwindcss.com/docs/transition-property
2088
+ */
2089
+ transition: [{
2090
+ transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]
2091
+ }],
2092
+ /**
2093
+ * Transition Duration
2094
+ * @see https://tailwindcss.com/docs/transition-duration
2095
+ */
2096
+ duration: [{
2097
+ duration: getNumberAndArbitrary()
2098
+ }],
2099
+ /**
2100
+ * Transition Timing Function
2101
+ * @see https://tailwindcss.com/docs/transition-timing-function
2102
+ */
2103
+ ease: [{
2104
+ ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]
2105
+ }],
2106
+ /**
2107
+ * Transition Delay
2108
+ * @see https://tailwindcss.com/docs/transition-delay
2109
+ */
2110
+ delay: [{
2111
+ delay: getNumberAndArbitrary()
2112
+ }],
2113
+ /**
2114
+ * Animation
2115
+ * @see https://tailwindcss.com/docs/animation
2116
+ */
2117
+ animate: [{
2118
+ animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]
2119
+ }],
2120
+ // Transforms
2121
+ /**
2122
+ * Transform
2123
+ * @see https://tailwindcss.com/docs/transform
2124
+ */
2125
+ transform: [{
2126
+ transform: ['', 'gpu', 'none']
2127
+ }],
2128
+ /**
2129
+ * Scale
2130
+ * @see https://tailwindcss.com/docs/scale
2131
+ */
2132
+ scale: [{
2133
+ scale: [scale]
2134
+ }],
2135
+ /**
2136
+ * Scale X
2137
+ * @see https://tailwindcss.com/docs/scale
2138
+ */
2139
+ 'scale-x': [{
2140
+ 'scale-x': [scale]
2141
+ }],
2142
+ /**
2143
+ * Scale Y
2144
+ * @see https://tailwindcss.com/docs/scale
2145
+ */
2146
+ 'scale-y': [{
2147
+ 'scale-y': [scale]
2148
+ }],
2149
+ /**
2150
+ * Rotate
2151
+ * @see https://tailwindcss.com/docs/rotate
2152
+ */
2153
+ rotate: [{
2154
+ rotate: [isInteger, isArbitraryValue]
2155
+ }],
2156
+ /**
2157
+ * Translate X
2158
+ * @see https://tailwindcss.com/docs/translate
2159
+ */
2160
+ 'translate-x': [{
2161
+ 'translate-x': [translate]
2162
+ }],
2163
+ /**
2164
+ * Translate Y
2165
+ * @see https://tailwindcss.com/docs/translate
2166
+ */
2167
+ 'translate-y': [{
2168
+ 'translate-y': [translate]
2169
+ }],
2170
+ /**
2171
+ * Skew X
2172
+ * @see https://tailwindcss.com/docs/skew
2173
+ */
2174
+ 'skew-x': [{
2175
+ 'skew-x': [skew]
2176
+ }],
2177
+ /**
2178
+ * Skew Y
2179
+ * @see https://tailwindcss.com/docs/skew
2180
+ */
2181
+ 'skew-y': [{
2182
+ 'skew-y': [skew]
2183
+ }],
2184
+ /**
2185
+ * Transform Origin
2186
+ * @see https://tailwindcss.com/docs/transform-origin
2187
+ */
2188
+ 'transform-origin': [{
2189
+ origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]
2190
+ }],
2191
+ // Interactivity
2192
+ /**
2193
+ * Accent Color
2194
+ * @see https://tailwindcss.com/docs/accent-color
2195
+ */
2196
+ accent: [{
2197
+ accent: ['auto', colors]
2198
+ }],
2199
+ /**
2200
+ * Appearance
2201
+ * @see https://tailwindcss.com/docs/appearance
2202
+ */
2203
+ appearance: [{
2204
+ appearance: ['none', 'auto']
2205
+ }],
2206
+ /**
2207
+ * Cursor
2208
+ * @see https://tailwindcss.com/docs/cursor
2209
+ */
2210
+ cursor: [{
2211
+ cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]
2212
+ }],
2213
+ /**
2214
+ * Caret Color
2215
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2216
+ */
2217
+ 'caret-color': [{
2218
+ caret: [colors]
2219
+ }],
2220
+ /**
2221
+ * Pointer Events
2222
+ * @see https://tailwindcss.com/docs/pointer-events
2223
+ */
2224
+ 'pointer-events': [{
2225
+ 'pointer-events': ['none', 'auto']
2226
+ }],
2227
+ /**
2228
+ * Resize
2229
+ * @see https://tailwindcss.com/docs/resize
2230
+ */
2231
+ resize: [{
2232
+ resize: ['none', 'y', 'x', '']
2233
+ }],
2234
+ /**
2235
+ * Scroll Behavior
2236
+ * @see https://tailwindcss.com/docs/scroll-behavior
2237
+ */
2238
+ 'scroll-behavior': [{
2239
+ scroll: ['auto', 'smooth']
2240
+ }],
2241
+ /**
2242
+ * Scroll Margin
2243
+ * @see https://tailwindcss.com/docs/scroll-margin
2244
+ */
2245
+ 'scroll-m': [{
2246
+ 'scroll-m': getSpacingWithArbitrary()
2247
+ }],
2248
+ /**
2249
+ * Scroll Margin X
2250
+ * @see https://tailwindcss.com/docs/scroll-margin
2251
+ */
2252
+ 'scroll-mx': [{
2253
+ 'scroll-mx': getSpacingWithArbitrary()
2254
+ }],
2255
+ /**
2256
+ * Scroll Margin Y
2257
+ * @see https://tailwindcss.com/docs/scroll-margin
2258
+ */
2259
+ 'scroll-my': [{
2260
+ 'scroll-my': getSpacingWithArbitrary()
2261
+ }],
2262
+ /**
2263
+ * Scroll Margin Start
2264
+ * @see https://tailwindcss.com/docs/scroll-margin
2265
+ */
2266
+ 'scroll-ms': [{
2267
+ 'scroll-ms': getSpacingWithArbitrary()
2268
+ }],
2269
+ /**
2270
+ * Scroll Margin End
2271
+ * @see https://tailwindcss.com/docs/scroll-margin
2272
+ */
2273
+ 'scroll-me': [{
2274
+ 'scroll-me': getSpacingWithArbitrary()
2275
+ }],
2276
+ /**
2277
+ * Scroll Margin Top
2278
+ * @see https://tailwindcss.com/docs/scroll-margin
2279
+ */
2280
+ 'scroll-mt': [{
2281
+ 'scroll-mt': getSpacingWithArbitrary()
2282
+ }],
2283
+ /**
2284
+ * Scroll Margin Right
2285
+ * @see https://tailwindcss.com/docs/scroll-margin
2286
+ */
2287
+ 'scroll-mr': [{
2288
+ 'scroll-mr': getSpacingWithArbitrary()
2289
+ }],
2290
+ /**
2291
+ * Scroll Margin Bottom
2292
+ * @see https://tailwindcss.com/docs/scroll-margin
2293
+ */
2294
+ 'scroll-mb': [{
2295
+ 'scroll-mb': getSpacingWithArbitrary()
2296
+ }],
2297
+ /**
2298
+ * Scroll Margin Left
2299
+ * @see https://tailwindcss.com/docs/scroll-margin
2300
+ */
2301
+ 'scroll-ml': [{
2302
+ 'scroll-ml': getSpacingWithArbitrary()
2303
+ }],
2304
+ /**
2305
+ * Scroll Padding
2306
+ * @see https://tailwindcss.com/docs/scroll-padding
2307
+ */
2308
+ 'scroll-p': [{
2309
+ 'scroll-p': getSpacingWithArbitrary()
2310
+ }],
2311
+ /**
2312
+ * Scroll Padding X
2313
+ * @see https://tailwindcss.com/docs/scroll-padding
2314
+ */
2315
+ 'scroll-px': [{
2316
+ 'scroll-px': getSpacingWithArbitrary()
2317
+ }],
2318
+ /**
2319
+ * Scroll Padding Y
2320
+ * @see https://tailwindcss.com/docs/scroll-padding
2321
+ */
2322
+ 'scroll-py': [{
2323
+ 'scroll-py': getSpacingWithArbitrary()
2324
+ }],
2325
+ /**
2326
+ * Scroll Padding Start
2327
+ * @see https://tailwindcss.com/docs/scroll-padding
2328
+ */
2329
+ 'scroll-ps': [{
2330
+ 'scroll-ps': getSpacingWithArbitrary()
2331
+ }],
2332
+ /**
2333
+ * Scroll Padding End
2334
+ * @see https://tailwindcss.com/docs/scroll-padding
2335
+ */
2336
+ 'scroll-pe': [{
2337
+ 'scroll-pe': getSpacingWithArbitrary()
2338
+ }],
2339
+ /**
2340
+ * Scroll Padding Top
2341
+ * @see https://tailwindcss.com/docs/scroll-padding
2342
+ */
2343
+ 'scroll-pt': [{
2344
+ 'scroll-pt': getSpacingWithArbitrary()
2345
+ }],
2346
+ /**
2347
+ * Scroll Padding Right
2348
+ * @see https://tailwindcss.com/docs/scroll-padding
2349
+ */
2350
+ 'scroll-pr': [{
2351
+ 'scroll-pr': getSpacingWithArbitrary()
2352
+ }],
2353
+ /**
2354
+ * Scroll Padding Bottom
2355
+ * @see https://tailwindcss.com/docs/scroll-padding
2356
+ */
2357
+ 'scroll-pb': [{
2358
+ 'scroll-pb': getSpacingWithArbitrary()
2359
+ }],
2360
+ /**
2361
+ * Scroll Padding Left
2362
+ * @see https://tailwindcss.com/docs/scroll-padding
2363
+ */
2364
+ 'scroll-pl': [{
2365
+ 'scroll-pl': getSpacingWithArbitrary()
2366
+ }],
2367
+ /**
2368
+ * Scroll Snap Align
2369
+ * @see https://tailwindcss.com/docs/scroll-snap-align
2370
+ */
2371
+ 'snap-align': [{
2372
+ snap: ['start', 'end', 'center', 'align-none']
2373
+ }],
2374
+ /**
2375
+ * Scroll Snap Stop
2376
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
2377
+ */
2378
+ 'snap-stop': [{
2379
+ snap: ['normal', 'always']
2380
+ }],
2381
+ /**
2382
+ * Scroll Snap Type
2383
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2384
+ */
2385
+ 'snap-type': [{
2386
+ snap: ['none', 'x', 'y', 'both']
2387
+ }],
2388
+ /**
2389
+ * Scroll Snap Type Strictness
2390
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2391
+ */
2392
+ 'snap-strictness': [{
2393
+ snap: ['mandatory', 'proximity']
2394
+ }],
2395
+ /**
2396
+ * Touch Action
2397
+ * @see https://tailwindcss.com/docs/touch-action
2398
+ */
2399
+ touch: [{
2400
+ touch: ['auto', 'none', 'manipulation']
2401
+ }],
2402
+ /**
2403
+ * Touch Action X
2404
+ * @see https://tailwindcss.com/docs/touch-action
2405
+ */
2406
+ 'touch-x': [{
2407
+ 'touch-pan': ['x', 'left', 'right']
2408
+ }],
2409
+ /**
2410
+ * Touch Action Y
2411
+ * @see https://tailwindcss.com/docs/touch-action
2412
+ */
2413
+ 'touch-y': [{
2414
+ 'touch-pan': ['y', 'up', 'down']
2415
+ }],
2416
+ /**
2417
+ * Touch Action Pinch Zoom
2418
+ * @see https://tailwindcss.com/docs/touch-action
2419
+ */
2420
+ 'touch-pz': ['touch-pinch-zoom'],
2421
+ /**
2422
+ * User Select
2423
+ * @see https://tailwindcss.com/docs/user-select
2424
+ */
2425
+ select: [{
2426
+ select: ['none', 'text', 'all', 'auto']
2427
+ }],
2428
+ /**
2429
+ * Will Change
2430
+ * @see https://tailwindcss.com/docs/will-change
2431
+ */
2432
+ 'will-change': [{
2433
+ 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]
2434
+ }],
2435
+ // SVG
2436
+ /**
2437
+ * Fill
2438
+ * @see https://tailwindcss.com/docs/fill
2439
+ */
2440
+ fill: [{
2441
+ fill: [colors, 'none']
2442
+ }],
2443
+ /**
2444
+ * Stroke Width
2445
+ * @see https://tailwindcss.com/docs/stroke-width
2446
+ */
2447
+ 'stroke-w': [{
2448
+ stroke: [isLength, isArbitraryLength, isArbitraryNumber]
2449
+ }],
2450
+ /**
2451
+ * Stroke
2452
+ * @see https://tailwindcss.com/docs/stroke
2453
+ */
2454
+ stroke: [{
2455
+ stroke: [colors, 'none']
2456
+ }],
2457
+ // Accessibility
2458
+ /**
2459
+ * Screen Readers
2460
+ * @see https://tailwindcss.com/docs/screen-readers
2461
+ */
2462
+ sr: ['sr-only', 'not-sr-only'],
2463
+ /**
2464
+ * Forced Color Adjust
2465
+ * @see https://tailwindcss.com/docs/forced-color-adjust
2466
+ */
2467
+ 'forced-color-adjust': [{
2468
+ 'forced-color-adjust': ['auto', 'none']
2469
+ }]
2470
+ },
2471
+ conflictingClassGroups: {
2472
+ overflow: ['overflow-x', 'overflow-y'],
2473
+ overscroll: ['overscroll-x', 'overscroll-y'],
2474
+ inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],
2475
+ 'inset-x': ['right', 'left'],
2476
+ 'inset-y': ['top', 'bottom'],
2477
+ flex: ['basis', 'grow', 'shrink'],
2478
+ gap: ['gap-x', 'gap-y'],
2479
+ p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],
2480
+ px: ['pr', 'pl'],
2481
+ py: ['pt', 'pb'],
2482
+ m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],
2483
+ mx: ['mr', 'ml'],
2484
+ my: ['mt', 'mb'],
2485
+ size: ['w', 'h'],
2486
+ 'font-size': ['leading'],
2487
+ 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],
2488
+ 'fvn-ordinal': ['fvn-normal'],
2489
+ 'fvn-slashed-zero': ['fvn-normal'],
2490
+ 'fvn-figure': ['fvn-normal'],
2491
+ 'fvn-spacing': ['fvn-normal'],
2492
+ 'fvn-fraction': ['fvn-normal'],
2493
+ 'line-clamp': ['display', 'overflow'],
2494
+ 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'],
2495
+ 'rounded-s': ['rounded-ss', 'rounded-es'],
2496
+ 'rounded-e': ['rounded-se', 'rounded-ee'],
2497
+ 'rounded-t': ['rounded-tl', 'rounded-tr'],
2498
+ 'rounded-r': ['rounded-tr', 'rounded-br'],
2499
+ 'rounded-b': ['rounded-br', 'rounded-bl'],
2500
+ 'rounded-l': ['rounded-tl', 'rounded-bl'],
2501
+ 'border-spacing': ['border-spacing-x', 'border-spacing-y'],
2502
+ 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],
2503
+ 'border-w-x': ['border-w-r', 'border-w-l'],
2504
+ 'border-w-y': ['border-w-t', 'border-w-b'],
2505
+ 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],
2506
+ 'border-color-x': ['border-color-r', 'border-color-l'],
2507
+ 'border-color-y': ['border-color-t', 'border-color-b'],
2508
+ 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
2509
+ 'scroll-mx': ['scroll-mr', 'scroll-ml'],
2510
+ 'scroll-my': ['scroll-mt', 'scroll-mb'],
2511
+ 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
2512
+ 'scroll-px': ['scroll-pr', 'scroll-pl'],
2513
+ 'scroll-py': ['scroll-pt', 'scroll-pb'],
2514
+ touch: ['touch-x', 'touch-y', 'touch-pz'],
2515
+ 'touch-x': ['touch'],
2516
+ 'touch-y': ['touch'],
2517
+ 'touch-pz': ['touch']
2518
+ },
2519
+ conflictingClassGroupModifiers: {
2520
+ 'font-size': ['leading']
2521
+ }
2522
+ };
2523
+ };
2524
+
2525
+ /**
2526
+ * @param baseConfig Config where other config will be merged into. This object will be mutated.
2527
+ * @param configExtension Partial config to merge into the `baseConfig`.
2528
+ */
2529
+ const mergeConfigs = (baseConfig, {
2530
+ cacheSize,
2531
+ prefix,
2532
+ separator,
2533
+ experimentalParseClassName,
2534
+ extend = {},
2535
+ override = {}
2536
+ }) => {
2537
+ overrideProperty(baseConfig, 'cacheSize', cacheSize);
2538
+ overrideProperty(baseConfig, 'prefix', prefix);
2539
+ overrideProperty(baseConfig, 'separator', separator);
2540
+ overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);
2541
+ for (const configKey in override) {
2542
+ overrideConfigProperties(baseConfig[configKey], override[configKey]);
2543
+ }
2544
+ for (const key in extend) {
2545
+ mergeConfigProperties(baseConfig[key], extend[key]);
2546
+ }
2547
+ return baseConfig;
2548
+ };
2549
+ const overrideProperty = (baseObject, overrideKey, overrideValue) => {
2550
+ if (overrideValue !== undefined) {
2551
+ baseObject[overrideKey] = overrideValue;
2552
+ }
2553
+ };
2554
+ const overrideConfigProperties = (baseObject, overrideObject) => {
2555
+ if (overrideObject) {
2556
+ for (const key in overrideObject) {
2557
+ overrideProperty(baseObject, key, overrideObject[key]);
2558
+ }
2559
+ }
2560
+ };
2561
+ const mergeConfigProperties = (baseObject, mergeObject) => {
2562
+ if (mergeObject) {
2563
+ for (const key in mergeObject) {
2564
+ const mergeValue = mergeObject[key];
2565
+ if (mergeValue !== undefined) {
2566
+ baseObject[key] = (baseObject[key] || []).concat(mergeValue);
2567
+ }
2568
+ }
2569
+ }
2570
+ };
2571
+ const extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);
2572
+ const twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);
2573
+ exports.createTailwindMerge = createTailwindMerge;
2574
+ exports.extendTailwindMerge = extendTailwindMerge;
2575
+ exports.fromTheme = fromTheme;
2576
+ exports.getDefaultConfig = getDefaultConfig;
2577
+ exports.mergeConfigs = mergeConfigs;
2578
+ exports.twJoin = twJoin;
2579
+ exports.twMerge = twMerge;
2580
+ exports.validators = validators;
2581
+
2582
+ }(bundleCjs));
2583
+
2584
+ function cn(...inputs) {
2585
+ return bundleCjs.twMerge(clsx(inputs));
2586
+ }
2587
+
2588
+ exports.cn = cn;