postcss-double-position-gradients 1.0.0 → 3.0.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changes to PostCSS Double Position Gradients
2
2
 
3
+ ### 3.0.2 (December 13, 2021)
4
+
5
+ - Changed: now uses `postcss-value-parser` for parsing.
6
+ - Updated: documentation
7
+
8
+ ### 3.0.1 (November 18, 2021)
9
+
10
+ - Added: Safeguards against postcss-values-parser potentially throwing an error.
11
+
12
+ - Fixed: Issue with some gradients creating an infinite loop.
13
+
14
+ - Updated: `postcss-value-parser` to 6.0.1 (patch)
15
+ - Updated: `eslint` to 8.2.0 (major)
16
+ - Updated: `postcss` to 8.3.11 (patch)
17
+
18
+ - Removed: yarn.lock is no longer version controlled
19
+
20
+ ### 3.0.0 (September 17, 2021)
21
+
22
+ - Updated: Support for PostCS 8+ (major).
23
+ - Updated: Support for Node 12+ (major).
24
+
25
+ ### 2.0.0 (April 25, 2020)
26
+
27
+ - Updated: `postcss` to 7.0.27 (patch)
28
+ - Updated: `postcss-value-parser` to 3.2.1 (major)
29
+ - Updated: Support for Node 10+ (major)
30
+
3
31
  ### 1.0.0 (October 28, 2018)
4
32
 
5
33
  - Initial version
