create-jant 0.1.13 → 0.1.14

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 (163) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +1 -1
  3. package/template/node_modules/@jant/core/CHANGELOG.md +6 -0
  4. package/template/node_modules/@jant/core/package.json +1 -5
  5. package/template/node_modules/@jant/core/src/preset.css +3 -1
  6. package/template/node_modules/@tailwindcss/{postcss → vite}/README.md +11 -61
  7. package/template/node_modules/@tailwindcss/vite/dist/index.d.mts +13 -0
  8. package/template/node_modules/@tailwindcss/vite/dist/index.mjs +1 -0
  9. package/template/node_modules/@tailwindcss/vite/node_modules/.bin/vite +21 -0
  10. package/template/node_modules/@tailwindcss/vite/package.json +42 -0
  11. package/template/package.json +1 -3
  12. package/template/src/style.css +0 -3
  13. package/template/vite.config.ts +2 -8
  14. package/template/node_modules/.bin/autoprefixer +0 -21
  15. package/template/node_modules/@jant/core/src/tailwind.ts +0 -20
  16. package/template/node_modules/@tailwindcss/postcss/dist/index.d.mts +0 -25
  17. package/template/node_modules/@tailwindcss/postcss/dist/index.d.ts +0 -25
  18. package/template/node_modules/@tailwindcss/postcss/dist/index.js +0 -10
  19. package/template/node_modules/@tailwindcss/postcss/dist/index.mjs +0 -10
  20. package/template/node_modules/@tailwindcss/postcss/package.json +0 -46
  21. package/template/node_modules/autoprefixer/LICENSE +0 -20
  22. package/template/node_modules/autoprefixer/README.md +0 -57
  23. package/template/node_modules/autoprefixer/bin/autoprefixer +0 -22
  24. package/template/node_modules/autoprefixer/data/prefixes.js +0 -1139
  25. package/template/node_modules/autoprefixer/lib/at-rule.js +0 -35
  26. package/template/node_modules/autoprefixer/lib/autoprefixer.d.ts +0 -95
  27. package/template/node_modules/autoprefixer/lib/autoprefixer.js +0 -164
  28. package/template/node_modules/autoprefixer/lib/brackets.js +0 -51
  29. package/template/node_modules/autoprefixer/lib/browsers.js +0 -79
  30. package/template/node_modules/autoprefixer/lib/declaration.js +0 -187
  31. package/template/node_modules/autoprefixer/lib/hacks/align-content.js +0 -49
  32. package/template/node_modules/autoprefixer/lib/hacks/align-items.js +0 -46
  33. package/template/node_modules/autoprefixer/lib/hacks/align-self.js +0 -56
  34. package/template/node_modules/autoprefixer/lib/hacks/animation.js +0 -17
  35. package/template/node_modules/autoprefixer/lib/hacks/appearance.js +0 -23
  36. package/template/node_modules/autoprefixer/lib/hacks/autofill.js +0 -26
  37. package/template/node_modules/autoprefixer/lib/hacks/backdrop-filter.js +0 -20
  38. package/template/node_modules/autoprefixer/lib/hacks/background-clip.js +0 -24
  39. package/template/node_modules/autoprefixer/lib/hacks/background-size.js +0 -23
  40. package/template/node_modules/autoprefixer/lib/hacks/block-logical.js +0 -40
  41. package/template/node_modules/autoprefixer/lib/hacks/border-image.js +0 -15
  42. package/template/node_modules/autoprefixer/lib/hacks/border-radius.js +0 -40
  43. package/template/node_modules/autoprefixer/lib/hacks/break-props.js +0 -63
  44. package/template/node_modules/autoprefixer/lib/hacks/cross-fade.js +0 -35
  45. package/template/node_modules/autoprefixer/lib/hacks/display-flex.js +0 -65
  46. package/template/node_modules/autoprefixer/lib/hacks/display-grid.js +0 -21
  47. package/template/node_modules/autoprefixer/lib/hacks/file-selector-button.js +0 -26
  48. package/template/node_modules/autoprefixer/lib/hacks/filter-value.js +0 -14
  49. package/template/node_modules/autoprefixer/lib/hacks/filter.js +0 -19
  50. package/template/node_modules/autoprefixer/lib/hacks/flex-basis.js +0 -39
  51. package/template/node_modules/autoprefixer/lib/hacks/flex-direction.js +0 -72
  52. package/template/node_modules/autoprefixer/lib/hacks/flex-flow.js +0 -53
  53. package/template/node_modules/autoprefixer/lib/hacks/flex-grow.js +0 -30
  54. package/template/node_modules/autoprefixer/lib/hacks/flex-shrink.js +0 -39
  55. package/template/node_modules/autoprefixer/lib/hacks/flex-spec.js +0 -19
  56. package/template/node_modules/autoprefixer/lib/hacks/flex-wrap.js +0 -19
  57. package/template/node_modules/autoprefixer/lib/hacks/flex.js +0 -54
  58. package/template/node_modules/autoprefixer/lib/hacks/fullscreen.js +0 -20
  59. package/template/node_modules/autoprefixer/lib/hacks/gradient.js +0 -447
  60. package/template/node_modules/autoprefixer/lib/hacks/grid-area.js +0 -34
  61. package/template/node_modules/autoprefixer/lib/hacks/grid-column-align.js +0 -28
  62. package/template/node_modules/autoprefixer/lib/hacks/grid-end.js +0 -52
  63. package/template/node_modules/autoprefixer/lib/hacks/grid-row-align.js +0 -28
  64. package/template/node_modules/autoprefixer/lib/hacks/grid-row-column.js +0 -33
  65. package/template/node_modules/autoprefixer/lib/hacks/grid-rows-columns.js +0 -125
  66. package/template/node_modules/autoprefixer/lib/hacks/grid-start.js +0 -33
  67. package/template/node_modules/autoprefixer/lib/hacks/grid-template-areas.js +0 -84
  68. package/template/node_modules/autoprefixer/lib/hacks/grid-template.js +0 -69
  69. package/template/node_modules/autoprefixer/lib/hacks/grid-utils.js +0 -1117
  70. package/template/node_modules/autoprefixer/lib/hacks/image-rendering.js +0 -48
  71. package/template/node_modules/autoprefixer/lib/hacks/image-set.js +0 -18
  72. package/template/node_modules/autoprefixer/lib/hacks/inline-logical.js +0 -34
  73. package/template/node_modules/autoprefixer/lib/hacks/intrinsic.js +0 -61
  74. package/template/node_modules/autoprefixer/lib/hacks/justify-content.js +0 -54
  75. package/template/node_modules/autoprefixer/lib/hacks/mask-border.js +0 -38
  76. package/template/node_modules/autoprefixer/lib/hacks/mask-composite.js +0 -88
  77. package/template/node_modules/autoprefixer/lib/hacks/order.js +0 -42
  78. package/template/node_modules/autoprefixer/lib/hacks/overscroll-behavior.js +0 -33
  79. package/template/node_modules/autoprefixer/lib/hacks/pixelated.js +0 -34
  80. package/template/node_modules/autoprefixer/lib/hacks/place-self.js +0 -32
  81. package/template/node_modules/autoprefixer/lib/hacks/placeholder-shown.js +0 -19
  82. package/template/node_modules/autoprefixer/lib/hacks/placeholder.js +0 -33
  83. package/template/node_modules/autoprefixer/lib/hacks/print-color-adjust.js +0 -25
  84. package/template/node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js +0 -23
  85. package/template/node_modules/autoprefixer/lib/hacks/text-decoration.js +0 -25
  86. package/template/node_modules/autoprefixer/lib/hacks/text-emphasis-position.js +0 -14
  87. package/template/node_modules/autoprefixer/lib/hacks/transform-decl.js +0 -79
  88. package/template/node_modules/autoprefixer/lib/hacks/user-select.js +0 -33
  89. package/template/node_modules/autoprefixer/lib/hacks/writing-mode.js +0 -42
  90. package/template/node_modules/autoprefixer/lib/info.js +0 -123
  91. package/template/node_modules/autoprefixer/lib/old-selector.js +0 -67
  92. package/template/node_modules/autoprefixer/lib/old-value.js +0 -22
  93. package/template/node_modules/autoprefixer/lib/prefixer.js +0 -144
  94. package/template/node_modules/autoprefixer/lib/prefixes.js +0 -428
  95. package/template/node_modules/autoprefixer/lib/processor.js +0 -709
  96. package/template/node_modules/autoprefixer/lib/resolution.js +0 -97
  97. package/template/node_modules/autoprefixer/lib/selector.js +0 -150
  98. package/template/node_modules/autoprefixer/lib/supports.js +0 -302
  99. package/template/node_modules/autoprefixer/lib/transition.js +0 -329
  100. package/template/node_modules/autoprefixer/lib/utils.js +0 -93
  101. package/template/node_modules/autoprefixer/lib/value.js +0 -125
  102. package/template/node_modules/autoprefixer/lib/vendor.js +0 -14
  103. package/template/node_modules/autoprefixer/node_modules/.bin/autoprefixer +0 -21
  104. package/template/node_modules/autoprefixer/node_modules/.bin/browserslist +0 -21
  105. package/template/node_modules/autoprefixer/package.json +0 -48
  106. package/template/node_modules/postcss/LICENSE +0 -20
  107. package/template/node_modules/postcss/README.md +0 -29
  108. package/template/node_modules/postcss/lib/at-rule.d.ts +0 -140
  109. package/template/node_modules/postcss/lib/at-rule.js +0 -25
  110. package/template/node_modules/postcss/lib/comment.d.ts +0 -68
  111. package/template/node_modules/postcss/lib/comment.js +0 -13
  112. package/template/node_modules/postcss/lib/container.d.ts +0 -483
  113. package/template/node_modules/postcss/lib/container.js +0 -447
  114. package/template/node_modules/postcss/lib/css-syntax-error.d.ts +0 -248
  115. package/template/node_modules/postcss/lib/css-syntax-error.js +0 -133
  116. package/template/node_modules/postcss/lib/declaration.d.ts +0 -151
  117. package/template/node_modules/postcss/lib/declaration.js +0 -24
  118. package/template/node_modules/postcss/lib/document.d.ts +0 -69
  119. package/template/node_modules/postcss/lib/document.js +0 -33
  120. package/template/node_modules/postcss/lib/fromJSON.d.ts +0 -9
  121. package/template/node_modules/postcss/lib/fromJSON.js +0 -54
  122. package/template/node_modules/postcss/lib/input.d.ts +0 -227
  123. package/template/node_modules/postcss/lib/input.js +0 -265
  124. package/template/node_modules/postcss/lib/lazy-result.d.ts +0 -190
  125. package/template/node_modules/postcss/lib/lazy-result.js +0 -550
  126. package/template/node_modules/postcss/lib/list.d.ts +0 -60
  127. package/template/node_modules/postcss/lib/list.js +0 -58
  128. package/template/node_modules/postcss/lib/map-generator.js +0 -368
  129. package/template/node_modules/postcss/lib/no-work-result.d.ts +0 -46
  130. package/template/node_modules/postcss/lib/no-work-result.js +0 -138
  131. package/template/node_modules/postcss/lib/node.d.ts +0 -556
  132. package/template/node_modules/postcss/lib/node.js +0 -449
  133. package/template/node_modules/postcss/lib/parse.d.ts +0 -9
  134. package/template/node_modules/postcss/lib/parse.js +0 -42
  135. package/template/node_modules/postcss/lib/parser.js +0 -611
  136. package/template/node_modules/postcss/lib/postcss.d.mts +0 -69
  137. package/template/node_modules/postcss/lib/postcss.d.ts +0 -458
  138. package/template/node_modules/postcss/lib/postcss.js +0 -101
  139. package/template/node_modules/postcss/lib/postcss.mjs +0 -30
  140. package/template/node_modules/postcss/lib/previous-map.d.ts +0 -81
  141. package/template/node_modules/postcss/lib/previous-map.js +0 -144
  142. package/template/node_modules/postcss/lib/processor.d.ts +0 -115
  143. package/template/node_modules/postcss/lib/processor.js +0 -67
  144. package/template/node_modules/postcss/lib/result.d.ts +0 -205
  145. package/template/node_modules/postcss/lib/result.js +0 -42
  146. package/template/node_modules/postcss/lib/root.d.ts +0 -87
  147. package/template/node_modules/postcss/lib/root.js +0 -61
  148. package/template/node_modules/postcss/lib/rule.d.ts +0 -126
  149. package/template/node_modules/postcss/lib/rule.js +0 -27
  150. package/template/node_modules/postcss/lib/stringifier.d.ts +0 -46
  151. package/template/node_modules/postcss/lib/stringifier.js +0 -353
  152. package/template/node_modules/postcss/lib/stringify.d.ts +0 -9
  153. package/template/node_modules/postcss/lib/stringify.js +0 -11
  154. package/template/node_modules/postcss/lib/symbols.js +0 -5
  155. package/template/node_modules/postcss/lib/terminal-highlight.js +0 -70
  156. package/template/node_modules/postcss/lib/tokenize.js +0 -266
  157. package/template/node_modules/postcss/lib/warn-once.js +0 -13
  158. package/template/node_modules/postcss/lib/warning.d.ts +0 -147
  159. package/template/node_modules/postcss/lib/warning.js +0 -37
  160. package/template/node_modules/postcss/node_modules/.bin/nanoid +0 -21
  161. package/template/node_modules/postcss/package.json +0 -88
  162. package/template/tailwind.config.ts +0 -13
  163. /package/template/node_modules/@tailwindcss/{postcss → vite}/LICENSE +0 -0
