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
@@ -1,272 +0,0 @@
1
- import dlv from 'dlv'
2
- import didYouMean from 'didyoumean'
3
- import transformThemeValue from '../util/transformThemeValue'
4
- import parseValue from '../value-parser/index'
5
- import { normalizeScreens } from '../util/normalizeScreens'
6
- import buildMediaQuery from '../util/buildMediaQuery'
7
- import { toPath } from '../util/toPath'
8
- import { withAlphaValue } from '../util/withAlphaVariable'
9
- import { parseColorFormat } from '../util/pluginUtils'
10
- import log from '../util/log'
11
-
12
- function isObject(input) {
13
- return typeof input === 'object' && input !== null
14
- }
15
-
16
- function findClosestExistingPath(theme, path) {
17
- let parts = toPath(path)
18
- do {
19
- parts.pop()
20
-
21
- if (dlv(theme, parts) !== undefined) break
22
- } while (parts.length)
23
-
24
- return parts.length ? parts : undefined
25
- }
26
-
27
- function pathToString(path) {
28
- if (typeof path === 'string') return path
29
- return path.reduce((acc, cur, i) => {
30
- if (cur.includes('.')) return `${acc}[${cur}]`
31
- return i === 0 ? cur : `${acc}.${cur}`
32
- }, '')
33
- }
34
-
35
- function list(items) {
36
- return items.map((key) => `'${key}'`).join(', ')
37
- }
38
-
39
- function listKeys(obj) {
40
- return list(Object.keys(obj))
41
- }
42
-
43
- function validatePath(config, path, defaultValue, themeOpts = {}) {
44
- const pathString = Array.isArray(path) ? pathToString(path) : path.replace(/^['"]+|['"]+$/g, '')
45
- const pathSegments = Array.isArray(path) ? path : toPath(pathString)
46
- const value = dlv(config.theme, pathSegments, defaultValue)
47
-
48
- if (value === undefined) {
49
- let error = `'${pathString}' does not exist in your theme config.`
50
- const parentSegments = pathSegments.slice(0, -1)
51
- const parentValue = dlv(config.theme, parentSegments)
52
-
53
- if (isObject(parentValue)) {
54
- const validKeys = Object.keys(parentValue).filter(
55
- (key) => validatePath(config, [...parentSegments, key]).isValid
56
- )
57
- const suggestion = didYouMean(pathSegments[pathSegments.length - 1], validKeys)
58
- if (suggestion) {
59
- error += ` Did you mean '${pathToString([...parentSegments, suggestion])}'?`
60
- } else if (validKeys.length > 0) {
61
- error += ` '${pathToString(parentSegments)}' has the following valid keys: ${list(
62
- validKeys
63
- )}`
64
- }
65
- } else {
66
- const closestPath = findClosestExistingPath(config.theme, pathString)
67
- if (closestPath) {
68
- const closestValue = dlv(config.theme, closestPath)
69
- if (isObject(closestValue)) {
70
- error += ` '${pathToString(closestPath)}' has the following keys: ${listKeys(
71
- closestValue
72
- )}`
73
- } else {
74
- error += ` '${pathToString(closestPath)}' is not an object.`
75
- }
76
- } else {
77
- error += ` Your theme has the following top-level keys: ${listKeys(config.theme)}`
78
- }
79
- }
80
-
81
- return {
82
- isValid: false,
83
- error,
84
- }
85
- }
86
-
87
- if (
88
- !(
89
- typeof value === 'string' ||
90
- typeof value === 'number' ||
91
- typeof value === 'function' ||
92
- value instanceof String ||
93
- value instanceof Number ||
94
- Array.isArray(value)
95
- )
96
- ) {
97
- let error = `'${pathString}' was found but does not resolve to a string.`
98
-
99
- if (isObject(value)) {
100
- let validKeys = Object.keys(value).filter(
101
- (key) => validatePath(config, [...pathSegments, key]).isValid
102
- )
103
- if (validKeys.length) {
104
- error += ` Did you mean something like '${pathToString([...pathSegments, validKeys[0]])}'?`
105
- }
106
- }
107
-
108
- return {
109
- isValid: false,
110
- error,
111
- }
112
- }
113
-
114
- const [themeSection] = pathSegments
115
-
116
- return {
117
- isValid: true,
118
- value: transformThemeValue(themeSection)(value, themeOpts),
119
- }
120
- }
121
-
122
- function extractArgs(node, vNodes, functions) {
123
- vNodes = vNodes.map((vNode) => resolveVNode(node, vNode, functions))
124
-
125
- let args = ['']
126
-
127
- for (let vNode of vNodes) {
128
- if (vNode.type === 'div' && vNode.value === ',') {
129
- args.push('')
130
- } else {
131
- args[args.length - 1] += parseValue.stringify(vNode)
132
- }
133
- }
134
-
135
- return args
136
- }
137
-
138
- function resolveVNode(node, vNode, functions) {
139
- if (vNode.type === 'function' && functions[vNode.value] !== undefined) {
140
- let args = extractArgs(node, vNode.nodes, functions)
141
- vNode.type = 'word'
142
- vNode.value = functions[vNode.value](node, ...args)
143
- }
144
-
145
- return vNode
146
- }
147
-
148
- function resolveFunctions(node, input, functions) {
149
- let hasAnyFn = Object.keys(functions).some((fn) => input.includes(`${fn}(`))
150
- if (!hasAnyFn) return input
151
-
152
- return parseValue(input)
153
- .walk((vNode) => {
154
- resolveVNode(node, vNode, functions)
155
- })
156
- .toString()
157
- }
158
-
159
- let nodeTypePropertyMap = {
160
- atrule: 'params',
161
- decl: 'value',
162
- }
163
-
164
- /**
165
- * @param {string} path
166
- * @returns {Iterable<[path: string, alpha: string|undefined]>}
167
- */
168
- function* toPaths(path) {
169
- // Strip quotes from beginning and end of string
170
- // This allows the alpha value to be present inside of quotes
171
- path = path.replace(/^['"]+|['"]+$/g, '')
172
-
173
- let matches = path.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/)
174
- let alpha = undefined
175
-
176
- yield [path, undefined]
177
-
178
- if (matches) {
179
- path = matches[1]
180
- alpha = matches[2]
181
-
182
- yield [path, alpha]
183
- }
184
- }
185
-
186
- /**
187
- *
188
- * @param {any} config
189
- * @param {string} path
190
- * @param {any} defaultValue
191
- */
192
- function resolvePath(config, path, defaultValue) {
193
- const results = Array.from(toPaths(path)).map(([path, alpha]) => {
194
- return Object.assign(validatePath(config, path, defaultValue, { opacityValue: alpha }), {
195
- resolvedPath: path,
196
- alpha,
197
- })
198
- })
199
-
200
- return results.find((result) => result.isValid) ?? results[0]
201
- }
202
-
203
- export default function (context) {
204
- let config = context.tailwindConfig
205
-
206
- let functions = {
207
- theme: (node, path, ...defaultValue) => {
208
- let { isValid, value, error, alpha } = resolvePath(
209
- config,
210
- path,
211
- defaultValue.length ? defaultValue : undefined
212
- )
213
-
214
- if (!isValid) {
215
- let parentNode = node.parent
216
- let candidate = parentNode?.raws.tailwind?.candidate
217
-
218
- if (parentNode && candidate !== undefined) {
219
- // Remove this utility from any caches
220
- context.markInvalidUtilityNode(parentNode)
221
-
222
- // Remove the CSS node from the markup
223
- parentNode.remove()
224
-
225
- // Show a warning
226
- log.warn('invalid-theme-key-in-class', [
227
- `The utility \`${candidate}\` contains an invalid theme value and was not generated.`,
228
- ])
229
-
230
- return
231
- }
232
-
233
- throw node.error(error)
234
- }
235
-
236
- let maybeColor = parseColorFormat(value)
237
- let isColorFunction = maybeColor !== undefined && typeof maybeColor === 'function'
238
-
239
- if (alpha !== undefined || isColorFunction) {
240
- if (alpha === undefined) {
241
- alpha = 1.0
242
- }
243
-
244
- value = withAlphaValue(maybeColor, alpha, maybeColor)
245
- }
246
-
247
- return value
248
- },
249
- screen: (node, screen) => {
250
- screen = screen.replace(/^['"]+/g, '').replace(/['"]+$/g, '')
251
- let screens = normalizeScreens(config.theme.screens)
252
- let screenDefinition = screens.find(({ name }) => name === screen)
253
-
254
- if (!screenDefinition) {
255
- throw node.error(`The '${screen}' screen does not exist in your theme.`)
256
- }
257
-
258
- return buildMediaQuery(screenDefinition)
259
- },
260
- }
261
- return (root) => {
262
- root.walk((node) => {
263
- let property = nodeTypePropertyMap[node.type]
264
-
265
- if (property === undefined) {
266
- return
267
- }
268
-
269
- node[property] = resolveFunctions(node, node[property], functions)
270
- })
271
- }
272
- }