tailwindcss 3.4.1 → 4.0.0-alpha.1

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 (285) hide show
  1. package/dist/chunk-GNCUPSHB.mjs +5886 -0
  2. package/dist/cli.d.mts +1 -0
  3. package/dist/cli.d.ts +1 -0
  4. package/dist/cli.js +6309 -0
  5. package/dist/cli.mjs +432 -0
  6. package/dist/lib.d.mts +324 -0
  7. package/dist/lib.d.ts +324 -0
  8. package/dist/lib.js +5884 -0
  9. package/dist/lib.mjs +1 -0
  10. package/index.css +5 -0
  11. package/package.json +35 -104
  12. package/preflight.css +355 -0
  13. package/theme.css +465 -0
  14. package/CHANGELOG.md +0 -2571
  15. package/README.md +0 -41
  16. package/base.css +0 -1
  17. package/colors.d.ts +0 -3
  18. package/colors.js +0 -2
  19. package/components.css +0 -1
  20. package/defaultConfig.d.ts +0 -3
  21. package/defaultConfig.js +0 -2
  22. package/defaultTheme.d.ts +0 -4
  23. package/defaultTheme.js +0 -2
  24. package/lib/cli/build/deps.js +0 -62
  25. package/lib/cli/build/index.js +0 -54
  26. package/lib/cli/build/plugin.js +0 -378
  27. package/lib/cli/build/utils.js +0 -88
  28. package/lib/cli/build/watching.js +0 -182
  29. package/lib/cli/help/index.js +0 -73
  30. package/lib/cli/index.js +0 -230
  31. package/lib/cli/init/index.js +0 -63
  32. package/lib/cli-peer-dependencies.js +0 -36
  33. package/lib/cli.js +0 -7
  34. package/lib/corePluginList.js +0 -190
  35. package/lib/corePlugins.js +0 -4282
  36. package/lib/css/LICENSE +0 -25
  37. package/lib/css/preflight.css +0 -385
  38. package/lib/featureFlags.js +0 -83
  39. package/lib/index.js +0 -2
  40. package/lib/lib/cacheInvalidation.js +0 -92
  41. package/lib/lib/collapseAdjacentRules.js +0 -61
  42. package/lib/lib/collapseDuplicateDeclarations.js +0 -85
  43. package/lib/lib/content.js +0 -181
  44. package/lib/lib/defaultExtractor.js +0 -251
  45. package/lib/lib/detectNesting.js +0 -45
  46. package/lib/lib/evaluateTailwindFunctions.js +0 -238
  47. package/lib/lib/expandApplyAtRules.js +0 -540
  48. package/lib/lib/expandTailwindAtRules.js +0 -291
  49. package/lib/lib/findAtConfigPath.js +0 -46
  50. package/lib/lib/generateRules.js +0 -904
  51. package/lib/lib/getModuleDependencies.js +0 -99
  52. package/lib/lib/load-config.js +0 -53
  53. package/lib/lib/normalizeTailwindDirectives.js +0 -89
  54. package/lib/lib/offsets.js +0 -306
  55. package/lib/lib/partitionApplyAtRules.js +0 -58
  56. package/lib/lib/regex.js +0 -74
  57. package/lib/lib/remap-bitfield.js +0 -89
  58. package/lib/lib/resolveDefaultsAtRules.js +0 -165
  59. package/lib/lib/setupContextUtils.js +0 -1294
  60. package/lib/lib/setupTrackingContext.js +0 -166
  61. package/lib/lib/sharedState.js +0 -87
  62. package/lib/lib/substituteScreenAtRules.js +0 -31
  63. package/lib/oxide/cli/build/deps.js +0 -89
  64. package/lib/oxide/cli/build/index.js +0 -53
  65. package/lib/oxide/cli/build/plugin.js +0 -375
  66. package/lib/oxide/cli/build/utils.js +0 -87
  67. package/lib/oxide/cli/build/watching.js +0 -179
  68. package/lib/oxide/cli/help/index.js +0 -72
  69. package/lib/oxide/cli/index.js +0 -214
  70. package/lib/oxide/cli/init/index.js +0 -52
  71. package/lib/oxide/cli.js +0 -5
  72. package/lib/oxide/postcss-plugin.js +0 -2
  73. package/lib/plugin.js +0 -98
  74. package/lib/postcss-plugins/nesting/README.md +0 -42
  75. package/lib/postcss-plugins/nesting/index.js +0 -21
  76. package/lib/postcss-plugins/nesting/plugin.js +0 -89
  77. package/lib/processTailwindFeatures.js +0 -64
  78. package/lib/public/colors.js +0 -355
  79. package/lib/public/create-plugin.js +0 -17
  80. package/lib/public/default-config.js +0 -18
  81. package/lib/public/default-theme.js +0 -18
  82. package/lib/public/load-config.js +0 -12
  83. package/lib/public/resolve-config.js +0 -24
  84. package/lib/util/applyImportantSelector.js +0 -36
  85. package/lib/util/bigSign.js +0 -13
  86. package/lib/util/buildMediaQuery.js +0 -27
  87. package/lib/util/cloneDeep.js +0 -22
  88. package/lib/util/cloneNodes.js +0 -54
  89. package/lib/util/color.js +0 -116
  90. package/lib/util/colorNames.js +0 -752
  91. package/lib/util/configurePlugins.js +0 -23
  92. package/lib/util/createPlugin.js +0 -32
  93. package/lib/util/createUtilityPlugin.js +0 -53
  94. package/lib/util/dataTypes.js +0 -415
  95. package/lib/util/defaults.js +0 -27
  96. package/lib/util/escapeClassName.js +0 -24
  97. package/lib/util/escapeCommas.js +0 -13
  98. package/lib/util/flattenColorPalette.js +0 -18
  99. package/lib/util/formatVariantSelector.js +0 -270
  100. package/lib/util/getAllConfigs.js +0 -50
  101. package/lib/util/hashConfig.js +0 -21
  102. package/lib/util/isKeyframeRule.js +0 -13
  103. package/lib/util/isPlainObject.js +0 -17
  104. package/lib/util/isSyntacticallyValidPropertyValue.js +0 -74
  105. package/lib/util/log.js +0 -61
  106. package/lib/util/nameClass.js +0 -49
  107. package/lib/util/negateValue.js +0 -36
  108. package/lib/util/normalizeConfig.js +0 -282
  109. package/lib/util/normalizeScreens.js +0 -178
  110. package/lib/util/parseAnimationValue.js +0 -93
  111. package/lib/util/parseBoxShadowValue.js +0 -88
  112. package/lib/util/parseDependency.js +0 -47
  113. package/lib/util/parseGlob.js +0 -36
  114. package/lib/util/parseObjectStyles.js +0 -36
  115. package/lib/util/pluginUtils.js +0 -289
  116. package/lib/util/prefixSelector.js +0 -39
  117. package/lib/util/pseudoElements.js +0 -212
  118. package/lib/util/removeAlphaVariables.js +0 -31
  119. package/lib/util/resolveConfig.js +0 -256
  120. package/lib/util/resolveConfigPath.js +0 -70
  121. package/lib/util/responsive.js +0 -24
  122. package/lib/util/splitAtTopLevelOnly.js +0 -51
  123. package/lib/util/tap.js +0 -14
  124. package/lib/util/toColorValue.js +0 -13
  125. package/lib/util/toPath.js +0 -32
  126. package/lib/util/transformThemeValue.js +0 -73
  127. package/lib/util/validateConfig.js +0 -37
  128. package/lib/util/validateFormalSyntax.js +0 -26
  129. package/lib/util/withAlphaVariable.js +0 -79
  130. package/lib/value-parser/LICENSE +0 -22
  131. package/lib/value-parser/README.md +0 -3
  132. package/lib/value-parser/index.d.js +0 -2
  133. package/lib/value-parser/index.js +0 -22
  134. package/lib/value-parser/parse.js +0 -259
  135. package/lib/value-parser/stringify.js +0 -38
  136. package/lib/value-parser/unit.js +0 -86
  137. package/lib/value-parser/walk.js +0 -16
  138. package/loadConfig.d.ts +0 -4
  139. package/loadConfig.js +0 -2
  140. package/nesting/index.d.ts +0 -4
  141. package/nesting/index.js +0 -2
  142. package/peers/index.js +0 -96624
  143. package/plugin.d.ts +0 -11
  144. package/plugin.js +0 -2
  145. package/prettier.config.js +0 -19
  146. package/resolveConfig.d.ts +0 -31
  147. package/resolveConfig.js +0 -2
  148. package/screens.css +0 -1
  149. package/scripts/create-plugin-list.js +0 -10
  150. package/scripts/generate-types.js +0 -104
  151. package/scripts/release-channel.js +0 -18
  152. package/scripts/release-notes.js +0 -21
  153. package/scripts/swap-engines.js +0 -40
  154. package/scripts/type-utils.js +0 -27
  155. package/src/cli/build/deps.js +0 -56
  156. package/src/cli/build/index.js +0 -49
  157. package/src/cli/build/plugin.js +0 -444
  158. package/src/cli/build/utils.js +0 -76
  159. package/src/cli/build/watching.js +0 -229
  160. package/src/cli/help/index.js +0 -70
  161. package/src/cli/index.js +0 -216
  162. package/src/cli/init/index.js +0 -79
  163. package/src/cli-peer-dependencies.js +0 -15
  164. package/src/cli.js +0 -7
  165. package/src/corePluginList.js +0 -1
  166. package/src/corePlugins.js +0 -2943
  167. package/src/css/LICENSE +0 -25
  168. package/src/css/preflight.css +0 -385
  169. package/src/featureFlags.js +0 -66
  170. package/src/index.js +0 -1
  171. package/src/lib/cacheInvalidation.js +0 -52
  172. package/src/lib/collapseAdjacentRules.js +0 -58
  173. package/src/lib/collapseDuplicateDeclarations.js +0 -93
  174. package/src/lib/content.js +0 -208
  175. package/src/lib/defaultExtractor.js +0 -230
  176. package/src/lib/detectNesting.js +0 -47
  177. package/src/lib/evaluateTailwindFunctions.js +0 -272
  178. package/src/lib/expandApplyAtRules.js +0 -620
  179. package/src/lib/expandTailwindAtRules.js +0 -300
  180. package/src/lib/findAtConfigPath.js +0 -48
  181. package/src/lib/generateRules.js +0 -951
  182. package/src/lib/getModuleDependencies.js +0 -79
  183. package/src/lib/load-config.ts +0 -39
  184. package/src/lib/normalizeTailwindDirectives.js +0 -84
  185. package/src/lib/offsets.js +0 -373
  186. package/src/lib/partitionApplyAtRules.js +0 -52
  187. package/src/lib/regex.js +0 -74
  188. package/src/lib/remap-bitfield.js +0 -82
  189. package/src/lib/resolveDefaultsAtRules.js +0 -163
  190. package/src/lib/setupContextUtils.js +0 -1366
  191. package/src/lib/setupTrackingContext.js +0 -169
  192. package/src/lib/sharedState.js +0 -61
  193. package/src/lib/substituteScreenAtRules.js +0 -19
  194. package/src/oxide/cli/build/deps.ts +0 -91
  195. package/src/oxide/cli/build/index.ts +0 -47
  196. package/src/oxide/cli/build/plugin.ts +0 -442
  197. package/src/oxide/cli/build/utils.ts +0 -74
  198. package/src/oxide/cli/build/watching.ts +0 -225
  199. package/src/oxide/cli/help/index.ts +0 -69
  200. package/src/oxide/cli/index.ts +0 -204
  201. package/src/oxide/cli/init/index.ts +0 -59
  202. package/src/oxide/cli.ts +0 -1
  203. package/src/oxide/postcss-plugin.ts +0 -1
  204. package/src/plugin.js +0 -107
  205. package/src/postcss-plugins/nesting/README.md +0 -42
  206. package/src/postcss-plugins/nesting/index.js +0 -13
  207. package/src/postcss-plugins/nesting/plugin.js +0 -80
  208. package/src/processTailwindFeatures.js +0 -59
  209. package/src/public/colors.js +0 -322
  210. package/src/public/create-plugin.js +0 -2
  211. package/src/public/default-config.js +0 -4
  212. package/src/public/default-theme.js +0 -4
  213. package/src/public/load-config.js +0 -2
  214. package/src/public/resolve-config.js +0 -7
  215. package/src/util/applyImportantSelector.js +0 -27
  216. package/src/util/bigSign.js +0 -3
  217. package/src/util/buildMediaQuery.js +0 -22
  218. package/src/util/cloneDeep.js +0 -11
  219. package/src/util/cloneNodes.js +0 -49
  220. package/src/util/color.js +0 -88
  221. package/src/util/colorNames.js +0 -150
  222. package/src/util/configurePlugins.js +0 -23
  223. package/src/util/createPlugin.js +0 -27
  224. package/src/util/createUtilityPlugin.js +0 -37
  225. package/src/util/dataTypes.js +0 -406
  226. package/src/util/defaults.js +0 -17
  227. package/src/util/escapeClassName.js +0 -8
  228. package/src/util/escapeCommas.js +0 -3
  229. package/src/util/flattenColorPalette.js +0 -13
  230. package/src/util/formatVariantSelector.js +0 -324
  231. package/src/util/getAllConfigs.js +0 -38
  232. package/src/util/hashConfig.js +0 -5
  233. package/src/util/isKeyframeRule.js +0 -3
  234. package/src/util/isPlainObject.js +0 -8
  235. package/src/util/isSyntacticallyValidPropertyValue.js +0 -61
  236. package/src/util/log.js +0 -29
  237. package/src/util/nameClass.js +0 -30
  238. package/src/util/negateValue.js +0 -24
  239. package/src/util/normalizeConfig.js +0 -301
  240. package/src/util/normalizeScreens.js +0 -140
  241. package/src/util/parseAnimationValue.js +0 -68
  242. package/src/util/parseBoxShadowValue.js +0 -72
  243. package/src/util/parseDependency.js +0 -44
  244. package/src/util/parseGlob.js +0 -24
  245. package/src/util/parseObjectStyles.js +0 -19
  246. package/src/util/pluginUtils.js +0 -307
  247. package/src/util/prefixSelector.js +0 -33
  248. package/src/util/pseudoElements.js +0 -171
  249. package/src/util/removeAlphaVariables.js +0 -24
  250. package/src/util/resolveConfig.js +0 -277
  251. package/src/util/resolveConfigPath.js +0 -66
  252. package/src/util/responsive.js +0 -10
  253. package/src/util/splitAtTopLevelOnly.js +0 -52
  254. package/src/util/tap.js +0 -4
  255. package/src/util/toColorValue.js +0 -3
  256. package/src/util/toPath.js +0 -26
  257. package/src/util/transformThemeValue.js +0 -62
  258. package/src/util/validateConfig.js +0 -26
  259. package/src/util/validateFormalSyntax.js +0 -34
  260. package/src/util/withAlphaVariable.js +0 -49
  261. package/src/value-parser/LICENSE +0 -22
  262. package/src/value-parser/README.md +0 -3
  263. package/src/value-parser/index.d.ts +0 -177
  264. package/src/value-parser/index.js +0 -28
  265. package/src/value-parser/parse.js +0 -303
  266. package/src/value-parser/stringify.js +0 -41
  267. package/src/value-parser/unit.js +0 -118
  268. package/src/value-parser/walk.js +0 -18
  269. package/stubs/.gitignore +0 -1
  270. package/stubs/.prettierrc.json +0 -6
  271. package/stubs/config.full.js +0 -1062
  272. package/stubs/config.simple.js +0 -7
  273. package/stubs/postcss.config.cjs +0 -6
  274. package/stubs/postcss.config.js +0 -6
  275. package/stubs/tailwind.config.cjs +0 -2
  276. package/stubs/tailwind.config.js +0 -2
  277. package/stubs/tailwind.config.ts +0 -3
  278. package/tailwind.css +0 -5
  279. package/types/config.d.ts +0 -376
  280. package/types/generated/.gitkeep +0 -0
  281. package/types/generated/colors.d.ts +0 -298
  282. package/types/generated/corePluginList.d.ts +0 -1
  283. package/types/generated/default-theme.d.ts +0 -397
  284. package/types/index.d.ts +0 -11
  285. package/variants.css +0 -1
