adp-web-components 0.0.65 → 0.0.66

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