renovate-log-parser 0.1.0

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