package/INSTALL.md ADDED
@@ -0,0 +1,170 @@
1
+ # Installing PostCSS Double Position Gradients
2
+
3
+ [PostCSS Double Position Gradients] runs in all Node environments, with special instructions for:
4
+
5
+ | [Node](#node) | [PostCSS CLI](#postcss-cli) | [Webpack](#webpack) | [Create React App](#create-react-app) | [Gulp](#gulp) | [Grunt](#grunt) |
6
+ | --- | --- | --- | --- | --- | --- |
7
+
8
+ ## Node
9
+
10
+ Add [PostCSS Double Position Gradients] to your project:
11
+
12
+ ```bash
13
+ npm install postcss-double-position-gradients --save-dev
14
+ ```
15
+
16
+ Use [PostCSS Double Position Gradients] to process your CSS:
17
+
18
+ ```js
19
+ const postcssDoublePositionGradients = require('postcss-double-position-gradients');
20
+
21
+ postcssDoublePositionGradients.process(YOUR_CSS /*, processOptions, pluginOptions */);
22
+ ```
23
+
24
+ Or use it as a [PostCSS] plugin:
25
+
26
+ ```js
27
+ const postcss = require('postcss');
28
+ const postcssDoublePositionGradients = require('postcss-double-position-gradients');
29
+
30
+ postcss([
31
+ postcssDoublePositionGradients(/* pluginOptions */)
32
+ ]).process(YOUR_CSS /*, processOptions */);
33
+ ```
34
+
35
+ ## PostCSS CLI
36
+
37
+ Add [PostCSS CLI] to your project:
38
+
39
+ ```bash
40
+ npm install postcss-cli --save-dev
41
+ ```
42
+
43
+ Use [PostCSS Double Position Gradients] in your `postcss.config.js` configuration file:
44
+
45
+ ```js
46
+ const postcssDoublePositionGradients = require('postcss-double-position-gradients');
47
+
48
+ module.exports = {
49
+ plugins: [
50
+ postcssDoublePositionGradients(/* pluginOptions */)
51
+ ]
52
+ }
53
+ ```
54
+
55
+ ## Webpack
56
+
57
+ Add [PostCSS Loader] to your project:
58
+
59
+ ```bash
60
+ npm install postcss-loader --save-dev
61
+ ```
62
+
63
+ Use [PostCSS Double Position Gradients] in your Webpack configuration:
64
+
65
+ ```js
66
+ const postcssDoublePositionGradients = require('postcss-double-position-gradients');
67
+
68
+ module.exports = {
69
+ module: {
70
+ rules: [
71
+ {
72
+ test: /\.css$/,
73
+ use: [
74
+ 'style-loader',
75
+ { loader: 'css-loader', options: { importLoaders: 1 } },
76
+ { loader: 'postcss-loader', options: {
77
+ ident: 'postcss',
78
+ plugins: () => [
79
+ postcssDoublePositionGradients(/* pluginOptions */)
80
+ ]
81
+ } }
82
+ ]
83
+ }
84
+ ]
85
+ }
86
+ }
87
+ ```
88
+
89
+ ## Create React App
90
+
91
+ Add [React App Rewired] and [React App Rewire PostCSS] to your project:
92
+
93
+ ```bash
94
+ npm install react-app-rewired react-app-rewire-postcss --save-dev
95
+ ```
96
+
97
+ Use [React App Rewire PostCSS] and [PostCSS Double Position Gradients] in your
98
+ `config-overrides.js` file:
99
+
100
+ ```js
101
+ const reactAppRewirePostcss = require('react-app-rewire-postcss');
102
+ const postcssDoublePositionGradients = require('postcss-double-position-gradients');
103
+
104
+ module.exports = config => reactAppRewirePostcss(config, {
105
+ plugins: () => [
106
+ postcssDoublePositionGradients(/* pluginOptions */)
107
+ ]
108
+ });
109
+ ```
110
+
111
+ ## Gulp
112
+
113
+ Add [Gulp PostCSS] to your project:
114
+
115
+ ```bash
116
+ npm install gulp-postcss --save-dev
117
+ ```
118
+
119
+ Use [PostCSS Double Position Gradients] in your Gulpfile:
120
+
121
+ ```js
122
+ const postcss = require('gulp-postcss');
123
+ const postcssDoublePositionGradients = require('postcss-double-position-gradients');
124
+
125
+ gulp.task('css', () => gulp.src('./src/*.css').pipe(
126
+ postcss([
127
+ postcssDoublePositionGradients(/* pluginOptions */)
128
+ ])
129
+ ).pipe(
130
+ gulp.dest('.')
131
+ ));
132
+ ```
133
+
134
+ ## Grunt
135
+
136
+ Add [Grunt PostCSS] to your project:
137
+
138
+ ```bash
139
+ npm install grunt-postcss --save-dev
140
+ ```
141
+
142
+ Use [PostCSS Double Position Gradients] in your Gruntfile:
143
+
144
+ ```js
145
+ const postcssDoublePositionGradients = require('postcss-double-position-gradients');
146
+
147
+ grunt.loadNpmTasks('grunt-postcss');
148
+
149
+ grunt.initConfig({
150
+ postcss: {
151
+ options: {
152
+ use: [
153
+ postcssDoublePositionGradients(/* pluginOptions */)
154
+ ]
155
+ },
156
+ dist: {
157
+ src: '*.css'
158
+ }
159
+ }
160
+ });
161
+ ```
162
+
163
+ [Gulp PostCSS]: https://github.com/postcss/gulp-postcss
164
+ [Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
165
+ [PostCSS]: https://github.com/postcss/postcss
166
+ [PostCSS CLI]: https://github.com/postcss/postcss-cli
167
+ [PostCSS Loader]: https://github.com/postcss/postcss-loader
168
+ [PostCSS Double Position Gradients]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-double-position-gradients
169
+ [React App Rewire PostCSS]: https://github.com/csstools/react-app-rewire-postcss
170
+ [React App Rewired]: https://github.com/timarney/react-app-rewired
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # PostCSS Double Position Gradients [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS" width="90" height="90" align="right">][postcss]
2
2
 
3
- [![NPM Version][npm-img]][npm-url]
4
- [![Build Status][cli-img]][cli-url]
5
- [![Support Chat][git-img]][git-url]
3
+ [<img alt="NPM Version" src="https://img.shields.io/npm/v/postcss-double-position-gradients.svg" height="20">][npm-url]
4
+ [<img alt="CSS Standard Status" src="https://cssdb.org/badge/double-position-gradients.svg" height="20">][css-url]
5
+ [<img alt="Support Chat" src="https://img.shields.io/badge/support-chat-blue.svg" height="20">][git-url]
6
6
 
7
7
  [PostCSS Double Position Gradients] lets you use double-position gradients in
8
8
  CSS, following the [CSS Image Values and Replaced Content] specification.
@@ -92,13 +92,10 @@ postcssDoublePositionGradients({ preserve: false })
92
92
  }
93
93
  ```
94
94
 
95
- [cli-img]: https://img.shields.io/travis/jonathantneal/postcss-double-position-gradients/master.svg
96
- [cli-url]: https://travis-ci.org/jonathantneal/postcss-double-position-gradients
97
- [git-img]: https://img.shields.io/badge/support-chat-blue.svg
95
+ [css-url]: https://cssdb.org/#double-position-gradients
98
96
  [git-url]: https://gitter.im/postcss/postcss
99
- [npm-img]: https://img.shields.io/npm/v/postcss-double-position-gradients.svg
100
97
  [npm-url]: https://www.npmjs.com/package/postcss-double-position-gradients
101
98
 
102
99
  [CSS Image Values and Replaced Content]: https://www.w3.org/TR/css-images-4/#color-stop-syntax
103
100
  [PostCSS]: https://github.com/postcss/postcss
104
- [PostCSS Double Position Gradients]: https://github.com/jonathantneal/postcss-double-position-gradients
101
+ [PostCSS Double Position Gradients]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-double-position-gradients
package/dist/cli.mjs ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ import e from"postcss-value-parser";import t from"tty";import r from"path";import n from"url";import s,{promises as i}from"fs";var o={exports:{}};const a=e,l=/(repeating-)?(conic|linear|radial)-gradient\([\W\w]*\)/i,u=/^(repeating-)?(conic|linear|radial)-gradient$/i,c=e=>"div"===e.type&&","===e.value;function h(e){let t=!1;try{t=!1!==a.unit(null==e?void 0:e.value)}catch(e){}return t}o.exports=function(e){const t=!("preserve"in Object(e))||Boolean(e.preserve);return{postcssPlugin:"postcss-double-position-gradients",Declaration(e,{result:r}){if(!l.test(e.value))return;let n;try{n=a(e.value)}catch(t){e.warn(r,`Failed to parse value '${e.value}' as a CSS gradient. Leaving the original value intact.`)}if(void 0===n)return;n.walk((e=>{if("function"!==e.type||!u.test(e.value))return;return e.nodes.filter((e=>"word"===e.type)).forEach(((t,r,n)=>{const s=Object(n[r-1]),i=Object(n[r-2]),o=Object(n[r+1]);if(i.type&&h(s)&&h(t)){const r={type:i.type,value:i.value},n={type:"div",value:",",before:c(o)?o.before:"",after:c(o)?"":" "};!function(e,t,...r){const n=e.findIndex((e=>e===t));e.splice.apply(e,[n-1,0].concat(Array.prototype.slice.call(...r,0)))}(e.nodes,t,[n,r])}})),!1}));const s=n.toString();s!==e.value&&(t?e.cloneBefore({value:s}):e.value=s)}}},o.exports.postcss=!0;var p,f=o.exports;!function(e){e.InvalidArguments="INVALID_ARGUMENTS"}(p||(p={}));var d={exports:{}};let g=t,m=!("NO_COLOR"in process.env||process.argv.includes("--no-color"))&&("FORCE_COLOR"in process.env||process.argv.includes("--color")||"win32"===process.platform||g.isatty(1)&&"dumb"!==process.env.TERM||"CI"in process.env),w=(e,t,r=e)=>n=>{let s=""+n,i=s.indexOf(t,e.length);return~i?e+y(s,t,r,i)+t:e+s+t},y=(e,t,r,n)=>{let s=e.substring(0,n)+r,i=e.substring(n+t.length),o=i.indexOf(t);return~o?s+y(i,t,r,o):s+i},v=(e=m)=>({isColorSupported:e,reset:e?e=>`${e}`:String,bold:e?w("","",""):String,dim:e?w("","",""):String,italic:e?w("",""):String,underline:e?w("",""):String,inverse:e?w("",""):String,hidden:e?w("",""):String,strikethrough:e?w("",""):String,black:e?w("",""):String,red:e?w("",""):String,green:e?w("",""):String,yellow:e?w("",""):String,blue:e?w("",""):String,magenta:e?w("",""):String,cyan:e?w("",""):String,white:e?w("",""):String,gray:e?w("",""):String,bgBlack:e?w("",""):String,bgRed:e?w("",""):String,bgGreen:e?w("",""):String,bgYellow:e?w("",""):String,bgBlue:e?w("",""):String,bgMagenta:e?w("",""):String,bgCyan:e?w("",""):String,bgWhite:e?w("",""):String});d.exports=v(),d.exports.createColors=v;const C="'".charCodeAt(0),S='"'.charCodeAt(0),b="\\".charCodeAt(0),_="/".charCodeAt(0),x="\n".charCodeAt(0),O=" ".charCodeAt(0),A="\f".charCodeAt(0),M="\t".charCodeAt(0),k="\r".charCodeAt(0),E="[".charCodeAt(0),L="]".charCodeAt(0),R="(".charCodeAt(0),P=")".charCodeAt(0),I="{".charCodeAt(0),j="}".charCodeAt(0),N=";".charCodeAt(0),D="*".charCodeAt(0),U=":".charCodeAt(0),B="@".charCodeAt(0),F=/[\t\n\f\r "#'()/;[\\\]{}]/g,T=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,$=/.[\n"'(/\\]/,G=/[\da-f]/i;var z=function(e,t={}){let r,n,s,i,o,a,l,u,c,h,p=e.css.valueOf(),f=t.ignoreErrors,d=p.length,g=0,m=[],w=[];function y(t){throw e.error("Unclosed "+t,g)}return{back:function(e){w.push(e)},nextToken:function(e){if(w.length)return w.pop();if(g>=d)return;let t=!!e&&e.ignoreUnclosed;switch(r=p.charCodeAt(g),r){case x:case O:case M:case k:case A:n=g;do{n+=1,r=p.charCodeAt(n)}while(r===O||r===x||r===M||r===k||r===A);h=["space",p.slice(g,n)],g=n-1;break;case E:case L:case I:case j:case U:case N:case P:{let e=String.fromCharCode(r);h=[e,e,g];break}case R:if(u=m.length?m.pop()[1]:"",c=p.charCodeAt(g+1),"url"===u&&c!==C&&c!==S&&c!==O&&c!==x&&c!==M&&c!==A&&c!==k){n=g;do{if(a=!1,n=p.indexOf(")",n+1),-1===n){if(f||t){n=g;break}y("bracket")}for(l=n;p.charCodeAt(l-1)===b;)l-=1,a=!a}while(a);h=["brackets",p.slice(g,n+1),g,n],g=n}else n=p.indexOf(")",g+1),i=p.slice(g,n+1),-1===n||$.test(i)?h=["(","(",g]:(h=["brackets",i,g,n],g=n);break;case C:case S:s=r===C?"'":'"',n=g;do{if(a=!1,n=p.indexOf(s,n+1),-1===n){if(f||t){n=g+1;break}y("string")}for(l=n;p.charCodeAt(l-1)===b;)l-=1,a=!a}while(a);h=["string",p.slice(g,n+1),g,n],g=n;break;case B:F.lastIndex=g+1,F.test(p),n=0===F.lastIndex?p.length-1:F.lastIndex-2,h=["at-word",p.slice(g,n+1),g,n],g=n;break;case b:for(n=g,o=!0;p.charCodeAt(n+1)===b;)n+=1,o=!o;if(r=p.charCodeAt(n+1),o&&r!==_&&r!==O&&r!==x&&r!==M&&r!==k&&r!==A&&(n+=1,G.test(p.charAt(n)))){for(;G.test(p.charAt(n+1));)n+=1;p.charCodeAt(n+1)===O&&(n+=1)}h=["word",p.slice(g,n+1),g,n],g=n;break;default:r===_&&p.charCodeAt(g+1)===D?(n=p.indexOf("*/",g+2)+1,0===n&&(f||t?n=p.length:y("comment")),h=["comment",p.slice(g,n+1),g,n],g=n):(T.lastIndex=g+1,T.test(p),n=0===T.lastIndex?p.length-1:T.lastIndex-2,h=["word",p.slice(g,n+1),g,n],m.push(h),g=n)}return g++,h},endOfFile:function(){return 0===w.length&&g>=d},position:function(){return g}}};let W,V=d.exports,J=z;const q={brackets:V.cyan,"at-word":V.cyan,comment:V.gray,string:V.green,class:V.yellow,hash:V.magenta,call:V.cyan,"(":V.cyan,")":V.cyan,"{":V.yellow,"}":V.yellow,"[":V.yellow,"]":V.yellow,":":V.yellow,";":V.yellow};function Y([e,t],r){if("word"===e){if("."===t[0])return"class";if("#"===t[0])return"hash"}if(!r.endOfFile()){let e=r.nextToken();if(r.back(e),"brackets"===e[0]||"("===e[0])return"call"}return e}function Q(e){let t=J(new W(e),{ignoreErrors:!0}),r="";for(;!t.endOfFile();){let e=t.nextToken(),n=q[Y(e,t)];r+=n?e[1].split(/\r?\n/).map((e=>n(e))).join("\n"):e[1]}return r}Q.registerInput=function(e){W=e};var Z=Q;let H=d.exports,K=Z;class X extends Error{constructor(e,t,r,n,s,i){super(e),this.name="CssSyntaxError",this.reason=e,s&&(this.file=s),n&&(this.source=n),i&&(this.plugin=i),void 0!==t&&void 0!==r&&("number"==typeof t?(this.line=t,this.column=r):(this.line=t.line,this.column=t.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,X)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=H.isColorSupported),K&&e&&(t=K(t));let r,n,s=t.split(/\r?\n/),i=Math.max(this.line-3,0),o=Math.min(this.line+2,s.length),a=String(o).length;if(e){let{bold:e,red:t,gray:s}=H.createColors(!0);r=r=>e(t(r)),n=e=>s(e)}else r=n=e=>e;return s.slice(i,o).map(((e,t)=>{let s=i+1+t,o=" "+(" "+s).slice(-a)+" | ";if(s===this.line){let t=n(o.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return r(">")+n(o)+e+"\n "+t+r("^")}return" "+n(o)+e})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}var ee=X;X.default=X;var te={};te.isClean=Symbol("isClean"),te.my=Symbol("my");const re={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};class ne{constructor(e){this.builder=e}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let t=this.raw(e,"left","commentLeft"),r=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+r+"*/",e)}decl(e,t){let r=this.raw(e,"between","colon"),n=e.prop+r+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,t){let r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{let s=(e.raws.between||"")+(t?";":"");this.builder(r+n+s,e)}}body(e){let t=e.nodes.length-1;for(;t>0&&"comment"===e.nodes[t].type;)t-=1;let r=this.raw(e,"semicolon");for(let n=0;n<e.nodes.length;n++){let s=e.nodes[n],i=this.raw(s,"before");i&&this.builder(i),this.stringify(s,t!==n||r)}}block(e,t){let r,n=this.raw(e,"between","beforeOpen");this.builder(t+n+"{",e,"start"),e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(r),this.builder("}",e,"end")}raw(e,t,r){let n;if(r||(r=t),t&&(n=e.raws[t],void 0!==n))return n;let s=e.parent;if("before"===r){if(!s||"root"===s.type&&s.first===e)return"";if(s&&"document"===s.type)return""}if(!s)return re[r];let i=e.root();if(i.rawCache||(i.rawCache={}),void 0!==i.rawCache[r])return i.rawCache[r];if("before"===r||"after"===r)return this.beforeAfter(e,r);{let s="raw"+((o=r)[0].toUpperCase()+o.slice(1));this[s]?n=this[s](i,e):i.walk((e=>{if(n=e.raws[t],void 0!==n)return!1}))}var o;return void 0===n&&(n=re[r]),i.rawCache[r]=n,n}rawSemicolon(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1})),t}rawEmptyBody(e){let t;return e.walk((e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((r=>{let n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&void 0!==r.raws.before){let e=r.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}})),t}rawBeforeComment(e,t){let r;return e.walkComments((e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(e,t){let r;return e.walkDecls((e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeRule(e){let t;return e.walk((r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return t=r.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeClose(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(e){let t;return e.walk((e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1})),t}rawColon(e){let t;return e.walkDecls((e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t}beforeAfter(e,t){let r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let n=e.parent,s=0;for(;n&&"root"!==n.type;)s+=1,n=n.parent;if(r.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e<s;e++)r+=t}return r}rawValue(e,t){let r=e[t],n=e.raws[t];return n&&n.value===r?n.raw:r}}var se=ne;ne.default=ne;let ie=se;function oe(e,t){new ie(t).stringify(e)}var ae=oe;oe.default=oe;let{isClean:le,my:ue}=te,ce=ee,he=se,pe=ae;function fe(e,t){let r=new e.constructor;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if("proxyCache"===n)continue;let s=e[n],i=typeof s;"parent"===n&&"object"===i?t&&(r[n]=t):"source"===n?r[n]=s:Array.isArray(s)?r[n]=s.map((e=>fe(e,r))):("object"===i&&null!==s&&(s=fe(s)),r[n]=s)}return r}class de{constructor(e={}){this.raws={},this[le]=!1,this[ue]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let r of e[t])"function"==typeof r.clone?this.append(r.clone()):this.append(r)}else this[t]=e[t]}error(e,t={}){if(this.source){let{start:r,end:n}=this.rangeBy(t);return this.source.input.error(e,{line:r.line,column:r.column},{line:n.line,column:n.column},t)}return new ce(e)}warn(e,t,r){let n={node:this};for(let e in r)n[e]=r[e];return e.warn(t,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=pe){e.stringify&&(e=e.stringify);let t="";return e(this,(e=>{t+=e})),t}assign(e={}){for(let t in e)this[t]=e[t];return this}clone(e={}){let t=fe(this);for(let r in e)t[r]=e[r];return t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(...e){if(this.parent){let t=this,r=!1;for(let n of e)n===this?r=!0:r?(this.parent.insertAfter(t,n),t=n):this.parent.insertBefore(t,n);r||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&"document"!==e.parent.type;)e=e.parent;return e}raw(e,t){return(new he).raw(this,e,t)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,t){let r={},n=null==t;t=t||new Map;let s=0;for(let e in this){if(!Object.prototype.hasOwnProperty.call(this,e))continue;if("parent"===e||"proxyCache"===e)continue;let n=this[e];if(Array.isArray(n))r[e]=n.map((e=>"object"==typeof e&&e.toJSON?e.toJSON(null,t):e));else if("object"==typeof n&&n.toJSON)r[e]=n.toJSON(null,t);else if("source"===e){let i=t.get(n.input);null==i&&(i=s,t.set(n.input,s),s++),r[e]={inputId:i,start:n.start,end:n.end}}else r[e]=n}return n&&(r.inputs=[...t.keys()].map((e=>e.toJSON()))),r}positionInside(e){let t=this.toString(),r=this.source.start.column,n=this.source.start.line;for(let s=0;s<e;s++)"\n"===t[s]?(r=1,n+=1):r+=1;return{line:n,column:r}}positionBy(e){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let r=this.toString().indexOf(e.word);-1!==r&&(t=this.positionInside(r))}return t}rangeBy(e){let t={line:this.source.start.line,column:this.source.start.column},r=this.source.end?{line:this.source.end.line,column:this.source.end.column+1}:{line:t.line,column:t.column+1};if(e.word){let n=this.toString().indexOf(e.word);-1!==n&&(t=this.positionInside(n),r=this.positionInside(n+e.word.length))}else e.start?t={line:e.start.line,column:e.start.column}:e.index&&(t=this.positionInside(e.index)),e.end?r={line:e.end.line,column:e.end.column}:e.endIndex?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<t.line||r.line===t.line&&r.column<=t.column)&&(r={line:t.line,column:t.column+1}),{start:t,end:r}}getProxyProcessor(){return{set:(e,t,r)=>(e[t]===r||(e[t]=r,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t]}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}markDirty(){if(this[le]){this[le]=!1;let e=this;for(;e=e.parent;)e[le]=!1}}get proxyOf(){return this}}var ge=de;de.default=de;let me=ge;class we extends me{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}}var ye=we;we.default=we;var ve={},Ce={},Se={},be={},_e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");be.encode=function(e){if(0<=e&&e<_e.length)return _e[e];throw new TypeError("Must be between 0 and 63: "+e)},be.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1};var xe=be;Se.encode=function(e){var t,r="",n=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&n,(n>>>=5)>0&&(t|=32),r+=xe.encode(t)}while(n>0);return r},Se.decode=function(e,t,r){var n,s,i,o,a=e.length,l=0,u=0;do{if(t>=a)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(s=xe.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));n=!!(32&s),l+=(s&=31)<<u,u+=5}while(n);r.value=(o=(i=l)>>1,1==(1&i)?-o:o),r.rest=t};var Oe={};!function(e){e.getArg=function(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var t=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,r=/^data:.+\,.+$/;function n(e){var r=e.match(t);return r?{scheme:r[1],auth:r[2],host:r[3],port:r[4],path:r[5]}:null}function s(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}e.urlParse=n,e.urlGenerate=s;var i,o,a=(i=function(t){var r=t,i=n(t);if(i){if(!i.path)return t;r=i.path}for(var o=e.isAbsolute(r),a=[],l=0,u=0;;){if(l=u,-1===(u=r.indexOf("/",l))){a.push(r.slice(l));break}for(a.push(r.slice(l,u));u<r.length&&"/"===r[u];)u++}var c,h=0;for(u=a.length-1;u>=0;u--)"."===(c=a[u])?a.splice(u,1):".."===c?h++:h>0&&(""===c?(a.splice(u+1,h),h=0):(a.splice(u,2),h--));return""===(r=a.join("/"))&&(r=o?"/":"."),i?(i.path=r,s(i)):r},o=[],function(e){for(var t=0;t<o.length;t++)if(o[t].input===e){var r=o[0];return o[0]=o[t],o[t]=r,o[0].result}var n=i(e);return o.unshift({input:e,result:n}),o.length>32&&o.pop(),n});function l(e,t){""===e&&(e="."),""===t&&(t=".");var i=n(t),o=n(e);if(o&&(e=o.path||"/"),i&&!i.scheme)return o&&(i.scheme=o.scheme),s(i);if(i||t.match(r))return t;if(o&&!o.host&&!o.path)return o.host=t,s(o);var l="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return o?(o.path=l,s(o)):l}e.normalize=a,e.join=l,e.isAbsolute=function(e){return"/"===e.charAt(0)||t.test(e)},e.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)};var u=!("__proto__"in Object.create(null));function c(e){return e}function h(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function p(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}e.toSetString=u?c:function(e){return h(e)?"$"+e:e},e.fromSetString=u?c:function(e){return h(e)?e.slice(1):e},e.compareByOriginalPositions=function(e,t,r){var n=p(e.source,t.source);return 0!==n||0!==(n=e.originalLine-t.originalLine)||0!==(n=e.originalColumn-t.originalColumn)||r||0!==(n=e.generatedColumn-t.generatedColumn)||0!==(n=e.generatedLine-t.generatedLine)?n:p(e.name,t.name)},e.compareByOriginalPositionsNoSource=function(e,t,r){var n;return 0!==(n=e.originalLine-t.originalLine)||0!==(n=e.originalColumn-t.originalColumn)||r||0!==(n=e.generatedColumn-t.generatedColumn)||0!==(n=e.generatedLine-t.generatedLine)?n:p(e.name,t.name)},e.compareByGeneratedPositionsDeflated=function(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n||0!==(n=e.generatedColumn-t.generatedColumn)||r||0!==(n=p(e.source,t.source))||0!==(n=e.originalLine-t.originalLine)||0!==(n=e.originalColumn-t.originalColumn)?n:p(e.name,t.name)},e.compareByGeneratedPositionsDeflatedNoLine=function(e,t,r){var n=e.generatedColumn-t.generatedColumn;return 0!==n||r||0!==(n=p(e.source,t.source))||0!==(n=e.originalLine-t.originalLine)||0!==(n=e.originalColumn-t.originalColumn)?n:p(e.name,t.name)},e.compareByGeneratedPositionsInflated=function(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r||0!==(r=e.generatedColumn-t.generatedColumn)||0!==(r=p(e.source,t.source))||0!==(r=e.originalLine-t.originalLine)||0!==(r=e.originalColumn-t.originalColumn)?r:p(e.name,t.name)},e.parseSourceMapInput=function(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))},e.computeSourceURL=function(e,t,r){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),r){var i=n(r);if(!i)throw new Error("sourceMapURL could not be parsed");if(i.path){var o=i.path.lastIndexOf("/");o>=0&&(i.path=i.path.substring(0,o+1))}t=l(s(i),t)}return a(t)}}(Oe);var Ae={},Me=Oe,ke=Object.prototype.hasOwnProperty,Ee="undefined"!=typeof Map;function Le(){this._array=[],this._set=Ee?new Map:Object.create(null)}Le.fromArray=function(e,t){for(var r=new Le,n=0,s=e.length;n<s;n++)r.add(e[n],t);return r},Le.prototype.size=function(){return Ee?this._set.size:Object.getOwnPropertyNames(this._set).length},Le.prototype.add=function(e,t){var r=Ee?e:Me.toSetString(e),n=Ee?this.has(e):ke.call(this._set,r),s=this._array.length;n&&!t||this._array.push(e),n||(Ee?this._set.set(e,s):this._set[r]=s)},Le.prototype.has=function(e){if(Ee)return this._set.has(e);var t=Me.toSetString(e);return ke.call(this._set,t)},Le.prototype.indexOf=function(e){if(Ee){var t=this._set.get(e);if(t>=0)return t}else{var r=Me.toSetString(e);if(ke.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},Le.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},Le.prototype.toArray=function(){return this._array.slice()},Ae.ArraySet=Le;var Re={},Pe=Oe;function Ie(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}Ie.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},Ie.prototype.add=function(e){var t,r,n,s,i,o;t=this._last,r=e,n=t.generatedLine,s=r.generatedLine,i=t.generatedColumn,o=r.generatedColumn,s>n||s==n&&o>=i||Pe.compareByGeneratedPositionsInflated(t,r)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},Ie.prototype.toArray=function(){return this._sorted||(this._array.sort(Pe.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},Re.MappingList=Ie;var je=Se,Ne=Oe,De=Ae.ArraySet,Ue=Re.MappingList;function Be(e){e||(e={}),this._file=Ne.getArg(e,"file",null),this._sourceRoot=Ne.getArg(e,"sourceRoot",null),this._skipValidation=Ne.getArg(e,"skipValidation",!1),this._sources=new De,this._names=new De,this._mappings=new Ue,this._sourcesContents=null}Be.prototype._version=3,Be.fromSourceMap=function(e){var t=e.sourceRoot,r=new Be({file:e.file,sourceRoot:t});return e.eachMapping((function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=Ne.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){var s=n;null!==t&&(s=Ne.relative(t,n)),r._sources.has(s)||r._sources.add(s);var i=e.sourceContentFor(n);null!=i&&r.setSourceContent(n,i)})),r},Be.prototype.addMapping=function(e){var t=Ne.getArg(e,"generated"),r=Ne.getArg(e,"original",null),n=Ne.getArg(e,"source",null),s=Ne.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,s),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=s&&(s=String(s),this._names.has(s)||this._names.add(s)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:s})},Be.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=Ne.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[Ne.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[Ne.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},Be.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var s=this._sourceRoot;null!=s&&(n=Ne.relative(s,n));var i=new De,o=new De;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=Ne.join(r,t.source)),null!=s&&(t.source=Ne.relative(s,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var l=t.source;null==l||i.has(l)||i.add(l);var u=t.name;null==u||o.has(u)||o.add(u)}),this),this._sources=i,this._names=o,e.sources.forEach((function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=Ne.join(r,t)),null!=s&&(t=Ne.relative(s,t)),this.setSourceContent(t,n))}),this)},Be.prototype._validateMapping=function(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},Be.prototype._serializeMappings=function(){for(var e,t,r,n,s=0,i=1,o=0,a=0,l=0,u=0,c="",h=this._mappings.toArray(),p=0,f=h.length;p<f;p++){if(e="",(t=h[p]).generatedLine!==i)for(s=0;t.generatedLine!==i;)e+=";",i++;else if(p>0){if(!Ne.compareByGeneratedPositionsInflated(t,h[p-1]))continue;e+=","}e+=je.encode(t.generatedColumn-s),s=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=je.encode(n-u),u=n,e+=je.encode(t.originalLine-1-a),a=t.originalLine-1,e+=je.encode(t.originalColumn-o),o=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=je.encode(r-l),l=r)),c+=e}return c},Be.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=Ne.relative(t,e));var r=Ne.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)},Be.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},Be.prototype.toString=function(){return JSON.stringify(this.toJSON())},Ce.SourceMapGenerator=Be;var Fe={},Te={};!function(e){function t(r,n,s,i,o,a){var l=Math.floor((n-r)/2)+r,u=o(s,i[l],!0);return 0===u?l:u>0?n-l>1?t(l,n,s,i,o,a):a==e.LEAST_UPPER_BOUND?n<i.length?n:-1:l:l-r>1?t(r,l,s,i,o,a):a==e.LEAST_UPPER_BOUND?l:r<0?-1:r}e.GREATEST_LOWER_BOUND=1,e.LEAST_UPPER_BOUND=2,e.search=function(r,n,s,i){if(0===n.length)return-1;var o=t(-1,n.length,r,n,s,i||e.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&0===s(n[o],n[o-1],!0);)--o;return o}}(Te);var $e={};function Ge(e){function t(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return function e(r,n,s,i){if(s<i){var o=s-1;t(r,(c=s,h=i,Math.round(c+Math.random()*(h-c))),i);for(var a=r[i],l=s;l<i;l++)n(r[l],a,!1)<=0&&t(r,o+=1,l);t(r,o+1,l);var u=o+1;e(r,n,s,u-1),e(r,n,u+1,i)}var c,h}}let ze=new WeakMap;$e.quickSort=function(e,t,r=0){let n=ze.get(t);void 0===n&&(n=function(e){let t=Ge.toString();return new Function(`return ${t}`)()(e)}(t),ze.set(t,n)),n(e,t,r,e.length-1)};var We=Oe,Ve=Te,Je=Ae.ArraySet,qe=Se,Ye=$e.quickSort;function Qe(e,t){var r=e;return"string"==typeof e&&(r=We.parseSourceMapInput(e)),null!=r.sections?new et(r,t):new Ze(r,t)}function Ze(e,t){var r=e;"string"==typeof e&&(r=We.parseSourceMapInput(e));var n=We.getArg(r,"version"),s=We.getArg(r,"sources"),i=We.getArg(r,"names",[]),o=We.getArg(r,"sourceRoot",null),a=We.getArg(r,"sourcesContent",null),l=We.getArg(r,"mappings"),u=We.getArg(r,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);o&&(o=We.normalize(o)),s=s.map(String).map(We.normalize).map((function(e){return o&&We.isAbsolute(o)&&We.isAbsolute(e)?We.relative(o,e):e})),this._names=Je.fromArray(i.map(String),!0),this._sources=Je.fromArray(s,!0),this._absoluteSources=this._sources.toArray().map((function(e){return We.computeSourceURL(o,e,t)})),this.sourceRoot=o,this.sourcesContent=a,this._mappings=l,this._sourceMapURL=t,this.file=u}function He(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}Qe.fromSourceMap=function(e,t){return Ze.fromSourceMap(e,t)},Qe.prototype._version=3,Qe.prototype.__generatedMappings=null,Object.defineProperty(Qe.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),Qe.prototype.__originalMappings=null,Object.defineProperty(Qe.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),Qe.prototype._charIsMappingSeparator=function(e,t){var r=e.charAt(t);return";"===r||","===r},Qe.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},Qe.GENERATED_ORDER=1,Qe.ORIGINAL_ORDER=2,Qe.GREATEST_LOWER_BOUND=1,Qe.LEAST_UPPER_BOUND=2,Qe.prototype.eachMapping=function(e,t,r){var n,s=t||null;switch(r||Qe.GENERATED_ORDER){case Qe.GENERATED_ORDER:n=this._generatedMappings;break;case Qe.ORIGINAL_ORDER:n=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}for(var i=this.sourceRoot,o=e.bind(s),a=this._names,l=this._sources,u=this._sourceMapURL,c=0,h=n.length;c<h;c++){var p=n[c],f=null===p.source?null:l.at(p.source);o({source:f=We.computeSourceURL(i,f,u),generatedLine:p.generatedLine,generatedColumn:p.generatedColumn,originalLine:p.originalLine,originalColumn:p.originalColumn,name:null===p.name?null:a.at(p.name)})}},Qe.prototype.allGeneratedPositionsFor=function(e){var t=We.getArg(e,"line"),r={source:We.getArg(e,"source"),originalLine:t,originalColumn:We.getArg(e,"column",0)};if(r.source=this._findSourceIndex(r.source),r.source<0)return[];var n=[],s=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",We.compareByOriginalPositions,Ve.LEAST_UPPER_BOUND);if(s>=0){var i=this._originalMappings[s];if(void 0===e.column)for(var o=i.originalLine;i&&i.originalLine===o;)n.push({line:We.getArg(i,"generatedLine",null),column:We.getArg(i,"generatedColumn",null),lastColumn:We.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++s];else for(var a=i.originalColumn;i&&i.originalLine===t&&i.originalColumn==a;)n.push({line:We.getArg(i,"generatedLine",null),column:We.getArg(i,"generatedColumn",null),lastColumn:We.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++s]}return n},Fe.SourceMapConsumer=Qe,Ze.prototype=Object.create(Qe.prototype),Ze.prototype.consumer=Qe,Ze.prototype._findSourceIndex=function(e){var t,r=e;if(null!=this.sourceRoot&&(r=We.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(t=0;t<this._absoluteSources.length;++t)if(this._absoluteSources[t]==e)return t;return-1},Ze.fromSourceMap=function(e,t){var r=Object.create(Ze.prototype),n=r._names=Je.fromArray(e._names.toArray(),!0),s=r._sources=Je.fromArray(e._sources.toArray(),!0);r.sourceRoot=e._sourceRoot,r.sourcesContent=e._generateSourcesContent(r._sources.toArray(),r.sourceRoot),r.file=e._file,r._sourceMapURL=t,r._absoluteSources=r._sources.toArray().map((function(e){return We.computeSourceURL(r.sourceRoot,e,t)}));for(var i=e._mappings.toArray().slice(),o=r.__generatedMappings=[],a=r.__originalMappings=[],l=0,u=i.length;l<u;l++){var c=i[l],h=new He;h.generatedLine=c.generatedLine,h.generatedColumn=c.generatedColumn,c.source&&(h.source=s.indexOf(c.source),h.originalLine=c.originalLine,h.originalColumn=c.originalColumn,c.name&&(h.name=n.indexOf(c.name)),a.push(h)),o.push(h)}return Ye(r.__originalMappings,We.compareByOriginalPositions),r},Ze.prototype._version=3,Object.defineProperty(Ze.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});const Ke=We.compareByGeneratedPositionsDeflatedNoLine;function Xe(e,t){let r=e.length,n=e.length-t;if(!(n<=1))if(2==n){let r=e[t],n=e[t+1];Ke(r,n)>0&&(e[t]=n,e[t+1]=r)}else if(n<20)for(let n=t;n<r;n++)for(let r=n;r>t;r--){let t=e[r-1],n=e[r];if(Ke(t,n)<=0)break;e[r-1]=n,e[r]=t}else Ye(e,Ke,t)}function et(e,t){var r=e;"string"==typeof e&&(r=We.parseSourceMapInput(e));var n=We.getArg(r,"version"),s=We.getArg(r,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new Je,this._names=new Je;var i={line:-1,column:0};this._sections=s.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var r=We.getArg(e,"offset"),n=We.getArg(r,"line"),s=We.getArg(r,"column");if(n<i.line||n===i.line&&s<i.column)throw new Error("Section offsets must be ordered and non-overlapping.");return i=r,{generatedOffset:{generatedLine:n+1,generatedColumn:s+1},consumer:new Qe(We.getArg(e,"map"),t)}}))}Ze.prototype._parseMappings=function(e,t){var r,n,s,i,o=1,a=0,l=0,u=0,c=0,h=0,p=e.length,f=0,d={},g=[],m=[];let w=0;for(;f<p;)if(";"===e.charAt(f))o++,f++,a=0,Xe(m,w),w=m.length;else if(","===e.charAt(f))f++;else{for((r=new He).generatedLine=o,s=f;s<p&&!this._charIsMappingSeparator(e,s);s++);for(e.slice(f,s),n=[];f<s;)qe.decode(e,f,d),i=d.value,f=d.rest,n.push(i);if(2===n.length)throw new Error("Found a source, but no line and column");if(3===n.length)throw new Error("Found a source and line, but no column");if(r.generatedColumn=a+n[0],a=r.generatedColumn,n.length>1&&(r.source=c+n[1],c+=n[1],r.originalLine=l+n[2],l=r.originalLine,r.originalLine+=1,r.originalColumn=u+n[3],u=r.originalColumn,n.length>4&&(r.name=h+n[4],h+=n[4])),m.push(r),"number"==typeof r.originalLine){let e=r.source;for(;g.length<=e;)g.push(null);null===g[e]&&(g[e]=[]),g[e].push(r)}}Xe(m,w),this.__generatedMappings=m;for(var y=0;y<g.length;y++)null!=g[y]&&Ye(g[y],We.compareByOriginalPositionsNoSource);this.__originalMappings=[].concat(...g)},Ze.prototype._findMapping=function(e,t,r,n,s,i){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return Ve.search(e,t,s,i)},Ze.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var r=this._generatedMappings[e+1];if(t.generatedLine===r.generatedLine){t.lastGeneratedColumn=r.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},Ze.prototype.originalPositionFor=function(e){var t={generatedLine:We.getArg(e,"line"),generatedColumn:We.getArg(e,"column")},r=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",We.compareByGeneratedPositionsDeflated,We.getArg(e,"bias",Qe.GREATEST_LOWER_BOUND));if(r>=0){var n=this._generatedMappings[r];if(n.generatedLine===t.generatedLine){var s=We.getArg(n,"source",null);null!==s&&(s=this._sources.at(s),s=We.computeSourceURL(this.sourceRoot,s,this._sourceMapURL));var i=We.getArg(n,"name",null);return null!==i&&(i=this._names.at(i)),{source:s,line:We.getArg(n,"originalLine",null),column:We.getArg(n,"originalColumn",null),name:i}}}return{source:null,line:null,column:null,name:null}},Ze.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e})))},Ze.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;var r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];var n,s=e;if(null!=this.sourceRoot&&(s=We.relative(this.sourceRoot,s)),null!=this.sourceRoot&&(n=We.urlParse(this.sourceRoot))){var i=s.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(i))return this.sourcesContent[this._sources.indexOf(i)];if((!n.path||"/"==n.path)&&this._sources.has("/"+s))return this.sourcesContent[this._sources.indexOf("/"+s)]}if(t)return null;throw new Error('"'+s+'" is not in the SourceMap.')},Ze.prototype.generatedPositionFor=function(e){var t=We.getArg(e,"source");if((t=this._findSourceIndex(t))<0)return{line:null,column:null,lastColumn:null};var r={source:t,originalLine:We.getArg(e,"line"),originalColumn:We.getArg(e,"column")},n=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",We.compareByOriginalPositions,We.getArg(e,"bias",Qe.GREATEST_LOWER_BOUND));if(n>=0){var s=this._originalMappings[n];if(s.source===r.source)return{line:We.getArg(s,"generatedLine",null),column:We.getArg(s,"generatedColumn",null),lastColumn:We.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},Fe.BasicSourceMapConsumer=Ze,et.prototype=Object.create(Qe.prototype),et.prototype.constructor=Qe,et.prototype._version=3,Object.defineProperty(et.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var r=0;r<this._sections[t].consumer.sources.length;r++)e.push(this._sections[t].consumer.sources[r]);return e}}),et.prototype.originalPositionFor=function(e){var t={generatedLine:We.getArg(e,"line"),generatedColumn:We.getArg(e,"column")},r=Ve.search(t,this._sections,(function(e,t){var r=e.generatedLine-t.generatedOffset.generatedLine;return r||e.generatedColumn-t.generatedOffset.generatedColumn})),n=this._sections[r];return n?n.consumer.originalPositionFor({line:t.generatedLine-(n.generatedOffset.generatedLine-1),column:t.generatedColumn-(n.generatedOffset.generatedLine===t.generatedLine?n.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},et.prototype.hasContentsOfAllSources=function(){return this._sections.every((function(e){return e.consumer.hasContentsOfAllSources()}))},et.prototype.sourceContentFor=function(e,t){for(var r=0;r<this._sections.length;r++){var n=this._sections[r].consumer.sourceContentFor(e,!0);if(n)return n}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},et.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var r=this._sections[t];if(-1!==r.consumer._findSourceIndex(We.getArg(e,"source"))){var n=r.consumer.generatedPositionFor(e);if(n)return{line:n.line+(r.generatedOffset.generatedLine-1),column:n.column+(r.generatedOffset.generatedLine===n.line?r.generatedOffset.generatedColumn-1:0)}}}return{line:null,column:null}},et.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var r=0;r<this._sections.length;r++)for(var n=this._sections[r],s=n.consumer._generatedMappings,i=0;i<s.length;i++){var o=s[i],a=n.consumer._sources.at(o.source);a=We.computeSourceURL(n.consumer.sourceRoot,a,this._sourceMapURL),this._sources.add(a),a=this._sources.indexOf(a);var l=null;o.name&&(l=n.consumer._names.at(o.name),this._names.add(l),l=this._names.indexOf(l));var u={source:a,generatedLine:o.generatedLine+(n.generatedOffset.generatedLine-1),generatedColumn:o.generatedColumn+(n.generatedOffset.generatedLine===o.generatedLine?n.generatedOffset.generatedColumn-1:0),originalLine:o.originalLine,originalColumn:o.originalColumn,name:l};this.__generatedMappings.push(u),"number"==typeof u.originalLine&&this.__originalMappings.push(u)}Ye(this.__generatedMappings,We.compareByGeneratedPositionsDeflated),Ye(this.__originalMappings,We.compareByOriginalPositions)},Fe.IndexedSourceMapConsumer=et;var tt={},rt=Ce.SourceMapGenerator,nt=Oe,st=/(\r?\n)/,it="$$$isSourceNode$$$";function ot(e,t,r,n,s){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==s?null:s,this[it]=!0,null!=n&&this.add(n)}ot.fromStringWithSourceMap=function(e,t,r){var n=new ot,s=e.split(st),i=0,o=function(){return e()+(e()||"");function e(){return i<s.length?s[i++]:void 0}},a=1,l=0,u=null;return t.eachMapping((function(e){if(null!==u){if(!(a<e.generatedLine)){var t=(r=s[i]||"").substr(0,e.generatedColumn-l);return s[i]=r.substr(e.generatedColumn-l),l=e.generatedColumn,c(u,t),void(u=e)}c(u,o()),a++,l=0}for(;a<e.generatedLine;)n.add(o()),a++;if(l<e.generatedColumn){var r=s[i]||"";n.add(r.substr(0,e.generatedColumn)),s[i]=r.substr(e.generatedColumn),l=e.generatedColumn}u=e}),this),i<s.length&&(u&&c(u,o()),n.add(s.splice(i).join(""))),t.sources.forEach((function(e){var s=t.sourceContentFor(e);null!=s&&(null!=r&&(e=nt.join(r,e)),n.setSourceContent(e,s))})),n;function c(e,t){if(null===e||void 0===e.source)n.add(t);else{var s=r?nt.join(r,e.source):e.source;n.add(new ot(e.originalLine,e.originalColumn,s,t,e.name))}}},ot.prototype.add=function(e){if(Array.isArray(e))e.forEach((function(e){this.add(e)}),this);else{if(!e[it]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},ot.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[it]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},ot.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r<n;r++)(t=this.children[r])[it]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},ot.prototype.join=function(e){var t,r,n=this.children.length;if(n>0){for(t=[],r=0;r<n-1;r++)t.push(this.children[r]),t.push(e);t.push(this.children[r]),this.children=t}return this},ot.prototype.replaceRight=function(e,t){var r=this.children[this.children.length-1];return r[it]?r.replaceRight(e,t):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,t):this.children.push("".replace(e,t)),this},ot.prototype.setSourceContent=function(e,t){this.sourceContents[nt.toSetString(e)]=t},ot.prototype.walkSourceContents=function(e){for(var t=0,r=this.children.length;t<r;t++)this.children[t][it]&&this.children[t].walkSourceContents(e);var n=Object.keys(this.sourceContents);for(t=0,r=n.length;t<r;t++)e(nt.fromSetString(n[t]),this.sourceContents[n[t]])},ot.prototype.toString=function(){var e="";return this.walk((function(t){e+=t})),e},ot.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},r=new rt(e),n=!1,s=null,i=null,o=null,a=null;return this.walk((function(e,l){t.code+=e,null!==l.source&&null!==l.line&&null!==l.column?(s===l.source&&i===l.line&&o===l.column&&a===l.name||r.addMapping({source:l.source,original:{line:l.line,column:l.column},generated:{line:t.line,column:t.column},name:l.name}),s=l.source,i=l.line,o=l.column,a=l.name,n=!0):n&&(r.addMapping({generated:{line:t.line,column:t.column}}),s=null,n=!1);for(var u=0,c=e.length;u<c;u++)10===e.charCodeAt(u)?(t.line++,t.column=0,u+1===c?(s=null,n=!1):n&&r.addMapping({source:l.source,original:{line:l.line,column:l.column},generated:{line:t.line,column:t.column},name:l.name})):t.column++})),this.walkSourceContents((function(e,t){r.setSourceContent(e,t)})),{code:t.code,map:r}},tt.SourceNode=ot,ve.SourceMapGenerator=Ce.SourceMapGenerator,ve.SourceMapConsumer=Fe.SourceMapConsumer,ve.SourceNode=tt.SourceNode;var at={nanoid:(e=21)=>{let t="",r=e;for(;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t)=>()=>{let r="",n=t;for(;n--;)r+=e[Math.random()*e.length|0];return r}};let{SourceMapConsumer:lt,SourceMapGenerator:ut}=ve,{existsSync:ct,readFileSync:ht}=s,{dirname:pt,join:ft}=r;class dt{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let r=t.map?t.map.prev:void 0,n=this.loadMap(t.from,r);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=pt(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new lt(this.text)),this.consumerCache}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}startWith(e,t){return!!e&&e.substr(0,t.length)===t}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/gm);if(!t)return;let r=e.lastIndexOf(t.pop()),n=e.indexOf("*/",r);r>-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,n)))}decodeInline(e){if(/^data:application\/json;charset=utf-?8,/.test(e)||/^data:application\/json,/.test(e))return decodeURIComponent(e.substr(RegExp.lastMatch.length));if(/^data:application\/json;charset=utf-?8;base64,/.test(e)||/^data:application\/json;base64,/.test(e))return t=e.substr(RegExp.lastMatch.length),Buffer?Buffer.from(t,"base64").toString():window.atob(t);var t;let r=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+r)}loadFile(e){if(this.root=pt(e),ct(e))return this.mapFile=e,ht(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof lt)return ut.fromSourceMap(t).toString();if(t instanceof ut)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let r=t(e);if(r){let e=this.loadFile(r);if(!e)throw new Error("Unable to load previous source map: "+r.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=ft(pt(e),t)),this.loadFile(t)}}}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}}var gt=dt;dt.default=dt;let{SourceMapConsumer:mt,SourceMapGenerator:wt}=ve,{fileURLToPath:yt,pathToFileURL:vt}=n,{resolve:Ct,isAbsolute:St}=r,{nanoid:bt}=at,_t=Z,xt=ee,Ot=gt,At=Symbol("fromOffsetCache"),Mt=Boolean(mt&&wt),kt=Boolean(Ct&&St);class Et{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!kt||/^\w+:\/\//.test(t.from)||St(t.from)?this.file=t.from:this.file=Ct(t.from)),kt&&Mt){let e=new Ot(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;!this.file&&t&&(this.file=this.mapResolve(t))}}this.file||(this.id="<input css "+bt(6)+">"),this.map&&(this.map.file=this.from)}fromOffset(e){let t,r;if(this[At])r=this[At];else{let e=this.css.split("\n");r=new Array(e.length);let t=0;for(let n=0,s=e.length;n<s;n++)r[n]=t,t+=e[n].length+1;this[At]=r}t=r[r.length-1];let n=0;if(e>=t)n=r.length-1;else{let t,s=r.length-2;for(;n<s;)if(t=n+(s-n>>1),e<r[t])s=t-1;else{if(!(e>=r[t+1])){n=t;break}n=t+1}}return{line:n+1,col:e-r[n]+1}}error(e,t,r,n={}){let s,i,o;if(t&&"object"==typeof t){let e=t,n=r;if("number"==typeof t.offset){let n=this.fromOffset(e.offset);t=n.line,r=n.col}else t=e.line,r=e.column;if("number"==typeof n.offset){let e=this.fromOffset(n.offset);i=e.line,o=e.col}else i=n.line,o=n.column}else if(!r){let e=this.fromOffset(t);t=e.line,r=e.col}let a=this.origin(t,r,i,o);return s=a?new xt(e,void 0===a.endLine?a.line:{line:a.line,column:a.column},void 0===a.endLine?a.column:{line:a.endLine,column:a.endColumn},a.source,a.file,n.plugin):new xt(e,void 0===i?t:{line:t,column:r},void 0===i?r:{line:i,column:o},this.css,this.file,n.plugin),s.input={line:t,column:r,endLine:i,endColumn:o,source:this.css},this.file&&(vt&&(s.input.url=vt(this.file).toString()),s.input.file=this.file),s}origin(e,t,r,n){if(!this.map)return!1;let s,i,o=this.map.consumer(),a=o.originalPositionFor({line:e,column:t});if(!a.source)return!1;"number"==typeof r&&(s=o.originalPositionFor({line:r,column:n})),i=St(a.source)?vt(a.source):new URL(a.source,this.map.consumer().sourceRoot||vt(this.map.mapFile));let l={url:i.toString(),line:a.line,column:a.column,endLine:s&&s.line,endColumn:s&&s.column};if("file:"===i.protocol){if(!yt)throw new Error("file: protocol is not available in this PostCSS build");l.file=yt(i)}let u=o.sourceContentFor(a.source);return u&&(l.source=u),l}mapResolve(e){return/^\w+:\/\//.test(e)?e:Ct(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}}var Lt=Et;Et.default=Et,_t&&_t.registerInput&&_t.registerInput(Et);let{SourceMapConsumer:Rt,SourceMapGenerator:Pt}=ve,{dirname:It,resolve:jt,relative:Nt,sep:Dt}=r,{pathToFileURL:Ut}=n,Bt=Lt,Ft=Boolean(Rt&&Pt),Tt=Boolean(It&&jt&&Nt&&Dt);var $t=class{constructor(e,t,r,n){this.stringify=e,this.mapOpts=r.map||{},this.root=t,this.opts=r,this.css=n}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}}));else{let e=new Bt(this.css,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some((e=>e.inline)))}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((e=>e.withContent()))}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}setSourcesContent(){let e={};if(this.root)this.root.walk((t=>{if(t.source){let r=t.source.input.from;r&&!e[r]&&(e[r]=!0,this.map.setSourceContent(this.toUrl(this.path(r)),t.source.input.css))}}));else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(e,this.css)}}applyPrevMaps(){for(let e of this.previous()){let t,r=this.toUrl(this.path(e.file)),n=e.root||It(e.file);!1===this.mapOpts.sourcesContent?(t=new Rt(e.text),t.sourcesContent&&(t.sourcesContent=t.sourcesContent.map((()=>null)))):t=e.consumer(),this.map.applySourceMap(t,r,this.toUrl(this.path(n)))}}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((e=>e.annotation)))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=Pt.fromSourceMap(e)}else this.map=new Pt({file:this.outputFile()}),this.map.addMapping({source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>",generated:{line:1,column:0},original:{line:1,column:0}});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}path(e){if(0===e.indexOf("<"))return e;if(/^\w+:\/\//.test(e))return e;if(this.mapOpts.absolute)return e;let t=this.opts.to?It(this.opts.to):".";return"string"==typeof this.mapOpts.annotation&&(t=It(jt(t,this.mapOpts.annotation))),e=Nt(t,e)}toUrl(e){return"\\"===Dt&&(e=e.replace(/\\/g,"/")),encodeURI(e).replace(/[#?]/g,encodeURIComponent)}sourcePath(e){if(this.mapOpts.from)return this.toUrl(this.mapOpts.from);if(this.mapOpts.absolute){if(Ut)return Ut(e.source.input.from).toString();throw new Error("`map.absolute` option is not available in this PostCSS build")}return this.toUrl(this.path(e.source.input.from))}generateString(){this.css="",this.map=new Pt({file:this.outputFile()});let e,t,r=1,n=1,s="<no source>",i={source:"",generated:{line:0,column:0},original:{line:0,column:0}};this.stringify(this.root,((o,a,l)=>{if(this.css+=o,a&&"end"!==l&&(i.generated.line=r,i.generated.column=n-1,a.source&&a.source.start?(i.source=this.sourcePath(a),i.original.line=a.source.start.line,i.original.column=a.source.start.column-1,this.map.addMapping(i)):(i.source=s,i.original.line=1,i.original.column=0,this.map.addMapping(i))),e=o.match(/\n/g),e?(r+=e.length,t=o.lastIndexOf("\n"),n=o.length-t):n+=o.length,a&&"start"!==l){let e=a.parent||{raws:{}};("decl"!==a.type||a!==e.last||e.raws.semicolon)&&(a.source&&a.source.end?(i.source=this.sourcePath(a),i.original.line=a.source.end.line,i.original.column=a.source.end.column-1,i.generated.line=r,i.generated.column=n-2,this.map.addMapping(i)):(i.source=s,i.original.line=1,i.original.column=0,i.generated.line=r,i.generated.column=n-1,this.map.addMapping(i)))}}))}generate(){if(this.clearAnnotation(),Tt&&Ft&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,(t=>{e+=t})),[e]}}};let Gt=ge;class zt extends Gt{constructor(e){super(e),this.type="comment"}}var Wt=zt;zt.default=zt;let Vt,Jt,qt,{isClean:Yt,my:Qt}=te,Zt=ye,Ht=Wt,Kt=ge;function Xt(e){return e.map((e=>(e.nodes&&(e.nodes=Xt(e.nodes)),delete e.source,e)))}function er(e){if(e[Yt]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)er(t)}class tr extends Kt{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let t,r,n=this.getIterator();for(;this.indexes[n]<this.proxyOf.nodes.length&&(t=this.indexes[n],r=e(this.proxyOf.nodes[t],t),!1!==r);)this.indexes[n]+=1;return delete this.indexes[n],r}walk(e){return this.each(((t,r)=>{let n;try{n=e(t,r)}catch(e){throw t.addToError(e)}return!1!==n&&t.walk&&(n=t.walk(e)),n}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("decl"===r.type&&e.test(r.prop))return t(r,n)})):this.walk(((r,n)=>{if("decl"===r.type&&r.prop===e)return t(r,n)})):(t=e,this.walk(((e,r)=>{if("decl"===e.type)return t(e,r)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("rule"===r.type&&e.test(r.selector))return t(r,n)})):this.walk(((r,n)=>{if("rule"===r.type&&r.selector===e)return t(r,n)})):(t=e,this.walk(((e,r)=>{if("rule"===e.type)return t(e,r)})))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("atrule"===r.type&&e.test(r.name))return t(r,n)})):this.walk(((r,n)=>{if("atrule"===r.type&&r.name===e)return t(r,n)})):(t=e,this.walk(((e,r)=>{if("atrule"===e.type)return t(e,r)})))}walkComments(e){return this.walk(((t,r)=>{if("comment"===t.type)return e(t,r)}))}append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let r,n=0===(e=this.index(e))&&"prepend",s=this.normalize(t,this.proxyOf.nodes[e],n).reverse();for(let t of s)this.proxyOf.nodes.splice(e,0,t);for(let t in this.indexes)r=this.indexes[t],e<=r&&(this.indexes[t]=r+s.length);return this.markDirty(),this}insertAfter(e,t){e=this.index(e);let r,n=this.normalize(t,this.proxyOf.nodes[e]).reverse();for(let t of n)this.proxyOf.nodes.splice(e+1,0,t);for(let t in this.indexes)r=this.indexes[t],e<r&&(this.indexes[t]=r+n.length);return this.markDirty(),this}removeChild(e){let t;e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);for(let r in this.indexes)t=this.indexes[r],t>=e&&(this.indexes[r]=t-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,t,r){return r||(r=t,t={}),this.walkDecls((n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))})),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if("string"==typeof e)e=Xt(Vt(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if("root"===e.type&&"document"!==this.type){e=e.nodes.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error("Value field is missed in node creation");"string"!=typeof e.value&&(e.value=String(e.value)),e=[new Zt(e)]}else if(e.selector)e=[new Jt(e)];else if(e.name)e=[new qt(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new Ht(e)]}return e.map((e=>(e[Qt]||tr.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[Yt]&&er(e),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=this,e)))}getProxyProcessor(){return{set:(e,t,r)=>(e[t]===r||(e[t]=r,"name"!==t&&"params"!==t&&"selector"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...r)=>e[t](...r.map((e=>"function"==typeof e?(t,r)=>e(t.toProxy(),r):e))):"every"===t||"some"===t?r=>e[t](((e,...t)=>r(e.toProxy(),...t))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((e=>e.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t]}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}}tr.registerParse=e=>{Vt=e},tr.registerRule=e=>{Jt=e},tr.registerAtRule=e=>{qt=e};var rr=tr;tr.default=tr,tr.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,qt.prototype):"rule"===e.type?Object.setPrototypeOf(e,Jt.prototype):"decl"===e.type?Object.setPrototypeOf(e,Zt.prototype):"comment"===e.type&&Object.setPrototypeOf(e,Ht.prototype),e[Qt]=!0,e.nodes&&e.nodes.forEach((e=>{tr.rebuild(e)}))};let nr,sr,ir=rr;class or extends ir{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new nr(new sr,this,e).stringify()}}or.registerLazyResult=e=>{nr=e},or.registerProcessor=e=>{sr=e};var ar=or;or.default=or;let lr={};var ur=function(e){lr[e]||(lr[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))};class cr{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}var hr=cr;cr.default=cr;let pr=hr;class fr{constructor(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let r=new pr(e,t);return this.messages.push(r),r}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}}var dr=fr;fr.default=fr;let gr=rr;class mr extends gr{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}}var wr=mr;mr.default=mr,gr.registerAtRule(mr);let yr,vr,Cr=rr;class Sr extends Cr{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}removeChild(e,t){let r=this.index(e);return!t&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}normalize(e,t,r){let n=super.normalize(e);if(t)if("prepend"===r)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of n)e.raws.before=t.raws.before;return n}toResult(e={}){return new yr(new vr,this,e).stringify()}}Sr.registerLazyResult=e=>{yr=e},Sr.registerProcessor=e=>{vr=e};var br=Sr;Sr.default=Sr;let _r={split(e,t,r){let n=[],s="",i=!1,o=0,a=!1,l=!1;for(let r of e)l?l=!1:"\\"===r?l=!0:a?r===a&&(a=!1):'"'===r||"'"===r?a=r:"("===r?o+=1:")"===r?o>0&&(o-=1):0===o&&t.includes(r)&&(i=!0),i?(""!==s&&n.push(s.trim()),s="",i=!1):s+=r;return(r||""!==s)&&n.push(s.trim()),n},space:e=>_r.split(e,[" ","\n","\t"]),comma:e=>_r.split(e,[","],!0)};var xr=_r;_r.default=_r;let Or=rr,Ar=xr;class Mr extends Or{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return Ar.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}}var kr=Mr;Mr.default=Mr,Or.registerRule(Mr);let Er=ye,Lr=z,Rr=Wt,Pr=wr,Ir=br,jr=kr;var Nr=class{constructor(e){this.input=e,this.root=new Ir,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=Lr(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}comment(e){let t=new Rr;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]);let r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{let e=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}}emptyRule(e){let t=new jr;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}other(e){let t=!1,r=null,n=!1,s=null,i=[],o=e[1].startsWith("--"),a=[],l=e;for(;l;){if(r=l[0],a.push(l),"("===r||"["===r)s||(s=l),i.push("("===r?")":"]");else if(o&&n&&"{"===r)s||(s=l),i.push("}");else if(0===i.length){if(";"===r){if(n)return void this.decl(a,o);break}if("{"===r)return void this.rule(a);if("}"===r){this.tokenizer.back(a.pop()),t=!0;break}":"===r&&(n=!0)}else r===i[i.length-1]&&(i.pop(),0===i.length&&(s=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),i.length>0&&this.unclosedBracket(s),t&&n){for(;a.length&&(l=a[a.length-1][0],"space"===l||"comment"===l);)this.tokenizer.back(a.pop());this.decl(a,o)}else this.unknownWord(a)}rule(e){e.pop();let t=new jr;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}decl(e,t){let r=new Er;this.init(r,e[0][2]);let n,s=e[e.length-1];for(";"===s[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(s[3]||s[2]);"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(n=e.shift(),":"===n[0]){r.raws.between+=n[1];break}"word"===n[0]&&/\w/.test(n[1])&&this.unknownWord([n]),r.raws.between+=n[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let i=this.spacesAndCommentsFromStart(e);this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(n=e[t],"!important"===n[1].toLowerCase()){r.important=!0;let n=this.stringFrom(e,t);n=this.spacesFromEnd(e)+n," !important"!==n&&(r.raws.important=n);break}if("important"===n[1].toLowerCase()){let n=e.slice(0),s="";for(let e=t;e>0;e--){let t=n[e][0];if(0===s.trim().indexOf("!")&&"space"!==t)break;s=n.pop()[1]+s}0===s.trim().indexOf("!")&&(r.important=!0,r.raws.important=s,e=n)}if("space"!==n[0]&&"comment"!==n[0])break}let o=e.some((e=>"space"!==e[0]&&"comment"!==e[0]));this.raw(r,"value",e),o?r.raws.between+=i:r.value=i+r.value,r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}atrule(e){let t,r,n,s=new Pr;s.name=e[1].slice(1),""===s.name&&this.unnamedAtrule(s,e),this.init(s,e[2]);let i=!1,o=!1,a=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=(e=this.tokenizer.nextToken())[0],"("===t||"["===t?l.push("("===t?")":"]"):"{"===t&&l.length>0?l.push("}"):t===l[l.length-1]&&l.pop(),0===l.length){if(";"===t){s.source.end=this.getPosition(e[2]),this.semicolon=!0;break}if("{"===t){o=!0;break}if("}"===t){if(a.length>0){for(n=a.length-1,r=a[n];r&&"space"===r[0];)r=a[--n];r&&(s.source.end=this.getPosition(r[3]||r[2]))}this.end(e);break}a.push(e)}else a.push(e);if(this.tokenizer.endOfFile()){i=!0;break}}s.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(s.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(s,"params",a),i&&(e=a[a.length-1],s.source.end=this.getPosition(e[3]||e[2]),this.spaces=s.raws.between,s.raws.between="")):(s.raws.afterName="",s.params=""),o&&(s.nodes=[],this.current=s)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let e=this.current.nodes[this.current.nodes.length-1];e&&"rule"===e.type&&!e.raws.ownSemicolon&&(e.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}init(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}raw(e,t,r){let n,s,i,o,a=r.length,l="",u=!0,c=/^([#.|])?(\w)+/i;for(let t=0;t<a;t+=1)n=r[t],s=n[0],"comment"!==s||"rule"!==e.type?"comment"===s||"space"===s&&t===a-1?u=!1:l+=n[1]:(o=r[t-1],i=r[t+1],"space"!==o[0]&&"space"!==i[0]&&c.test(o[1])&&c.test(i[1])?l+=n[1]:u=!1);if(!u){let n=r.reduce(((e,t)=>e+t[1]),"");e.raws[t]={value:l,raw:n}}e[t]=l}spacesAndCommentsFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let t,r="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)r+=e.shift()[1];return r}spacesFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)r=e.pop()[1]+r;return r}stringFrom(e,t){let r="";for(let n=t;n<e.length;n++)r+=e[n][1];return e.splice(t,e.length-t),r}colon(e){let t,r,n,s=0;for(let[i,o]of e.entries()){if(t=o,r=t[0],"("===r&&(s+=1),")"===r&&(s-=1),0===s&&":"===r){if(n){if("word"===n[0]&&"progid"===n[1])continue;return i}this.doubleColon(t)}n=t}return!1}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word",{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}precheckMissedSemicolon(){}checkMissedSemicolon(e){let t=this.colon(e);if(!1===t)return;let r,n=0;for(let s=t-1;s>=0&&(r=e[s],"space"===r[0]||(n+=1,2!==n));s--);throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}};let Dr=rr,Ur=Nr,Br=Lt;function Fr(e,t){let r=new Br(e,t),n=new Ur(r);try{n.parse()}catch(e){throw"production"!==process.env.NODE_ENV&&"CssSyntaxError"===e.name&&t&&t.from&&(/\.scss$/i.test(t.from)?e.message+="\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser":/\.sass/i.test(t.from)?e.message+="\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser":/\.less$/i.test(t.from)&&(e.message+="\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser")),e}return n.root}var Tr=Fr;Fr.default=Fr,Dr.registerParse(Fr);let{isClean:$r,my:Gr}=te,zr=$t,Wr=ae,Vr=rr,Jr=ar,qr=ur,Yr=dr,Qr=Tr,Zr=br;const Hr={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},Kr={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},Xr={postcssPlugin:!0,prepare:!0,Once:!0};function en(e){return"object"==typeof e&&"function"==typeof e.then}function tn(e){let t=!1,r=Hr[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[r,r+"-"+t,0,r+"Exit",r+"Exit-"+t]:t?[r,r+"-"+t,r+"Exit",r+"Exit-"+t]:e.append?[r,0,r+"Exit"]:[r,r+"Exit"]}function rn(e){let t;return t="document"===e.type?["Document",0,"DocumentExit"]:"root"===e.type?["Root",0,"RootExit"]:tn(e),{node:e,events:t,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function nn(e){return e[$r]=!1,e.nodes&&e.nodes.forEach((e=>nn(e))),e}let sn={};class on{constructor(e,t,r){let n;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof on||t instanceof Yr)n=nn(t.root),t.map&&(void 0===r.map&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=t.map);else{let e=Qr;r.syntax&&(e=r.syntax.parse),r.parser&&(e=r.parser),e.parse&&(e=e.parse);try{n=e(t,r)}catch(e){this.processed=!0,this.error=e}n&&!n[Gr]&&Vr.rebuild(n)}else n=nn(t);this.result=new Yr(e,n,r),this.helpers={...sn,result:this.result,postcss:sn},this.plugins=this.processor.plugins.map((e=>"object"==typeof e&&e.prepare?{...e,...e.prepare(this.result)}:e))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return"production"!==process.env.NODE_ENV&&("from"in this.opts||qr("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){if(en(this.runOnRoot(e)))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[$r];)e[$r]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=Wr;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let r=new zr(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result}walkSync(e){e[$r]=!0;let t=tn(e);for(let r of t)if(0===r)e.nodes&&e.each((e=>{e[$r]||this.walkSync(e)}));else{let t=this.listeners[r];if(t&&this.visitSync(t,e.toProxy()))return}}visitSync(e,t){for(let[r,n]of e){let e;this.result.lastPlugin=r;try{e=n(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(en(e))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));return en(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{if(t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin){if(r.postcssVersion&&"production"!==process.env.NODE_ENV){let e=r.postcssPlugin,t=r.postcssVersion,n=this.result.processor.version,s=t.split("."),i=n.split(".");(s[0]!==i[0]||parseInt(s[1])>parseInt(i[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+n+", but "+e+" uses "+t+". Perhaps this is the source of the error below.")}}else e.plugin=r.postcssPlugin,e.setMessage()}catch(e){console&&console.error&&console.error(e)}return e}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let t=this.plugins[e],r=this.runOnRoot(t);if(en(r))try{await r}catch(e){throw this.handleError(e)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[$r];){e[$r]=!0;let t=[rn(e)];for(;t.length>0;){let e=this.visitTick(t);if(en(e))try{await e}catch(e){let r=t[t.length-1].node;throw this.handleError(e,r)}}}if(this.listeners.OnceExit)for(let[t,r]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map((e=>r(e,this.helpers)));await Promise.all(t)}else await r(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(e,t,r)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,r])};for(let t of this.plugins)if("object"==typeof t)for(let r in t){if(!Kr[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Xr[r])if("object"==typeof t[r])for(let n in t[r])e(t,"*"===n?r:r+"-"+n.toLowerCase(),t[r][n]);else"function"==typeof t[r]&&e(t,r,t[r])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:r,visitors:n}=t;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void e.pop();if(n.length>0&&t.visitorIndex<n.length){let[e,s]=n[t.visitorIndex];t.visitorIndex+=1,t.visitorIndex===n.length&&(t.visitors=[],t.visitorIndex=0),this.result.lastPlugin=e;try{return s(r.toProxy(),this.helpers)}catch(e){throw this.handleError(e,r)}}if(0!==t.iterator){let n,s=t.iterator;for(;n=r.nodes[r.indexes[s]];)if(r.indexes[s]+=1,!n[$r])return n[$r]=!0,void e.push(rn(n));t.iterator=0,delete r.indexes[s]}let s=t.events;for(;t.eventIndex<s.length;){let e=s[t.eventIndex];if(t.eventIndex+=1,0===e)return void(r.nodes&&r.nodes.length&&(r[$r]=!0,t.iterator=r.getIterator()));if(this.listeners[e])return void(t.visitors=this.listeners[e])}e.pop()}}on.registerPostcss=e=>{sn=e};var an=on;on.default=on,Zr.registerLazyResult(on),Jr.registerLazyResult(on);let ln=$t,un=ae,cn=ur,hn=Tr;const pn=dr;class fn{constructor(e,t,r){let n;t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=r,this._map=void 0;let s=un;this.result=new pn(this._processor,n,this._opts),this.result.css=t;let i=this;Object.defineProperty(this.result,"root",{get:()=>i.root});let o=new ln(s,n,this._opts,t);if(o.isMap()){let[e,t]=o.generate();e&&(this.result.css=e),t&&(this.result.map=t)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,t=hn;try{e=t(this._css,this._opts)}catch(e){this.error=e}return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,t){return"production"!==process.env.NODE_ENV&&("from"in this._opts||cn("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}}var dn=fn;fn.default=fn;let gn=dn,mn=an,wn=ar,yn=br;class vn{constructor(e=[]){this.version="8.4.5",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,t={}){return 0===this.plugins.length&&void 0===t.parser&&void 0===t.stringifier&&void 0===t.syntax?new gn(this,e,t):new mn(this,e,t)}normalize(e){let t=[];for(let r of e)if(!0===r.postcss?r=r():r.postcss&&(r=r.postcss),"object"==typeof r&&Array.isArray(r.plugins))t=t.concat(r.plugins);else if("object"==typeof r&&r.postcssPlugin)t.push(r);else if("function"==typeof r)t.push(r);else{if("object"!=typeof r||!r.parse&&!r.stringify)throw new Error(r+" is not a PostCSS plugin");if("production"!==process.env.NODE_ENV)throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}return t}}var Cn=vn;vn.default=vn,yn.registerProcessor(vn),wn.registerProcessor(vn);let Sn=ye,bn=gt,_n=Wt,xn=wr,On=Lt,An=br,Mn=kr;function kn(e,t){if(Array.isArray(e))return e.map((e=>kn(e)));let{inputs:r,...n}=e;if(r){t=[];for(let e of r){let r={...e,__proto__:On.prototype};r.map&&(r.map={...r.map,__proto__:bn.prototype}),t.push(r)}}if(n.nodes&&(n.nodes=e.nodes.map((e=>kn(e,t)))),n.source){let{inputId:e,...r}=n.source;n.source=r,null!=e&&(n.source.input=t[e])}if("root"===n.type)return new An(n);if("decl"===n.type)return new Sn(n);if("rule"===n.type)return new Mn(n);if("comment"===n.type)return new _n(n);if("atrule"===n.type)return new xn(n);throw new Error("Unknown node type: "+e.type)}var En=kn;kn.default=kn;let Ln=ee,Rn=ye,Pn=an,In=rr,jn=Cn,Nn=ae,Dn=En,Un=ar,Bn=hr,Fn=Wt,Tn=wr,$n=dr,Gn=Lt,zn=Tr,Wn=xr,Vn=kr,Jn=br,qn=ge;function Yn(...e){return 1===e.length&&Array.isArray(e[0])&&(e=e[0]),new jn(e)}Yn.plugin=function(e,t){function r(...r){let n=t(...r);return n.postcssPlugin=e,n.postcssVersion=(new jn).version,n}let n;return console&&console.warn&&(console.warn(e+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226")),Object.defineProperty(r,"postcss",{get:()=>(n||(n=r()),n)}),r.process=function(e,t,n){return Yn([r(n)]).process(e,t)},r},Yn.stringify=Nn,Yn.parse=zn,Yn.fromJSON=Dn,Yn.list=Wn,Yn.comment=e=>new Fn(e),Yn.atRule=e=>new Tn(e),Yn.decl=e=>new Rn(e),Yn.rule=e=>new Vn(e),Yn.root=e=>new Jn(e),Yn.document=e=>new Un(e),Yn.CssSyntaxError=Ln,Yn.Declaration=Rn,Yn.Container=In,Yn.Processor=jn,Yn.Document=Un,Yn.Comment=Fn,Yn.Warning=Bn,Yn.AtRule=Tn,Yn.Result=$n,Yn.Input=Gn,Yn.Rule=Vn,Yn.Root=Jn,Yn.Node=qn,Pn.registerPostcss(Yn);var Qn=Yn;async function Zn(){return new Promise((e=>{let t="",r=!1;if(setTimeout((()=>{r=!0,e("")}),1e4),process.stdin.isTTY){if(r)return;e(t)}else process.stdin.setEncoding("utf8"),process.stdin.on("readable",(()=>{let e;for(;e=process.stdin.read();)t+=e})),process.stdin.on("end",(()=>{r||e(t)}))}))}Yn.default=Yn,async function(e,t,n){const s=function(e,t,r){const n=e.map((e=>e.trim())).filter((e=>!!e)),s={stdin:!1,stdout:!1,output:null,outputDir:null,inputs:[],inlineMap:!0,externalMap:!1,replace:!1,pluginOptions:{},debug:!1};let i=null,o=!1;for(let e=0;e<n.length;e++){const t=n[e];switch(t){case"-o":case"--output":s.output=n[e+1],e++,o=!0;break;case"-m":case"--map":s.externalMap=!0,s.inlineMap=!1,o=!0;break;case"--no-map":s.externalMap=!1,s.inlineMap=!1,o=!0;break;case"-r":case"--replace":s.replace=!0,o=!0;break;case"--debug":s.debug=!0,o=!0;break;case"-d":case"--dir":s.outputDir=n[e+1],e++,o=!0;break;case"-p":case"--plugin-options":i=n[e+1],e++,o=!0;break;default:if(0===t.indexOf("-"))return console.warn(`[error] unknown argument : ${t}\n`),r(),p.InvalidArguments;if(!o){s.inputs.push(t);break}return r(),p.InvalidArguments}}if(s.replace&&(s.output=null,s.outputDir=null),s.outputDir&&(s.output=null),s.inputs.length>1&&s.output)return console.warn('[error] omit "--output" when processing multiple inputs\n'),r(),p.InvalidArguments;0===s.inputs.length&&(s.stdin=!0),s.output||s.outputDir||s.replace||(s.stdout=!0),s.stdout&&(s.externalMap=!1);let a={};if(i)try{a=JSON.parse(i)}catch(e){return console.warn("[error] plugin options must be valid JSON\n"),r(),p.InvalidArguments}for(const e in a){const n=a[e];if(!t.includes(e))return console.warn(`[error] unknown plugin option: ${e}\n`),r(),p.InvalidArguments;s.pluginOptions[e]=n}return s}(process.argv.slice(2),t,n);s===p.InvalidArguments&&process.exit(1);const o=e(s.pluginOptions);s.stdin&&s.stdout?await async function(e,t,r){let n="";try{const s=await Zn();s||(r(),process.exit(1)),n=(await Qn([e]).process(s,{from:"stdin",to:"stdout",map:!!t.inlineMap&&{inline:!0}})).css}catch(e){console.error(t.debug?e:e.message),process.exit(1)}process.stdout.write(n+(t.inlineMap?"\n":"")),process.exit(0)}(o,s,n):s.stdin?await async function(e,t,n){let s=t.output;!s&&t.outputDir&&(s=r.join(t.outputDir,"output.css"));try{const r=await Zn();r||(n(),process.exit(1));const o=await Qn([e]).process(r,{from:"stdin",to:s,map:!(!t.inlineMap&&!t.externalMap)&&{inline:t.inlineMap}});t.externalMap&&o.map?await Promise.all([await i.writeFile(s,o.css+(t.inlineMap?"\n":"")),await i.writeFile(`${s}.map`,o.map.toString())]):await i.writeFile(s,o.css+(t.inlineMap?"\n":""))}catch(e){console.error(t.debug?e:e.message),process.exit(1)}console.log(`CSS was written to "${r.normalize(s)}"`),process.exit(0)}(o,s,n):s.stdout?await async function(e,t){let r=[];try{r=await Promise.all(t.inputs.map((async t=>{const r=await i.readFile(t);return(await Qn([e]).process(r,{from:t,to:"stdout",map:!1})).css})))}catch(e){console.error(t.debug?e:e.message),process.exit(1)}for(const e of r)process.stdout.write(e);process.exit(0)}(o,s):await async function(e,t){try{await Promise.all(t.inputs.map((async n=>{let s=t.output;t.outputDir&&(s=r.join(t.outputDir,r.basename(n))),t.replace&&(s=n);const o=await i.readFile(n),a=await Qn([e]).process(o,{from:n,to:s,map:!(!t.inlineMap&&!t.externalMap)&&{inline:t.inlineMap}});t.externalMap&&a.map?await Promise.all([await i.writeFile(s,a.css+(t.inlineMap?"\n":"")),await i.writeFile(`${s}.map`,a.map.toString())]):await i.writeFile(s,a.css+(t.inlineMap?"\n":"")),console.log(`CSS was written to "${r.normalize(s)}"`)})))}catch(e){console.error(t.debug?e:e.message),process.exit(1)}process.exit(0)}(o,s)}(f,["preserve"],function(e,t,r,n=null){let s=[];if(n){const e=Math.max(...Object.keys(n).map((e=>e.length))),t=new Array(e).fill(" ").join("");t.length&&(s=["\nPlugin Options:",...Object.keys(n).map((e=>` ${(e+t).slice(0,t.length)} ${typeof n[e]}`))],s.push(`\n ${JSON.stringify(n,null,2).split("\n").join("\n ")}`))}const i=[`${t}\n`,` ${r}\n`,"Usage:",` ${e} [input.css] [OPTIONS] [-o|--output output.css]`,` ${e} <input.css>... [OPTIONS] --dir <output-directory>`,` ${e} <input.css>... [OPTIONS] --replace`,"\nOptions:"," -o, --output Output file"," -d, --dir Output directory"," -r, --replace Replace (overwrite) the input file"," -m, --map Create an external sourcemap"," --no-map Disable the default inline sourcemaps"," -p, --plugin-options Stringified JSON object with plugin options"];return s.length>0&&i.push(...s),()=>{console.warn(i.join("\n"))}}("postcss-double-position-gradients","PostCSS Double Position Gradients","Lets you use double-position gradients in CSS, following the [CSS Image Values and Replaced Content] specification",{dir:"ltr",preserve:!0,shadow:!0}));
package/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("postcss-value-parser"),t=/(repeating-)?(conic|linear|radial)-gradient\([\W\w]*\)/i,r=/^(repeating-)?(conic|linear|radial)-gradient$/i,a=e=>"div"===e.type&&","===e.value;function n(t){let r=!1;try{r=!1!==e.unit(null==t?void 0:t.value)}catch(e){}return r}module.exports=function(i){const o=!("preserve"in Object(i))||Boolean(i.preserve);return{postcssPlugin:"postcss-double-position-gradients",Declaration(i,{result:l}){if(!t.test(i.value))return;let c;try{c=e(i.value)}catch(e){i.warn(l,`Failed to parse value '${i.value}' as a CSS gradient. Leaving the original value intact.`)}if(void 0===c)return;c.walk((e=>{if("function"!==e.type||!r.test(e.value))return;return e.nodes.filter((e=>"word"===e.type)).forEach(((t,r,i)=>{const o=Object(i[r-1]),l=Object(i[r-2]),c=Object(i[r+1]);if(l.type&&n(o)&&n(t)){const r={type:l.type,value:l.value},n={type:"div",value:",",before:a(c)?c.before:"",after:a(c)?"":" "};!function(e,t,...r){const a=e.findIndex((e=>e===t));e.splice.apply(e,[a-1,0].concat(Array.prototype.slice.call(...r,0)))}(e.nodes,t,[n,r])}})),!1}));const s=c.toString();s!==i.value&&(o?i.cloneBefore({value:s}):i.value=s)}}},module.exports.postcss=!0;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/index.js"],"sourcesContent":["const valueParser = require('postcss-value-parser');\n\n// whether the value has a lab() or lch() matcher\nconst gradientRegExp = /(repeating-)?(conic|linear|radial)-gradient\\([\\W\\w]*\\)/i;\nconst gradientPartsRegExp = /^(repeating-)?(conic|linear|radial)-gradient$/i;\n\nconst isPunctuationCommaNode = node => node.type === 'div' && node.value === ',';\n\nfunction insertBefore(nodes, node, ...values) {\n\tconst index = nodes.findIndex(n => n === node);\n\tnodes.splice.apply(nodes, [index - 1, 0].concat(\n\t\tArray.prototype.slice.call(...values, 0)),\n\t);\n}\n\nfunction isNumericNode(node) {\n\tlet result = false;\n\n\ttry {\n\t\tresult = valueParser.unit(node?.value) !== false;\n\t} catch (e) {\n\t\t// Error silently\n\t}\n\n\treturn result;\n}\n\n/**\n * Transform double-position gradients in CSS.\n * @param {{preserve?: boolean}} opts\n * @returns {import('postcss').Plugin}\n */\nmodule.exports = function creator(opts) {\n\tconst preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : true;\n\n\treturn {\n\t\tpostcssPlugin: 'postcss-double-position-gradients',\n\t\tDeclaration(decl, { result }) {\n\t\t\tif (!gradientRegExp.test(decl.value)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet valueAST;\n\n\t\t\ttry {\n\t\t\t\tvalueAST = valueParser(decl.value);\n\t\t\t} catch (error) {\n\t\t\t\tdecl.warn(\n\t\t\t\t\tresult,\n\t\t\t\t\t`Failed to parse value '${decl.value}' as a CSS gradient. Leaving the original value intact.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof valueAST === 'undefined') {\n\t\t\t\t// Bail if there's an error\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvalueAST.walk(func => {\n\t\t\t\tif (func.type !== 'function' || !gradientPartsRegExp.test(func.value)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Discarding commas and spaces\n\t\t\t\tconst nodes = func.nodes.filter(n => n.type === 'word');\n\n\t\t\t\tnodes.forEach((node, index, nodes) => {\n\t\t\t\t\tconst oneValueBack = Object(nodes[index - 1]);\n\t\t\t\t\tconst twoValuesBack = Object(nodes[index - 2]);\n\t\t\t\t\tconst nextNode = Object(nodes[index + 1]);\n\t\t\t\t\tconst isDoublePositionLength = twoValuesBack.type && isNumericNode(oneValueBack) && isNumericNode(node);\n\n\t\t\t\t\t// if the argument concludes a double-position gradient\n\t\t\t\t\tif (isDoublePositionLength) {\n\t\t\t\t\t\t// insert the fallback colors\n\t\t\t\t\t\tconst color = { type: twoValuesBack.type, value: twoValuesBack.value };\n\t\t\t\t\t\tconst comma = {\n\t\t\t\t\t\t\ttype: 'div',\n\t\t\t\t\t\t\tvalue: ',',\n\t\t\t\t\t\t\tbefore: isPunctuationCommaNode(nextNode) ? nextNode.before : '',\n\t\t\t\t\t\t\tafter: isPunctuationCommaNode(nextNode) ? '' : ' ',\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tinsertBefore(func.nodes, node, [comma, color]);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tconst modifiedValue = valueAST.toString();\n\n\t\t\tif (modifiedValue !== decl.value) {\n\t\t\t\tif (preserve) decl.cloneBefore({ value: modifiedValue });\n\t\t\t\telse decl.value = modifiedValue;\n\t\t\t}\n\t\t},\n\t};\n};\n\nmodule.exports.postcss = true;\n"],"names":["valueParser","require","gradientRegExp","gradientPartsRegExp","isPunctuationCommaNode","node","type","value","isNumericNode","result","unit","e","module","exports","opts","preserve","Object","Boolean","postcssPlugin","Declaration","decl","test","valueAST","error","warn","walk","func","nodes","filter","n","forEach","index","oneValueBack","twoValuesBack","nextNode","color","comma","before","after","values","findIndex","splice","apply","concat","Array","prototype","slice","call","insertBefore","modifiedValue","toString","cloneBefore","postcss"],"mappings":"aAAA,MAAMA,EAAcC,QAAQ,wBAGtBC,EAAiB,0DACjBC,EAAsB,iDAEtBC,EAAyBC,GAAsB,QAAdA,EAAKC,MAAiC,MAAfD,EAAKE,MASnE,SAASC,EAAcH,OAClBI,GAAS,MAGZA,GAA2C,IAAlCT,EAAYU,WAAKL,SAAAA,EAAME,OAC/B,MAAOI,WAIFF,EAQRG,OAAOC,QAAU,SAAiBC,SAC3BC,IAAW,aAAcC,OAAOF,KAAQG,QAAQH,EAAKC,gBAEpD,CACNG,cAAe,oCACfC,YAAYC,GAAMX,OAAEA,QACdP,EAAemB,KAAKD,EAAKb,kBAI1Be,MAGHA,EAAWtB,EAAYoB,EAAKb,OAC3B,MAAOgB,GACRH,EAAKI,KACJf,EACC,0BAAyBW,EAAKb,wEAIT,IAAbe,SAKXA,EAASG,MAAKC,OACK,aAAdA,EAAKpB,OAAwBH,EAAoBkB,KAAKK,EAAKnB,qBAKjDmB,EAAKC,MAAMC,QAAOC,GAAgB,SAAXA,EAAEvB,OAEjCwB,SAAQ,CAACzB,EAAM0B,EAAOJ,WACrBK,EAAehB,OAAOW,EAAMI,EAAQ,IACpCE,EAAgBjB,OAAOW,EAAMI,EAAQ,IACrCG,EAAWlB,OAAOW,EAAMI,EAAQ,OACPE,EAAc3B,MAAQE,EAAcwB,IAAiBxB,EAAcH,GAGtE,OAErB8B,EAAQ,CAAE7B,KAAM2B,EAAc3B,KAAMC,MAAO0B,EAAc1B,OACzD6B,EAAQ,CACb9B,KAAM,MACNC,MAAO,IACP8B,OAAQjC,EAAuB8B,GAAYA,EAASG,OAAS,GAC7DC,MAAOlC,EAAuB8B,GAAY,GAAK,MAxEtD,SAAsBP,EAAOtB,KAASkC,SAC/BR,EAAQJ,EAAMa,WAAUX,GAAKA,IAAMxB,IACzCsB,EAAMc,OAAOC,MAAMf,EAAO,CAACI,EAAQ,EAAG,GAAGY,OACxCC,MAAMC,UAAUC,MAAMC,QAAQR,EAAQ,KAwElCS,CAAatB,EAAKC,MAAOtB,EAAM,CAAC+B,EAAOD,SAIlC,WAGFc,EAAgB3B,EAAS4B,WAE3BD,IAAkB7B,EAAKb,QACtBQ,EAAUK,EAAK+B,YAAY,CAAE5C,MAAO0C,IACnC7B,EAAKb,MAAQ0C,MAMtBrC,OAAOC,QAAQuC,SAAU"}
package/dist/index.mjs ADDED
@@ -0,0 +1,2 @@
1
+ const e=require("postcss-value-parser"),t=/(repeating-)?(conic|linear|radial)-gradient\([\W\w]*\)/i,r=/^(repeating-)?(conic|linear|radial)-gradient$/i,a=e=>"div"===e.type&&","===e.value;function n(t){let r=!1;try{r=!1!==e.unit(null==t?void 0:t.value)}catch(e){}return r}module.exports=function(i){const o=!("preserve"in Object(i))||Boolean(i.preserve);return{postcssPlugin:"postcss-double-position-gradients",Declaration(i,{result:l}){if(!t.test(i.value))return;let c;try{c=e(i.value)}catch(e){i.warn(l,`Failed to parse value '${i.value}' as a CSS gradient. Leaving the original value intact.`)}if(void 0===c)return;c.walk((e=>{if("function"!==e.type||!r.test(e.value))return;return e.nodes.filter((e=>"word"===e.type)).forEach(((t,r,i)=>{const o=Object(i[r-1]),l=Object(i[r-2]),c=Object(i[r+1]);if(l.type&&n(o)&&n(t)){const r={type:l.type,value:l.value},n={type:"div",value:",",before:a(c)?c.before:"",after:a(c)?"":" "};!function(e,t,...r){const a=e.findIndex((e=>e===t));e.splice.apply(e,[a-1,0].concat(Array.prototype.slice.call(...r,0)))}(e.nodes,t,[n,r])}})),!1}));const s=c.toString();s!==i.value&&(o?i.cloneBefore({value:s}):i.value=s)}}},module.exports.postcss=!0;
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.js"],"sourcesContent":["const valueParser = require('postcss-value-parser');\n\n// whether the value has a lab() or lch() matcher\nconst gradientRegExp = /(repeating-)?(conic|linear|radial)-gradient\\([\\W\\w]*\\)/i;\nconst gradientPartsRegExp = /^(repeating-)?(conic|linear|radial)-gradient$/i;\n\nconst isPunctuationCommaNode = node => node.type === 'div' && node.value === ',';\n\nfunction insertBefore(nodes, node, ...values) {\n\tconst index = nodes.findIndex(n => n === node);\n\tnodes.splice.apply(nodes, [index - 1, 0].concat(\n\t\tArray.prototype.slice.call(...values, 0)),\n\t);\n}\n\nfunction isNumericNode(node) {\n\tlet result = false;\n\n\ttry {\n\t\tresult = valueParser.unit(node?.value) !== false;\n\t} catch (e) {\n\t\t// Error silently\n\t}\n\n\treturn result;\n}\n\n/**\n * Transform double-position gradients in CSS.\n * @param {{preserve?: boolean}} opts\n * @returns {import('postcss').Plugin}\n */\nmodule.exports = function creator(opts) {\n\tconst preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : true;\n\n\treturn {\n\t\tpostcssPlugin: 'postcss-double-position-gradients',\n\t\tDeclaration(decl, { result }) {\n\t\t\tif (!gradientRegExp.test(decl.value)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet valueAST;\n\n\t\t\ttry {\n\t\t\t\tvalueAST = valueParser(decl.value);\n\t\t\t} catch (error) {\n\t\t\t\tdecl.warn(\n\t\t\t\t\tresult,\n\t\t\t\t\t`Failed to parse value '${decl.value}' as a CSS gradient. Leaving the original value intact.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof valueAST === 'undefined') {\n\t\t\t\t// Bail if there's an error\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvalueAST.walk(func => {\n\t\t\t\tif (func.type !== 'function' || !gradientPartsRegExp.test(func.value)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Discarding commas and spaces\n\t\t\t\tconst nodes = func.nodes.filter(n => n.type === 'word');\n\n\t\t\t\tnodes.forEach((node, index, nodes) => {\n\t\t\t\t\tconst oneValueBack = Object(nodes[index - 1]);\n\t\t\t\t\tconst twoValuesBack = Object(nodes[index - 2]);\n\t\t\t\t\tconst nextNode = Object(nodes[index + 1]);\n\t\t\t\t\tconst isDoublePositionLength = twoValuesBack.type && isNumericNode(oneValueBack) && isNumericNode(node);\n\n\t\t\t\t\t// if the argument concludes a double-position gradient\n\t\t\t\t\tif (isDoublePositionLength) {\n\t\t\t\t\t\t// insert the fallback colors\n\t\t\t\t\t\tconst color = { type: twoValuesBack.type, value: twoValuesBack.value };\n\t\t\t\t\t\tconst comma = {\n\t\t\t\t\t\t\ttype: 'div',\n\t\t\t\t\t\t\tvalue: ',',\n\t\t\t\t\t\t\tbefore: isPunctuationCommaNode(nextNode) ? nextNode.before : '',\n\t\t\t\t\t\t\tafter: isPunctuationCommaNode(nextNode) ? '' : ' ',\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tinsertBefore(func.nodes, node, [comma, color]);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tconst modifiedValue = valueAST.toString();\n\n\t\t\tif (modifiedValue !== decl.value) {\n\t\t\t\tif (preserve) decl.cloneBefore({ value: modifiedValue });\n\t\t\t\telse decl.value = modifiedValue;\n\t\t\t}\n\t\t},\n\t};\n};\n\nmodule.exports.postcss = true;\n"],"names":["valueParser","require","gradientRegExp","gradientPartsRegExp","isPunctuationCommaNode","node","type","value","isNumericNode","result","unit","e","module","exports","opts","preserve","Object","Boolean","postcssPlugin","Declaration","decl","test","valueAST","error","warn","walk","func","nodes","filter","n","forEach","index","oneValueBack","twoValuesBack","nextNode","color","comma","before","after","values","findIndex","splice","apply","concat","Array","prototype","slice","call","insertBefore","modifiedValue","toString","cloneBefore","postcss"],"mappings":"AAAA,MAAMA,EAAcC,QAAQ,wBAGtBC,EAAiB,0DACjBC,EAAsB,iDAEtBC,EAAyBC,GAAsB,QAAdA,EAAKC,MAAiC,MAAfD,EAAKE,MASnE,SAASC,EAAcH,OAClBI,GAAS,MAGZA,GAA2C,IAAlCT,EAAYU,WAAKL,SAAAA,EAAME,OAC/B,MAAOI,WAIFF,EAQRG,OAAOC,QAAU,SAAiBC,SAC3BC,IAAW,aAAcC,OAAOF,KAAQG,QAAQH,EAAKC,gBAEpD,CACNG,cAAe,oCACfC,YAAYC,GAAMX,OAAEA,QACdP,EAAemB,KAAKD,EAAKb,kBAI1Be,MAGHA,EAAWtB,EAAYoB,EAAKb,OAC3B,MAAOgB,GACRH,EAAKI,KACJf,EACC,0BAAyBW,EAAKb,wEAIT,IAAbe,SAKXA,EAASG,MAAKC,OACK,aAAdA,EAAKpB,OAAwBH,EAAoBkB,KAAKK,EAAKnB,qBAKjDmB,EAAKC,MAAMC,QAAOC,GAAgB,SAAXA,EAAEvB,OAEjCwB,SAAQ,CAACzB,EAAM0B,EAAOJ,WACrBK,EAAehB,OAAOW,EAAMI,EAAQ,IACpCE,EAAgBjB,OAAOW,EAAMI,EAAQ,IACrCG,EAAWlB,OAAOW,EAAMI,EAAQ,OACPE,EAAc3B,MAAQE,EAAcwB,IAAiBxB,EAAcH,GAGtE,OAErB8B,EAAQ,CAAE7B,KAAM2B,EAAc3B,KAAMC,MAAO0B,EAAc1B,OACzD6B,EAAQ,CACb9B,KAAM,MACNC,MAAO,IACP8B,OAAQjC,EAAuB8B,GAAYA,EAASG,OAAS,GAC7DC,MAAOlC,EAAuB8B,GAAY,GAAK,MAxEtD,SAAsBP,EAAOtB,KAASkC,SAC/BR,EAAQJ,EAAMa,WAAUX,GAAKA,IAAMxB,IACzCsB,EAAMc,OAAOC,MAAMf,EAAO,CAACI,EAAQ,EAAG,GAAGY,OACxCC,MAAMC,UAAUC,MAAMC,QAAQR,EAAQ,KAwElCS,CAAatB,EAAKC,MAAOtB,EAAM,CAAC+B,EAAOD,SAIlC,WAGFc,EAAgB3B,EAAS4B,WAE3BD,IAAkB7B,EAAKb,QACtBQ,EAAUK,EAAK+B,YAAY,CAAE5C,MAAO0C,IACnC7B,EAAKb,MAAQ0C,MAMtBrC,OAAOC,QAAQuC,SAAU"}
package/package.json CHANGED
@@ -1,49 +1,43 @@
1
1
  {
2
2
  "name": "postcss-double-position-gradients",
3
- "version": "1.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "Use double-position gradients in CSS",
5
5
  "author": "Jonathan Neal <jonathantneal@hotmail.com>",
6
6
  "license": "CC0-1.0",
7
- "repository": "jonathantneal/postcss-double-position-gradients",
8
- "homepage": "https://github.com/jonathantneal/postcss-double-position-gradients#readme",
9
- "bugs": "https://github.com/jonathantneal/postcss-double-position-gradients/issues",
10
- "main": "index.cjs.js",
11
- "module": "index.es.mjs",
7
+ "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-double-position-gradients#readme",
8
+ "bugs": "https://github.com/csstools/postcss-plugins/issues",
9
+ "main": "dist/index.cjs",
10
+ "module": "dist/index.mjs",
12
11
  "files": [
13
- "index.cjs.js",
14
- "index.cjs.js.map",
15
- "index.es.mjs",
16
- "index.es.mjs.map"
12
+ "CHANGELOG.md",
13
+ "INSTALL.md",
14
+ "LICENSE.md",
15
+ "README.md",
16
+ "dist"
17
17
  ],
18
+ "bin": {
19
+ "postcss-double-position-gradients": "dist/cli.mjs"
20
+ },
18
21
  "scripts": {
19
- "prepublishOnly": "npm test",
20
- "pretest": "rollup -c .rollup.js --silent",
21
- "test": "npm run test:js && npm run test:tape",
22
- "test:js": "eslint *.js --cache --ignore-path .gitignore --quiet",
23
- "test:tape": "postcss-tape"
22
+ "build": "rollup -c ../../rollup/default.js",
23
+ "clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true });\"",
24
+ "lint": "eslint ./src --ext .js --ext .ts --ext .mjs --no-error-on-unmatched-pattern",
25
+ "prepublishOnly": "npm run clean && npm run build && npm run test",
26
+ "stryker": "stryker run --logLevel error",
27
+ "test": "postcss-tape --ci"
24
28
  },
25
29
  "engines": {
26
- "node": ">=6.0.0"
30
+ "node": "^12 || ^14 || >=16"
27
31
  },
28
32
  "dependencies": {
29
- "postcss": "^7.0.5",
30
- "postcss-values-parser": "^2.0.0"
33
+ "postcss-value-parser": "^4.2.0"
31
34
  },
32
35
  "devDependencies": {
33
- "@babel/core": "^7.1.2",
34
- "@babel/plugin-syntax-dynamic-import": "^7.0.0",
35
- "@babel/preset-env": "^7.1.0",
36
- "babel-eslint": "^10.0.1",
37
- "eslint": "^5.8.0",
38
- "eslint-config-dev": "^2.0.0",
39
- "postcss-tape": "^2.2.0",
40
- "pre-commit": "^1.2.2",
41
- "rollup": "^0.66.6",
42
- "rollup-plugin-babel": "^4.0.3"
36
+ "postcss": "^8.3.6",
37
+ "postcss-tape": "^6.0.1"
43
38
  },
44
- "eslintConfig": {
45
- "extends": "dev",
46
- "parser": "babel-eslint"
39
+ "peerDependencies": {
40
+ "postcss": "^8.3"
47
41
  },
48
42
  "keywords": [
49
43
  "postcss",
@@ -59,5 +53,10 @@
59
53
  "stop",
60
54
  "syntax",
61
55
  "repeating"
62
- ]
56
+ ],
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "https://github.com/csstools/postcss-plugins.git",
60
+ "directory": "plugins/postcss-double-position-gradients"
61
+ }
63
62
  }
