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