@@ -1,169 +0,0 @@
1
- // @ts-check
2
-
3
- import fs from 'fs'
4
- import LRU from '@alloc/quick-lru'
5
-
6
- import hash from '../util/hashConfig'
7
- import resolveConfig from '../public/resolve-config'
8
- import resolveConfigPath from '../util/resolveConfigPath'
9
- import { getContext, getFileModifiedMap } from './setupContextUtils'
10
- import parseDependency from '../util/parseDependency'
11
- import { validateConfig } from '../util/validateConfig.js'
12
- import { parseCandidateFiles, resolvedChangedContent } from './content.js'
13
- import { loadConfig } from '../lib/load-config'
14
- import getModuleDependencies from './getModuleDependencies'
15
-
16
- let configPathCache = new LRU({ maxSize: 100 })
17
-
18
- let candidateFilesCache = new WeakMap()
19
-
20
- function getCandidateFiles(context, tailwindConfig) {
21
- if (candidateFilesCache.has(context)) {
22
- return candidateFilesCache.get(context)
23
- }
24
-
25
- let candidateFiles = parseCandidateFiles(context, tailwindConfig)
26
-
27
- return candidateFilesCache.set(context, candidateFiles).get(context)
28
- }
29
-
30
- // Get the config object based on a path
31
- function getTailwindConfig(configOrPath) {
32
- let userConfigPath = resolveConfigPath(configOrPath)
33
-
34
- if (userConfigPath !== null) {
35
- let [prevConfig, prevConfigHash, prevDeps, prevModified] =
36
- configPathCache.get(userConfigPath) || []
37
-
38
- let newDeps = getModuleDependencies(userConfigPath)
39
-
40
- let modified = false
41
- let newModified = new Map()
42
- for (let file of newDeps) {
43
- let time = fs.statSync(file).mtimeMs
44
- newModified.set(file, time)
45
- if (!prevModified || !prevModified.has(file) || time > prevModified.get(file)) {
46
- modified = true
47
- }
48
- }
49
-
50
- // It hasn't changed (based on timestamps)
51
- if (!modified) {
52
- return [prevConfig, userConfigPath, prevConfigHash, prevDeps]
53
- }
54
-
55
- // It has changed (based on timestamps), or first run
56
- for (let file of newDeps) {
57
- delete require.cache[file]
58
- }
59
- let newConfig = validateConfig(resolveConfig(loadConfig(userConfigPath)))
60
- let newHash = hash(newConfig)
61
- configPathCache.set(userConfigPath, [newConfig, newHash, newDeps, newModified])
62
- return [newConfig, userConfigPath, newHash, newDeps]
63
- }
64
-
65
- // It's a plain object, not a path
66
- let newConfig = resolveConfig(configOrPath?.config ?? configOrPath ?? {})
67
-
68
- newConfig = validateConfig(newConfig)
69
-
70
- return [newConfig, null, hash(newConfig), []]
71
- }
72
-
73
- // DISABLE_TOUCH = TRUE
74
-
75
- // Retrieve an existing context from cache if possible (since contexts are unique per
76
- // source path), or set up a new one (including setting up watchers and registering
77
- // plugins) then return it
78
- export default function setupTrackingContext(configOrPath) {
79
- return ({ tailwindDirectives, registerDependency }) => {
80
- return (root, result) => {
81
- let [tailwindConfig, userConfigPath, tailwindConfigHash, configDependencies] =
82
- getTailwindConfig(configOrPath)
83
-
84
- let contextDependencies = new Set(configDependencies)
85
-
86
- // If there are no @tailwind or @apply rules, we don't consider this CSS
87
- // file or its dependencies to be dependencies of the context. Can reuse
88
- // the context even if they change. We may want to think about `@layer`
89
- // being part of this trigger too, but it's tough because it's impossible
90
- // for a layer in one file to end up in the actual @tailwind rule in
91
- // another file since independent sources are effectively isolated.
92
- if (tailwindDirectives.size > 0) {
93
- // Add current css file as a context dependencies.
94
- contextDependencies.add(result.opts.from)
95
-
96
- // Add all css @import dependencies as context dependencies.
97
- for (let message of result.messages) {
98
- if (message.type === 'dependency') {
99
- contextDependencies.add(message.file)
100
- }
101
- }
102
- }
103
-
104
- let [context, , mTimesToCommit] = getContext(
105
- root,
106
- result,
107
- tailwindConfig,
108
- userConfigPath,
109
- tailwindConfigHash,
110
- contextDependencies
111
- )
112
-
113
- let fileModifiedMap = getFileModifiedMap(context)
114
-
115
- let candidateFiles = getCandidateFiles(context, tailwindConfig)
116
-
117
- // If there are no @tailwind or @apply rules, we don't consider this CSS file or it's
118
- // dependencies to be dependencies of the context. Can reuse the context even if they change.
119
- // We may want to think about `@layer` being part of this trigger too, but it's tough
120
- // because it's impossible for a layer in one file to end up in the actual @tailwind rule
121
- // in another file since independent sources are effectively isolated.
122
- if (tailwindDirectives.size > 0) {
123
- // Add template paths as postcss dependencies.
124
- for (let contentPath of candidateFiles) {
125
- for (let dependency of parseDependency(contentPath)) {
126
- registerDependency(dependency)
127
- }
128
- }
129
-
130
- let [changedContent, contentMTimesToCommit] = resolvedChangedContent(
131
- context,
132
- candidateFiles,
133
- fileModifiedMap
134
- )
135
-
136
- for (let content of changedContent) {
137
- context.changedContent.push(content)
138
- }
139
-
140
- // Add the mtimes of the content files to the commit list
141
- // We can overwrite the existing values because unconditionally
142
- // This is because:
143
- // 1. Most of the files here won't be in the map yet
144
- // 2. If they are that means it's a context dependency
145
- // and we're reading this after the context. This means
146
- // that the mtime we just read is strictly >= the context
147
- // mtime. Unless the user / os is doing something weird
148
- // in which the mtime would be going backwards. If that
149
- // happens there's already going to be problems.
150
- for (let [path, mtime] of contentMTimesToCommit.entries()) {
151
- mTimesToCommit.set(path, mtime)
152
- }
153
- }
154
-
155
- for (let file of configDependencies) {
156
- registerDependency({ type: 'dependency', file })
157
- }
158
-
159
- // "commit" the new modified time for all context deps
160
- // We do this here because we want content tracking to
161
- // read the "old" mtime even when it's a context dependency.
162
- for (let [path, mtime] of mTimesToCommit.entries()) {
163
- fileModifiedMap.set(path, mtime)
164
- }
165
-
166
- return context
167
- }
168
- }
169
- }
@@ -1,61 +0,0 @@
1
- import pkg from '../../package.json'
2
-
3
- export const env =
4
- typeof process !== 'undefined'
5
- ? {
6
- NODE_ENV: process.env.NODE_ENV,
7
- DEBUG: resolveDebug(process.env.DEBUG),
8
- ENGINE: pkg.tailwindcss.engine,
9
- }
10
- : {
11
- NODE_ENV: 'production',
12
- DEBUG: false,
13
- ENGINE: pkg.tailwindcss.engine,
14
- }
15
-
16
- export const contextMap = new Map()
17
- export const configContextMap = new Map()
18
- export const contextSourcesMap = new Map()
19
- export const sourceHashMap = new Map()
20
- export const NOT_ON_DEMAND = new String('*')
21
-
22
- export const NONE = Symbol('__NONE__')
23
-
24
- export function resolveDebug(debug) {
25
- if (debug === undefined) {
26
- return false
27
- }
28
-
29
- // Environment variables are strings, so convert to boolean
30
- if (debug === 'true' || debug === '1') {
31
- return true
32
- }
33
-
34
- if (debug === 'false' || debug === '0') {
35
- return false
36
- }
37
-
38
- // Keep the debug convention into account:
39
- // DEBUG=* -> This enables all debug modes
40
- // DEBUG=projectA,projectB,projectC -> This enables debug for projectA, projectB and projectC
41
- // DEBUG=projectA:* -> This enables all debug modes for projectA (if you have sub-types)
42
- // DEBUG=projectA,-projectB -> This enables debug for projectA and explicitly disables it for projectB
43
-
44
- if (debug === '*') {
45
- return true
46
- }
47
-
48
- let debuggers = debug.split(',').map((d) => d.split(':')[0])
49
-
50
- // Ignoring tailwindcss
51
- if (debuggers.includes('-tailwindcss')) {
52
- return false
53
- }
54
-
55
- // Including tailwindcss
56
- if (debuggers.includes('tailwindcss')) {
57
- return true
58
- }
59
-
60
- return false
61
- }
@@ -1,19 +0,0 @@
1
- import { normalizeScreens } from '../util/normalizeScreens'
2
- import buildMediaQuery from '../util/buildMediaQuery'
3
-
4
- export default function ({ tailwindConfig: { theme } }) {
5
- return function (css) {
6
- css.walkAtRules('screen', (atRule) => {
7
- let screen = atRule.params
8
- let screens = normalizeScreens(theme.screens)
9
- let screenDefinition = screens.find(({ name }) => name === screen)
10
-
11
- if (!screenDefinition) {
12
- throw atRule.error(`No \`${screen}\` screen found.`)
13
- }
14
-
15
- atRule.name = 'media'
16
- atRule.params = buildMediaQuery(screenDefinition)
17
- })
18
- }
19
- }
@@ -1,91 +0,0 @@
1
- import packageJson from '../../../../package.json'
2
- import browserslist from 'browserslist'
3
- import { Result } from 'postcss'
4
-
5
- import {
6
- // @ts-ignore
7
- lazyPostcss,
8
-
9
- // @ts-ignore
10
- lazyPostcssImport,
11
-
12
- // @ts-ignore
13
- lazyCssnano,
14
-
15
- // @ts-ignore
16
- } from '../../../../peers/index'
17
-
18
- export function lazyLightningCss() {
19
- // TODO: Make this lazy/bundled
20
- return require('lightningcss')
21
- }
22
-
23
- let lightningCss
24
-
25
- function loadLightningCss() {
26
- if (lightningCss) {
27
- return lightningCss
28
- }
29
-
30
- // Try to load a local version first
31
- try {
32
- return (lightningCss = require('lightningcss'))
33
- } catch {}
34
-
35
- return (lightningCss = lazyLightningCss())
36
- }
37
-
38
- export async function lightningcss(shouldMinify: boolean, result: Result) {
39
- let css = loadLightningCss()
40
-
41
- try {
42
- let transformed = css.transform({
43
- filename: result.opts.from || 'input.css',
44
- code: Buffer.from(result.css, 'utf-8'),
45
- minify: shouldMinify,
46
- sourceMap: !!result.map,
47
- inputSourceMap: result.map ? result.map.toString() : undefined,
48
- targets: css.browserslistToTargets(browserslist(packageJson.browserslist)),
49
- drafts: {
50
- nesting: true,
51
- },
52
- })
53
-
54
- return Object.assign(result, {
55
- css: transformed.code.toString('utf8'),
56
- map: result.map
57
- ? Object.assign(result.map, {
58
- toString() {
59
- return transformed.map.toString()
60
- },
61
- })
62
- : result.map,
63
- })
64
- } catch (err) {
65
- console.error('Unable to use Lightning CSS. Using raw version instead.')
66
- console.error(err)
67
-
68
- return result
69
- }
70
- }
71
-
72
- /**
73
- * @returns {import('postcss')}
74
- */
75
- export function loadPostcss() {
76
- // Try to load a local `postcss` version first
77
- try {
78
- return require('postcss')
79
- } catch {}
80
-
81
- return lazyPostcss()
82
- }
83
-
84
- export function loadPostcssImport() {
85
- // Try to load a local `postcss-import` version first
86
- try {
87
- return require('postcss-import')
88
- } catch {}
89
-
90
- return lazyPostcssImport()
91
- }
@@ -1,47 +0,0 @@
1
- import fs from 'fs'
2
- import path from 'path'
3
- import { resolveDefaultConfigPath } from '../../../util/resolveConfigPath'
4
- import { createProcessor } from './plugin'
5
-
6
- export async function build(args) {
7
- let input = args['--input']
8
- let shouldWatch = args['--watch']
9
-
10
- // TODO: Deprecate this in future versions
11
- if (!input && args['_'][1]) {
12
- console.error('[deprecation] Running tailwindcss without -i, please provide an input file.')
13
- input = args['--input'] = args['_'][1]
14
- }
15
-
16
- if (input && input !== '-' && !fs.existsSync((input = path.resolve(input)))) {
17
- console.error(`Specified input file ${args['--input']} does not exist.`)
18
- process.exit(9)
19
- }
20
-
21
- if (args['--config'] && !fs.existsSync((args['--config'] = path.resolve(args['--config'])))) {
22
- console.error(`Specified config file ${args['--config']} does not exist.`)
23
- process.exit(9)
24
- }
25
-
26
- // TODO: Reference the @config path here if exists
27
- let configPath = args['--config'] ? args['--config'] : resolveDefaultConfigPath()
28
-
29
- let processor = await createProcessor(args, configPath)
30
-
31
- if (shouldWatch) {
32
- // Abort the watcher if stdin is closed to avoid zombie processes
33
- // You can disable this behavior with --watch=always
34
- if (args['--watch'] !== 'always') {
35
- process.stdin.on('end', () => process.exit(0))
36
- }
37
-
38
- process.stdin.resume()
39
-
40
- await processor.watch()
41
- } else {
42
- await processor.build().catch((e) => {
43
- console.error(e)
44
- process.exit(1)
45
- })
46
- }
47
- }