tailwindcss 3.4.1 → 4.0.0-alpha.2

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 (280) hide show
  1. package/README.md +5 -6
  2. package/dist/lib.d.mts +324 -0
  3. package/dist/lib.d.ts +324 -0
  4. package/dist/lib.js +11 -0
  5. package/dist/lib.mjs +11 -0
  6. package/index.css +5 -0
  7. package/package.json +29 -107
  8. package/preflight.css +355 -0
  9. package/theme.css +465 -0
  10. package/CHANGELOG.md +0 -2571
  11. package/base.css +0 -1
  12. package/colors.d.ts +0 -3
  13. package/colors.js +0 -2
  14. package/components.css +0 -1
  15. package/defaultConfig.d.ts +0 -3
  16. package/defaultConfig.js +0 -2
  17. package/defaultTheme.d.ts +0 -4
  18. package/defaultTheme.js +0 -2
  19. package/lib/cli/build/deps.js +0 -62
  20. package/lib/cli/build/index.js +0 -54
  21. package/lib/cli/build/plugin.js +0 -378
  22. package/lib/cli/build/utils.js +0 -88
  23. package/lib/cli/build/watching.js +0 -182
  24. package/lib/cli/help/index.js +0 -73
  25. package/lib/cli/index.js +0 -230
  26. package/lib/cli/init/index.js +0 -63
  27. package/lib/cli-peer-dependencies.js +0 -36
  28. package/lib/cli.js +0 -7
  29. package/lib/corePluginList.js +0 -190
  30. package/lib/corePlugins.js +0 -4282
  31. package/lib/css/LICENSE +0 -25
  32. package/lib/css/preflight.css +0 -385
  33. package/lib/featureFlags.js +0 -83
  34. package/lib/index.js +0 -2
  35. package/lib/lib/cacheInvalidation.js +0 -92
  36. package/lib/lib/collapseAdjacentRules.js +0 -61
  37. package/lib/lib/collapseDuplicateDeclarations.js +0 -85
  38. package/lib/lib/content.js +0 -181
  39. package/lib/lib/defaultExtractor.js +0 -251
  40. package/lib/lib/detectNesting.js +0 -45
  41. package/lib/lib/evaluateTailwindFunctions.js +0 -238
  42. package/lib/lib/expandApplyAtRules.js +0 -540
  43. package/lib/lib/expandTailwindAtRules.js +0 -291
  44. package/lib/lib/findAtConfigPath.js +0 -46
  45. package/lib/lib/generateRules.js +0 -904
  46. package/lib/lib/getModuleDependencies.js +0 -99
  47. package/lib/lib/load-config.js +0 -53
  48. package/lib/lib/normalizeTailwindDirectives.js +0 -89
  49. package/lib/lib/offsets.js +0 -306
  50. package/lib/lib/partitionApplyAtRules.js +0 -58
  51. package/lib/lib/regex.js +0 -74
  52. package/lib/lib/remap-bitfield.js +0 -89
  53. package/lib/lib/resolveDefaultsAtRules.js +0 -165
  54. package/lib/lib/setupContextUtils.js +0 -1294
  55. package/lib/lib/setupTrackingContext.js +0 -166
  56. package/lib/lib/sharedState.js +0 -87
  57. package/lib/lib/substituteScreenAtRules.js +0 -31
  58. package/lib/oxide/cli/build/deps.js +0 -89
  59. package/lib/oxide/cli/build/index.js +0 -53
  60. package/lib/oxide/cli/build/plugin.js +0 -375
  61. package/lib/oxide/cli/build/utils.js +0 -87
  62. package/lib/oxide/cli/build/watching.js +0 -179
  63. package/lib/oxide/cli/help/index.js +0 -72
  64. package/lib/oxide/cli/index.js +0 -214
  65. package/lib/oxide/cli/init/index.js +0 -52
  66. package/lib/oxide/cli.js +0 -5
  67. package/lib/oxide/postcss-plugin.js +0 -2
  68. package/lib/plugin.js +0 -98
  69. package/lib/postcss-plugins/nesting/README.md +0 -42
  70. package/lib/postcss-plugins/nesting/index.js +0 -21
  71. package/lib/postcss-plugins/nesting/plugin.js +0 -89
  72. package/lib/processTailwindFeatures.js +0 -64
  73. package/lib/public/colors.js +0 -355
  74. package/lib/public/create-plugin.js +0 -17
  75. package/lib/public/default-config.js +0 -18
  76. package/lib/public/default-theme.js +0 -18
  77. package/lib/public/load-config.js +0 -12
  78. package/lib/public/resolve-config.js +0 -24
  79. package/lib/util/applyImportantSelector.js +0 -36
  80. package/lib/util/bigSign.js +0 -13
  81. package/lib/util/buildMediaQuery.js +0 -27
  82. package/lib/util/cloneDeep.js +0 -22
  83. package/lib/util/cloneNodes.js +0 -54
  84. package/lib/util/color.js +0 -116
  85. package/lib/util/colorNames.js +0 -752
  86. package/lib/util/configurePlugins.js +0 -23
  87. package/lib/util/createPlugin.js +0 -32
  88. package/lib/util/createUtilityPlugin.js +0 -53
  89. package/lib/util/dataTypes.js +0 -415
  90. package/lib/util/defaults.js +0 -27
  91. package/lib/util/escapeClassName.js +0 -24
  92. package/lib/util/escapeCommas.js +0 -13
  93. package/lib/util/flattenColorPalette.js +0 -18
  94. package/lib/util/formatVariantSelector.js +0 -270
  95. package/lib/util/getAllConfigs.js +0 -50
  96. package/lib/util/hashConfig.js +0 -21
  97. package/lib/util/isKeyframeRule.js +0 -13
  98. package/lib/util/isPlainObject.js +0 -17
  99. package/lib/util/isSyntacticallyValidPropertyValue.js +0 -74
  100. package/lib/util/log.js +0 -61
  101. package/lib/util/nameClass.js +0 -49
  102. package/lib/util/negateValue.js +0 -36
  103. package/lib/util/normalizeConfig.js +0 -282
  104. package/lib/util/normalizeScreens.js +0 -178
  105. package/lib/util/parseAnimationValue.js +0 -93
  106. package/lib/util/parseBoxShadowValue.js +0 -88
  107. package/lib/util/parseDependency.js +0 -47
  108. package/lib/util/parseGlob.js +0 -36
  109. package/lib/util/parseObjectStyles.js +0 -36
  110. package/lib/util/pluginUtils.js +0 -289
  111. package/lib/util/prefixSelector.js +0 -39
  112. package/lib/util/pseudoElements.js +0 -212
  113. package/lib/util/removeAlphaVariables.js +0 -31
  114. package/lib/util/resolveConfig.js +0 -256
  115. package/lib/util/resolveConfigPath.js +0 -70
  116. package/lib/util/responsive.js +0 -24
  117. package/lib/util/splitAtTopLevelOnly.js +0 -51
  118. package/lib/util/tap.js +0 -14
  119. package/lib/util/toColorValue.js +0 -13
  120. package/lib/util/toPath.js +0 -32
  121. package/lib/util/transformThemeValue.js +0 -73
  122. package/lib/util/validateConfig.js +0 -37
  123. package/lib/util/validateFormalSyntax.js +0 -26
  124. package/lib/util/withAlphaVariable.js +0 -79
  125. package/lib/value-parser/LICENSE +0 -22
  126. package/lib/value-parser/README.md +0 -3
  127. package/lib/value-parser/index.d.js +0 -2
  128. package/lib/value-parser/index.js +0 -22
  129. package/lib/value-parser/parse.js +0 -259
  130. package/lib/value-parser/stringify.js +0 -38
  131. package/lib/value-parser/unit.js +0 -86
  132. package/lib/value-parser/walk.js +0 -16
  133. package/loadConfig.d.ts +0 -4
  134. package/loadConfig.js +0 -2
  135. package/nesting/index.d.ts +0 -4
  136. package/nesting/index.js +0 -2
  137. package/peers/index.js +0 -96624
  138. package/plugin.d.ts +0 -11
  139. package/plugin.js +0 -2
  140. package/prettier.config.js +0 -19
  141. package/resolveConfig.d.ts +0 -31
  142. package/resolveConfig.js +0 -2
  143. package/screens.css +0 -1
  144. package/scripts/create-plugin-list.js +0 -10
  145. package/scripts/generate-types.js +0 -104
  146. package/scripts/release-channel.js +0 -18
  147. package/scripts/release-notes.js +0 -21
  148. package/scripts/swap-engines.js +0 -40
  149. package/scripts/type-utils.js +0 -27
  150. package/src/cli/build/deps.js +0 -56
  151. package/src/cli/build/index.js +0 -49
  152. package/src/cli/build/plugin.js +0 -444
  153. package/src/cli/build/utils.js +0 -76
  154. package/src/cli/build/watching.js +0 -229
  155. package/src/cli/help/index.js +0 -70
  156. package/src/cli/index.js +0 -216
  157. package/src/cli/init/index.js +0 -79
  158. package/src/cli-peer-dependencies.js +0 -15
  159. package/src/cli.js +0 -7
  160. package/src/corePluginList.js +0 -1
  161. package/src/corePlugins.js +0 -2943
  162. package/src/css/LICENSE +0 -25
  163. package/src/css/preflight.css +0 -385
  164. package/src/featureFlags.js +0 -66
  165. package/src/index.js +0 -1
  166. package/src/lib/cacheInvalidation.js +0 -52
  167. package/src/lib/collapseAdjacentRules.js +0 -58
  168. package/src/lib/collapseDuplicateDeclarations.js +0 -93
  169. package/src/lib/content.js +0 -208
  170. package/src/lib/defaultExtractor.js +0 -230
  171. package/src/lib/detectNesting.js +0 -47
  172. package/src/lib/evaluateTailwindFunctions.js +0 -272
  173. package/src/lib/expandApplyAtRules.js +0 -620
  174. package/src/lib/expandTailwindAtRules.js +0 -300
  175. package/src/lib/findAtConfigPath.js +0 -48
  176. package/src/lib/generateRules.js +0 -951
  177. package/src/lib/getModuleDependencies.js +0 -79
  178. package/src/lib/load-config.ts +0 -39
  179. package/src/lib/normalizeTailwindDirectives.js +0 -84
  180. package/src/lib/offsets.js +0 -373
  181. package/src/lib/partitionApplyAtRules.js +0 -52
  182. package/src/lib/regex.js +0 -74
  183. package/src/lib/remap-bitfield.js +0 -82
  184. package/src/lib/resolveDefaultsAtRules.js +0 -163
  185. package/src/lib/setupContextUtils.js +0 -1366
  186. package/src/lib/setupTrackingContext.js +0 -169
  187. package/src/lib/sharedState.js +0 -61
  188. package/src/lib/substituteScreenAtRules.js +0 -19
  189. package/src/oxide/cli/build/deps.ts +0 -91
  190. package/src/oxide/cli/build/index.ts +0 -47
  191. package/src/oxide/cli/build/plugin.ts +0 -442
  192. package/src/oxide/cli/build/utils.ts +0 -74
  193. package/src/oxide/cli/build/watching.ts +0 -225
  194. package/src/oxide/cli/help/index.ts +0 -69
  195. package/src/oxide/cli/index.ts +0 -204
  196. package/src/oxide/cli/init/index.ts +0 -59
  197. package/src/oxide/cli.ts +0 -1
  198. package/src/oxide/postcss-plugin.ts +0 -1
  199. package/src/plugin.js +0 -107
  200. package/src/postcss-plugins/nesting/README.md +0 -42
  201. package/src/postcss-plugins/nesting/index.js +0 -13
  202. package/src/postcss-plugins/nesting/plugin.js +0 -80
  203. package/src/processTailwindFeatures.js +0 -59
  204. package/src/public/colors.js +0 -322
  205. package/src/public/create-plugin.js +0 -2
  206. package/src/public/default-config.js +0 -4
  207. package/src/public/default-theme.js +0 -4
  208. package/src/public/load-config.js +0 -2
  209. package/src/public/resolve-config.js +0 -7
  210. package/src/util/applyImportantSelector.js +0 -27
  211. package/src/util/bigSign.js +0 -3
  212. package/src/util/buildMediaQuery.js +0 -22
  213. package/src/util/cloneDeep.js +0 -11
  214. package/src/util/cloneNodes.js +0 -49
  215. package/src/util/color.js +0 -88
  216. package/src/util/colorNames.js +0 -150
  217. package/src/util/configurePlugins.js +0 -23
  218. package/src/util/createPlugin.js +0 -27
  219. package/src/util/createUtilityPlugin.js +0 -37
  220. package/src/util/dataTypes.js +0 -406
  221. package/src/util/defaults.js +0 -17
  222. package/src/util/escapeClassName.js +0 -8
  223. package/src/util/escapeCommas.js +0 -3
  224. package/src/util/flattenColorPalette.js +0 -13
  225. package/src/util/formatVariantSelector.js +0 -324
  226. package/src/util/getAllConfigs.js +0 -38
  227. package/src/util/hashConfig.js +0 -5
  228. package/src/util/isKeyframeRule.js +0 -3
  229. package/src/util/isPlainObject.js +0 -8
  230. package/src/util/isSyntacticallyValidPropertyValue.js +0 -61
  231. package/src/util/log.js +0 -29
  232. package/src/util/nameClass.js +0 -30
  233. package/src/util/negateValue.js +0 -24
  234. package/src/util/normalizeConfig.js +0 -301
  235. package/src/util/normalizeScreens.js +0 -140
  236. package/src/util/parseAnimationValue.js +0 -68
  237. package/src/util/parseBoxShadowValue.js +0 -72
  238. package/src/util/parseDependency.js +0 -44
  239. package/src/util/parseGlob.js +0 -24
  240. package/src/util/parseObjectStyles.js +0 -19
  241. package/src/util/pluginUtils.js +0 -307
  242. package/src/util/prefixSelector.js +0 -33
  243. package/src/util/pseudoElements.js +0 -171
  244. package/src/util/removeAlphaVariables.js +0 -24
  245. package/src/util/resolveConfig.js +0 -277
  246. package/src/util/resolveConfigPath.js +0 -66
  247. package/src/util/responsive.js +0 -10
  248. package/src/util/splitAtTopLevelOnly.js +0 -52
  249. package/src/util/tap.js +0 -4
  250. package/src/util/toColorValue.js +0 -3
  251. package/src/util/toPath.js +0 -26
  252. package/src/util/transformThemeValue.js +0 -62
  253. package/src/util/validateConfig.js +0 -26
  254. package/src/util/validateFormalSyntax.js +0 -34
  255. package/src/util/withAlphaVariable.js +0 -49
  256. package/src/value-parser/LICENSE +0 -22
  257. package/src/value-parser/README.md +0 -3
  258. package/src/value-parser/index.d.ts +0 -177
  259. package/src/value-parser/index.js +0 -28
  260. package/src/value-parser/parse.js +0 -303
  261. package/src/value-parser/stringify.js +0 -41
  262. package/src/value-parser/unit.js +0 -118
  263. package/src/value-parser/walk.js +0 -18
  264. package/stubs/.gitignore +0 -1
  265. package/stubs/.prettierrc.json +0 -6
  266. package/stubs/config.full.js +0 -1062
  267. package/stubs/config.simple.js +0 -7
  268. package/stubs/postcss.config.cjs +0 -6
  269. package/stubs/postcss.config.js +0 -6
  270. package/stubs/tailwind.config.cjs +0 -2
  271. package/stubs/tailwind.config.js +0 -2
  272. package/stubs/tailwind.config.ts +0 -3
  273. package/tailwind.css +0 -5
  274. package/types/config.d.ts +0 -376
  275. package/types/generated/.gitkeep +0 -0
  276. package/types/generated/colors.d.ts +0 -298
  277. package/types/generated/corePluginList.d.ts +0 -1
  278. package/types/generated/default-theme.d.ts +0 -397
  279. package/types/index.d.ts +0 -11
  280. package/variants.css +0 -1