@@ -1,428 +0,0 @@
1
- let AtRule = require('./at-rule')
2
- let Browsers = require('./browsers')
3
- let Declaration = require('./declaration')
4
- let hackAlignContent = require('./hacks/align-content')
5
- let hackAlignItems = require('./hacks/align-items')
6
- let hackAlignSelf = require('./hacks/align-self')
7
- let hackAnimation = require('./hacks/animation')
8
- let hackAppearance = require('./hacks/appearance')
9
- let hackAutofill = require('./hacks/autofill')
10
- let hackBackdropFilter = require('./hacks/backdrop-filter')
11
- let hackBackgroundClip = require('./hacks/background-clip')
12
- let hackBackgroundSize = require('./hacks/background-size')
13
- let hackBlockLogical = require('./hacks/block-logical')
14
- let hackBorderImage = require('./hacks/border-image')
15
- let hackBorderRadius = require('./hacks/border-radius')
16
- let hackBreakProps = require('./hacks/break-props')
17
- let hackCrossFade = require('./hacks/cross-fade')
18
- let hackDisplayFlex = require('./hacks/display-flex')
19
- let hackDisplayGrid = require('./hacks/display-grid')
20
- let hackFileSelectorButton = require('./hacks/file-selector-button')
21
- let hackFilter = require('./hacks/filter')
22
- let hackFilterValue = require('./hacks/filter-value')
23
- let hackFlex = require('./hacks/flex')
24
- let hackFlexBasis = require('./hacks/flex-basis')
25
- let hackFlexDirection = require('./hacks/flex-direction')
26
- let hackFlexFlow = require('./hacks/flex-flow')
27
- let hackFlexGrow = require('./hacks/flex-grow')
28
- let hackFlexShrink = require('./hacks/flex-shrink')
29
- let hackFlexWrap = require('./hacks/flex-wrap')
30
- let hackFullscreen = require('./hacks/fullscreen')
31
- let hackGradient = require('./hacks/gradient')
32
- let hackGridArea = require('./hacks/grid-area')
33
- let hackGridColumnAlign = require('./hacks/grid-column-align')
34
- let hackGridEnd = require('./hacks/grid-end')
35
- let hackGridRowAlign = require('./hacks/grid-row-align')
36
- let hackGridRowColumn = require('./hacks/grid-row-column')
37
- let hackGridRowsColumns = require('./hacks/grid-rows-columns')
38
- let hackGridStart = require('./hacks/grid-start')
39
- let hackGridTemplate = require('./hacks/grid-template')
40
- let hackGridTemplateAreas = require('./hacks/grid-template-areas')
41
- let hackImageRendering = require('./hacks/image-rendering')
42
- let hackImageSet = require('./hacks/image-set')
43
- let hackInlineLogical = require('./hacks/inline-logical')
44
- let hackIntrinsic = require('./hacks/intrinsic')
45
- let hackJustifyContent = require('./hacks/justify-content')
46
- let hackMaskBorder = require('./hacks/mask-border')
47
- let hackMaskComposite = require('./hacks/mask-composite')
48
- let hackOrder = require('./hacks/order')
49
- let hackOverscrollBehavior = require('./hacks/overscroll-behavior')
50
- let hackPixelated = require('./hacks/pixelated')
51
- let hackPlaceSelf = require('./hacks/place-self')
52
- let hackPlaceholder = require('./hacks/placeholder')
53
- let hackPlaceholderShown = require('./hacks/placeholder-shown')
54
- let hackPrintColorAdjust = require('./hacks/print-color-adjust')
55
- let hackTextDecoration = require('./hacks/text-decoration')
56
- let hackTextDecorationSkipInk = require('./hacks/text-decoration-skip-ink')
57
- let hackTextEmphasisPosition = require('./hacks/text-emphasis-position')
58
- let hackTransformDecl = require('./hacks/transform-decl')
59
- let hackUserSelect = require('./hacks/user-select')
60
- let hackWritingMode = require('./hacks/writing-mode')
61
- let Processor = require('./processor')
62
- let Resolution = require('./resolution')
63
- let Selector = require('./selector')
64
- let Supports = require('./supports')
65
- let Transition = require('./transition')
66
- let utils = require('./utils')
67
- let Value = require('./value')
68
- let vendor = require('./vendor')
69
-
70
- Selector.hack(hackAutofill)
71
- Selector.hack(hackFullscreen)
72
- Selector.hack(hackPlaceholder)
73
- Selector.hack(hackPlaceholderShown)
74
- Selector.hack(hackFileSelectorButton)
75
- Declaration.hack(hackFlex)
76
- Declaration.hack(hackOrder)
77
- Declaration.hack(hackFilter)
78
- Declaration.hack(hackGridEnd)
79
- Declaration.hack(hackAnimation)
80
- Declaration.hack(hackFlexFlow)
81
- Declaration.hack(hackFlexGrow)
82
- Declaration.hack(hackFlexWrap)
83
- Declaration.hack(hackGridArea)
84
- Declaration.hack(hackPlaceSelf)
85
- Declaration.hack(hackGridStart)
86
- Declaration.hack(hackAlignSelf)
87
- Declaration.hack(hackAppearance)
88
- Declaration.hack(hackFlexBasis)
89
- Declaration.hack(hackMaskBorder)
90
- Declaration.hack(hackMaskComposite)
91
- Declaration.hack(hackAlignItems)
92
- Declaration.hack(hackUserSelect)
93
- Declaration.hack(hackFlexShrink)
94
- Declaration.hack(hackBreakProps)
95
- Declaration.hack(hackWritingMode)
96
- Declaration.hack(hackBorderImage)
97
- Declaration.hack(hackAlignContent)
98
- Declaration.hack(hackBorderRadius)
99
- Declaration.hack(hackBlockLogical)
100
- Declaration.hack(hackGridTemplate)
101
- Declaration.hack(hackInlineLogical)
102
- Declaration.hack(hackGridRowAlign)
103
- Declaration.hack(hackTransformDecl)
104
- Declaration.hack(hackFlexDirection)
105
- Declaration.hack(hackImageRendering)
106
- Declaration.hack(hackBackdropFilter)
107
- Declaration.hack(hackBackgroundClip)
108
- Declaration.hack(hackTextDecoration)
109
- Declaration.hack(hackJustifyContent)
110
- Declaration.hack(hackBackgroundSize)
111
- Declaration.hack(hackGridRowColumn)
112
- Declaration.hack(hackGridRowsColumns)
113
- Declaration.hack(hackGridColumnAlign)
114
- Declaration.hack(hackOverscrollBehavior)
115
- Declaration.hack(hackGridTemplateAreas)
116
- Declaration.hack(hackPrintColorAdjust)
117
- Declaration.hack(hackTextEmphasisPosition)
118
- Declaration.hack(hackTextDecorationSkipInk)
119
- Value.hack(hackGradient)
120
- Value.hack(hackIntrinsic)
121
- Value.hack(hackPixelated)
122
- Value.hack(hackImageSet)
123
- Value.hack(hackCrossFade)
124
- Value.hack(hackDisplayFlex)
125
- Value.hack(hackDisplayGrid)
126
- Value.hack(hackFilterValue)
127
-
128
- let declsCache = new Map()
129
-
130
- class Prefixes {
131
- constructor(data, browsers, options = {}) {
132
- this.data = data
133
- this.browsers = browsers
134
- this.options = options
135
- ;[this.add, this.remove] = this.preprocess(this.select(this.data))
136
- this.transition = new Transition(this)
137
- this.processor = new Processor(this)
138
- }
139
-
140
- /**
141
- * Return clone instance to remove all prefixes
142
- */
143
- cleaner() {
144
- if (this.cleanerCache) {
145
- return this.cleanerCache
146
- }
147
-
148
- if (this.browsers.selected.length) {
149
- let empty = new Browsers(this.browsers.data, [])
150
- this.cleanerCache = new Prefixes(this.data, empty, this.options)
151
- } else {
152
- return this
153
- }
154
-
155
- return this.cleanerCache
156
- }
157
-
158
- /**
159
- * Declaration loader with caching
160
- */
161
- decl(prop) {
162
- if (!declsCache.has(prop)) {
163
- declsCache.set(prop, Declaration.load(prop))
164
- }
165
-
166
- return declsCache.get(prop)
167
- }
168
-
169
- /**
170
- * Group declaration by unprefixed property to check them
171
- */
172
- group(decl) {
173
- let rule = decl.parent
174
- let index = rule.index(decl)
175
- let { length } = rule.nodes
176
- let unprefixed = this.unprefixed(decl.prop)
177
-
178
- let checker = (step, callback) => {
179
- index += step
180
- while (index >= 0 && index < length) {
181
- let other = rule.nodes[index]
182
- if (other.type === 'decl') {
183
- if (step === -1 && other.prop === unprefixed) {
184
- if (!Browsers.withPrefix(other.value)) {
185
- break
186
- }
187
- }
188
-
189
- if (this.unprefixed(other.prop) !== unprefixed) {
190
- break
191
- } else if (callback(other) === true) {
192
- return true
193
- }
194
-
195
- if (step === +1 && other.prop === unprefixed) {
196
- if (!Browsers.withPrefix(other.value)) {
197
- break
198
- }
199
- }
200
- }
201
-
202
- index += step
203
- }
204
- return false
205
- }
206
-
207
- return {
208
- down(callback) {
209
- return checker(+1, callback)
210
- },
211
- up(callback) {
212
- return checker(-1, callback)
213
- }
214
- }
215
- }
216
-
217
- /**
218
- * Normalize prefix for remover
219
- */
220
- normalize(prop) {
221
- return this.decl(prop).normalize(prop)
222
- }
223
-
224
- /**
225
- * Return prefixed version of property
226
- */
227
- prefixed(prop, prefix) {
228
- prop = vendor.unprefixed(prop)
229
- return this.decl(prop).prefixed(prop, prefix)
230
- }
231
-
232
- /**
233
- * Cache prefixes data to fast CSS processing
234
- */
235
- preprocess(selected) {
236
- let add = {
237
- '@supports': new Supports(Prefixes, this),
238
- 'selectors': []
239
- }
240
- for (let name in selected.add) {
241
- let prefixes = selected.add[name]
242
- if (name === '@keyframes' || name === '@viewport') {
243
- add[name] = new AtRule(name, prefixes, this)
244
- } else if (name === '@resolution') {
245
- add[name] = new Resolution(name, prefixes, this)
246
- } else if (this.data[name].selector) {
247
- add.selectors.push(Selector.load(name, prefixes, this))
248
- } else {
249
- let props = this.data[name].props
250
-
251
- if (props) {
252
- let value = Value.load(name, prefixes, this)
253
- for (let prop of props) {
254
- if (!add[prop]) {
255
- add[prop] = { values: [] }
256
- }
257
- add[prop].values.push(value)
258
- }
259
- } else {
260
- let values = (add[name] && add[name].values) || []
261
- add[name] = Declaration.load(name, prefixes, this)
262
- add[name].values = values
263
- }
264
- }
265
- }
266
-
267
- let remove = { selectors: [] }
268
- for (let name in selected.remove) {
269
- let prefixes = selected.remove[name]
270
- if (this.data[name].selector) {
271
- let selector = Selector.load(name, prefixes)
272
- for (let prefix of prefixes) {
273
- remove.selectors.push(selector.old(prefix))
274
- }
275
- } else if (name === '@keyframes' || name === '@viewport') {
276
- for (let prefix of prefixes) {
277
- let prefixed = `@${prefix}${name.slice(1)}`
278
- remove[prefixed] = { remove: true }
279
- }
280
- } else if (name === '@resolution') {
281
- remove[name] = new Resolution(name, prefixes, this)
282
- } else {
283
- let props = this.data[name].props
284
- if (props) {
285
- let value = Value.load(name, [], this)
286
- for (let prefix of prefixes) {
287
- let old = value.old(prefix)
288
- if (old) {
289
- for (let prop of props) {
290
- if (!remove[prop]) {
291
- remove[prop] = {}
292
- }
293
- if (!remove[prop].values) {
294
- remove[prop].values = []
295
- }
296
- remove[prop].values.push(old)
297
- }
298
- }
299
- }
300
- } else {
301
- for (let p of prefixes) {
302
- let olds = this.decl(name).old(name, p)
303
- if (name === 'align-self') {
304
- let a = add[name] && add[name].prefixes
305
- if (a) {
306
- if (p === '-webkit- 2009' && a.includes('-webkit-')) {
307
- continue
308
- } else if (p === '-webkit-' && a.includes('-webkit- 2009')) {
309
- continue
310
- }
311
- }
312
- }
313
- for (let prefixed of olds) {
314
- if (!remove[prefixed]) {
315
- remove[prefixed] = {}
316
- }
317
- remove[prefixed].remove = true
318
- }
319
- }
320
- }
321
- }
322
- }
323
-
324
- return [add, remove]
325
- }
326
-
327
- /**
328
- * Select prefixes from data, which is necessary for selected browsers
329
- */
330
- select(list) {
331
- let selected = { add: {}, remove: {} }
332
-
333
- for (let name in list) {
334
- let data = list[name]
335
- let add = data.browsers.map(i => {
336
- let params = i.split(' ')
337
- return {
338
- browser: `${params[0]} ${params[1]}`,
339
- note: params[2]
340
- }
341
- })
342
-
343
- let notes = add
344
- .filter(i => i.note)
345
- .map(i => `${this.browsers.prefix(i.browser)} ${i.note}`)
346
- notes = utils.uniq(notes)
347
-
348
- add = add
349
- .filter(i => this.browsers.isSelected(i.browser))
350
- .map(i => {
351
- let prefix = this.browsers.prefix(i.browser)
352
- if (i.note) {
353
- return `${prefix} ${i.note}`
354
- } else {
355
- return prefix
356
- }
357
- })
358
- add = this.sort(utils.uniq(add))
359
-
360
- if (this.options.flexbox === 'no-2009') {
361
- add = add.filter(i => !i.includes('2009'))
362
- }
363
-
364
- let all = data.browsers.map(i => this.browsers.prefix(i))
365
- if (data.mistakes) {
366
- all = all.concat(data.mistakes)
367
- }
368
- all = all.concat(notes)
369
- all = utils.uniq(all)
370
-
371
- if (add.length) {
372
- selected.add[name] = add
373
- if (add.length < all.length) {
374
- selected.remove[name] = all.filter(i => !add.includes(i))
375
- }
376
- } else {
377
- selected.remove[name] = all
378
- }
379
- }
380
-
381
- return selected
382
- }
383
-
384
- /**
385
- * Sort vendor prefixes
386
- */
387
- sort(prefixes) {
388
- return prefixes.sort((a, b) => {
389
- let aLength = utils.removeNote(a).length
390
- let bLength = utils.removeNote(b).length
391
-
392
- if (aLength === bLength) {
393
- return b.length - a.length
394
- } else {
395
- return bLength - aLength
396
- }
397
- })
398
- }
399
-
400
- /**
401
- * Return unprefixed version of property
402
- */
403
- unprefixed(prop) {
404
- let value = this.normalize(vendor.unprefixed(prop))
405
- if (value === 'flex-direction') {
406
- value = 'flex-flow'
407
- }
408
- return value
409
- }
410
-
411
- /**
412
- * Return values, which must be prefixed in selected property
413
- */
414
- values(type, prop) {
415
- let data = this[type]
416
-
417
- let global = data['*'] && data['*'].values
418
- let values = data[prop] && data[prop].values
419
-
420
- if (global && values) {
421
- return utils.uniq(global.concat(values))
422
- } else {
423
- return global || values || []
424
- }
425
- }
426
- }
427
-
428
- module.exports = Prefixes