package/index.cjs.js DELETED
@@ -1,63 +0,0 @@
1
- 'use strict';
2
-
3
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
-
5
- var postcss = _interopDefault(require('postcss'));
6
- var valueParser = _interopDefault(require('postcss-values-parser'));
7
-
8
- var index = postcss.plugin('postcss-double-position-gradients', opts => {
9
- const preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : true;
10
- return root => {
11
- // walk every declaration
12
- root.walkDecls(decl => {
13
- const originalValue = decl.value; // if the declaration value contains a gradient
14
-
15
- if (gradientFunctionRegExp.test(originalValue)) {
16
- const ast = valueParser(originalValue).parse(); // walk every function in the declaration value
17
-
18
- ast.walkFunctionNodes(fn => {
19
- // if the function is a gradient
20
- if (gradientFunctionNameRegExp.test(fn.value)) {
21
- const nodes = fn.nodes.slice(1, -1); // walk every argument to the function
22
-
23
- nodes.forEach((node, index) => {
24
- const node1back = Object(nodes[index - 1]);
25
- const node2back = Object(nodes[index - 2]);
26
- const isDoublePositionLength = node2back.type && node1back.type === 'number' && node.type === 'number'; // if the argument concludes a double-position gradient
27
-
28
- if (isDoublePositionLength) {
29
- // insert the fallback colors
30
- const color = node2back.clone();
31
- const comma = valueParser.comma({
32
- value: ',',
33
- raws: {
34
- after: ' '
35
- }
36
- });
37
- fn.insertBefore(node, comma);
38
- fn.insertBefore(node, color);
39
- }
40
- });
41
- }
42
- });
43
- const modifiedValue = ast.toString(); // if the value has changed due to double-position gradients
44
-
45
- if (originalValue !== modifiedValue) {
46
- // add the fallback value
47
- decl.cloneBefore({
48
- value: modifiedValue
49
- }); // conditionally remove the double-position gradient
50
-
51
- if (!preserve) {
52
- decl.remove();
53
- }
54
- }
55
- }
56
- });
57
- };
58
- });
59
- const gradientFunctionRegExp = /(repeating-)?(conic|linear|radial)-gradient\([\W\w]*\)/i;
60
- const gradientFunctionNameRegExp = /^(repeating-)?(conic|linear|radial)-gradient$/i;
61
-
62
- module.exports = index;
63
- //# sourceMappingURL=index.cjs.js.map
package/index.cjs.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs.js","sources":["index.js"],"sourcesContent":["import postcss from 'postcss';\nimport valueParser from 'postcss-values-parser';\n\nexport default postcss.plugin('postcss-double-position-gradients', opts => {\n\tconst preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : true;\n\n\treturn root => {\n\t\t// walk every declaration\n\t\troot.walkDecls(decl => {\n\t\t\tconst { value: originalValue } = decl;\n\n\t\t\t// if the declaration value contains a gradient\n\t\t\tif (gradientFunctionRegExp.test(originalValue)) {\n\t\t\t\tconst ast = valueParser(originalValue).parse();\n\n\t\t\t\t// walk every function in the declaration value\n\t\t\t\tast.walkFunctionNodes(fn => {\n\t\t\t\t\t// if the function is a gradient\n\t\t\t\t\tif (gradientFunctionNameRegExp.test(fn.value)) {\n\t\t\t\t\t\tconst nodes = fn.nodes.slice(1, -1);\n\n\t\t\t\t\t\t// walk every argument to the function\n\t\t\t\t\t\tnodes.forEach((node, index) => {\n\t\t\t\t\t\t\tconst node1back = Object(nodes[index - 1]);\n\t\t\t\t\t\t\tconst node2back = Object(nodes[index - 2]);\n\n\t\t\t\t\t\t\tconst isDoublePositionLength = node2back.type && node1back.type === 'number' && node.type === 'number';\n\n\t\t\t\t\t\t\t// if the argument concludes a double-position gradient\n\t\t\t\t\t\t\tif (isDoublePositionLength) {\n\t\t\t\t\t\t\t\t// insert the fallback colors\n\t\t\t\t\t\t\t\tconst color = node2back.clone();\n\t\t\t\t\t\t\t\tconst comma = valueParser.comma({ value: ',', raws: { after: ' ' } });\n\n\t\t\t\t\t\t\t\tfn.insertBefore(node, comma);\n\t\t\t\t\t\t\t\tfn.insertBefore(node, color);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tconst modifiedValue = ast.toString();\n\n\t\t\t\t// if the value has changed due to double-position gradients\n\t\t\t\tif (originalValue !== modifiedValue) {\n\t\t\t\t\t// add the fallback value\n\t\t\t\t\tdecl.cloneBefore({ value: modifiedValue });\n\n\t\t\t\t\t// conditionally remove the double-position gradient\n\t\t\t\t\tif (!preserve) {\n\t\t\t\t\t\tdecl.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n});\n\nconst gradientFunctionRegExp = /(repeating-)?(conic|linear|radial)-gradient\\([\\W\\w]*\\)/i;\nconst gradientFunctionNameRegExp = /^(repeating-)?(conic|linear|radial)-gradient$/i;\n"],"names":["postcss","plugin","opts","preserve","Object","Boolean","root","walkDecls","decl","originalValue","value","gradientFunctionRegExp","test","ast","valueParser","parse","walkFunctionNodes","fn","gradientFunctionNameRegExp","nodes","slice","forEach","node","index","node1back","node2back","isDoublePositionLength","type","color","clone","comma","raws","after","insertBefore","modifiedValue","toString","cloneBefore","remove"],"mappings":";;;;;;;AAGA,YAAeA,OAAO,CAACC,MAAR,CAAe,mCAAf,EAAoDC,IAAI,IAAI;QACpEC,QAAQ,GAAG,cAAcC,MAAM,CAACF,IAAD,CAApB,GAA6BG,OAAO,CAACH,IAAI,CAACC,QAAN,CAApC,GAAsD,IAAvE;SAEOG,IAAI,IAAI;;IAEdA,IAAI,CAACC,SAAL,CAAeC,IAAI,IAAI;YACPC,aADO,GACWD,IADX,CACdE,KADc;;UAIlBC,sBAAsB,CAACC,IAAvB,CAA4BH,aAA5B,CAAJ,EAAgD;cACzCI,GAAG,GAAGC,WAAW,CAACL,aAAD,CAAX,CAA2BM,KAA3B,EAAZ,CAD+C;;QAI/CF,GAAG,CAACG,iBAAJ,CAAsBC,EAAE,IAAI;;cAEvBC,0BAA0B,CAACN,IAA3B,CAAgCK,EAAE,CAACP,KAAnC,CAAJ,EAA+C;kBACxCS,KAAK,GAAGF,EAAE,CAACE,KAAH,CAASC,KAAT,CAAe,CAAf,EAAkB,CAAC,CAAnB,CAAd,CAD8C;;YAI9CD,KAAK,CAACE,OAAN,CAAc,CAACC,IAAD,EAAOC,KAAP,KAAiB;oBACxBC,SAAS,GAAGpB,MAAM,CAACe,KAAK,CAACI,KAAK,GAAG,CAAT,CAAN,CAAxB;oBACME,SAAS,GAAGrB,MAAM,CAACe,KAAK,CAACI,KAAK,GAAG,CAAT,CAAN,CAAxB;oBAEMG,sBAAsB,GAAGD,SAAS,CAACE,IAAV,IAAkBH,SAAS,CAACG,IAAV,KAAmB,QAArC,IAAiDL,IAAI,CAACK,IAAL,KAAc,QAA9F,CAJ8B;;kBAO1BD,sBAAJ,EAA4B;;sBAErBE,KAAK,GAAGH,SAAS,CAACI,KAAV,EAAd;sBACMC,KAAK,GAAGhB,WAAW,CAACgB,KAAZ,CAAkB;kBAAEpB,KAAK,EAAE,GAAT;kBAAcqB,IAAI,EAAE;oBAAEC,KAAK,EAAE;;iBAA/C,CAAd;gBAEAf,EAAE,CAACgB,YAAH,CAAgBX,IAAhB,EAAsBQ,KAAtB;gBACAb,EAAE,CAACgB,YAAH,CAAgBX,IAAhB,EAAsBM,KAAtB;;aAbF;;SANF;cAyBMM,aAAa,GAAGrB,GAAG,CAACsB,QAAJ,EAAtB,CA7B+C;;YAgC3C1B,aAAa,KAAKyB,aAAtB,EAAqC;;UAEpC1B,IAAI,CAAC4B,WAAL,CAAiB;YAAE1B,KAAK,EAAEwB;WAA1B,EAFoC;;cAKhC,CAAC/B,QAAL,EAAe;YACdK,IAAI,CAAC6B,MAAL;;;;KA1CJ;GAFD;CAHc,CAAf;AAuDA,MAAM1B,sBAAsB,GAAG,yDAA/B;AACA,MAAMO,0BAA0B,GAAG,gDAAnC;;;;"}
package/index.es.mjs DELETED
@@ -1,59 +0,0 @@
1
- import postcss from 'postcss';
2
- import valueParser from 'postcss-values-parser';
3
-
4
- var index = postcss.plugin('postcss-double-position-gradients', opts => {
5
- const preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : true;
6
- return root => {
7
- // walk every declaration
8
- root.walkDecls(decl => {
9
- const originalValue = decl.value; // if the declaration value contains a gradient
10
-
11
- if (gradientFunctionRegExp.test(originalValue)) {
12
- const ast = valueParser(originalValue).parse(); // walk every function in the declaration value
13
-
14
- ast.walkFunctionNodes(fn => {
15
- // if the function is a gradient
16
- if (gradientFunctionNameRegExp.test(fn.value)) {
17
- const nodes = fn.nodes.slice(1, -1); // walk every argument to the function
18
-
19
- nodes.forEach((node, index) => {
20
- const node1back = Object(nodes[index - 1]);
21
- const node2back = Object(nodes[index - 2]);
22
- const isDoublePositionLength = node2back.type && node1back.type === 'number' && node.type === 'number'; // if the argument concludes a double-position gradient
23
-
24
- if (isDoublePositionLength) {
25
- // insert the fallback colors
26
- const color = node2back.clone();
27
- const comma = valueParser.comma({
28
- value: ',',
29
- raws: {
30
- after: ' '
31
- }
32
- });
33
- fn.insertBefore(node, comma);
34
- fn.insertBefore(node, color);
35
- }
36
- });
37
- }
38
- });
39
- const modifiedValue = ast.toString(); // if the value has changed due to double-position gradients
40
-
41
- if (originalValue !== modifiedValue) {
42
- // add the fallback value
43
- decl.cloneBefore({
44
- value: modifiedValue
45
- }); // conditionally remove the double-position gradient
46
-
47
- if (!preserve) {
48
- decl.remove();
49
- }
50
- }
51
- }
52
- });
53
- };
54
- });
55
- const gradientFunctionRegExp = /(repeating-)?(conic|linear|radial)-gradient\([\W\w]*\)/i;
56
- const gradientFunctionNameRegExp = /^(repeating-)?(conic|linear|radial)-gradient$/i;
57
-
58
- export default index;
59
- //# sourceMappingURL=index.es.mjs.map
package/index.es.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.es.mjs","sources":["index.js"],"sourcesContent":["import postcss from 'postcss';\nimport valueParser from 'postcss-values-parser';\n\nexport default postcss.plugin('postcss-double-position-gradients', opts => {\n\tconst preserve = 'preserve' in Object(opts) ? Boolean(opts.preserve) : true;\n\n\treturn root => {\n\t\t// walk every declaration\n\t\troot.walkDecls(decl => {\n\t\t\tconst { value: originalValue } = decl;\n\n\t\t\t// if the declaration value contains a gradient\n\t\t\tif (gradientFunctionRegExp.test(originalValue)) {\n\t\t\t\tconst ast = valueParser(originalValue).parse();\n\n\t\t\t\t// walk every function in the declaration value\n\t\t\t\tast.walkFunctionNodes(fn => {\n\t\t\t\t\t// if the function is a gradient\n\t\t\t\t\tif (gradientFunctionNameRegExp.test(fn.value)) {\n\t\t\t\t\t\tconst nodes = fn.nodes.slice(1, -1);\n\n\t\t\t\t\t\t// walk every argument to the function\n\t\t\t\t\t\tnodes.forEach((node, index) => {\n\t\t\t\t\t\t\tconst node1back = Object(nodes[index - 1]);\n\t\t\t\t\t\t\tconst node2back = Object(nodes[index - 2]);\n\n\t\t\t\t\t\t\tconst isDoublePositionLength = node2back.type && node1back.type === 'number' && node.type === 'number';\n\n\t\t\t\t\t\t\t// if the argument concludes a double-position gradient\n\t\t\t\t\t\t\tif (isDoublePositionLength) {\n\t\t\t\t\t\t\t\t// insert the fallback colors\n\t\t\t\t\t\t\t\tconst color = node2back.clone();\n\t\t\t\t\t\t\t\tconst comma = valueParser.comma({ value: ',', raws: { after: ' ' } });\n\n\t\t\t\t\t\t\t\tfn.insertBefore(node, comma);\n\t\t\t\t\t\t\t\tfn.insertBefore(node, color);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tconst modifiedValue = ast.toString();\n\n\t\t\t\t// if the value has changed due to double-position gradients\n\t\t\t\tif (originalValue !== modifiedValue) {\n\t\t\t\t\t// add the fallback value\n\t\t\t\t\tdecl.cloneBefore({ value: modifiedValue });\n\n\t\t\t\t\t// conditionally remove the double-position gradient\n\t\t\t\t\tif (!preserve) {\n\t\t\t\t\t\tdecl.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n});\n\nconst gradientFunctionRegExp = /(repeating-)?(conic|linear|radial)-gradient\\([\\W\\w]*\\)/i;\nconst gradientFunctionNameRegExp = /^(repeating-)?(conic|linear|radial)-gradient$/i;\n"],"names":["postcss","plugin","opts","preserve","Object","Boolean","root","walkDecls","decl","originalValue","value","gradientFunctionRegExp","test","ast","valueParser","parse","walkFunctionNodes","fn","gradientFunctionNameRegExp","nodes","slice","forEach","node","index","node1back","node2back","isDoublePositionLength","type","color","clone","comma","raws","after","insertBefore","modifiedValue","toString","cloneBefore","remove"],"mappings":";;;AAGA,YAAeA,OAAO,CAACC,MAAR,CAAe,mCAAf,EAAoDC,IAAI,IAAI;QACpEC,QAAQ,GAAG,cAAcC,MAAM,CAACF,IAAD,CAApB,GAA6BG,OAAO,CAACH,IAAI,CAACC,QAAN,CAApC,GAAsD,IAAvE;SAEOG,IAAI,IAAI;;IAEdA,IAAI,CAACC,SAAL,CAAeC,IAAI,IAAI;YACPC,aADO,GACWD,IADX,CACdE,KADc;;UAIlBC,sBAAsB,CAACC,IAAvB,CAA4BH,aAA5B,CAAJ,EAAgD;cACzCI,GAAG,GAAGC,WAAW,CAACL,aAAD,CAAX,CAA2BM,KAA3B,EAAZ,CAD+C;;QAI/CF,GAAG,CAACG,iBAAJ,CAAsBC,EAAE,IAAI;;cAEvBC,0BAA0B,CAACN,IAA3B,CAAgCK,EAAE,CAACP,KAAnC,CAAJ,EAA+C;kBACxCS,KAAK,GAAGF,EAAE,CAACE,KAAH,CAASC,KAAT,CAAe,CAAf,EAAkB,CAAC,CAAnB,CAAd,CAD8C;;YAI9CD,KAAK,CAACE,OAAN,CAAc,CAACC,IAAD,EAAOC,KAAP,KAAiB;oBACxBC,SAAS,GAAGpB,MAAM,CAACe,KAAK,CAACI,KAAK,GAAG,CAAT,CAAN,CAAxB;oBACME,SAAS,GAAGrB,MAAM,CAACe,KAAK,CAACI,KAAK,GAAG,CAAT,CAAN,CAAxB;oBAEMG,sBAAsB,GAAGD,SAAS,CAACE,IAAV,IAAkBH,SAAS,CAACG,IAAV,KAAmB,QAArC,IAAiDL,IAAI,CAACK,IAAL,KAAc,QAA9F,CAJ8B;;kBAO1BD,sBAAJ,EAA4B;;sBAErBE,KAAK,GAAGH,SAAS,CAACI,KAAV,EAAd;sBACMC,KAAK,GAAGhB,WAAW,CAACgB,KAAZ,CAAkB;kBAAEpB,KAAK,EAAE,GAAT;kBAAcqB,IAAI,EAAE;oBAAEC,KAAK,EAAE;;iBAA/C,CAAd;gBAEAf,EAAE,CAACgB,YAAH,CAAgBX,IAAhB,EAAsBQ,KAAtB;gBACAb,EAAE,CAACgB,YAAH,CAAgBX,IAAhB,EAAsBM,KAAtB;;aAbF;;SANF;cAyBMM,aAAa,GAAGrB,GAAG,CAACsB,QAAJ,EAAtB,CA7B+C;;YAgC3C1B,aAAa,KAAKyB,aAAtB,EAAqC;;UAEpC1B,IAAI,CAAC4B,WAAL,CAAiB;YAAE1B,KAAK,EAAEwB;WAA1B,EAFoC;;cAKhC,CAAC/B,QAAL,EAAe;YACdK,IAAI,CAAC6B,MAAL;;;;KA1CJ;GAFD;CAHc,CAAf;AAuDA,MAAM1B,sBAAsB,GAAG,yDAA/B;AACA,MAAMO,0BAA0B,GAAG,gDAAnC;;;;"}