@@ -1,82 +0,0 @@
1
- // @ts-check
2
-
3
- /**
4
- * We must remap all the old bits to new bits for each set variant
5
- * Only arbitrary variants are considered as those are the only
6
- * ones that need to be re-sorted at this time
7
- *
8
- * An iterated process that removes and sets individual bits simultaneously
9
- * will not work because we may have a new bit that is also a later old bit
10
- * This means that we would be removing a previously set bit which we don't
11
- * want to do
12
- *
13
- * For example (assume `bN` = `1<<N`)
14
- * Given the "total" mapping `[[b1, b3], [b2, b4], [b3, b1], [b4, b2]]`
15
- * The mapping is "total" because:
16
- * 1. Every input and output is accounted for
17
- * 2. All combinations are unique
18
- * 3. No one input maps to multiple outputs and vice versa
19
- * And, given an offset with all bits set:
20
- * V = b1 | b2 | b3 | b4
21
- *
22
- * Let's explore the issue with removing and setting bits simultaneously:
23
- * V & ~b1 | b3 = b2 | b3 | b4
24
- * V & ~b2 | b4 = b3 | b4
25
- * V & ~b3 | b1 = b1 | b4
26
- * V & ~b4 | b2 = b1 | b2
27
- *
28
- * As you can see, we end up with the wrong result.
29
- * This is because we're removing a bit that was previously set.
30
- * And, thus the final result is missing b3 and b4.
31
- *
32
- * Now, let's explore the issue with removing the bits first:
33
- * V & ~b1 = b2 | b3 | b4
34
- * V & ~b2 = b3 | b4
35
- * V & ~b3 = b4
36
- * V & ~b4 = 0
37
- *
38
- * And then setting the bits:
39
- * V | b3 = b3
40
- * V | b4 = b3 | b4
41
- * V | b1 = b1 | b3 | b4
42
- * V | b2 = b1 | b2 | b3 | b4
43
- *
44
- * We get the correct result because we're not removing any bits that were
45
- * previously set thus properly remapping the bits to the new order
46
- *
47
- * To collect this into a single operation that can be done simultaneously
48
- * we must first create a mask for the old bits that are set and a mask for
49
- * the new bits that are set. Then we can remove the old bits and set the new
50
- * bits simultaneously in a "single" operation like so:
51
- * OldMask = b1 | b2 | b3 | b4
52
- * NewMask = b3 | b4 | b1 | b2
53
- *
54
- * So this:
55
- * V & ~oldMask | newMask
56
- *
57
- * Expands to this:
58
- * V & ~b1 & ~b2 & ~b3 & ~b4 | b3 | b4 | b1 | b2
59
- *
60
- * Which becomes this:
61
- * b1 | b2 | b3 | b4
62
- *
63
- * Which is the correct result!
64
- *
65
- * @param {bigint} num
66
- * @param {[bigint, bigint][]} mapping
67
- */
68
- export function remapBitfield(num, mapping) {
69
- // Create masks for the old and new bits that are set
70
- let oldMask = 0n
71
- let newMask = 0n
72
- for (let [oldBit, newBit] of mapping) {
73
- if (num & oldBit) {
74
- oldMask = oldMask | oldBit
75
- newMask = newMask | newBit
76
- }
77
- }
78
-
79
- // Remove all old bits
80
- // Set all new bits
81
- return (num & ~oldMask) | newMask
82
- }
@@ -1,163 +0,0 @@
1
- import postcss from 'postcss'
2
- import selectorParser from 'postcss-selector-parser'
3
- import { flagEnabled } from '../featureFlags'
4
-
5
- let getNode = {
6
- id(node) {
7
- return selectorParser.attribute({
8
- attribute: 'id',
9
- operator: '=',
10
- value: node.value,
11
- quoteMark: '"',
12
- })
13
- },
14
- }
15
-
16
- function minimumImpactSelector(nodes) {
17
- let rest = nodes
18
- .filter((node) => {
19
- // Keep non-pseudo nodes
20
- if (node.type !== 'pseudo') return true
21
-
22
- // Keep pseudo nodes that have subnodes
23
- // E.g.: `:not()` contains subnodes inside the parentheses
24
- if (node.nodes.length > 0) return true
25
-
26
- // Keep pseudo `elements`
27
- // This implicitly means that we ignore pseudo `classes`
28
- return (
29
- node.value.startsWith('::') ||
30
- [':before', ':after', ':first-line', ':first-letter'].includes(node.value)
31
- )
32
- })
33
- .reverse()
34
-
35
- let searchFor = new Set(['tag', 'class', 'id', 'attribute'])
36
-
37
- let splitPointIdx = rest.findIndex((n) => searchFor.has(n.type))
38
- if (splitPointIdx === -1) return rest.reverse().join('').trim()
39
-
40
- let node = rest[splitPointIdx]
41
- let bestNode = getNode[node.type] ? getNode[node.type](node) : node
42
-
43
- rest = rest.slice(0, splitPointIdx)
44
-
45
- let combinatorIdx = rest.findIndex((n) => n.type === 'combinator' && n.value === '>')
46
- if (combinatorIdx !== -1) {
47
- rest.splice(0, combinatorIdx)
48
- rest.unshift(selectorParser.universal())
49
- }
50
-
51
- return [bestNode, ...rest.reverse()].join('').trim()
52
- }
53
-
54
- export let elementSelectorParser = selectorParser((selectors) => {
55
- return selectors.map((s) => {
56
- let nodes = s.split((n) => n.type === 'combinator' && n.value === ' ').pop()
57
- return minimumImpactSelector(nodes)
58
- })
59
- })
60
-
61
- let cache = new Map()
62
-
63
- function extractElementSelector(selector) {
64
- if (!cache.has(selector)) {
65
- cache.set(selector, elementSelectorParser.transformSync(selector))
66
- }
67
-
68
- return cache.get(selector)
69
- }
70
-
71
- export default function resolveDefaultsAtRules({ tailwindConfig }) {
72
- return (root) => {
73
- let variableNodeMap = new Map()
74
-
75
- /** @type {Set<import('postcss').AtRule>} */
76
- let universals = new Set()
77
-
78
- root.walkAtRules('defaults', (rule) => {
79
- if (rule.nodes && rule.nodes.length > 0) {
80
- universals.add(rule)
81
- return
82
- }
83
-
84
- let variable = rule.params
85
- if (!variableNodeMap.has(variable)) {
86
- variableNodeMap.set(variable, new Set())
87
- }
88
-
89
- variableNodeMap.get(variable).add(rule.parent)
90
-
91
- rule.remove()
92
- })
93
-
94
- if (flagEnabled(tailwindConfig, 'optimizeUniversalDefaults')) {
95
- for (let universal of universals) {
96
- /** @type {Map<string, Set<string>>} */
97
- let selectorGroups = new Map()
98
-
99
- let rules = variableNodeMap.get(universal.params) ?? []
100
-
101
- for (let rule of rules) {
102
- for (let selector of extractElementSelector(rule.selector)) {
103
- // If selector contains a vendor prefix after a pseudo element or class,
104
- // we consider them separately because merging the declarations into
105
- // a single rule will cause browsers that do not understand the
106
- // vendor prefix to throw out the whole rule
107
- let selectorGroupName =
108
- selector.includes(':-') || selector.includes('::-') ? selector : '__DEFAULT__'
109
-
110
- let selectors = selectorGroups.get(selectorGroupName) ?? new Set()
111
- selectorGroups.set(selectorGroupName, selectors)
112
-
113
- selectors.add(selector)
114
- }
115
- }
116
-
117
- if (flagEnabled(tailwindConfig, 'optimizeUniversalDefaults')) {
118
- if (selectorGroups.size === 0) {
119
- universal.remove()
120
- continue
121
- }
122
-
123
- for (let [, selectors] of selectorGroups) {
124
- let universalRule = postcss.rule({
125
- source: universal.source,
126
- })
127
-
128
- universalRule.selectors = [...selectors]
129
-
130
- universalRule.append(universal.nodes.map((node) => node.clone()))
131
- universal.before(universalRule)
132
- }
133
- }
134
-
135
- universal.remove()
136
- }
137
- } else if (universals.size) {
138
- let universalRule = postcss.rule({
139
- selectors: ['*', '::before', '::after'],
140
- })
141
-
142
- for (let universal of universals) {
143
- universalRule.append(universal.nodes)
144
-
145
- if (!universalRule.parent) {
146
- universal.before(universalRule)
147
- }
148
-
149
- if (!universalRule.source) {
150
- universalRule.source = universal.source
151
- }
152
-
153
- universal.remove()
154
- }
155
-
156
- let backdropRule = universalRule.clone({
157
- selectors: ['::backdrop'],
158
- })
159
-
160
- universalRule.after(backdropRule)
161
- }
162
- }
163
- }