@bigbinary/neeto-atoms 1.0.6 → 1.0.7

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