@oj-module/cli 0.2.63 → 0.2.66

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