tailwindcss 0.0.0-insiders.d58d5b2 → 0.0.0-insiders.d593a21

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 (277) hide show
  1. package/README.md +5 -10
  2. package/dist/chunk-FTZ4NPTT.mjs +37 -0
  3. package/dist/chunk-G32FJCSR.mjs +1 -0
  4. package/dist/chunk-HTB5LLOP.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 +3 -0
  17. package/dist/flatten-color-palette.mjs +1 -0
  18. package/dist/lib.d.mts +352 -0
  19. package/dist/lib.d.ts +3 -0
  20. package/dist/lib.js +37 -0
  21. package/dist/lib.mjs +1 -0
  22. package/dist/plugin.d.mts +11 -0
  23. package/dist/plugin.d.ts +131 -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-WlZgYgM8.d.mts +125 -0
  29. package/index.css +894 -3
  30. package/package.json +76 -100
  31. package/preflight.css +393 -0
  32. package/theme.css +462 -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/index.js +0 -57
  42. package/lib/cli/build/plugin.js +0 -431
  43. package/lib/cli/build/utils.js +0 -88
  44. package/lib/cli/build/watching.js +0 -182
  45. package/lib/cli/help/index.js +0 -73
  46. package/lib/cli/index.js +0 -231
  47. package/lib/cli/init/index.js +0 -63
  48. package/lib/cli.js +0 -3
  49. package/lib/corePluginList.js +0 -188
  50. package/lib/corePlugins.js +0 -4195
  51. package/lib/css/LICENSE +0 -25
  52. package/lib/css/preflight.css +0 -379
  53. package/lib/featureFlags.js +0 -85
  54. package/lib/index.js +0 -2
  55. package/lib/lib/cacheInvalidation.js +0 -92
  56. package/lib/lib/collapseAdjacentRules.js +0 -61
  57. package/lib/lib/collapseDuplicateDeclarations.js +0 -85
  58. package/lib/lib/content.js +0 -207
  59. package/lib/lib/defaultExtractor.js +0 -243
  60. package/lib/lib/detectNesting.js +0 -45
  61. package/lib/lib/evaluateTailwindFunctions.js +0 -238
  62. package/lib/lib/expandApplyAtRules.js +0 -534
  63. package/lib/lib/expandTailwindAtRules.js +0 -315
  64. package/lib/lib/findAtConfigPath.js +0 -46
  65. package/lib/lib/generateRules.js +0 -887
  66. package/lib/lib/getModuleDependencies.js +0 -99
  67. package/lib/lib/handleImportAtRules.js +0 -50
  68. package/lib/lib/load-config.js +0 -42
  69. package/lib/lib/normalizeTailwindDirectives.js +0 -74
  70. package/lib/lib/offsets.js +0 -306
  71. package/lib/lib/partitionApplyAtRules.js +0 -58
  72. package/lib/lib/regex.js +0 -74
  73. package/lib/lib/remap-bitfield.js +0 -89
  74. package/lib/lib/resolveDefaultsAtRules.js +0 -165
  75. package/lib/lib/setupContextUtils.js +0 -1270
  76. package/lib/lib/setupTrackingContext.js +0 -167
  77. package/lib/lib/sharedState.js +0 -79
  78. package/lib/lib/substituteScreenAtRules.js +0 -31
  79. package/lib/plugin.js +0 -164
  80. package/lib/postcss-plugins/nesting/README.md +0 -42
  81. package/lib/postcss-plugins/nesting/index.js +0 -21
  82. package/lib/postcss-plugins/nesting/plugin.js +0 -89
  83. package/lib/processTailwindFeatures.js +0 -64
  84. package/lib/public/colors.js +0 -355
  85. package/lib/public/create-plugin.js +0 -17
  86. package/lib/public/default-config.js +0 -18
  87. package/lib/public/default-theme.js +0 -18
  88. package/lib/public/load-config.js +0 -12
  89. package/lib/public/resolve-config.js +0 -24
  90. package/lib/util/applyImportantSelector.js +0 -36
  91. package/lib/util/bigSign.js +0 -13
  92. package/lib/util/buildMediaQuery.js +0 -27
  93. package/lib/util/cloneDeep.js +0 -22
  94. package/lib/util/cloneNodes.js +0 -34
  95. package/lib/util/color.js +0 -116
  96. package/lib/util/colorNames.js +0 -752
  97. package/lib/util/configurePlugins.js +0 -23
  98. package/lib/util/createPlugin.js +0 -32
  99. package/lib/util/createUtilityPlugin.js +0 -53
  100. package/lib/util/dataTypes.js +0 -358
  101. package/lib/util/defaults.js +0 -27
  102. package/lib/util/escapeClassName.js +0 -24
  103. package/lib/util/escapeCommas.js +0 -13
  104. package/lib/util/flattenColorPalette.js +0 -18
  105. package/lib/util/formatVariantSelector.js +0 -265
  106. package/lib/util/getAllConfigs.js +0 -51
  107. package/lib/util/hashConfig.js +0 -21
  108. package/lib/util/isKeyframeRule.js +0 -13
  109. package/lib/util/isPlainObject.js +0 -17
  110. package/lib/util/isSyntacticallyValidPropertyValue.js +0 -74
  111. package/lib/util/log.js +0 -78
  112. package/lib/util/nameClass.js +0 -49
  113. package/lib/util/negateValue.js +0 -36
  114. package/lib/util/normalizeConfig.js +0 -313
  115. package/lib/util/normalizeScreens.js +0 -178
  116. package/lib/util/parseAnimationValue.js +0 -93
  117. package/lib/util/parseBoxShadowValue.js +0 -88
  118. package/lib/util/parseDependency.js +0 -47
  119. package/lib/util/parseGlob.js +0 -36
  120. package/lib/util/parseObjectStyles.js +0 -36
  121. package/lib/util/pluginUtils.js +0 -274
  122. package/lib/util/prefixSelector.js +0 -39
  123. package/lib/util/pseudoElements.js +0 -209
  124. package/lib/util/removeAlphaVariables.js +0 -31
  125. package/lib/util/resolveConfig.js +0 -260
  126. package/lib/util/resolveConfigPath.js +0 -70
  127. package/lib/util/responsive.js +0 -24
  128. package/lib/util/splitAtTopLevelOnly.js +0 -51
  129. package/lib/util/tap.js +0 -14
  130. package/lib/util/toColorValue.js +0 -13
  131. package/lib/util/toPath.js +0 -32
  132. package/lib/util/transformThemeValue.js +0 -73
  133. package/lib/util/validateConfig.js +0 -48
  134. package/lib/util/validateFormalSyntax.js +0 -26
  135. package/lib/util/withAlphaVariable.js +0 -79
  136. package/lib/value-parser/LICENSE +0 -22
  137. package/lib/value-parser/README.md +0 -3
  138. package/lib/value-parser/index.d.js +0 -2
  139. package/lib/value-parser/index.js +0 -22
  140. package/lib/value-parser/parse.js +0 -259
  141. package/lib/value-parser/stringify.js +0 -38
  142. package/lib/value-parser/unit.js +0 -86
  143. package/lib/value-parser/walk.js +0 -16
  144. package/loadConfig.d.ts +0 -4
  145. package/loadConfig.js +0 -2
  146. package/nesting/index.js +0 -2
  147. package/plugin.d.ts +0 -11
  148. package/plugin.js +0 -2
  149. package/prettier.config.js +0 -19
  150. package/resolveConfig.d.ts +0 -12
  151. package/resolveConfig.js +0 -2
  152. package/screens.css +0 -1
  153. package/scripts/create-plugin-list.js +0 -10
  154. package/scripts/generate-types.js +0 -105
  155. package/scripts/release-channel.js +0 -18
  156. package/scripts/release-notes.js +0 -21
  157. package/scripts/type-utils.js +0 -27
  158. package/src/cli/build/index.js +0 -53
  159. package/src/cli/build/plugin.js +0 -469
  160. package/src/cli/build/utils.js +0 -76
  161. package/src/cli/build/watching.js +0 -229
  162. package/src/cli/help/index.js +0 -70
  163. package/src/cli/index.js +0 -217
  164. package/src/cli/init/index.js +0 -79
  165. package/src/cli.js +0 -3
  166. package/src/corePluginList.js +0 -1
  167. package/src/corePlugins.js +0 -2877
  168. package/src/css/LICENSE +0 -25
  169. package/src/css/preflight.css +0 -379
  170. package/src/featureFlags.js +0 -68
  171. package/src/index.js +0 -1
  172. package/src/lib/cacheInvalidation.js +0 -52
  173. package/src/lib/collapseAdjacentRules.js +0 -58
  174. package/src/lib/collapseDuplicateDeclarations.js +0 -93
  175. package/src/lib/content.js +0 -240
  176. package/src/lib/defaultExtractor.js +0 -217
  177. package/src/lib/detectNesting.js +0 -47
  178. package/src/lib/evaluateTailwindFunctions.js +0 -272
  179. package/src/lib/expandApplyAtRules.js +0 -613
  180. package/src/lib/expandTailwindAtRules.js +0 -319
  181. package/src/lib/findAtConfigPath.js +0 -48
  182. package/src/lib/generateRules.js +0 -930
  183. package/src/lib/getModuleDependencies.js +0 -79
  184. package/src/lib/handleImportAtRules.js +0 -34
  185. package/src/lib/load-config.ts +0 -31
  186. package/src/lib/normalizeTailwindDirectives.js +0 -57
  187. package/src/lib/offsets.js +0 -373
  188. package/src/lib/partitionApplyAtRules.js +0 -52
  189. package/src/lib/regex.js +0 -74
  190. package/src/lib/remap-bitfield.js +0 -82
  191. package/src/lib/resolveDefaultsAtRules.js +0 -163
  192. package/src/lib/setupContextUtils.js +0 -1331
  193. package/src/lib/setupTrackingContext.js +0 -169
  194. package/src/lib/sharedState.js +0 -57
  195. package/src/lib/substituteScreenAtRules.js +0 -19
  196. package/src/plugin.js +0 -133
  197. package/src/postcss-plugins/nesting/README.md +0 -42
  198. package/src/postcss-plugins/nesting/index.js +0 -13
  199. package/src/postcss-plugins/nesting/plugin.js +0 -80
  200. package/src/processTailwindFeatures.js +0 -59
  201. package/src/public/colors.js +0 -322
  202. package/src/public/create-plugin.js +0 -2
  203. package/src/public/default-config.js +0 -4
  204. package/src/public/default-theme.js +0 -4
  205. package/src/public/load-config.js +0 -2
  206. package/src/public/resolve-config.js +0 -7
  207. package/src/util/applyImportantSelector.js +0 -27
  208. package/src/util/bigSign.js +0 -3
  209. package/src/util/buildMediaQuery.js +0 -22
  210. package/src/util/cloneDeep.js +0 -11
  211. package/src/util/cloneNodes.js +0 -28
  212. package/src/util/color.js +0 -88
  213. package/src/util/colorNames.js +0 -150
  214. package/src/util/configurePlugins.js +0 -23
  215. package/src/util/createPlugin.js +0 -27
  216. package/src/util/createUtilityPlugin.js +0 -37
  217. package/src/util/dataTypes.js +0 -340
  218. package/src/util/defaults.js +0 -17
  219. package/src/util/escapeClassName.js +0 -8
  220. package/src/util/escapeCommas.js +0 -3
  221. package/src/util/flattenColorPalette.js +0 -13
  222. package/src/util/formatVariantSelector.js +0 -317
  223. package/src/util/getAllConfigs.js +0 -38
  224. package/src/util/hashConfig.js +0 -5
  225. package/src/util/isKeyframeRule.js +0 -3
  226. package/src/util/isPlainObject.js +0 -8
  227. package/src/util/isSyntacticallyValidPropertyValue.js +0 -61
  228. package/src/util/log.js +0 -53
  229. package/src/util/nameClass.js +0 -30
  230. package/src/util/negateValue.js +0 -24
  231. package/src/util/normalizeConfig.js +0 -328
  232. package/src/util/normalizeScreens.js +0 -140
  233. package/src/util/parseAnimationValue.js +0 -68
  234. package/src/util/parseBoxShadowValue.js +0 -72
  235. package/src/util/parseDependency.js +0 -44
  236. package/src/util/parseGlob.js +0 -24
  237. package/src/util/parseObjectStyles.js +0 -19
  238. package/src/util/pluginUtils.js +0 -287
  239. package/src/util/prefixSelector.js +0 -33
  240. package/src/util/pseudoElements.js +0 -167
  241. package/src/util/removeAlphaVariables.js +0 -24
  242. package/src/util/resolveConfig.js +0 -277
  243. package/src/util/resolveConfigPath.js +0 -66
  244. package/src/util/responsive.js +0 -10
  245. package/src/util/splitAtTopLevelOnly.js +0 -52
  246. package/src/util/tap.js +0 -4
  247. package/src/util/toColorValue.js +0 -3
  248. package/src/util/toPath.js +0 -26
  249. package/src/util/transformThemeValue.js +0 -62
  250. package/src/util/validateConfig.js +0 -36
  251. package/src/util/validateFormalSyntax.js +0 -34
  252. package/src/util/withAlphaVariable.js +0 -49
  253. package/src/value-parser/LICENSE +0 -22
  254. package/src/value-parser/README.md +0 -3
  255. package/src/value-parser/index.d.ts +0 -177
  256. package/src/value-parser/index.js +0 -28
  257. package/src/value-parser/parse.js +0 -303
  258. package/src/value-parser/stringify.js +0 -41
  259. package/src/value-parser/unit.js +0 -118
  260. package/src/value-parser/walk.js +0 -18
  261. package/stubs/.gitignore +0 -1
  262. package/stubs/.prettierrc.json +0 -6
  263. package/stubs/config.full.js +0 -1002
  264. package/stubs/config.simple.js +0 -7
  265. package/stubs/postcss.config.cjs +0 -5
  266. package/stubs/postcss.config.js +0 -5
  267. package/stubs/tailwind.config.cjs +0 -2
  268. package/stubs/tailwind.config.js +0 -2
  269. package/stubs/tailwind.config.ts +0 -3
  270. package/tailwind.css +0 -5
  271. package/types/config.d.ts +0 -369
  272. package/types/generated/.gitkeep +0 -0
  273. package/types/generated/colors.d.ts +0 -298
  274. package/types/generated/corePluginList.d.ts +0 -1
  275. package/types/generated/default-theme.d.ts +0 -378
  276. package/types/index.d.ts +0 -7
  277. package/variants.css +0 -1
