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,35 +0,0 @@
1
- let Prefixer = require('./prefixer')
2
-
3
- class AtRule extends Prefixer {
4
- /**
5
- * Clone and add prefixes for at-rule
6
- */
7
- add(rule, prefix) {
8
- let prefixed = prefix + rule.name
9
-
10
- let already = rule.parent.some(
11
- i => i.name === prefixed && i.params === rule.params
12
- )
13
- if (already) {
14
- return undefined
15
- }
16
-
17
- let cloned = this.clone(rule, { name: prefixed })
18
- return rule.parent.insertBefore(rule, cloned)
19
- }
20
-
21
- /**
22
- * Clone node with prefixes
23
- */
24
- process(node) {
25
- let parent = this.parentPrefix(node)
26
-
27
- for (let prefix of this.prefixes) {
28
- if (!parent || parent === prefix) {
29
- this.add(node, prefix)
30
- }
31
- }
32
- }
33
- }
34
-
35
- module.exports = AtRule
@@ -1,95 +0,0 @@
1
- import { Plugin } from 'postcss'
2
- import { Stats } from 'browserslist'
3
-
4
- declare function autoprefixer<T extends string[]>(
5
- ...args: [...T, autoprefixer.Options]
6
- ): Plugin & autoprefixer.ExportedAPI
7
-
8
- declare function autoprefixer(
9
- browsers: string[],
10
- options?: autoprefixer.Options
11
- ): Plugin & autoprefixer.ExportedAPI
12
-
13
- declare function autoprefixer(
14
- options?: autoprefixer.Options
15
- ): Plugin & autoprefixer.ExportedAPI
16
-
17
- declare namespace autoprefixer {
18
- type GridValue = 'autoplace' | 'no-autoplace'
19
-
20
- interface Options {
21
- /** environment for `Browserslist` */
22
- env?: string
23
-
24
- /** should Autoprefixer use Visual Cascade, if CSS is uncompressed */
25
- cascade?: boolean
26
-
27
- /** should Autoprefixer add prefixes. */
28
- add?: boolean
29
-
30
- /** should Autoprefixer [remove outdated] prefixes */
31
- remove?: boolean
32
-
33
- /** should Autoprefixer add prefixes for @supports parameters. */
34
- supports?: boolean
35
-
36
- /** should Autoprefixer add prefixes for flexbox properties */
37
- flexbox?: boolean | 'no-2009'
38
-
39
- /** should Autoprefixer add IE 10-11 prefixes for Grid Layout properties */
40
- grid?: boolean | GridValue
41
-
42
- /** custom usage statistics for > 10% in my stats browsers query */
43
- stats?: Stats
44
-
45
- /**
46
- * list of queries for target browsers.
47
- * Try to not use it.
48
- * The best practice is to use `.browserslistrc` config or `browserslist` key in `package.json`
49
- * to share target browsers with Babel, ESLint and Stylelint
50
- */
51
- overrideBrowserslist?: string | string[]
52
-
53
- /** do not raise error on unknown browser version in `Browserslist` config. */
54
- ignoreUnknownVersions?: boolean
55
- }
56
-
57
- interface ExportedAPI {
58
- /** Autoprefixer data */
59
- data: {
60
- browsers: { [browser: string]: object | undefined }
61
- prefixes: { [prefixName: string]: object | undefined }
62
- }
63
-
64
- /** Autoprefixer default browsers */
65
- defaults: string[]
66
-
67
- /** Inspect with default Autoprefixer */
68
- info(options?: { from?: string }): string
69
-
70
- options: Options
71
-
72
- browsers: string | string[]
73
- }
74
-
75
- /** Autoprefixer data */
76
- let data: ExportedAPI['data']
77
-
78
- /** Autoprefixer default browsers */
79
- let defaults: ExportedAPI['defaults']
80
-
81
- /** Inspect with default Autoprefixer */
82
- let info: ExportedAPI['info']
83
-
84
- let postcss: true
85
- }
86
-
87
- declare global {
88
- namespace NodeJS {
89
- interface ProcessEnv {
90
- AUTOPREFIXER_GRID?: autoprefixer.GridValue
91
- }
92
- }
93
- }
94
-
95
- export = autoprefixer
@@ -1,164 +0,0 @@
1
- let browserslist = require('browserslist')
2
- let { agents } = require('caniuse-lite/dist/unpacker/agents')
3
- let pico = require('picocolors')
4
-
5
- let dataPrefixes = require('../data/prefixes')
6
- let Browsers = require('./browsers')
7
- let getInfo = require('./info')
8
- let Prefixes = require('./prefixes')
9
-
10
- let autoprefixerData = { browsers: agents, prefixes: dataPrefixes }
11
-
12
- const WARNING =
13
- '\n' +
14
- ' Replace Autoprefixer `browsers` option to Browserslist config.\n' +
15
- ' Use `browserslist` key in `package.json` or `.browserslistrc` file.\n' +
16
- '\n' +
17
- ' Using `browsers` option can cause errors. Browserslist config can\n' +
18
- ' be used for Babel, Autoprefixer, postcss-normalize and other tools.\n' +
19
- '\n' +
20
- ' If you really need to use option, rename it to `overrideBrowserslist`.\n' +
21
- '\n' +
22
- ' Learn more at:\n' +
23
- ' https://github.com/browserslist/browserslist#readme\n' +
24
- ' https://twitter.com/browserslist\n' +
25
- '\n'
26
-
27
- function isPlainObject(obj) {
28
- return Object.prototype.toString.apply(obj) === '[object Object]'
29
- }
30
-
31
- let cache = new Map()
32
-
33
- function timeCapsule(result, prefixes) {
34
- if (prefixes.browsers.selected.length === 0) {
35
- return
36
- }
37
- if (prefixes.add.selectors.length > 0) {
38
- return
39
- }
40
- if (Object.keys(prefixes.add).length > 2) {
41
- return
42
- }
43
- /* c8 ignore next 11 */
44
- result.warn(
45
- 'Autoprefixer target browsers do not need any prefixes.' +
46
- 'You do not need Autoprefixer anymore.\n' +
47
- 'Check your Browserslist config to be sure that your targets ' +
48
- 'are set up correctly.\n' +
49
- '\n' +
50
- ' Learn more at:\n' +
51
- ' https://github.com/postcss/autoprefixer#readme\n' +
52
- ' https://github.com/browserslist/browserslist#readme\n' +
53
- '\n'
54
- )
55
- }
56
-
57
- module.exports = plugin
58
-
59
- function plugin(...reqs) {
60
- let options
61
- if (reqs.length === 1 && isPlainObject(reqs[0])) {
62
- options = reqs[0]
63
- reqs = undefined
64
- } else if (reqs.length === 0 || (reqs.length === 1 && !reqs[0])) {
65
- reqs = undefined
66
- } else if (reqs.length <= 2 && (Array.isArray(reqs[0]) || !reqs[0])) {
67
- options = reqs[1]
68
- reqs = reqs[0]
69
- } else if (typeof reqs[reqs.length - 1] === 'object') {
70
- options = reqs.pop()
71
- }
72
-
73
- if (!options) {
74
- options = {}
75
- }
76
-
77
- if (options.browser) {
78
- throw new Error(
79
- 'Change `browser` option to `overrideBrowserslist` in Autoprefixer'
80
- )
81
- } else if (options.browserslist) {
82
- throw new Error(
83
- 'Change `browserslist` option to `overrideBrowserslist` in Autoprefixer'
84
- )
85
- }
86
-
87
- if (options.overrideBrowserslist) {
88
- reqs = options.overrideBrowserslist
89
- } else if (options.browsers) {
90
- if (typeof console !== 'undefined' && console.warn) {
91
- console.warn(
92
- pico.red(WARNING.replace(/`[^`]+`/g, i => pico.yellow(i.slice(1, -1))))
93
- )
94
- }
95
- reqs = options.browsers
96
- }
97
-
98
- let brwlstOpts = {
99
- env: options.env,
100
- ignoreUnknownVersions: options.ignoreUnknownVersions,
101
- stats: options.stats
102
- }
103
-
104
- function loadPrefixes(opts) {
105
- let d = autoprefixerData
106
- let browsers = new Browsers(d.browsers, reqs, opts, brwlstOpts)
107
- let key = browsers.selected.join(', ') + JSON.stringify(options)
108
-
109
- if (!cache.has(key)) {
110
- cache.set(key, new Prefixes(d.prefixes, browsers, options))
111
- }
112
-
113
- return cache.get(key)
114
- }
115
-
116
- return {
117
- browsers: reqs,
118
-
119
- info(opts) {
120
- opts = opts || {}
121
- opts.from = opts.from || process.cwd()
122
- return getInfo(loadPrefixes(opts))
123
- },
124
-
125
- options,
126
-
127
- postcssPlugin: 'autoprefixer',
128
- prepare(result) {
129
- let prefixes = loadPrefixes({
130
- env: options.env,
131
- from: result.opts.from
132
- })
133
-
134
- return {
135
- OnceExit(root) {
136
- timeCapsule(result, prefixes)
137
- if (options.remove !== false) {
138
- prefixes.processor.remove(root, result)
139
- }
140
- if (options.add !== false) {
141
- prefixes.processor.add(root, result)
142
- }
143
- }
144
- }
145
- }
146
- }
147
- }
148
-
149
- plugin.postcss = true
150
-
151
- /**
152
- * Autoprefixer data
153
- */
154
- plugin.data = autoprefixerData
155
-
156
- /**
157
- * Autoprefixer default browsers
158
- */
159
- plugin.defaults = browserslist.defaults
160
-
161
- /**
162
- * Inspect with default Autoprefixer
163
- */
164
- plugin.info = () => plugin().info()
@@ -1,51 +0,0 @@
1
- function last(array) {
2
- return array[array.length - 1]
3
- }
4
-
5
- let brackets = {
6
- /**
7
- * Parse string to nodes tree
8
- */
9
- parse(str) {
10
- let current = ['']
11
- let stack = [current]
12
-
13
- for (let sym of str) {
14
- if (sym === '(') {
15
- current = ['']
16
- last(stack).push(current)
17
- stack.push(current)
18
- continue
19
- }
20
-
21
- if (sym === ')') {
22
- stack.pop()
23
- current = last(stack)
24
- current.push('')
25
- continue
26
- }
27
-
28
- current[current.length - 1] += sym
29
- }
30
-
31
- return stack[0]
32
- },
33
-
34
- /**
35
- * Generate output string by nodes tree
36
- */
37
- stringify(ast) {
38
- let result = ''
39
- for (let i of ast) {
40
- if (typeof i === 'object') {
41
- result += `(${brackets.stringify(i)})`
42
- continue
43
- }
44
-
45
- result += i
46
- }
47
- return result
48
- }
49
- }
50
-
51
- module.exports = brackets
@@ -1,79 +0,0 @@
1
- let browserslist = require('browserslist')
2
- let { agents } = require('caniuse-lite/dist/unpacker/agents')
3
-
4
- let utils = require('./utils')
5
-
6
- class Browsers {
7
- constructor(data, requirements, options, browserslistOpts) {
8
- this.data = data
9
- this.options = options || {}
10
- this.browserslistOpts = browserslistOpts || {}
11
- this.selected = this.parse(requirements)
12
- }
13
-
14
- /**
15
- * Return all prefixes for default browser data
16
- */
17
- static prefixes() {
18
- if (this.prefixesCache) {
19
- return this.prefixesCache
20
- }
21
-
22
- this.prefixesCache = []
23
- for (let name in agents) {
24
- this.prefixesCache.push(`-${agents[name].prefix}-`)
25
- }
26
-
27
- this.prefixesCache = utils
28
- .uniq(this.prefixesCache)
29
- .sort((a, b) => b.length - a.length)
30
-
31
- return this.prefixesCache
32
- }
33
-
34
- /**
35
- * Check is value contain any possible prefix
36
- */
37
- static withPrefix(value) {
38
- if (!this.prefixesRegexp) {
39
- this.prefixesRegexp = new RegExp(this.prefixes().join('|'))
40
- }
41
-
42
- return this.prefixesRegexp.test(value)
43
- }
44
-
45
- /**
46
- * Is browser is selected by requirements
47
- */
48
- isSelected(browser) {
49
- return this.selected.includes(browser)
50
- }
51
-
52
- /**
53
- * Return browsers selected by requirements
54
- */
55
- parse(requirements) {
56
- let opts = {}
57
- for (let i in this.browserslistOpts) {
58
- opts[i] = this.browserslistOpts[i]
59
- }
60
- opts.path = this.options.from
61
- return browserslist(requirements, opts)
62
- }
63
-
64
- /**
65
- * Return prefix for selected browser
66
- */
67
- prefix(browser) {
68
- let [name, version] = browser.split(' ')
69
- let data = this.data[name]
70
-
71
- let prefix = data.prefix_exceptions && data.prefix_exceptions[version]
72
- if (!prefix) {
73
- prefix = data.prefix
74
- }
75
- return `-${prefix}-`
76
- }
77
- }
78
-
79
- module.exports = Browsers
@@ -1,187 +0,0 @@
1
- let Browsers = require('./browsers')
2
- let Prefixer = require('./prefixer')
3
- let utils = require('./utils')
4
-
5
- class Declaration extends Prefixer {
6
- /**
7
- * Clone and add prefixes for declaration
8
- */
9
- add(decl, prefix, prefixes, result) {
10
- let prefixed = this.prefixed(decl.prop, prefix)
11
- if (
12
- this.isAlready(decl, prefixed) ||
13
- this.otherPrefixes(decl.value, prefix)
14
- ) {
15
- return undefined
16
- }
17
- return this.insert(decl, prefix, prefixes, result)
18
- }
19
-
20
- /**
21
- * Calculate indentation to create visual cascade
22
- */
23
- calcBefore(prefixes, decl, prefix = '') {
24
- let max = this.maxPrefixed(prefixes, decl)
25
- let diff = max - utils.removeNote(prefix).length
26
-
27
- let before = decl.raw('before')
28
- if (diff > 0) {
29
- before += Array(diff).fill(' ').join('')
30
- }
31
-
32
- return before
33
- }
34
-
35
- /**
36
- * Always true, because we already get prefixer by property name
37
- */
38
- check(/* decl */) {
39
- return true
40
- }
41
-
42
- /**
43
- * Clone and insert new declaration
44
- */
45
- insert(decl, prefix, prefixes) {
46
- let cloned = this.set(this.clone(decl), prefix)
47
- if (!cloned) return undefined
48
-
49
- let already = decl.parent.some(
50
- i => i.prop === cloned.prop && i.value === cloned.value
51
- )
52
- if (already) {
53
- return undefined
54
- }
55
-
56
- if (this.needCascade(decl)) {
57
- cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
58
- }
59
- return decl.parent.insertBefore(decl, cloned)
60
- }
61
-
62
- /**
63
- * Did this declaration has this prefix above
64
- */
65
- isAlready(decl, prefixed) {
66
- let already = this.all.group(decl).up(i => i.prop === prefixed)
67
- if (!already) {
68
- already = this.all.group(decl).down(i => i.prop === prefixed)
69
- }
70
- return already
71
- }
72
-
73
- /**
74
- * Return maximum length of possible prefixed property
75
- */
76
- maxPrefixed(prefixes, decl) {
77
- if (decl._autoprefixerMax) {
78
- return decl._autoprefixerMax
79
- }
80
-
81
- let max = 0
82
- for (let prefix of prefixes) {
83
- prefix = utils.removeNote(prefix)
84
- if (prefix.length > max) {
85
- max = prefix.length
86
- }
87
- }
88
- decl._autoprefixerMax = max
89
-
90
- return decl._autoprefixerMax
91
- }
92
-
93
- /**
94
- * Should we use visual cascade for prefixes
95
- */
96
- needCascade(decl) {
97
- if (!decl._autoprefixerCascade) {
98
- decl._autoprefixerCascade =
99
- this.all.options.cascade !== false && decl.raw('before').includes('\n')
100
- }
101
- return decl._autoprefixerCascade
102
- }
103
-
104
- /**
105
- * Return unprefixed version of property
106
- */
107
- normalize(prop) {
108
- return prop
109
- }
110
-
111
- /**
112
- * Return list of prefixed properties to clean old prefixes
113
- */
114
- old(prop, prefix) {
115
- return [this.prefixed(prop, prefix)]
116
- }
117
-
118
- /**
119
- * Check `value`, that it contain other prefixes, rather than `prefix`
120
- */
121
- otherPrefixes(value, prefix) {
122
- for (let other of Browsers.prefixes()) {
123
- if (other === prefix) {
124
- continue
125
- }
126
- if (value.includes(other)) {
127
- return value.replace(/var\([^)]+\)/, '').includes(other)
128
- }
129
- }
130
- return false
131
- }
132
-
133
- /**
134
- * Return prefixed version of property
135
- */
136
- prefixed(prop, prefix) {
137
- return prefix + prop
138
- }
139
-
140
- /**
141
- * Add spaces for visual cascade
142
- */
143
- process(decl, result) {
144
- if (!this.needCascade(decl)) {
145
- super.process(decl, result)
146
- return
147
- }
148
-
149
- let prefixes = super.process(decl, result)
150
-
151
- if (!prefixes || !prefixes.length) {
152
- return
153
- }
154
-
155
- this.restoreBefore(decl)
156
- decl.raws.before = this.calcBefore(prefixes, decl)
157
- }
158
-
159
- /**
160
- * Remove visual cascade
161
- */
162
- restoreBefore(decl) {
163
- let lines = decl.raw('before').split('\n')
164
- let min = lines[lines.length - 1]
165
-
166
- this.all.group(decl).up(prefixed => {
167
- let array = prefixed.raw('before').split('\n')
168
- let last = array[array.length - 1]
169
- if (last.length < min.length) {
170
- min = last
171
- }
172
- })
173
-
174
- lines[lines.length - 1] = min
175
- decl.raws.before = lines.join('\n')
176
- }
177
-
178
- /**
179
- * Set prefix to declaration
180
- */
181
- set(decl, prefix) {
182
- decl.prop = this.prefixed(decl.prop, prefix)
183
- return decl
184
- }
185
- }
186
-
187
- module.exports = Declaration
@@ -1,49 +0,0 @@
1
- let Declaration = require('../declaration')
2
- let flexSpec = require('./flex-spec')
3
-
4
- class AlignContent extends Declaration {
5
- /**
6
- * Return property name by final spec
7
- */
8
- normalize() {
9
- return 'align-content'
10
- }
11
-
12
- /**
13
- * Change property name for 2012 spec
14
- */
15
- prefixed(prop, prefix) {
16
- let spec
17
- ;[spec, prefix] = flexSpec(prefix)
18
- if (spec === 2012) {
19
- return prefix + 'flex-line-pack'
20
- }
21
- return super.prefixed(prop, prefix)
22
- }
23
-
24
- /**
25
- * Change value for 2012 spec and ignore prefix for 2009
26
- */
27
- set(decl, prefix) {
28
- let spec = flexSpec(prefix)[0]
29
- if (spec === 2012) {
30
- decl.value = AlignContent.oldValues[decl.value] || decl.value
31
- return super.set(decl, prefix)
32
- }
33
- if (spec === 'final') {
34
- return super.set(decl, prefix)
35
- }
36
- return undefined
37
- }
38
- }
39
-
40
- AlignContent.names = ['align-content', 'flex-line-pack']
41
-
42
- AlignContent.oldValues = {
43
- 'flex-end': 'end',
44
- 'flex-start': 'start',
45
- 'space-around': 'distribute',
46
- 'space-between': 'justify'
47
- }
48
-
49
- module.exports = AlignContent
@@ -1,46 +0,0 @@
1
- let Declaration = require('../declaration')
2
- let flexSpec = require('./flex-spec')
3
-
4
- class AlignItems extends Declaration {
5
- /**
6
- * Return property name by final spec
7
- */
8
- normalize() {
9
- return 'align-items'
10
- }
11
-
12
- /**
13
- * Change property name for 2009 and 2012 specs
14
- */
15
- prefixed(prop, prefix) {
16
- let spec
17
- ;[spec, prefix] = flexSpec(prefix)
18
- if (spec === 2009) {
19
- return prefix + 'box-align'
20
- }
21
- if (spec === 2012) {
22
- return prefix + 'flex-align'
23
- }
24
- return super.prefixed(prop, prefix)
25
- }
26
-
27
- /**
28
- * Change value for 2009 and 2012 specs
29
- */
30
- set(decl, prefix) {
31
- let spec = flexSpec(prefix)[0]
32
- if (spec === 2009 || spec === 2012) {
33
- decl.value = AlignItems.oldValues[decl.value] || decl.value
34
- }
35
- return super.set(decl, prefix)
36
- }
37
- }
38
-
39
- AlignItems.names = ['align-items', 'flex-align', 'box-align']
40
-
41
- AlignItems.oldValues = {
42
- 'flex-end': 'end',
43
- 'flex-start': 'start'
44
- }
45
-
46
- module.exports = AlignItems