tailwindcss 0.0.0-insiders.ff2c25f → 0.0.0-internal.b2586d4e

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 (248) hide show
  1. package/README.md +5 -6
  2. package/dist/lib.d.mts +339 -0
  3. package/dist/lib.d.ts +339 -0
  4. package/dist/lib.js +17 -0
  5. package/dist/lib.mjs +17 -0
  6. package/index.css +5 -0
  7. package/package.json +36 -107
  8. package/preflight.css +334 -0
  9. package/theme.css +463 -0
  10. package/base.css +0 -1
  11. package/colors.d.ts +0 -3
  12. package/colors.js +0 -2
  13. package/components.css +0 -1
  14. package/defaultConfig.d.ts +0 -3
  15. package/defaultConfig.js +0 -2
  16. package/defaultTheme.d.ts +0 -4
  17. package/defaultTheme.js +0 -2
  18. package/lib/cli/build/deps.js +0 -54
  19. package/lib/cli/build/index.js +0 -48
  20. package/lib/cli/build/plugin.js +0 -367
  21. package/lib/cli/build/utils.js +0 -78
  22. package/lib/cli/build/watching.js +0 -178
  23. package/lib/cli/help/index.js +0 -71
  24. package/lib/cli/index.js +0 -239
  25. package/lib/cli/init/index.js +0 -46
  26. package/lib/cli-peer-dependencies.js +0 -28
  27. package/lib/cli.js +0 -7
  28. package/lib/constants.js +0 -44
  29. package/lib/corePluginList.js +0 -181
  30. package/lib/corePlugins.js +0 -4062
  31. package/lib/css/LICENSE +0 -25
  32. package/lib/css/preflight.css +0 -367
  33. package/lib/featureFlags.js +0 -71
  34. package/lib/index.js +0 -6
  35. package/lib/lib/cacheInvalidation.js +0 -90
  36. package/lib/lib/collapseAdjacentRules.js +0 -59
  37. package/lib/lib/collapseDuplicateDeclarations.js +0 -83
  38. package/lib/lib/content.js +0 -177
  39. package/lib/lib/defaultExtractor.js +0 -241
  40. package/lib/lib/detectNesting.js +0 -43
  41. package/lib/lib/evaluateTailwindFunctions.js +0 -234
  42. package/lib/lib/expandApplyAtRules.js +0 -526
  43. package/lib/lib/expandTailwindAtRules.js +0 -273
  44. package/lib/lib/findAtConfigPath.js +0 -44
  45. package/lib/lib/generateRules.js +0 -866
  46. package/lib/lib/getModuleDependencies.js +0 -51
  47. package/lib/lib/normalizeTailwindDirectives.js +0 -87
  48. package/lib/lib/offsets.js +0 -299
  49. package/lib/lib/partitionApplyAtRules.js +0 -56
  50. package/lib/lib/regex.js +0 -60
  51. package/lib/lib/remap-bitfield.js +0 -87
  52. package/lib/lib/resolveDefaultsAtRules.js +0 -161
  53. package/lib/lib/setupContextUtils.js +0 -1218
  54. package/lib/lib/setupTrackingContext.js +0 -163
  55. package/lib/lib/sharedState.js +0 -78
  56. package/lib/lib/substituteScreenAtRules.js +0 -29
  57. package/lib/oxide/cli/build/deps.js +0 -81
  58. package/lib/oxide/cli/build/index.js +0 -47
  59. package/lib/oxide/cli/build/plugin.js +0 -364
  60. package/lib/oxide/cli/build/utils.js +0 -77
  61. package/lib/oxide/cli/build/watching.js +0 -177
  62. package/lib/oxide/cli/help/index.js +0 -70
  63. package/lib/oxide/cli/index.js +0 -220
  64. package/lib/oxide/cli/init/index.js +0 -35
  65. package/lib/oxide/cli.js +0 -5
  66. package/lib/oxide/postcss-plugin.js +0 -2
  67. package/lib/plugin.js +0 -48
  68. package/lib/postcss-plugins/nesting/README.md +0 -42
  69. package/lib/postcss-plugins/nesting/index.js +0 -19
  70. package/lib/postcss-plugins/nesting/plugin.js +0 -87
  71. package/lib/processTailwindFeatures.js +0 -62
  72. package/lib/public/colors.js +0 -331
  73. package/lib/public/create-plugin.js +0 -15
  74. package/lib/public/default-config.js +0 -16
  75. package/lib/public/default-theme.js +0 -16
  76. package/lib/public/resolve-config.js +0 -22
  77. package/lib/util/bigSign.js +0 -11
  78. package/lib/util/buildMediaQuery.js +0 -25
  79. package/lib/util/cloneDeep.js +0 -20
  80. package/lib/util/cloneNodes.js +0 -32
  81. package/lib/util/color.js +0 -98
  82. package/lib/util/configurePlugins.js +0 -21
  83. package/lib/util/createPlugin.js +0 -30
  84. package/lib/util/createUtilityPlugin.js +0 -51
  85. package/lib/util/dataTypes.js +0 -266
  86. package/lib/util/defaults.js +0 -25
  87. package/lib/util/escapeClassName.js +0 -22
  88. package/lib/util/escapeCommas.js +0 -11
  89. package/lib/util/flattenColorPalette.js +0 -16
  90. package/lib/util/formatVariantSelector.js +0 -351
  91. package/lib/util/getAllConfigs.js +0 -48
  92. package/lib/util/hashConfig.js +0 -19
  93. package/lib/util/isKeyframeRule.js +0 -11
  94. package/lib/util/isPlainObject.js +0 -15
  95. package/lib/util/isSyntacticallyValidPropertyValue.js +0 -72
  96. package/lib/util/log.js +0 -57
  97. package/lib/util/nameClass.js +0 -43
  98. package/lib/util/negateValue.js +0 -34
  99. package/lib/util/normalizeConfig.js +0 -281
  100. package/lib/util/normalizeScreens.js +0 -170
  101. package/lib/util/parseAnimationValue.js +0 -91
  102. package/lib/util/parseBoxShadowValue.js +0 -84
  103. package/lib/util/parseDependency.js +0 -45
  104. package/lib/util/parseGlob.js +0 -34
  105. package/lib/util/parseObjectStyles.js +0 -34
  106. package/lib/util/pluginUtils.js +0 -283
  107. package/lib/util/prefixSelector.js +0 -37
  108. package/lib/util/removeAlphaVariables.js +0 -29
  109. package/lib/util/resolveConfig.js +0 -254
  110. package/lib/util/resolveConfigPath.js +0 -54
  111. package/lib/util/responsive.js +0 -22
  112. package/lib/util/splitAtTopLevelOnly.js +0 -43
  113. package/lib/util/tap.js +0 -12
  114. package/lib/util/toColorValue.js +0 -11
  115. package/lib/util/toPath.js +0 -30
  116. package/lib/util/transformThemeValue.js +0 -71
  117. package/lib/util/validateConfig.js +0 -24
  118. package/lib/util/validateFormalSyntax.js +0 -24
  119. package/lib/util/withAlphaVariable.js +0 -75
  120. package/nesting/index.js +0 -2
  121. package/oxide-node-api-shim/index.js +0 -21
  122. package/oxide-node-api-shim/package.json +0 -5
  123. package/peers/index.js +0 -79461
  124. package/plugin.d.ts +0 -11
  125. package/plugin.js +0 -2
  126. package/prettier.config.js +0 -19
  127. package/resolveConfig.d.ts +0 -12
  128. package/resolveConfig.js +0 -2
  129. package/screens.css +0 -1
  130. package/scripts/create-plugin-list.js +0 -10
  131. package/scripts/generate-types.js +0 -105
  132. package/scripts/release-channel.js +0 -18
  133. package/scripts/release-notes.js +0 -21
  134. package/scripts/swap-engines.js +0 -40
  135. package/scripts/type-utils.js +0 -27
  136. package/src/cli/build/deps.js +0 -56
  137. package/src/cli/build/index.js +0 -49
  138. package/src/cli/build/plugin.js +0 -439
  139. package/src/cli/build/utils.js +0 -76
  140. package/src/cli/build/watching.js +0 -227
  141. package/src/cli/help/index.js +0 -70
  142. package/src/cli/index.js +0 -234
  143. package/src/cli/init/index.js +0 -50
  144. package/src/cli-peer-dependencies.js +0 -15
  145. package/src/cli.js +0 -7
  146. package/src/constants.js +0 -17
  147. package/src/corePluginList.js +0 -1
  148. package/src/corePlugins.js +0 -2744
  149. package/src/css/LICENSE +0 -25
  150. package/src/css/preflight.css +0 -367
  151. package/src/featureFlags.js +0 -64
  152. package/src/index.js +0 -5
  153. package/src/lib/cacheInvalidation.js +0 -52
  154. package/src/lib/collapseAdjacentRules.js +0 -58
  155. package/src/lib/collapseDuplicateDeclarations.js +0 -93
  156. package/src/lib/content.js +0 -208
  157. package/src/lib/defaultExtractor.js +0 -217
  158. package/src/lib/detectNesting.js +0 -47
  159. package/src/lib/evaluateTailwindFunctions.js +0 -269
  160. package/src/lib/expandApplyAtRules.js +0 -606
  161. package/src/lib/expandTailwindAtRules.js +0 -285
  162. package/src/lib/findAtConfigPath.js +0 -48
  163. package/src/lib/generateRules.js +0 -899
  164. package/src/lib/getModuleDependencies.js +0 -39
  165. package/src/lib/normalizeTailwindDirectives.js +0 -84
  166. package/src/lib/offsets.js +0 -367
  167. package/src/lib/partitionApplyAtRules.js +0 -52
  168. package/src/lib/regex.js +0 -74
  169. package/src/lib/remap-bitfield.js +0 -82
  170. package/src/lib/resolveDefaultsAtRules.js +0 -163
  171. package/src/lib/setupContextUtils.js +0 -1308
  172. package/src/lib/setupTrackingContext.js +0 -171
  173. package/src/lib/sharedState.js +0 -67
  174. package/src/lib/substituteScreenAtRules.js +0 -19
  175. package/src/oxide/cli/build/deps.ts +0 -91
  176. package/src/oxide/cli/build/index.ts +0 -47
  177. package/src/oxide/cli/build/plugin.ts +0 -436
  178. package/src/oxide/cli/build/utils.ts +0 -74
  179. package/src/oxide/cli/build/watching.ts +0 -225
  180. package/src/oxide/cli/help/index.ts +0 -69
  181. package/src/oxide/cli/index.ts +0 -212
  182. package/src/oxide/cli/init/index.ts +0 -32
  183. package/src/oxide/cli.ts +0 -1
  184. package/src/oxide/postcss-plugin.ts +0 -1
  185. package/src/plugin.js +0 -47
  186. package/src/postcss-plugins/nesting/README.md +0 -42
  187. package/src/postcss-plugins/nesting/index.js +0 -13
  188. package/src/postcss-plugins/nesting/plugin.js +0 -80
  189. package/src/processTailwindFeatures.js +0 -58
  190. package/src/public/colors.js +0 -300
  191. package/src/public/create-plugin.js +0 -2
  192. package/src/public/default-config.js +0 -4
  193. package/src/public/default-theme.js +0 -4
  194. package/src/public/resolve-config.js +0 -7
  195. package/src/util/bigSign.js +0 -3
  196. package/src/util/buildMediaQuery.js +0 -22
  197. package/src/util/cloneDeep.js +0 -11
  198. package/src/util/cloneNodes.js +0 -28
  199. package/src/util/color.js +0 -73
  200. package/src/util/configurePlugins.js +0 -23
  201. package/src/util/createPlugin.js +0 -27
  202. package/src/util/createUtilityPlugin.js +0 -37
  203. package/src/util/dataTypes.js +0 -281
  204. package/src/util/defaults.js +0 -17
  205. package/src/util/escapeClassName.js +0 -8
  206. package/src/util/escapeCommas.js +0 -3
  207. package/src/util/flattenColorPalette.js +0 -13
  208. package/src/util/formatVariantSelector.js +0 -412
  209. package/src/util/getAllConfigs.js +0 -38
  210. package/src/util/hashConfig.js +0 -5
  211. package/src/util/isKeyframeRule.js +0 -3
  212. package/src/util/isPlainObject.js +0 -8
  213. package/src/util/isSyntacticallyValidPropertyValue.js +0 -61
  214. package/src/util/log.js +0 -29
  215. package/src/util/nameClass.js +0 -30
  216. package/src/util/negateValue.js +0 -24
  217. package/src/util/normalizeConfig.js +0 -300
  218. package/src/util/normalizeScreens.js +0 -140
  219. package/src/util/parseAnimationValue.js +0 -68
  220. package/src/util/parseBoxShadowValue.js +0 -72
  221. package/src/util/parseDependency.js +0 -44
  222. package/src/util/parseGlob.js +0 -24
  223. package/src/util/parseObjectStyles.js +0 -19
  224. package/src/util/pluginUtils.js +0 -314
  225. package/src/util/prefixSelector.js +0 -32
  226. package/src/util/removeAlphaVariables.js +0 -24
  227. package/src/util/resolveConfig.js +0 -277
  228. package/src/util/resolveConfigPath.js +0 -55
  229. package/src/util/responsive.js +0 -10
  230. package/src/util/splitAtTopLevelOnly.js +0 -45
  231. package/src/util/tap.js +0 -4
  232. package/src/util/toColorValue.js +0 -3
  233. package/src/util/toPath.js +0 -26
  234. package/src/util/transformThemeValue.js +0 -62
  235. package/src/util/validateConfig.js +0 -13
  236. package/src/util/validateFormalSyntax.js +0 -34
  237. package/src/util/withAlphaVariable.js +0 -49
  238. package/stubs/defaultConfig.stub.js +0 -956
  239. package/stubs/defaultPostCssConfig.stub.js +0 -6
  240. package/stubs/simpleConfig.stub.js +0 -8
  241. package/tailwind.css +0 -5
  242. package/types/config.d.ts +0 -367
  243. package/types/generated/.gitkeep +0 -0
  244. package/types/generated/colors.d.ts +0 -276
  245. package/types/generated/corePluginList.d.ts +0 -1
  246. package/types/generated/default-theme.d.ts +0 -345
  247. package/types/index.d.ts +0 -7
  248. package/variants.css +0 -1
