tailwindcss 0.0.0-insiders.de00a62 → 0.0.0-insiders.deb33a9

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