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,79 +0,0 @@
1
- let Declaration = require('../declaration')
2
-
3
- class TransformDecl extends Declaration {
4
- /**
5
- * Is transform contain 3D commands
6
- */
7
- contain3d(decl) {
8
- if (decl.prop === 'transform-origin') {
9
- return false
10
- }
11
-
12
- for (let func of TransformDecl.functions3d) {
13
- if (decl.value.includes(`${func}(`)) {
14
- return true
15
- }
16
- }
17
-
18
- return false
19
- }
20
-
21
- /**
22
- * Don't add prefix for IE in keyframes
23
- */
24
- insert(decl, prefix, prefixes) {
25
- if (prefix === '-ms-') {
26
- if (!this.contain3d(decl) && !this.keyframeParents(decl)) {
27
- return super.insert(decl, prefix, prefixes)
28
- }
29
- } else if (prefix === '-o-') {
30
- if (!this.contain3d(decl)) {
31
- return super.insert(decl, prefix, prefixes)
32
- }
33
- } else {
34
- return super.insert(decl, prefix, prefixes)
35
- }
36
- return undefined
37
- }
38
-
39
- /**
40
- * Recursively check all parents for @keyframes
41
- */
42
- keyframeParents(decl) {
43
- let { parent } = decl
44
- while (parent) {
45
- if (parent.type === 'atrule' && parent.name === 'keyframes') {
46
- return true
47
- }
48
- ;({ parent } = parent)
49
- }
50
- return false
51
- }
52
-
53
- /**
54
- * Replace rotateZ to rotate for IE 9
55
- */
56
- set(decl, prefix) {
57
- decl = super.set(decl, prefix)
58
- if (prefix === '-ms-') {
59
- decl.value = decl.value.replace(/rotatez/gi, 'rotate')
60
- }
61
- return decl
62
- }
63
- }
64
-
65
- TransformDecl.names = ['transform', 'transform-origin']
66
-
67
- TransformDecl.functions3d = [
68
- 'matrix3d',
69
- 'translate3d',
70
- 'translateZ',
71
- 'scale3d',
72
- 'scaleZ',
73
- 'rotate3d',
74
- 'rotateX',
75
- 'rotateY',
76
- 'perspective'
77
- ]
78
-
79
- module.exports = TransformDecl
@@ -1,33 +0,0 @@
1
- let Declaration = require('../declaration')
2
-
3
- class UserSelect extends Declaration {
4
- /**
5
- * Avoid prefixing all in IE
6
- */
7
- insert(decl, prefix, prefixes) {
8
- if (decl.value === 'all' && prefix === '-ms-') {
9
- return undefined
10
- } else if (
11
- decl.value === 'contain' &&
12
- (prefix === '-moz-' || prefix === '-webkit-')
13
- ) {
14
- return undefined
15
- } else {
16
- return super.insert(decl, prefix, prefixes)
17
- }
18
- }
19
-
20
- /**
21
- * Change prefixed value for IE
22
- */
23
- set(decl, prefix) {
24
- if (prefix === '-ms-' && decl.value === 'contain') {
25
- decl.value = 'element'
26
- }
27
- return super.set(decl, prefix)
28
- }
29
- }
30
-
31
- UserSelect.names = ['user-select']
32
-
33
- module.exports = UserSelect
@@ -1,42 +0,0 @@
1
- let Declaration = require('../declaration')
2
-
3
- class WritingMode extends Declaration {
4
- insert(decl, prefix, prefixes) {
5
- if (prefix === '-ms-') {
6
- let cloned = this.set(this.clone(decl), prefix)
7
-
8
- if (this.needCascade(decl)) {
9
- cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
10
- }
11
- let direction = 'ltr'
12
-
13
- decl.parent.nodes.forEach(i => {
14
- if (i.prop === 'direction') {
15
- if (i.value === 'rtl' || i.value === 'ltr') direction = i.value
16
- }
17
- })
18
-
19
- cloned.value = WritingMode.msValues[direction][decl.value] || decl.value
20
- return decl.parent.insertBefore(decl, cloned)
21
- }
22
-
23
- return super.insert(decl, prefix, prefixes)
24
- }
25
- }
26
-
27
- WritingMode.names = ['writing-mode']
28
-
29
- WritingMode.msValues = {
30
- ltr: {
31
- 'horizontal-tb': 'lr-tb',
32
- 'vertical-lr': 'tb-lr',
33
- 'vertical-rl': 'tb-rl'
34
- },
35
- rtl: {
36
- 'horizontal-tb': 'rl-tb',
37
- 'vertical-lr': 'bt-lr',
38
- 'vertical-rl': 'bt-rl'
39
- }
40
- }
41
-
42
- module.exports = WritingMode
@@ -1,123 +0,0 @@
1
- let browserslist = require('browserslist')
2
-
3
- function capitalize(str) {
4
- return str.slice(0, 1).toUpperCase() + str.slice(1)
5
- }
6
-
7
- const NAMES = {
8
- and_chr: 'Chrome for Android',
9
- and_ff: 'Firefox for Android',
10
- and_qq: 'QQ Browser',
11
- and_uc: 'UC for Android',
12
- baidu: 'Baidu Browser',
13
- ie: 'IE',
14
- ie_mob: 'IE Mobile',
15
- ios_saf: 'iOS Safari',
16
- kaios: 'KaiOS Browser',
17
- op_mini: 'Opera Mini',
18
- op_mob: 'Opera Mobile',
19
- samsung: 'Samsung Internet'
20
- }
21
-
22
- function prefix(name, prefixes, note) {
23
- let out = ` ${name}`
24
- if (note) out += ' *'
25
- out += ': '
26
- out += prefixes.map(i => i.replace(/^-(.*)-$/g, '$1')).join(', ')
27
- out += '\n'
28
- return out
29
- }
30
-
31
- module.exports = function (prefixes) {
32
- if (prefixes.browsers.selected.length === 0) {
33
- return 'No browsers selected'
34
- }
35
-
36
- let versions = {}
37
- for (let browser of prefixes.browsers.selected) {
38
- let parts = browser.split(' ')
39
- let name = parts[0]
40
- let version = parts[1]
41
-
42
- name = NAMES[name] || capitalize(name)
43
- if (versions[name]) {
44
- versions[name].push(version)
45
- } else {
46
- versions[name] = [version]
47
- }
48
- }
49
-
50
- let out = 'Browsers:\n'
51
- for (let browser in versions) {
52
- let list = versions[browser]
53
- list = list.sort((a, b) => parseFloat(b) - parseFloat(a))
54
- out += ` ${browser}: ${list.join(', ')}\n`
55
- }
56
-
57
- let coverage = browserslist.coverage(prefixes.browsers.selected)
58
- let round = Math.round(coverage * 100) / 100.0
59
- out += `\nThese browsers account for ${round}% of all users globally\n`
60
-
61
- let atrules = []
62
- for (let name in prefixes.add) {
63
- let data = prefixes.add[name]
64
- if (name[0] === '@' && data.prefixes) {
65
- atrules.push(prefix(name, data.prefixes))
66
- }
67
- }
68
- if (atrules.length > 0) {
69
- out += `\nAt-Rules:\n${atrules.sort().join('')}`
70
- }
71
-
72
- let selectors = []
73
- for (let selector of prefixes.add.selectors) {
74
- if (selector.prefixes) {
75
- selectors.push(prefix(selector.name, selector.prefixes))
76
- }
77
- }
78
- if (selectors.length > 0) {
79
- out += `\nSelectors:\n${selectors.sort().join('')}`
80
- }
81
-
82
- let values = []
83
- let props = []
84
- let hadGrid = false
85
- for (let name in prefixes.add) {
86
- let data = prefixes.add[name]
87
- if (name[0] !== '@' && data.prefixes) {
88
- let grid = name.indexOf('grid-') === 0
89
- if (grid) hadGrid = true
90
- props.push(prefix(name, data.prefixes, grid))
91
- }
92
-
93
- if (!Array.isArray(data.values)) {
94
- continue
95
- }
96
- for (let value of data.values) {
97
- let grid = value.name.includes('grid')
98
- if (grid) hadGrid = true
99
- let string = prefix(value.name, value.prefixes, grid)
100
- if (!values.includes(string)) {
101
- values.push(string)
102
- }
103
- }
104
- }
105
-
106
- if (props.length > 0) {
107
- out += `\nProperties:\n${props.sort().join('')}`
108
- }
109
- if (values.length > 0) {
110
- out += `\nValues:\n${values.sort().join('')}`
111
- }
112
- if (hadGrid) {
113
- out += '\n* - Prefixes will be added only on grid: true option.\n'
114
- }
115
-
116
- if (!atrules.length && !selectors.length && !props.length && !values.length) {
117
- out +=
118
- "\nAwesome! Your browsers don't require any vendor prefixes." +
119
- '\nNow you can remove Autoprefixer from build steps.'
120
- }
121
-
122
- return out
123
- }
@@ -1,67 +0,0 @@
1
- class OldSelector {
2
- constructor(selector, prefix) {
3
- this.prefix = prefix
4
- this.prefixed = selector.prefixed(this.prefix)
5
- this.regexp = selector.regexp(this.prefix)
6
-
7
- this.prefixeds = selector
8
- .possible()
9
- .map(x => [selector.prefixed(x), selector.regexp(x)])
10
-
11
- this.unprefixed = selector.name
12
- this.nameRegexp = selector.regexp()
13
- }
14
-
15
- /**
16
- * Does rule contain an unnecessary prefixed selector
17
- */
18
- check(rule) {
19
- if (!rule.selector.includes(this.prefixed)) {
20
- return false
21
- }
22
- if (!rule.selector.match(this.regexp)) {
23
- return false
24
- }
25
- if (this.isHack(rule)) {
26
- return false
27
- }
28
- return true
29
- }
30
-
31
- /**
32
- * Is rule a hack without unprefixed version bottom
33
- */
34
- isHack(rule) {
35
- let index = rule.parent.index(rule) + 1
36
- let rules = rule.parent.nodes
37
-
38
- while (index < rules.length) {
39
- let before = rules[index].selector
40
- if (!before) {
41
- return true
42
- }
43
-
44
- if (before.includes(this.unprefixed) && before.match(this.nameRegexp)) {
45
- return false
46
- }
47
-
48
- let some = false
49
- for (let [string, regexp] of this.prefixeds) {
50
- if (before.includes(string) && before.match(regexp)) {
51
- some = true
52
- break
53
- }
54
- }
55
-
56
- if (!some) {
57
- return true
58
- }
59
-
60
- index += 1
61
- }
62
-
63
- return true
64
- }
65
- }
66
-
67
- module.exports = OldSelector
@@ -1,22 +0,0 @@
1
- let utils = require('./utils')
2
-
3
- class OldValue {
4
- constructor(unprefixed, prefixed, string, regexp) {
5
- this.unprefixed = unprefixed
6
- this.prefixed = prefixed
7
- this.string = string || prefixed
8
- this.regexp = regexp || utils.regexp(prefixed)
9
- }
10
-
11
- /**
12
- * Check, that value contain old value
13
- */
14
- check(value) {
15
- if (value.includes(this.string)) {
16
- return !!value.match(this.regexp)
17
- }
18
- return false
19
- }
20
- }
21
-
22
- module.exports = OldValue
@@ -1,144 +0,0 @@
1
- let Browsers = require('./browsers')
2
- let utils = require('./utils')
3
- let vendor = require('./vendor')
4
-
5
- /**
6
- * Recursively clone objects
7
- */
8
- function clone(obj, parent) {
9
- let cloned = new obj.constructor()
10
-
11
- for (let i of Object.keys(obj || {})) {
12
- let value = obj[i]
13
- if (i === 'parent' && typeof value === 'object') {
14
- if (parent) {
15
- cloned[i] = parent
16
- }
17
- } else if (i === 'source' || i === null) {
18
- cloned[i] = value
19
- } else if (Array.isArray(value)) {
20
- cloned[i] = value.map(x => clone(x, cloned))
21
- } else if (
22
- i !== '_autoprefixerPrefix' &&
23
- i !== '_autoprefixerValues' &&
24
- i !== 'proxyCache'
25
- ) {
26
- if (typeof value === 'object' && value !== null) {
27
- value = clone(value, cloned)
28
- }
29
- cloned[i] = value
30
- }
31
- }
32
-
33
- return cloned
34
- }
35
-
36
- class Prefixer {
37
- constructor(name, prefixes, all) {
38
- this.prefixes = prefixes
39
- this.name = name
40
- this.all = all
41
- }
42
-
43
- /**
44
- * Clone node and clean autprefixer custom caches
45
- */
46
- static clone(node, overrides) {
47
- let cloned = clone(node)
48
- for (let name in overrides) {
49
- cloned[name] = overrides[name]
50
- }
51
- return cloned
52
- }
53
-
54
- /**
55
- * Add hack to selected names
56
- */
57
- static hack(klass) {
58
- if (!this.hacks) {
59
- this.hacks = {}
60
- }
61
- return klass.names.map(name => {
62
- this.hacks[name] = klass
63
- return this.hacks[name]
64
- })
65
- }
66
-
67
- /**
68
- * Load hacks for some names
69
- */
70
- static load(name, prefixes, all) {
71
- let Klass = this.hacks && this.hacks[name]
72
- if (Klass) {
73
- return new Klass(name, prefixes, all)
74
- } else {
75
- return new this(name, prefixes, all)
76
- }
77
- }
78
-
79
- /**
80
- * Shortcut for Prefixer.clone
81
- */
82
- clone(node, overrides) {
83
- return Prefixer.clone(node, overrides)
84
- }
85
-
86
- /**
87
- * Find prefix in node parents
88
- */
89
- parentPrefix(node) {
90
- let prefix
91
-
92
- if (typeof node._autoprefixerPrefix !== 'undefined') {
93
- prefix = node._autoprefixerPrefix
94
- } else if (node.type === 'decl' && node.prop[0] === '-') {
95
- prefix = vendor.prefix(node.prop)
96
- } else if (node.type === 'root') {
97
- prefix = false
98
- } else if (
99
- node.type === 'rule' &&
100
- node.selector.includes(':-') &&
101
- /:(-\w+-)/.test(node.selector)
102
- ) {
103
- prefix = node.selector.match(/:(-\w+-)/)[1]
104
- } else if (node.type === 'atrule' && node.name[0] === '-') {
105
- prefix = vendor.prefix(node.name)
106
- } else {
107
- prefix = this.parentPrefix(node.parent)
108
- }
109
-
110
- if (!Browsers.prefixes().includes(prefix)) {
111
- prefix = false
112
- }
113
-
114
- node._autoprefixerPrefix = prefix
115
-
116
- return node._autoprefixerPrefix
117
- }
118
-
119
- /**
120
- * Clone node with prefixes
121
- */
122
- process(node, result) {
123
- if (!this.check(node)) {
124
- return undefined
125
- }
126
-
127
- let parent = this.parentPrefix(node)
128
-
129
- let prefixes = this.prefixes.filter(
130
- prefix => !parent || parent === utils.removeNote(prefix)
131
- )
132
-
133
- let added = []
134
- for (let prefix of prefixes) {
135
- if (this.add(node, prefix, added.concat([prefix]), result)) {
136
- added.push(prefix)
137
- }
138
- }
139
-
140
- return added
141
- }
142
- }
143
-
144
- module.exports = Prefixer