@@ -1,23 +0,0 @@
1
- export default function (pluginConfig, plugins) {
2
- if (pluginConfig === undefined) {
3
- return plugins
4
- }
5
-
6
- const pluginNames = Array.isArray(pluginConfig)
7
- ? pluginConfig
8
- : [
9
- ...new Set(
10
- plugins
11
- .filter((pluginName) => {
12
- return pluginConfig !== false && pluginConfig[pluginName] !== false
13
- })
14
- .concat(
15
- Object.keys(pluginConfig).filter((pluginName) => {
16
- return pluginConfig[pluginName] !== false
17
- })
18
- )
19
- ),
20
- ]
21
-
22
- return pluginNames
23
- }
@@ -1,27 +0,0 @@
1
- function createPlugin(plugin, config) {
2
- return {
3
- handler: plugin,
4
- config,
5
- }
6
- }
7
-
8
- createPlugin.withOptions = function (pluginFunction, configFunction = () => ({})) {
9
- const optionsFunction = function (options) {
10
- return {
11
- __options: options,
12
- handler: pluginFunction(options),
13
- config: configFunction(options),
14
- }
15
- }
16
-
17
- optionsFunction.__isOptionsFunction = true
18
-
19
- // Expose plugin dependencies so that `object-hash` returns a different
20
- // value if anything here changes, to ensure a rebuild is triggered.
21
- optionsFunction.__pluginFunction = pluginFunction
22
- optionsFunction.__configFunction = configFunction
23
-
24
- return optionsFunction
25
- }
26
-
27
- export default createPlugin
@@ -1,37 +0,0 @@
1
- import transformThemeValue from './transformThemeValue'
2
-
3
- export default function createUtilityPlugin(
4
- themeKey,
5
- utilityVariations = [[themeKey, [themeKey]]],
6
- { filterDefault = false, ...options } = {}
7
- ) {
8
- let transformValue = transformThemeValue(themeKey)
9
- return function ({ matchUtilities, theme }) {
10
- for (let utilityVariation of utilityVariations) {
11
- let group = Array.isArray(utilityVariation[0]) ? utilityVariation : [utilityVariation]
12
-
13
- matchUtilities(
14
- group.reduce((obj, [classPrefix, properties]) => {
15
- return Object.assign(obj, {
16
- [classPrefix]: (value) => {
17
- return properties.reduce((obj, name) => {
18
- if (Array.isArray(name)) {
19
- return Object.assign(obj, { [name[0]]: name[1] })
20
- }
21
- return Object.assign(obj, { [name]: transformValue(value) })
22
- }, {})
23
- },
24
- })
25
- }, {}),
26
- {
27
- ...options,
28
- values: filterDefault
29
- ? Object.fromEntries(
30
- Object.entries(theme(themeKey) ?? {}).filter(([modifier]) => modifier !== 'DEFAULT')
31
- )
32
- : theme(themeKey),
33
- }
34
- )
35
- }
36
- }
37
- }
@@ -1,340 +0,0 @@
1
- import { parseColor } from './color'
2
- import { parseBoxShadowValue } from './parseBoxShadowValue'
3
- import { splitAtTopLevelOnly } from './splitAtTopLevelOnly'
4
-
5
- let cssFunctions = ['min', 'max', 'clamp', 'calc']
6
-
7
- // Ref: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Types
8
-
9
- function isCSSFunction(value) {
10
- return cssFunctions.some((fn) => new RegExp(`^${fn}\\(.*\\)`).test(value))
11
- }
12
-
13
- // This is not a data type, but rather a function that can normalize the
14
- // correct values.
15
- export function normalize(value, isRoot = true) {
16
- if (value.startsWith('--')) {
17
- return `var(${value})`
18
- }
19
-
20
- // Keep raw strings if it starts with `url(`
21
- if (value.includes('url(')) {
22
- return value
23
- .split(/(url\(.*?\))/g)
24
- .filter(Boolean)
25
- .map((part) => {
26
- if (/^url\(.*?\)$/.test(part)) {
27
- return part
28
- }
29
-
30
- return normalize(part, false)
31
- })
32
- .join('')
33
- }
34
-
35
- // Convert `_` to ` `, except for escaped underscores `\_`
36
- value = value
37
- .replace(
38
- /([^\\])_+/g,
39
- (fullMatch, characterBefore) => characterBefore + ' '.repeat(fullMatch.length - 1)
40
- )
41
- .replace(/^_/g, ' ')
42
- .replace(/\\_/g, '_')
43
-
44
- // Remove leftover whitespace
45
- if (isRoot) {
46
- value = value.trim()
47
- }
48
-
49
- value = normalizeMathOperatorSpacing(value)
50
-
51
- return value
52
- }
53
-
54
- /**
55
- * Add spaces around operators inside math functions
56
- * like calc() that do not follow an operator or '('.
57
- *
58
- * @param {string} value
59
- * @returns {string}
60
- */
61
- function normalizeMathOperatorSpacing(value) {
62
- let preventFormattingInFunctions = ['theme']
63
-
64
- return value.replace(/(calc|min|max|clamp)\(.+\)/g, (match) => {
65
- let result = ''
66
-
67
- function lastChar() {
68
- let char = result.trimEnd()
69
- return char[char.length - 1]
70
- }
71
-
72
- for (let i = 0; i < match.length; i++) {
73
- function peek(word) {
74
- return word.split('').every((char, j) => match[i + j] === char)
75
- }
76
-
77
- function consumeUntil(chars) {
78
- let minIndex = Infinity
79
- for (let char of chars) {
80
- let index = match.indexOf(char, i)
81
- if (index !== -1 && index < minIndex) {
82
- minIndex = index
83
- }
84
- }
85
-
86
- let result = match.slice(i, minIndex)
87
- i += result.length - 1
88
- return result
89
- }
90
-
91
- let char = match[i]
92
-
93
- // Handle `var(--variable)`
94
- if (peek('var')) {
95
- // When we consume until `)`, then we are dealing with this scenario:
96
- // `var(--example)`
97
- //
98
- // When we consume until `,`, then we are dealing with this scenario:
99
- // `var(--example, 1rem)`
100
- //
101
- // In this case we do want to "format", the default value as well
102
- result += consumeUntil([')', ','])
103
- }
104
-
105
- // Skip formatting inside known functions
106
- else if (preventFormattingInFunctions.some((fn) => peek(fn))) {
107
- result += consumeUntil([')'])
108
- }
109
-
110
- // Handle operators
111
- else if (
112
- ['+', '-', '*', '/'].includes(char) &&
113
- !['(', '+', '-', '*', '/'].includes(lastChar())
114
- ) {
115
- result += ` ${char} `
116
- } else {
117
- result += char
118
- }
119
- }
120
-
121
- // Simplify multiple spaces
122
- return result.replace(/\s+/g, ' ')
123
- })
124
- }
125
-
126
- export function url(value) {
127
- return value.startsWith('url(')
128
- }
129
-
130
- export function number(value) {
131
- return !isNaN(Number(value)) || isCSSFunction(value)
132
- }
133
-
134
- export function percentage(value) {
135
- return (value.endsWith('%') && number(value.slice(0, -1))) || isCSSFunction(value)
136
- }
137
-
138
- // Please refer to MDN when updating this list:
139
- // https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units
140
- // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Container_Queries#container_query_length_units
141
- let lengthUnits = [
142
- 'cm',
143
- 'mm',
144
- 'Q',
145
- 'in',
146
- 'pc',
147
- 'pt',
148
- 'px',
149
- 'em',
150
- 'ex',
151
- 'ch',
152
- 'rem',
153
- 'lh',
154
- 'rlh',
155
- 'vw',
156
- 'vh',
157
- 'vmin',
158
- 'vmax',
159
- 'vb',
160
- 'vi',
161
- 'svw',
162
- 'svh',
163
- 'lvw',
164
- 'lvh',
165
- 'dvw',
166
- 'dvh',
167
- 'cqw',
168
- 'cqh',
169
- 'cqi',
170
- 'cqb',
171
- 'cqmin',
172
- 'cqmax',
173
- ]
174
- let lengthUnitsPattern = `(?:${lengthUnits.join('|')})`
175
- export function length(value) {
176
- return (
177
- value === '0' ||
178
- new RegExp(`^[+-]?[0-9]*\.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`).test(value) ||
179
- isCSSFunction(value)
180
- )
181
- }
182
-
183
- let lineWidths = new Set(['thin', 'medium', 'thick'])
184
- export function lineWidth(value) {
185
- return lineWidths.has(value)
186
- }
187
-
188
- export function shadow(value) {
189
- let parsedShadows = parseBoxShadowValue(normalize(value))
190
-
191
- for (let parsedShadow of parsedShadows) {
192
- if (!parsedShadow.valid) {
193
- return false
194
- }
195
- }
196
-
197
- return true
198
- }
199
-
200
- export function color(value) {
201
- let colors = 0
202
-
203
- let result = splitAtTopLevelOnly(value, '_').every((part) => {
204
- part = normalize(part)
205
-
206
- if (part.startsWith('var(')) return true
207
- if (parseColor(part, { loose: true }) !== null) return colors++, true
208
-
209
- return false
210
- })
211
-
212
- if (!result) return false
213
- return colors > 0
214
- }
215
-
216
- export function image(value) {
217
- let images = 0
218
- let result = splitAtTopLevelOnly(value, ',').every((part) => {
219
- part = normalize(part)
220
-
221
- if (part.startsWith('var(')) return true
222
- if (
223
- url(part) ||
224
- gradient(part) ||
225
- ['element(', 'image(', 'cross-fade(', 'image-set('].some((fn) => part.startsWith(fn))
226
- ) {
227
- images++
228
- return true
229
- }
230
-
231
- return false
232
- })
233
-
234
- if (!result) return false
235
- return images > 0
236
- }
237
-
238
- let gradientTypes = new Set([
239
- 'conic-gradient',
240
- 'linear-gradient',
241
- 'radial-gradient',
242
- 'repeating-conic-gradient',
243
- 'repeating-linear-gradient',
244
- 'repeating-radial-gradient',
245
- ])
246
- export function gradient(value) {
247
- value = normalize(value)
248
-
249
- for (let type of gradientTypes) {
250
- if (value.startsWith(`${type}(`)) {
251
- return true
252
- }
253
- }
254
- return false
255
- }
256
-
257
- let validPositions = new Set(['center', 'top', 'right', 'bottom', 'left'])
258
- export function position(value) {
259
- let positions = 0
260
- let result = splitAtTopLevelOnly(value, '_').every((part) => {
261
- part = normalize(part)
262
-
263
- if (part.startsWith('var(')) return true
264
- if (validPositions.has(part) || length(part) || percentage(part)) {
265
- positions++
266
- return true
267
- }
268
-
269
- return false
270
- })
271
-
272
- if (!result) return false
273
- return positions > 0
274
- }
275
-
276
- export function familyName(value) {
277
- let fonts = 0
278
- let result = splitAtTopLevelOnly(value, ',').every((part) => {
279
- part = normalize(part)
280
-
281
- if (part.startsWith('var(')) return true
282
-
283
- // If it contains spaces, then it should be quoted
284
- if (part.includes(' ')) {
285
- if (!/(['"])([^"']+)\1/g.test(part)) {
286
- return false
287
- }
288
- }
289
-
290
- // If it starts with a number, it's invalid
291
- if (/^\d/g.test(part)) {
292
- return false
293
- }
294
-
295
- fonts++
296
-
297
- return true
298
- })
299
-
300
- if (!result) return false
301
- return fonts > 0
302
- }
303
-
304
- let genericNames = new Set([
305
- 'serif',
306
- 'sans-serif',
307
- 'monospace',
308
- 'cursive',
309
- 'fantasy',
310
- 'system-ui',
311
- 'ui-serif',
312
- 'ui-sans-serif',
313
- 'ui-monospace',
314
- 'ui-rounded',
315
- 'math',
316
- 'emoji',
317
- 'fangsong',
318
- ])
319
- export function genericName(value) {
320
- return genericNames.has(value)
321
- }
322
-
323
- let absoluteSizes = new Set([
324
- 'xx-small',
325
- 'x-small',
326
- 'small',
327
- 'medium',
328
- 'large',
329
- 'x-large',
330
- 'x-large',
331
- 'xxx-large',
332
- ])
333
- export function absoluteSize(value) {
334
- return absoluteSizes.has(value)
335
- }
336
-
337
- let relativeSizes = new Set(['larger', 'smaller'])
338
- export function relativeSize(value) {
339
- return relativeSizes.has(value)
340
- }
@@ -1,17 +0,0 @@
1
- export function defaults(target, ...sources) {
2
- for (let source of sources) {
3
- for (let k in source) {
4
- if (!target?.hasOwnProperty?.(k)) {
5
- target[k] = source[k]
6
- }
7
- }
8
-
9
- for (let k of Object.getOwnPropertySymbols(source)) {
10
- if (!target?.hasOwnProperty?.(k)) {
11
- target[k] = source[k]
12
- }
13
- }
14
- }
15
-
16
- return target
17
- }
@@ -1,8 +0,0 @@
1
- import parser from 'postcss-selector-parser'
2
- import escapeCommas from './escapeCommas'
3
-
4
- export default function escapeClassName(className) {
5
- let node = parser.className()
6
- node.value = className
7
- return escapeCommas(node?.raws?.value ?? node.value)
8
- }
@@ -1,3 +0,0 @@
1
- export default function escapeCommas(className) {
2
- return className.replace(/\\,/g, '\\2c ')
3
- }
@@ -1,13 +0,0 @@
1
- const flattenColorPalette = (colors) =>
2
- Object.assign(
3
- {},
4
- ...Object.entries(colors ?? {}).flatMap(([color, values]) =>
5
- typeof values == 'object'
6
- ? Object.entries(flattenColorPalette(values)).map(([number, hex]) => ({
7
- [color + (number === 'DEFAULT' ? '' : `-${number}`)]: hex,
8
- }))
9
- : [{ [`${color}`]: values }]
10
- )
11
- )
12
-
13
- export default flattenColorPalette