tailwindcss 3.4.1 → 4.0.0-alpha.2

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 (280) hide show
  1. package/README.md +5 -6
  2. package/dist/lib.d.mts +324 -0
  3. package/dist/lib.d.ts +324 -0
  4. package/dist/lib.js +11 -0
  5. package/dist/lib.mjs +11 -0
  6. package/index.css +5 -0
  7. package/package.json +29 -107
  8. package/preflight.css +355 -0
  9. package/theme.css +465 -0
  10. package/CHANGELOG.md +0 -2571
  11. package/base.css +0 -1
  12. package/colors.d.ts +0 -3
  13. package/colors.js +0 -2
  14. package/components.css +0 -1
  15. package/defaultConfig.d.ts +0 -3
  16. package/defaultConfig.js +0 -2
  17. package/defaultTheme.d.ts +0 -4
  18. package/defaultTheme.js +0 -2
  19. package/lib/cli/build/deps.js +0 -62
  20. package/lib/cli/build/index.js +0 -54
  21. package/lib/cli/build/plugin.js +0 -378
  22. package/lib/cli/build/utils.js +0 -88
  23. package/lib/cli/build/watching.js +0 -182
  24. package/lib/cli/help/index.js +0 -73
  25. package/lib/cli/index.js +0 -230
  26. package/lib/cli/init/index.js +0 -63
  27. package/lib/cli-peer-dependencies.js +0 -36
  28. package/lib/cli.js +0 -7
  29. package/lib/corePluginList.js +0 -190
  30. package/lib/corePlugins.js +0 -4282
  31. package/lib/css/LICENSE +0 -25
  32. package/lib/css/preflight.css +0 -385
  33. package/lib/featureFlags.js +0 -83
  34. package/lib/index.js +0 -2
  35. package/lib/lib/cacheInvalidation.js +0 -92
  36. package/lib/lib/collapseAdjacentRules.js +0 -61
  37. package/lib/lib/collapseDuplicateDeclarations.js +0 -85
  38. package/lib/lib/content.js +0 -181
  39. package/lib/lib/defaultExtractor.js +0 -251
  40. package/lib/lib/detectNesting.js +0 -45
  41. package/lib/lib/evaluateTailwindFunctions.js +0 -238
  42. package/lib/lib/expandApplyAtRules.js +0 -540
  43. package/lib/lib/expandTailwindAtRules.js +0 -291
  44. package/lib/lib/findAtConfigPath.js +0 -46
  45. package/lib/lib/generateRules.js +0 -904
  46. package/lib/lib/getModuleDependencies.js +0 -99
  47. package/lib/lib/load-config.js +0 -53
  48. package/lib/lib/normalizeTailwindDirectives.js +0 -89
  49. package/lib/lib/offsets.js +0 -306
  50. package/lib/lib/partitionApplyAtRules.js +0 -58
  51. package/lib/lib/regex.js +0 -74
  52. package/lib/lib/remap-bitfield.js +0 -89
  53. package/lib/lib/resolveDefaultsAtRules.js +0 -165
  54. package/lib/lib/setupContextUtils.js +0 -1294
  55. package/lib/lib/setupTrackingContext.js +0 -166
  56. package/lib/lib/sharedState.js +0 -87
  57. package/lib/lib/substituteScreenAtRules.js +0 -31
  58. package/lib/oxide/cli/build/deps.js +0 -89
  59. package/lib/oxide/cli/build/index.js +0 -53
  60. package/lib/oxide/cli/build/plugin.js +0 -375
  61. package/lib/oxide/cli/build/utils.js +0 -87
  62. package/lib/oxide/cli/build/watching.js +0 -179
  63. package/lib/oxide/cli/help/index.js +0 -72
  64. package/lib/oxide/cli/index.js +0 -214
  65. package/lib/oxide/cli/init/index.js +0 -52
  66. package/lib/oxide/cli.js +0 -5
  67. package/lib/oxide/postcss-plugin.js +0 -2
  68. package/lib/plugin.js +0 -98
  69. package/lib/postcss-plugins/nesting/README.md +0 -42
  70. package/lib/postcss-plugins/nesting/index.js +0 -21
  71. package/lib/postcss-plugins/nesting/plugin.js +0 -89
  72. package/lib/processTailwindFeatures.js +0 -64
  73. package/lib/public/colors.js +0 -355
  74. package/lib/public/create-plugin.js +0 -17
  75. package/lib/public/default-config.js +0 -18
  76. package/lib/public/default-theme.js +0 -18
  77. package/lib/public/load-config.js +0 -12
  78. package/lib/public/resolve-config.js +0 -24
  79. package/lib/util/applyImportantSelector.js +0 -36
  80. package/lib/util/bigSign.js +0 -13
  81. package/lib/util/buildMediaQuery.js +0 -27
  82. package/lib/util/cloneDeep.js +0 -22
  83. package/lib/util/cloneNodes.js +0 -54
  84. package/lib/util/color.js +0 -116
  85. package/lib/util/colorNames.js +0 -752
  86. package/lib/util/configurePlugins.js +0 -23
  87. package/lib/util/createPlugin.js +0 -32
  88. package/lib/util/createUtilityPlugin.js +0 -53
  89. package/lib/util/dataTypes.js +0 -415
  90. package/lib/util/defaults.js +0 -27
  91. package/lib/util/escapeClassName.js +0 -24
  92. package/lib/util/escapeCommas.js +0 -13
  93. package/lib/util/flattenColorPalette.js +0 -18
  94. package/lib/util/formatVariantSelector.js +0 -270
  95. package/lib/util/getAllConfigs.js +0 -50
  96. package/lib/util/hashConfig.js +0 -21
  97. package/lib/util/isKeyframeRule.js +0 -13
  98. package/lib/util/isPlainObject.js +0 -17
  99. package/lib/util/isSyntacticallyValidPropertyValue.js +0 -74
  100. package/lib/util/log.js +0 -61
  101. package/lib/util/nameClass.js +0 -49
  102. package/lib/util/negateValue.js +0 -36
  103. package/lib/util/normalizeConfig.js +0 -282
  104. package/lib/util/normalizeScreens.js +0 -178
  105. package/lib/util/parseAnimationValue.js +0 -93
  106. package/lib/util/parseBoxShadowValue.js +0 -88
  107. package/lib/util/parseDependency.js +0 -47
  108. package/lib/util/parseGlob.js +0 -36
  109. package/lib/util/parseObjectStyles.js +0 -36
  110. package/lib/util/pluginUtils.js +0 -289
  111. package/lib/util/prefixSelector.js +0 -39
  112. package/lib/util/pseudoElements.js +0 -212
  113. package/lib/util/removeAlphaVariables.js +0 -31
  114. package/lib/util/resolveConfig.js +0 -256
  115. package/lib/util/resolveConfigPath.js +0 -70
  116. package/lib/util/responsive.js +0 -24
  117. package/lib/util/splitAtTopLevelOnly.js +0 -51
  118. package/lib/util/tap.js +0 -14
  119. package/lib/util/toColorValue.js +0 -13
  120. package/lib/util/toPath.js +0 -32
  121. package/lib/util/transformThemeValue.js +0 -73
  122. package/lib/util/validateConfig.js +0 -37
  123. package/lib/util/validateFormalSyntax.js +0 -26
  124. package/lib/util/withAlphaVariable.js +0 -79
  125. package/lib/value-parser/LICENSE +0 -22
  126. package/lib/value-parser/README.md +0 -3
  127. package/lib/value-parser/index.d.js +0 -2
  128. package/lib/value-parser/index.js +0 -22
  129. package/lib/value-parser/parse.js +0 -259
  130. package/lib/value-parser/stringify.js +0 -38
  131. package/lib/value-parser/unit.js +0 -86
  132. package/lib/value-parser/walk.js +0 -16
  133. package/loadConfig.d.ts +0 -4
  134. package/loadConfig.js +0 -2
  135. package/nesting/index.d.ts +0 -4
  136. package/nesting/index.js +0 -2
  137. package/peers/index.js +0 -96624
  138. package/plugin.d.ts +0 -11
  139. package/plugin.js +0 -2
  140. package/prettier.config.js +0 -19
  141. package/resolveConfig.d.ts +0 -31
  142. package/resolveConfig.js +0 -2
  143. package/screens.css +0 -1
  144. package/scripts/create-plugin-list.js +0 -10
  145. package/scripts/generate-types.js +0 -104
  146. package/scripts/release-channel.js +0 -18
  147. package/scripts/release-notes.js +0 -21
  148. package/scripts/swap-engines.js +0 -40
  149. package/scripts/type-utils.js +0 -27
  150. package/src/cli/build/deps.js +0 -56
  151. package/src/cli/build/index.js +0 -49
  152. package/src/cli/build/plugin.js +0 -444
  153. package/src/cli/build/utils.js +0 -76
  154. package/src/cli/build/watching.js +0 -229
  155. package/src/cli/help/index.js +0 -70
  156. package/src/cli/index.js +0 -216
  157. package/src/cli/init/index.js +0 -79
  158. package/src/cli-peer-dependencies.js +0 -15
  159. package/src/cli.js +0 -7
  160. package/src/corePluginList.js +0 -1
  161. package/src/corePlugins.js +0 -2943
  162. package/src/css/LICENSE +0 -25
  163. package/src/css/preflight.css +0 -385
  164. package/src/featureFlags.js +0 -66
  165. package/src/index.js +0 -1
  166. package/src/lib/cacheInvalidation.js +0 -52
  167. package/src/lib/collapseAdjacentRules.js +0 -58
  168. package/src/lib/collapseDuplicateDeclarations.js +0 -93
  169. package/src/lib/content.js +0 -208
  170. package/src/lib/defaultExtractor.js +0 -230
  171. package/src/lib/detectNesting.js +0 -47
  172. package/src/lib/evaluateTailwindFunctions.js +0 -272
  173. package/src/lib/expandApplyAtRules.js +0 -620
  174. package/src/lib/expandTailwindAtRules.js +0 -300
  175. package/src/lib/findAtConfigPath.js +0 -48
  176. package/src/lib/generateRules.js +0 -951
  177. package/src/lib/getModuleDependencies.js +0 -79
  178. package/src/lib/load-config.ts +0 -39
  179. package/src/lib/normalizeTailwindDirectives.js +0 -84
  180. package/src/lib/offsets.js +0 -373
  181. package/src/lib/partitionApplyAtRules.js +0 -52
  182. package/src/lib/regex.js +0 -74
  183. package/src/lib/remap-bitfield.js +0 -82
  184. package/src/lib/resolveDefaultsAtRules.js +0 -163
  185. package/src/lib/setupContextUtils.js +0 -1366
  186. package/src/lib/setupTrackingContext.js +0 -169
  187. package/src/lib/sharedState.js +0 -61
  188. package/src/lib/substituteScreenAtRules.js +0 -19
  189. package/src/oxide/cli/build/deps.ts +0 -91
  190. package/src/oxide/cli/build/index.ts +0 -47
  191. package/src/oxide/cli/build/plugin.ts +0 -442
  192. package/src/oxide/cli/build/utils.ts +0 -74
  193. package/src/oxide/cli/build/watching.ts +0 -225
  194. package/src/oxide/cli/help/index.ts +0 -69
  195. package/src/oxide/cli/index.ts +0 -204
  196. package/src/oxide/cli/init/index.ts +0 -59
  197. package/src/oxide/cli.ts +0 -1
  198. package/src/oxide/postcss-plugin.ts +0 -1
  199. package/src/plugin.js +0 -107
  200. package/src/postcss-plugins/nesting/README.md +0 -42
  201. package/src/postcss-plugins/nesting/index.js +0 -13
  202. package/src/postcss-plugins/nesting/plugin.js +0 -80
  203. package/src/processTailwindFeatures.js +0 -59
  204. package/src/public/colors.js +0 -322
  205. package/src/public/create-plugin.js +0 -2
  206. package/src/public/default-config.js +0 -4
  207. package/src/public/default-theme.js +0 -4
  208. package/src/public/load-config.js +0 -2
  209. package/src/public/resolve-config.js +0 -7
  210. package/src/util/applyImportantSelector.js +0 -27
  211. package/src/util/bigSign.js +0 -3
  212. package/src/util/buildMediaQuery.js +0 -22
  213. package/src/util/cloneDeep.js +0 -11
  214. package/src/util/cloneNodes.js +0 -49
  215. package/src/util/color.js +0 -88
  216. package/src/util/colorNames.js +0 -150
  217. package/src/util/configurePlugins.js +0 -23
  218. package/src/util/createPlugin.js +0 -27
  219. package/src/util/createUtilityPlugin.js +0 -37
  220. package/src/util/dataTypes.js +0 -406
  221. package/src/util/defaults.js +0 -17
  222. package/src/util/escapeClassName.js +0 -8
  223. package/src/util/escapeCommas.js +0 -3
  224. package/src/util/flattenColorPalette.js +0 -13
  225. package/src/util/formatVariantSelector.js +0 -324
  226. package/src/util/getAllConfigs.js +0 -38
  227. package/src/util/hashConfig.js +0 -5
  228. package/src/util/isKeyframeRule.js +0 -3
  229. package/src/util/isPlainObject.js +0 -8
  230. package/src/util/isSyntacticallyValidPropertyValue.js +0 -61
  231. package/src/util/log.js +0 -29
  232. package/src/util/nameClass.js +0 -30
  233. package/src/util/negateValue.js +0 -24
  234. package/src/util/normalizeConfig.js +0 -301
  235. package/src/util/normalizeScreens.js +0 -140
  236. package/src/util/parseAnimationValue.js +0 -68
  237. package/src/util/parseBoxShadowValue.js +0 -72
  238. package/src/util/parseDependency.js +0 -44
  239. package/src/util/parseGlob.js +0 -24
  240. package/src/util/parseObjectStyles.js +0 -19
  241. package/src/util/pluginUtils.js +0 -307
  242. package/src/util/prefixSelector.js +0 -33
  243. package/src/util/pseudoElements.js +0 -171
  244. package/src/util/removeAlphaVariables.js +0 -24
  245. package/src/util/resolveConfig.js +0 -277
  246. package/src/util/resolveConfigPath.js +0 -66
  247. package/src/util/responsive.js +0 -10
  248. package/src/util/splitAtTopLevelOnly.js +0 -52
  249. package/src/util/tap.js +0 -4
  250. package/src/util/toColorValue.js +0 -3
  251. package/src/util/toPath.js +0 -26
  252. package/src/util/transformThemeValue.js +0 -62
  253. package/src/util/validateConfig.js +0 -26
  254. package/src/util/validateFormalSyntax.js +0 -34
  255. package/src/util/withAlphaVariable.js +0 -49
  256. package/src/value-parser/LICENSE +0 -22
  257. package/src/value-parser/README.md +0 -3
  258. package/src/value-parser/index.d.ts +0 -177
  259. package/src/value-parser/index.js +0 -28
  260. package/src/value-parser/parse.js +0 -303
  261. package/src/value-parser/stringify.js +0 -41
  262. package/src/value-parser/unit.js +0 -118
  263. package/src/value-parser/walk.js +0 -18
  264. package/stubs/.gitignore +0 -1
  265. package/stubs/.prettierrc.json +0 -6
  266. package/stubs/config.full.js +0 -1062
  267. package/stubs/config.simple.js +0 -7
  268. package/stubs/postcss.config.cjs +0 -6
  269. package/stubs/postcss.config.js +0 -6
  270. package/stubs/tailwind.config.cjs +0 -2
  271. package/stubs/tailwind.config.js +0 -2
  272. package/stubs/tailwind.config.ts +0 -3
  273. package/tailwind.css +0 -5
  274. package/types/config.d.ts +0 -376
  275. package/types/generated/.gitkeep +0 -0
  276. package/types/generated/colors.d.ts +0 -298
  277. package/types/generated/corePluginList.d.ts +0 -1
  278. package/types/generated/default-theme.d.ts +0 -397
  279. package/types/index.d.ts +0 -11
  280. package/variants.css +0 -1