@@ -1,171 +0,0 @@
1
- // @ts-check
2
-
3
- import fs from 'fs'
4
- import LRU from 'quick-lru'
5
-
6
- import hash from '../util/hashConfig'
7
- import getModuleDependencies from '../lib/getModuleDependencies'
8
- import resolveConfig from '../public/resolve-config'
9
- import resolveConfigPath from '../util/resolveConfigPath'
10
- import { getContext, getFileModifiedMap } from './setupContextUtils'
11
- import parseDependency from '../util/parseDependency'
12
- import { validateConfig } from '../util/validateConfig.js'
13
- import { parseCandidateFiles, resolvedChangedContent } from './content.js'
14
-
15
- let configPathCache = new LRU({ maxSize: 100 })
16
-
17
- let candidateFilesCache = new WeakMap()
18
-
19
- function getCandidateFiles(context, tailwindConfig) {
20
- if (candidateFilesCache.has(context)) {
21
- return candidateFilesCache.get(context)
22
- }
23
-
24
- let candidateFiles = parseCandidateFiles(context, tailwindConfig)
25
-
26
- return candidateFilesCache.set(context, candidateFiles).get(context)
27
- }
28
-
29
- // Get the config object based on a path
30
- function getTailwindConfig(configOrPath) {
31
- let userConfigPath = resolveConfigPath(configOrPath)
32
-
33
- if (userConfigPath !== null) {
34
- let [prevConfig, prevConfigHash, prevDeps, prevModified] =
35
- configPathCache.get(userConfigPath) || []
36
-
37
- let newDeps = getModuleDependencies(userConfigPath).map((dep) => dep.file)
38
-
39
- let modified = false
40
- let newModified = new Map()
41
- for (let file of newDeps) {
42
- let time = fs.statSync(file).mtimeMs
43
- newModified.set(file, time)
44
- if (!prevModified || !prevModified.has(file) || time > prevModified.get(file)) {
45
- modified = true
46
- }
47
- }
48
-
49
- // It hasn't changed (based on timestamps)
50
- if (!modified) {
51
- return [prevConfig, userConfigPath, prevConfigHash, prevDeps]
52
- }
53
-
54
- // It has changed (based on timestamps), or first run
55
- for (let file of newDeps) {
56
- delete require.cache[file]
57
- }
58
- let newConfig = resolveConfig(require(userConfigPath))
59
- newConfig = validateConfig(newConfig)
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(
67
- configOrPath.config === undefined ? configOrPath : configOrPath.config
68
- )
69
-
70
- newConfig = validateConfig(newConfig)
71
-
72
- return [newConfig, null, hash(newConfig), []]
73
- }
74
-
75
- // DISABLE_TOUCH = TRUE
76
-
77
- // Retrieve an existing context from cache if possible (since contexts are unique per
78
- // source path), or set up a new one (including setting up watchers and registering
79
- // plugins) then return it
80
- export default function setupTrackingContext(configOrPath) {
81
- return ({ tailwindDirectives, registerDependency }) => {
82
- return (root, result) => {
83
- let [tailwindConfig, userConfigPath, tailwindConfigHash, configDependencies] =
84
- getTailwindConfig(configOrPath)
85
-
86
- let contextDependencies = new Set(configDependencies)
87
-
88
- // If there are no @tailwind or @apply rules, we don't consider this CSS
89
- // file or its dependencies to be dependencies of the context. Can reuse
90
- // the context even if they change. We may want to think about `@layer`
91
- // being part of this trigger too, but it's tough because it's impossible
92
- // for a layer in one file to end up in the actual @tailwind rule in
93
- // another file since independent sources are effectively isolated.
94
- if (tailwindDirectives.size > 0) {
95
- // Add current css file as a context dependencies.
96
- contextDependencies.add(result.opts.from)
97
-
98
- // Add all css @import dependencies as context dependencies.
99
- for (let message of result.messages) {
100
- if (message.type === 'dependency') {
101
- contextDependencies.add(message.file)
102
- }
103
- }
104
- }
105
-
106
- let [context, , mTimesToCommit] = getContext(
107
- root,
108
- result,
109
- tailwindConfig,
110
- userConfigPath,
111
- tailwindConfigHash,
112
- contextDependencies
113
- )
114
-
115
- let fileModifiedMap = getFileModifiedMap(context)
116
-
117
- let candidateFiles = getCandidateFiles(context, tailwindConfig)
118
-
119
- // If there are no @tailwind or @apply rules, we don't consider this CSS file or it's
120
- // dependencies to be dependencies of the context. Can reuse the context even if they change.
121
- // We may want to think about `@layer` being part of this trigger too, but it's tough
122
- // because it's impossible for a layer in one file to end up in the actual @tailwind rule
123
- // in another file since independent sources are effectively isolated.
124
- if (tailwindDirectives.size > 0) {
125
- // Add template paths as postcss dependencies.
126
- for (let contentPath of candidateFiles) {
127
- for (let dependency of parseDependency(contentPath)) {
128
- registerDependency(dependency)
129
- }
130
- }
131
-
132
- let [changedContent, contentMTimesToCommit] = resolvedChangedContent(
133
- context,
134
- candidateFiles,
135
- fileModifiedMap
136
- )
137
-
138
- for (let content of changedContent) {
139
- context.changedContent.push(content)
140
- }
141
-
142
- // Add the mtimes of the content files to the commit list
143
- // We can overwrite the existing values because unconditionally
144
- // This is because:
145
- // 1. Most of the files here won't be in the map yet
146
- // 2. If they are that means it's a context dependency
147
- // and we're reading this after the context. This means
148
- // that the mtime we just read is strictly >= the context
149
- // mtime. Unless the user / os is doing something weird
150
- // in which the mtime would be going backwards. If that
151
- // happens there's already going to be problems.
152
- for (let [path, mtime] of contentMTimesToCommit.entries()) {
153
- mTimesToCommit.set(path, mtime)
154
- }
155
- }
156
-
157
- for (let file of configDependencies) {
158
- registerDependency({ type: 'dependency', file })
159
- }
160
-
161
- // "commit" the new modified time for all context deps
162
- // We do this here because we want content tracking to
163
- // read the "old" mtime even when it's a context dependency.
164
- for (let [path, mtime] of mTimesToCommit.entries()) {
165
- fileModifiedMap.set(path, mtime)
166
- }
167
-
168
- return context
169
- }
170
- }
171
- }
@@ -1,67 +0,0 @@
1
- import pkg from '../../package.json'
2
- let OXIDE_DEFAULT_ENABLED = pkg.tailwindcss.engine === 'oxide'
3
-
4
- export const env = {
5
- NODE_ENV: process.env.NODE_ENV,
6
- DEBUG: resolveDebug(process.env.DEBUG),
7
- ENGINE: pkg.tailwindcss.engine,
8
- OXIDE: resolveBoolean(process.env.OXIDE, OXIDE_DEFAULT_ENABLED),
9
- }
10
- export const contextMap = new Map()
11
- export const configContextMap = new Map()
12
- export const contextSourcesMap = new Map()
13
- export const sourceHashMap = new Map()
14
- export const NOT_ON_DEMAND = new String('*')
15
-
16
- export const NONE = Symbol('__NONE__')
17
-
18
- function resolveBoolean(value, defaultValue) {
19
- if (value === undefined) {
20
- return defaultValue
21
- }
22
-
23
- if (value === '0' || value === 'false') {
24
- return false
25
- }
26
-
27
- return true
28
- }
29
-
30
- export function resolveDebug(debug) {
31
- if (debug === undefined) {
32
- return false
33
- }
34
-
35
- // Environment variables are strings, so convert to boolean
36
- if (debug === 'true' || debug === '1') {
37
- return true
38
- }
39
-
40
- if (debug === 'false' || debug === '0') {
41
- return false
42
- }
43
-
44
- // Keep the debug convention into account:
45
- // DEBUG=* -> This enables all debug modes
46
- // DEBUG=projectA,projectB,projectC -> This enables debug for projectA, projectB and projectC
47
- // DEBUG=projectA:* -> This enables all debug modes for projectA (if you have sub-types)
48
- // DEBUG=projectA,-projectB -> This enables debug for projectA and explicitly disables it for projectB
49
-
50
- if (debug === '*') {
51
- return true
52
- }
53
-
54
- let debuggers = debug.split(',').map((d) => d.split(':')[0])
55
-
56
- // Ignoring tailwindcss
57
- if (debuggers.includes('-tailwindcss')) {
58
- return false
59
- }
60
-
61
- // Including tailwindcss
62
- if (debuggers.includes('tailwindcss')) {
63
- return true
64
- }
65
-
66
- return false
67
- }
@@ -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 { createProcessor } from './plugin'
4
-
5
- export async function build(args, configs) {
6
- let input = args['--input']
7
- let shouldWatch = args['--watch']
8
-
9
- // TODO: Deprecate this in future versions
10
- if (!input && args['_'][1]) {
11
- console.error('[deprecation] Running tailwindcss without -i, please provide an input file.')
12
- input = args['--input'] = args['_'][1]
13
- }
14
-
15
- if (input && input !== '-' && !fs.existsSync((input = path.resolve(input)))) {
16
- console.error(`Specified input file ${args['--input']} does not exist.`)
17
- process.exit(9)
18
- }
19
-
20
- if (args['--config'] && !fs.existsSync((args['--config'] = path.resolve(args['--config'])))) {
21
- console.error(`Specified config file ${args['--config']} does not exist.`)
22
- process.exit(9)
23
- }
24
-
25
- // TODO: Reference the @config path here if exists
26
- let configPath = args['--config']
27
- ? args['--config']
28
- : ((defaultPath) => (fs.existsSync(defaultPath) ? defaultPath : null))(
29
- path.resolve(`./${configs.tailwind}`)
30
- )
31
-
32
- let processor = await createProcessor(args, configPath)
33
-
34
- if (shouldWatch) {
35
- // Abort the watcher if stdin is closed to avoid zombie processes
36
- // You can disable this behavior with --watch=always
37
- if (args['--watch'] !== 'always') {
38
- process.stdin.on('end', () => process.exit(0))
39
- }
40
-
41
- process.stdin.resume()
42
-
43
- await processor.watch()
44
- } else {
45
- await processor.build()
46
- }
47
- }