@@ -1,177 +0,0 @@
1
- declare namespace postcssValueParser {
2
- interface BaseNode {
3
- /**
4
- * The offset, inclusive, inside the CSS value at which the node starts.
5
- */
6
- sourceIndex: number
7
-
8
- /**
9
- * The offset, exclusive, inside the CSS value at which the node ends.
10
- */
11
- sourceEndIndex: number
12
-
13
- /**
14
- * The node's characteristic value
15
- */
16
- value: string
17
- }
18
-
19
- interface ClosableNode {
20
- /**
21
- * Whether the parsed CSS value ended before the node was properly closed
22
- */
23
- unclosed?: true
24
- }
25
-
26
- interface AdjacentAwareNode {
27
- /**
28
- * The token at the start of the node
29
- */
30
- before: string
31
-
32
- /**
33
- * The token at the end of the node
34
- */
35
- after: string
36
- }
37
-
38
- interface CommentNode extends BaseNode, ClosableNode {
39
- type: 'comment'
40
- }
41
-
42
- interface DivNode extends BaseNode, AdjacentAwareNode {
43
- type: 'div'
44
- }
45
-
46
- interface FunctionNode extends BaseNode, ClosableNode, AdjacentAwareNode {
47
- type: 'function'
48
-
49
- /**
50
- * Nodes inside the function
51
- */
52
- nodes: Node[]
53
- }
54
-
55
- interface SpaceNode extends BaseNode {
56
- type: 'space'
57
- }
58
-
59
- interface StringNode extends BaseNode, ClosableNode {
60
- type: 'string'
61
-
62
- /**
63
- * The quote type delimiting the string
64
- */
65
- quote: '"' | "'"
66
- }
67
-
68
- interface UnicodeRangeNode extends BaseNode {
69
- type: 'unicode-range'
70
- }
71
-
72
- interface WordNode extends BaseNode {
73
- type: 'word'
74
- }
75
-
76
- /**
77
- * Any node parsed from a CSS value
78
- */
79
- type Node =
80
- | CommentNode
81
- | DivNode
82
- | FunctionNode
83
- | SpaceNode
84
- | StringNode
85
- | UnicodeRangeNode
86
- | WordNode
87
-
88
- interface CustomStringifierCallback {
89
- /**
90
- * @param node The node to stringify
91
- * @returns The serialized CSS representation of the node
92
- */
93
- (nodes: Node): string | undefined
94
- }
95
-
96
- interface WalkCallback {
97
- /**
98
- * @param node The currently visited node
99
- * @param index The index of the node in the series of parsed nodes
100
- * @param nodes The series of parsed nodes
101
- * @returns Returning `false` will prevent traversal of descendant nodes (only applies if `bubble` was set to `true` in the `walk()` call)
102
- */
103
- (node: Node, index: number, nodes: Node[]): void | boolean
104
- }
105
-
106
- /**
107
- * A CSS dimension, decomposed into its numeric and unit parts
108
- */
109
- interface Dimension {
110
- number: string
111
- unit: string
112
- }
113
-
114
- /**
115
- * A wrapper around a parsed CSS value that allows for inspecting and walking nodes
116
- */
117
- interface ParsedValue {
118
- /**
119
- * The series of parsed nodes
120
- */
121
- nodes: Node[]
122
-
123
- /**
124
- * Walk all parsed nodes, applying a callback
125
- *
126
- * @param callback A visitor callback that will be executed for each node
127
- * @param bubble When set to `true`, walking will be done inside-out instead of outside-in
128
- */
129
- walk(callback: WalkCallback, bubble?: boolean): this
130
- }
131
-
132
- interface ValueParser {
133
- /**
134
- * Decompose a CSS dimension into its numeric and unit part
135
- *
136
- * @param value The dimension to decompose
137
- * @returns An object representing `number` and `unit` part of the dimension or `false` if the decomposing fails
138
- */
139
- unit(value: string): Dimension | false
140
-
141
- /**
142
- * Serialize a series of nodes into a CSS value
143
- *
144
- * @param nodes The nodes to stringify
145
- * @param custom A custom stringifier callback
146
- * @returns The generated CSS value
147
- */
148
- stringify(nodes: Node | Node[], custom?: CustomStringifierCallback): string
149
-
150
- /**
151
- * Walk a series of nodes, applying a callback
152
- *
153
- * @param nodes The nodes to walk
154
- * @param callback A visitor callback that will be executed for each node
155
- * @param bubble When set to `true`, walking will be done inside-out instead of outside-in
156
- */
157
- walk(nodes: Node[], callback: WalkCallback, bubble?: boolean): void
158
-
159
- /**
160
- * Parse a CSS value into a series of nodes to operate on
161
- *
162
- * @param value The value to parse
163
- */
164
- new (value: string): ParsedValue
165
-
166
- /**
167
- * Parse a CSS value into a series of nodes to operate on
168
- *
169
- * @param value The value to parse
170
- */
171
- (value: string): ParsedValue
172
- }
173
- }
174
-
175
- declare const postcssValueParser: postcssValueParser.ValueParser
176
-
177
- export = postcssValueParser
@@ -1,28 +0,0 @@
1
- var parse = require('./parse')
2
- var walk = require('./walk')
3
- var stringify = require('./stringify')
4
-
5
- function ValueParser(value) {
6
- if (this instanceof ValueParser) {
7
- this.nodes = parse(value)
8
- return this
9
- }
10
- return new ValueParser(value)
11
- }
12
-
13
- ValueParser.prototype.toString = function () {
14
- return Array.isArray(this.nodes) ? stringify(this.nodes) : ''
15
- }
16
-
17
- ValueParser.prototype.walk = function (cb, bubble) {
18
- walk(this.nodes, cb, bubble)
19
- return this
20
- }
21
-
22
- ValueParser.unit = require('./unit')
23
-
24
- ValueParser.walk = walk
25
-
26
- ValueParser.stringify = stringify
27
-
28
- module.exports = ValueParser
@@ -1,303 +0,0 @@
1
- var openParentheses = '('.charCodeAt(0)
2
- var closeParentheses = ')'.charCodeAt(0)
3
- var singleQuote = "'".charCodeAt(0)
4
- var doubleQuote = '"'.charCodeAt(0)
5
- var backslash = '\\'.charCodeAt(0)
6
- var slash = '/'.charCodeAt(0)
7
- var comma = ','.charCodeAt(0)
8
- var colon = ':'.charCodeAt(0)
9
- var star = '*'.charCodeAt(0)
10
- var uLower = 'u'.charCodeAt(0)
11
- var uUpper = 'U'.charCodeAt(0)
12
- var plus = '+'.charCodeAt(0)
13
- var isUnicodeRange = /^[a-f0-9?-]+$/i
14
-
15
- module.exports = function (input) {
16
- var tokens = []
17
- var value = input
18
-
19
- var next, quote, prev, token, escape, escapePos, whitespacePos, parenthesesOpenPos
20
- var pos = 0
21
- var code = value.charCodeAt(pos)
22
- var max = value.length
23
- var stack = [{ nodes: tokens }]
24
- var balanced = 0
25
- var parent
26
-
27
- var name = ''
28
- var before = ''
29
- var after = ''
30
-
31
- while (pos < max) {
32
- // Whitespaces
33
- if (code <= 32) {
34
- next = pos
35
- do {
36
- next += 1
37
- code = value.charCodeAt(next)
38
- } while (code <= 32)
39
- token = value.slice(pos, next)
40
-
41
- prev = tokens[tokens.length - 1]
42
- if (code === closeParentheses && balanced) {
43
- after = token
44
- } else if (prev && prev.type === 'div') {
45
- prev.after = token
46
- prev.sourceEndIndex += token.length
47
- } else if (
48
- code === comma ||
49
- code === colon ||
50
- (code === slash &&
51
- value.charCodeAt(next + 1) !== star &&
52
- (!parent || (parent && parent.type === 'function' && false)))
53
- ) {
54
- before = token
55
- } else {
56
- tokens.push({
57
- type: 'space',
58
- sourceIndex: pos,
59
- sourceEndIndex: next,
60
- value: token,
61
- })
62
- }
63
-
64
- pos = next
65
-
66
- // Quotes
67
- } else if (code === singleQuote || code === doubleQuote) {
68
- next = pos
69
- quote = code === singleQuote ? "'" : '"'
70
- token = {
71
- type: 'string',
72
- sourceIndex: pos,
73
- quote: quote,
74
- }
75
- do {
76
- escape = false
77
- next = value.indexOf(quote, next + 1)
78
- if (~next) {
79
- escapePos = next
80
- while (value.charCodeAt(escapePos - 1) === backslash) {
81
- escapePos -= 1
82
- escape = !escape
83
- }
84
- } else {
85
- value += quote
86
- next = value.length - 1
87
- token.unclosed = true
88
- }
89
- } while (escape)
90
- token.value = value.slice(pos + 1, next)
91
- token.sourceEndIndex = token.unclosed ? next : next + 1
92
- tokens.push(token)
93
- pos = next + 1
94
- code = value.charCodeAt(pos)
95
-
96
- // Comments
97
- } else if (code === slash && value.charCodeAt(pos + 1) === star) {
98
- next = value.indexOf('*/', pos)
99
-
100
- token = {
101
- type: 'comment',
102
- sourceIndex: pos,
103
- sourceEndIndex: next + 2,
104
- }
105
-
106
- if (next === -1) {
107
- token.unclosed = true
108
- next = value.length
109
- token.sourceEndIndex = next
110
- }
111
-
112
- token.value = value.slice(pos + 2, next)
113
- tokens.push(token)
114
-
115
- pos = next + 2
116
- code = value.charCodeAt(pos)
117
-
118
- // Operation within calc
119
- } else if ((code === slash || code === star) && parent && parent.type === 'function' && true) {
120
- token = value[pos]
121
- tokens.push({
122
- type: 'word',
123
- sourceIndex: pos - before.length,
124
- sourceEndIndex: pos + token.length,
125
- value: token,
126
- })
127
- pos += 1
128
- code = value.charCodeAt(pos)
129
-
130
- // Dividers
131
- } else if (code === slash || code === comma || code === colon) {
132
- token = value[pos]
133
-
134
- tokens.push({
135
- type: 'div',
136
- sourceIndex: pos - before.length,
137
- sourceEndIndex: pos + token.length,
138
- value: token,
139
- before: before,
140
- after: '',
141
- })
142
- before = ''
143
-
144
- pos += 1
145
- code = value.charCodeAt(pos)
146
-
147
- // Open parentheses
148
- } else if (openParentheses === code) {
149
- // Whitespaces after open parentheses
150
- next = pos
151
- do {
152
- next += 1
153
- code = value.charCodeAt(next)
154
- } while (code <= 32)
155
- parenthesesOpenPos = pos
156
- token = {
157
- type: 'function',
158
- sourceIndex: pos - name.length,
159
- value: name,
160
- before: value.slice(parenthesesOpenPos + 1, next),
161
- }
162
- pos = next
163
-
164
- if (name === 'url' && code !== singleQuote && code !== doubleQuote) {
165
- next -= 1
166
- do {
167
- escape = false
168
- next = value.indexOf(')', next + 1)
169
- if (~next) {
170
- escapePos = next
171
- while (value.charCodeAt(escapePos - 1) === backslash) {
172
- escapePos -= 1
173
- escape = !escape
174
- }
175
- } else {
176
- value += ')'
177
- next = value.length - 1
178
- token.unclosed = true
179
- }
180
- } while (escape)
181
- // Whitespaces before closed
182
- whitespacePos = next
183
- do {
184
- whitespacePos -= 1
185
- code = value.charCodeAt(whitespacePos)
186
- } while (code <= 32)
187
- if (parenthesesOpenPos < whitespacePos) {
188
- if (pos !== whitespacePos + 1) {
189
- token.nodes = [
190
- {
191
- type: 'word',
192
- sourceIndex: pos,
193
- sourceEndIndex: whitespacePos + 1,
194
- value: value.slice(pos, whitespacePos + 1),
195
- },
196
- ]
197
- } else {
198
- token.nodes = []
199
- }
200
- if (token.unclosed && whitespacePos + 1 !== next) {
201
- token.after = ''
202
- token.nodes.push({
203
- type: 'space',
204
- sourceIndex: whitespacePos + 1,
205
- sourceEndIndex: next,
206
- value: value.slice(whitespacePos + 1, next),
207
- })
208
- } else {
209
- token.after = value.slice(whitespacePos + 1, next)
210
- token.sourceEndIndex = next
211
- }
212
- } else {
213
- token.after = ''
214
- token.nodes = []
215
- }
216
- pos = next + 1
217
- token.sourceEndIndex = token.unclosed ? next : pos
218
- code = value.charCodeAt(pos)
219
- tokens.push(token)
220
- } else {
221
- balanced += 1
222
- token.after = ''
223
- token.sourceEndIndex = pos + 1
224
- tokens.push(token)
225
- stack.push(token)
226
- tokens = token.nodes = []
227
- parent = token
228
- }
229
- name = ''
230
-
231
- // Close parentheses
232
- } else if (closeParentheses === code && balanced) {
233
- pos += 1
234
- code = value.charCodeAt(pos)
235
-
236
- parent.after = after
237
- parent.sourceEndIndex += after.length
238
- after = ''
239
- balanced -= 1
240
- stack[stack.length - 1].sourceEndIndex = pos
241
- stack.pop()
242
- parent = stack[balanced]
243
- tokens = parent.nodes
244
-
245
- // Words
246
- } else {
247
- next = pos
248
- do {
249
- if (code === backslash) {
250
- next += 1
251
- }
252
- next += 1
253
- code = value.charCodeAt(next)
254
- } while (
255
- next < max &&
256
- !(
257
- code <= 32 ||
258
- code === singleQuote ||
259
- code === doubleQuote ||
260
- code === comma ||
261
- code === colon ||
262
- code === slash ||
263
- code === openParentheses ||
264
- (code === star && parent && parent.type === 'function' && true) ||
265
- (code === slash && parent.type === 'function' && true) ||
266
- (code === closeParentheses && balanced)
267
- )
268
- )
269
- token = value.slice(pos, next)
270
-
271
- if (openParentheses === code) {
272
- name = token
273
- } else if (
274
- (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&
275
- plus === token.charCodeAt(1) &&
276
- isUnicodeRange.test(token.slice(2))
277
- ) {
278
- tokens.push({
279
- type: 'unicode-range',
280
- sourceIndex: pos,
281
- sourceEndIndex: next,
282
- value: token,
283
- })
284
- } else {
285
- tokens.push({
286
- type: 'word',
287
- sourceIndex: pos,
288
- sourceEndIndex: next,
289
- value: token,
290
- })
291
- }
292
-
293
- pos = next
294
- }
295
- }
296
-
297
- for (pos = stack.length - 1; pos; pos -= 1) {
298
- stack[pos].unclosed = true
299
- stack[pos].sourceEndIndex = value.length
300
- }
301
-
302
- return stack[0].nodes
303
- }
@@ -1,41 +0,0 @@
1
- function stringifyNode(node, custom) {
2
- var type = node.type
3
- var value = node.value
4
- var buf
5
- var customResult
6
-
7
- if (custom && (customResult = custom(node)) !== undefined) {
8
- return customResult
9
- } else if (type === 'word' || type === 'space') {
10
- return value
11
- } else if (type === 'string') {
12
- buf = node.quote || ''
13
- return buf + value + (node.unclosed ? '' : buf)
14
- } else if (type === 'comment') {
15
- return '/*' + value + (node.unclosed ? '' : '*/')
16
- } else if (type === 'div') {
17
- return (node.before || '') + value + (node.after || '')
18
- } else if (Array.isArray(node.nodes)) {
19
- buf = stringify(node.nodes, custom)
20
- if (type !== 'function') {
21
- return buf
22
- }
23
- return value + '(' + (node.before || '') + buf + (node.after || '') + (node.unclosed ? '' : ')')
24
- }
25
- return value
26
- }
27
-
28
- function stringify(nodes, custom) {
29
- var result, i
30
-
31
- if (Array.isArray(nodes)) {
32
- result = ''
33
- for (i = nodes.length - 1; ~i; i -= 1) {
34
- result = stringifyNode(nodes[i], custom) + result
35
- }
36
- return result
37
- }
38
- return stringifyNode(nodes, custom)
39
- }
40
-
41
- module.exports = stringify
@@ -1,118 +0,0 @@
1
- var minus = '-'.charCodeAt(0)
2
- var plus = '+'.charCodeAt(0)
3
- var dot = '.'.charCodeAt(0)
4
- var exp = 'e'.charCodeAt(0)
5
- var EXP = 'E'.charCodeAt(0)
6
-
7
- // Check if three code points would start a number
8
- // https://www.w3.org/TR/css-syntax-3/#starts-with-a-number
9
- function likeNumber(value) {
10
- var code = value.charCodeAt(0)
11
- var nextCode
12
-
13
- if (code === plus || code === minus) {
14
- nextCode = value.charCodeAt(1)
15
-
16
- if (nextCode >= 48 && nextCode <= 57) {
17
- return true
18
- }
19
-
20
- var nextNextCode = value.charCodeAt(2)
21
-
22
- if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {
23
- return true
24
- }
25
-
26
- return false
27
- }
28
-
29
- if (code === dot) {
30
- nextCode = value.charCodeAt(1)
31
-
32
- if (nextCode >= 48 && nextCode <= 57) {
33
- return true
34
- }
35
-
36
- return false
37
- }
38
-
39
- if (code >= 48 && code <= 57) {
40
- return true
41
- }
42
-
43
- return false
44
- }
45
-
46
- // Consume a number
47
- // https://www.w3.org/TR/css-syntax-3/#consume-number
48
- module.exports = function (value) {
49
- var pos = 0
50
- var length = value.length
51
- var code
52
- var nextCode
53
- var nextNextCode
54
-
55
- if (length === 0 || !likeNumber(value)) {
56
- return false
57
- }
58
-
59
- code = value.charCodeAt(pos)
60
-
61
- if (code === plus || code === minus) {
62
- pos++
63
- }
64
-
65
- while (pos < length) {
66
- code = value.charCodeAt(pos)
67
-
68
- if (code < 48 || code > 57) {
69
- break
70
- }
71
-
72
- pos += 1
73
- }
74
-
75
- code = value.charCodeAt(pos)
76
- nextCode = value.charCodeAt(pos + 1)
77
-
78
- if (code === dot && nextCode >= 48 && nextCode <= 57) {
79
- pos += 2
80
-
81
- while (pos < length) {
82
- code = value.charCodeAt(pos)
83
-
84
- if (code < 48 || code > 57) {
85
- break
86
- }
87
-
88
- pos += 1
89
- }
90
- }
91
-
92
- code = value.charCodeAt(pos)
93
- nextCode = value.charCodeAt(pos + 1)
94
- nextNextCode = value.charCodeAt(pos + 2)
95
-
96
- if (
97
- (code === exp || code === EXP) &&
98
- ((nextCode >= 48 && nextCode <= 57) ||
99
- ((nextCode === plus || nextCode === minus) && nextNextCode >= 48 && nextNextCode <= 57))
100
- ) {
101
- pos += nextCode === plus || nextCode === minus ? 3 : 2
102
-
103
- while (pos < length) {
104
- code = value.charCodeAt(pos)
105
-
106
- if (code < 48 || code > 57) {
107
- break
108
- }
109
-
110
- pos += 1
111
- }
112
- }
113
-
114
- return {
115
- number: value.slice(0, pos),
116
- unit: value.slice(pos),
117
- }
118
- }
@@ -1,18 +0,0 @@
1
- module.exports = function walk(nodes, cb, bubble) {
2
- var i, max, node, result
3
-
4
- for (i = 0, max = nodes.length; i < max; i += 1) {
5
- node = nodes[i]
6
- if (!bubble) {
7
- result = cb(node, i, nodes)
8
- }
9
-
10
- if (result !== false && node.type === 'function' && Array.isArray(node.nodes)) {
11
- walk(node.nodes, cb, bubble)
12
- }
13
-
14
- if (bubble) {
15
- cb(node, i, nodes)
16
- }
17
- }
18
- }
package/stubs/.gitignore DELETED
@@ -1 +0,0 @@
1
- !*
@@ -1,6 +0,0 @@
1
- {
2
- "printWidth": 120,
3
- "semi": false,
4
- "singleQuote": true,
5
- "trailingComma": "es5"
6
- }