postcss-focus-within 5.0.2 → 6.0.0

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,20 @@
1
1
  # Changes to PostCSS Focus Within
2
2
 
3
+ ### 6.0.0 (July 8, 2022)
4
+
5
+ - Breaking: Changed generated classes so it prepends `.js-focus-within` to the
6
+ generated class so CSS is applied when the polyfill is known to be running.
7
+ - Added: Now bundling browser polyfill.
8
+
9
+ ### 5.0.4 (February 5, 2022)
10
+
11
+ - Improved `es module` and `commonjs` compatibility
12
+
13
+ ### 5.0.3 (January 2, 2022)
14
+
15
+ - Removed Sourcemaps from package tarball.
16
+ - Moved CLI to CLI Package. See [announcement](https://github.com/csstools/postcss-plugins/discussions/121).
17
+
3
18
  ### 5.0.2 (December 13, 2021)
4
19
 
5
20
  - Changed: now uses `postcss-selector-parser` for parsing.
package/README.md CHANGED
@@ -1,36 +1,28 @@
1
1
  # PostCSS Focus Within [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][postcss]
2
2
 
3
- [<img alt="npm version" src="https://img.shields.io/npm/v/postcss-focus-within.svg" height="20">][npm-url]
4
- [<img alt="CSS Standard Status" src="https://cssdb.org/badge/focus-within-pseudo-class.svg" height="20">][css-url]
5
- [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/tree/main/postcss-focus-within/workflows/test/badge.svg" height="20">][cli-url]
6
- [<img alt="support chat" src="https://img.shields.io/badge/support-chat-blue.svg" height="20">][git-url]
3
+ [<img alt="npm version" src="https://img.shields.io/npm/v/postcss-focus-within.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/focus-within-pseudo-class.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
7
4
 
8
- [PostCSS Focus Within] lets you use the `:focus-within` pseudo-class in CSS,
5
+ [PostCSS Focus Within] lets you use the `:focus-within` pseudo-class in CSS,
9
6
  following the [Selectors Level 4 specification].
10
7
 
11
- It is the companion to the [focus-within polyfill].
12
-
13
- [!['Can I use' table](https://caniuse.bitsofco.de/image/css-focus-within.png)](https://caniuse.com/#feat=css-focus-within)
14
-
15
- ```css
8
+ ```pcss
16
9
  .my-form-field:focus-within label {
17
- background-color: yellow;
10
+ background-color: yellow;
18
11
  }
19
12
 
20
13
  /* becomes */
21
14
 
22
- .my-form-field[focus-within] label {
23
- background-color: yellow;
15
+ .my-form-field[focus-within].js-focus-within label, .js-focus-within .my-form-field[focus-within] label {
16
+ background-color: yellow;
24
17
  }
25
-
26
18
  .my-form-field:focus-within label {
27
- background-color: yellow;
19
+ background-color: yellow;
28
20
  }
29
21
  ```
30
22
 
31
23
  [PostCSS Focus Within] duplicates rules using the `:focus-within` pseudo-class
32
24
  with a `[focus-within]` attribute selector, the same selector used by the
33
- [focus-within polyfill]. This replacement selector can be changed using the
25
+ focus-within polyfill. This replacement selector can be changed using the
34
26
  `replaceWith` option. Also, the preservation of the original `:focus-within`
35
27
  rule can be disabled using the `preserve` option.
36
28
 
@@ -42,22 +34,14 @@ Add [PostCSS Focus Within] to your project:
42
34
  npm install postcss postcss-focus-within --save-dev
43
35
  ```
44
36
 
45
- Use [PostCSS Focus Within] to process your CSS:
46
-
47
- ```js
48
- const postcssFocusWithin = require('postcss-focus-within');
49
-
50
- postcssFocusWithin.process(YOUR_CSS /*, processOptions, pluginOptions */);
51
- ```
52
-
53
- Or use it as a [PostCSS] plugin:
37
+ Use it as a [PostCSS] plugin:
54
38
 
55
39
  ```js
56
40
  const postcss = require('postcss');
57
41
  const postcssFocusWithin = require('postcss-focus-within');
58
42
 
59
43
  postcss([
60
- postcssFocusWithin(/* pluginOptions */)
44
+ postcssFocusWithin(/* pluginOptions */)
61
45
  ]).process(YOUR_CSS /*, processOptions */);
62
46
  ```
63
47
 
@@ -71,22 +55,22 @@ instructions for:
71
55
 
72
56
  ### preserve
73
57
 
74
- The `preserve` option defines whether the original selector should remain. By
75
- default, the original selector is preserved.
58
+ The `preserve` option determines whether the original notation
59
+ is preserved. By default, it is preserved.
76
60
 
77
61
  ```js
78
- focusWithin({ preserve: false });
62
+ postcssFocusWithin({ preserve: false })
79
63
  ```
80
64
 
81
- ```css
65
+ ```pcss
82
66
  .my-form-field:focus-within label {
83
- background-color: yellow;
67
+ background-color: yellow;
84
68
  }
85
69
 
86
70
  /* becomes */
87
71
 
88
- .my-form-field[focus-within] label {
89
- background-color: yellow;
72
+ .my-form-field[focus-within].js-focus-within label, .js-focus-within .my-form-field[focus-within] label {
73
+ background-color: yellow;
90
74
  }
91
75
  ```
92
76
 
@@ -94,36 +78,82 @@ focusWithin({ preserve: false });
94
78
 
95
79
  The `replaceWith` option defines the selector to replace `:focus-within`. By
96
80
  default, the replacement selector is `[focus-within]`.
81
+ Please note that using a class, leverages `classList` under the hood which
82
+ might not be supported on some old browsers such as IE9, so you may need
83
+ to polyfill `classList` in those cases.
97
84
 
98
85
  ```js
99
- focusWithin({ replaceWith: '.focus-within' });
86
+ postcssFocusWithin({ replaceWith: '.focus-within' });
100
87
  ```
101
88
 
102
- ```css
89
+ ```pcss
103
90
  .my-form-field:focus-within label {
104
- background-color: yellow;
91
+ background-color: yellow;
105
92
  }
106
93
 
107
94
  /* becomes */
108
95
 
109
- .my-form-field.focus-within label {
110
- background-color: yellow;
96
+ .my-form-field.focus-within.js-focus-within label, .js-focus-within .my-form-field.focus-within label {
97
+ background-color: yellow;
111
98
  }
112
-
113
99
  .my-form-field:focus-within label {
114
- background-color: yellow;
100
+ background-color: yellow;
115
101
  }
116
102
  ```
117
103
 
104
+ Note that changing this option implies that it needs to be passed to the
105
+ browser polyfill as well.
106
+
107
+ ## Browser
108
+
109
+ ```js
110
+ import focusWithinInit from 'postcss-focus-within/browser';
111
+
112
+ focusWithinInit();
113
+ ```
114
+
115
+ or
116
+
117
+ ```html
118
+ <!-- When using a CDN url you will have to manually update the version number -->
119
+ <script src="https://unpkg.com/postcss-focus-within@5.0.4/dist/browser-global.js"></script>
120
+ <script>focusWithinInit()</script>
121
+ ```
122
+
123
+ [PostCSS Focus Within] works in all major browsers, including Safari 6+ and
124
+ Internet Explorer 9+ without any additional polyfills.
125
+
126
+ ### Browser Usage
127
+
128
+ #### force
129
+
130
+ The `force` option determines whether the library runs even if the browser
131
+ supports the selector or not. By default, it won't run if the browser does
132
+ support the selector.
133
+
134
+ ```js
135
+ focusWithinInit({ force: true });
136
+ ```
137
+
138
+ #### replaceWith
139
+
140
+ Similar to the option for the PostCSS Plugin, `replaceWith` determines the
141
+ attribute or class to apply to an element when it's considered to be `:focus-within`.
142
+
143
+ ```js
144
+ focusWithinInit({ replaceWith: '.focus-within });
145
+ ```
146
+
147
+ This option should be used if it was changed at PostCSS configuration level.
148
+
149
+ [cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test
118
150
  [css-url]: https://cssdb.org/#focus-within-pseudo-class
119
- [cli-url]: https://github.com/csstools/postcss-plugins/tree/main/postcss-focus-within/actions/workflows/test.yml?query=workflow/test
120
- [git-url]: https://gitter.im/postcss/postcss
151
+ [discord]: https://discord.gg/bUadyRwkJS
121
152
  [npm-url]: https://www.npmjs.com/package/postcss-focus-within
122
153
 
123
- [focus-within polyfill]: https://github.com/jsxtools/focus-within
124
154
  [Gulp PostCSS]: https://github.com/postcss/gulp-postcss
125
155
  [Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
126
156
  [PostCSS]: https://github.com/postcss/postcss
127
- [PostCSS Focus Within]: https://github.com/csstools/postcss-plugins/tree/main/postcss-focus-within
128
157
  [PostCSS Loader]: https://github.com/postcss/postcss-loader
158
+ [PostCSS Focus Within]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-focus-within
129
159
  [Selectors Level 4 specification]: https://www.w3.org/TR/selectors-4/#the-focus-within-pseudo
@@ -0,0 +1,2 @@
1
+ !function(){var e=[" ",">","~",":","+","@","#","(",")"];self.focusWithinInit=function(t){var n={force:!1,replaceWith:"[focus-within]"};if(void 0!==t&&"force"in t&&(n.force=t.force),void 0!==t&&"replaceWith"in t&&(n.replaceWith=t.replaceWith),!function(t){for(var n=!0,c=0,i=e.length;c<i&&n;c++)t.indexOf(e[c])>-1&&(n=!1);return n}(n.replaceWith))throw new Error(n.replaceWith+" is not a valid replacement since it can't be applied to single elements.");try{if(document.querySelector(":focus-within"),!n.force)return}catch(e){}var c,i,o,r,u,a=(c=n.replaceWith,u=[],"."===c[0]?(i=c.slice(1),o=function(e){return e.classList.remove(i)},r=function(e){return e.classList.add(i)}):(i=c.slice(1,-1),o=function(e){return e.removeAttribute(i,"")},r=function(e){return e.setAttribute(i,"")}),function(){u.forEach((function(e){return o(e)})),u.length=0;var e=document.activeElement;if(!/^(#document|HTML|BODY)$/.test(Object(e).nodeName))for(;e&&1===e.nodeType;)r(e),u.push(e),e=e.parentNode}),d=function(){document.documentElement.className.indexOf("js-focus-within")>-1||(document.documentElement.className=document.documentElement.className+" js-focus-within",document.addEventListener("focus",a,!0),document.addEventListener("blur",a,!0))};"complete"===document.readyState?d():document.addEventListener("DOMContentLoaded",d)}}();
2
+ //# sourceMappingURL=browser-global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-global.js","sources":["../src/is-valid-replacement.mjs","../src/browser-global.js","../src/browser.js"],"sourcesContent":["const INVALID_SELECTOR_CHAR = [\n\t' ', // Can't use child selector\n\t'>', // Can't use direct child selector\n\t'~', // Can't use sibling selector\n\t':', // Can't use pseudo selector\n\t'+', // Can't use adjacent selector\n\t'@', // Can't use at\n\t'#', // Can't use id selector\n\t'(', // Can't use parenthesis\n\t')', // Can't use parenthesis\n];\n\nexport default function isValidReplacement(selector) {\n\tlet isValid = true;\n\n\t// Purposely archaic so it's interoperable in old browsers\n\tfor (let i = 0, length = INVALID_SELECTOR_CHAR.length; i < length && isValid; i++) {\n\t\tif (selector.indexOf(INVALID_SELECTOR_CHAR[i]) > -1) {\n\t\t\tisValid = false;\n\t\t}\n\t}\n\n\treturn isValid;\n}\n","/* global self */\nimport { default as focusWithinInit } from './browser';\nself.focusWithinInit = focusWithinInit;\n","/* global document */\nimport isValidReplacement from './is-valid-replacement.mjs';\nfunction generateHandler(replaceWith) {\n\tlet selector;\n\tlet remove;\n\tlet add;\n\tconst lastElements = [];\n\n\tif (replaceWith[0] === '.') {\n\t\tselector = replaceWith.slice(1);\n\t\tremove = (el) => el.classList.remove(selector);\n\t\tadd = (el) => el.classList.add(selector);\n\t} else {\n\t\t// A bit naive\n\t\tselector = replaceWith.slice(1, -1);\n\t\tremove = (el) => el.removeAttribute(selector, '');\n\t\tadd = (el) => el.setAttribute(selector, '');\n\t}\n\n\treturn function handleFocusChange() {\n\t\tlastElements.forEach(lastElement => remove(lastElement));\n\t\tlastElements.length = 0;\n\n\t\tlet activeElement = document.activeElement;\n\n\t\t// only add focus if it has not been added and is not the document element\n\t\tif (!/^(#document|HTML|BODY)$/.test(Object(activeElement).nodeName)) {\n\t\t\twhile (activeElement && activeElement.nodeType === 1) {\n\t\t\t\tadd(activeElement);\n\t\t\t\tlastElements.push(activeElement);\n\n\t\t\t\tactiveElement = activeElement.parentNode;\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport default function focusWithin(opts) {\n\t// configuration\n\tconst options = {\n\t\tforce: false,\n\t\treplaceWith: '[focus-within]',\n\t};\n\n\tif (typeof opts !== 'undefined' && 'force' in opts) {\n\t\toptions.force = opts.force;\n\t}\n\n\tif (typeof opts !== 'undefined' && 'replaceWith' in opts) {\n\t\toptions.replaceWith = opts.replaceWith;\n\t}\n\n\tif (!isValidReplacement(options.replaceWith)) {\n\t\tthrow new Error(`${options.replaceWith} is not a valid replacement since it can't be applied to single elements.`);\n\t}\n\n\ttry {\n\t\tdocument.querySelector(':focus-within');\n\n\t\tif (!options.force) {\n\t\t\treturn;\n\t\t}\n\t} catch (ignoredError) { /* do nothing and continue */ }\n\n\tconst handleFocusChange = generateHandler(options.replaceWith);\n\n\tconst initialize = function initializeEventListeners() {\n\t\tif (document.documentElement.className.indexOf('js-focus-within') > -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.className = document.documentElement.className + ' js-focus-within';\n\t\tdocument.addEventListener('focus', handleFocusChange, true);\n\t\tdocument.addEventListener('blur', handleFocusChange, true);\n\t};\n\n\tif (document.readyState === 'complete') {\n\t\tinitialize();\n\t} else {\n\t\tdocument.addEventListener('DOMContentLoaded', initialize);\n\t}\n}\n"],"names":["INVALID_SELECTOR_CHAR","self","focusWithinInit","opts","options","force","replaceWith","selector","isValid","i","length","indexOf","isValidReplacement","Error","document","querySelector","ignoredError","remove","add","lastElements","handleFocusChange","slice","el","classList","removeAttribute","setAttribute","forEach","lastElement","activeElement","test","Object","nodeName","nodeType","push","parentNode","initialize","documentElement","className","addEventListener","readyState"],"mappings":"YAAA,IAAMA,EAAwB,CAC7B,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KCPDC,KAAKC,gBCmCU,SAAqBC,GAEnC,IAAMC,EAAU,CACfC,OAAO,EACPC,YAAa,kBAWd,QARoB,IAATH,GAAwB,UAAWA,IAC7CC,EAAQC,MAAQF,EAAKE,YAGF,IAATF,GAAwB,gBAAiBA,IACnDC,EAAQE,YAAcH,EAAKG,cFrCd,SAA4BC,GAI1C,IAHA,IAAIC,GAAU,EAGLC,EAAI,EAAGC,EAASV,EAAsBU,OAAQD,EAAIC,GAAUF,EAASC,IACzEF,EAASI,QAAQX,EAAsBS,KAAO,IACjDD,GAAU,GAIZ,OAAOA,EE8BFI,CAAmBR,EAAQE,aAC/B,MAAM,IAAIO,MAAST,EAAQE,YAA3B,6EAGD,IAGC,GAFAQ,SAASC,cAAc,kBAElBX,EAAQC,MACZ,OAEA,MAAOW,IAET,IA9DwBV,EACpBC,EACAU,EACAC,EACEC,EA0DAC,GA9DkBd,EA8DkBF,EAAQE,YA1D5Ca,EAAe,GAEE,MAAnBb,EAAY,IACfC,EAAWD,EAAYe,MAAM,GAC7BJ,EAAS,SAACK,GAAD,OAAQA,EAAGC,UAAUN,OAAOV,IACrCW,EAAM,SAACI,GAAD,OAAQA,EAAGC,UAAUL,IAAIX,MAG/BA,EAAWD,EAAYe,MAAM,GAAI,GACjCJ,EAAS,SAACK,GAAD,OAAQA,EAAGE,gBAAgBjB,EAAU,KAC9CW,EAAM,SAACI,GAAD,OAAQA,EAAGG,aAAalB,EAAU,MAGlC,WACNY,EAAaO,SAAQ,SAAAC,GAAW,OAAIV,EAAOU,MAC3CR,EAAaT,OAAS,EAEtB,IAAIkB,EAAgBd,SAASc,cAG7B,IAAK,0BAA0BC,KAAKC,OAAOF,GAAeG,UACzD,KAAOH,GAA4C,IAA3BA,EAAcI,UACrCd,EAAIU,GACJT,EAAac,KAAKL,GAElBA,EAAgBA,EAAcM,aAmC3BC,EAAa,WACdrB,SAASsB,gBAAgBC,UAAU1B,QAAQ,oBAAsB,IAIrEG,SAASsB,gBAAgBC,UAAYvB,SAASsB,gBAAgBC,UAAY,mBAC1EvB,SAASwB,iBAAiB,QAASlB,GAAmB,GACtDN,SAASwB,iBAAiB,OAAQlB,GAAmB,KAG1B,aAAxBN,SAASyB,WACZJ,IAEArB,SAASwB,iBAAiB,mBAAoBH"}
@@ -0,0 +1,2 @@
1
+ var e=[" ",">","~",":","+","@","#","(",")"];module.exports=function(t){var n={force:!1,replaceWith:"[focus-within]"};if(void 0!==t&&"force"in t&&(n.force=t.force),void 0!==t&&"replaceWith"in t&&(n.replaceWith=t.replaceWith),!function(t){for(var n=!0,c=0,r=e.length;c<r&&n;c++)t.indexOf(e[c])>-1&&(n=!1);return n}(n.replaceWith))throw new Error(n.replaceWith+" is not a valid replacement since it can't be applied to single elements.");try{if(document.querySelector(":focus-within"),!n.force)return}catch(e){}var c,r,o,i,u,a=(c=n.replaceWith,u=[],"."===c[0]?(r=c.slice(1),o=function(e){return e.classList.remove(r)},i=function(e){return e.classList.add(r)}):(r=c.slice(1,-1),o=function(e){return e.removeAttribute(r,"")},i=function(e){return e.setAttribute(r,"")}),function(){u.forEach((function(e){return o(e)})),u.length=0;var e=document.activeElement;if(!/^(#document|HTML|BODY)$/.test(Object(e).nodeName))for(;e&&1===e.nodeType;)i(e),u.push(e),e=e.parentNode}),d=function(){document.documentElement.className.indexOf("js-focus-within")>-1||(document.documentElement.className=document.documentElement.className+" js-focus-within",document.addEventListener("focus",a,!0),document.addEventListener("blur",a,!0))};"complete"===document.readyState?d():document.addEventListener("DOMContentLoaded",d)};
2
+ //# sourceMappingURL=browser.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.cjs","sources":["../src/is-valid-replacement.mjs","../src/browser.js"],"sourcesContent":["const INVALID_SELECTOR_CHAR = [\n\t' ', // Can't use child selector\n\t'>', // Can't use direct child selector\n\t'~', // Can't use sibling selector\n\t':', // Can't use pseudo selector\n\t'+', // Can't use adjacent selector\n\t'@', // Can't use at\n\t'#', // Can't use id selector\n\t'(', // Can't use parenthesis\n\t')', // Can't use parenthesis\n];\n\nexport default function isValidReplacement(selector) {\n\tlet isValid = true;\n\n\t// Purposely archaic so it's interoperable in old browsers\n\tfor (let i = 0, length = INVALID_SELECTOR_CHAR.length; i < length && isValid; i++) {\n\t\tif (selector.indexOf(INVALID_SELECTOR_CHAR[i]) > -1) {\n\t\t\tisValid = false;\n\t\t}\n\t}\n\n\treturn isValid;\n}\n","/* global document */\nimport isValidReplacement from './is-valid-replacement.mjs';\nfunction generateHandler(replaceWith) {\n\tlet selector;\n\tlet remove;\n\tlet add;\n\tconst lastElements = [];\n\n\tif (replaceWith[0] === '.') {\n\t\tselector = replaceWith.slice(1);\n\t\tremove = (el) => el.classList.remove(selector);\n\t\tadd = (el) => el.classList.add(selector);\n\t} else {\n\t\t// A bit naive\n\t\tselector = replaceWith.slice(1, -1);\n\t\tremove = (el) => el.removeAttribute(selector, '');\n\t\tadd = (el) => el.setAttribute(selector, '');\n\t}\n\n\treturn function handleFocusChange() {\n\t\tlastElements.forEach(lastElement => remove(lastElement));\n\t\tlastElements.length = 0;\n\n\t\tlet activeElement = document.activeElement;\n\n\t\t// only add focus if it has not been added and is not the document element\n\t\tif (!/^(#document|HTML|BODY)$/.test(Object(activeElement).nodeName)) {\n\t\t\twhile (activeElement && activeElement.nodeType === 1) {\n\t\t\t\tadd(activeElement);\n\t\t\t\tlastElements.push(activeElement);\n\n\t\t\t\tactiveElement = activeElement.parentNode;\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport default function focusWithin(opts) {\n\t// configuration\n\tconst options = {\n\t\tforce: false,\n\t\treplaceWith: '[focus-within]',\n\t};\n\n\tif (typeof opts !== 'undefined' && 'force' in opts) {\n\t\toptions.force = opts.force;\n\t}\n\n\tif (typeof opts !== 'undefined' && 'replaceWith' in opts) {\n\t\toptions.replaceWith = opts.replaceWith;\n\t}\n\n\tif (!isValidReplacement(options.replaceWith)) {\n\t\tthrow new Error(`${options.replaceWith} is not a valid replacement since it can't be applied to single elements.`);\n\t}\n\n\ttry {\n\t\tdocument.querySelector(':focus-within');\n\n\t\tif (!options.force) {\n\t\t\treturn;\n\t\t}\n\t} catch (ignoredError) { /* do nothing and continue */ }\n\n\tconst handleFocusChange = generateHandler(options.replaceWith);\n\n\tconst initialize = function initializeEventListeners() {\n\t\tif (document.documentElement.className.indexOf('js-focus-within') > -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.className = document.documentElement.className + ' js-focus-within';\n\t\tdocument.addEventListener('focus', handleFocusChange, true);\n\t\tdocument.addEventListener('blur', handleFocusChange, true);\n\t};\n\n\tif (document.readyState === 'complete') {\n\t\tinitialize();\n\t} else {\n\t\tdocument.addEventListener('DOMContentLoaded', initialize);\n\t}\n}\n"],"names":["INVALID_SELECTOR_CHAR","opts","options","force","replaceWith","selector","isValid","i","length","indexOf","isValidReplacement","Error","document","querySelector","ignoredError","remove","add","lastElements","handleFocusChange","slice","el","classList","removeAttribute","setAttribute","forEach","lastElement","activeElement","test","Object","nodeName","nodeType","push","parentNode","initialize","documentElement","className","addEventListener","readyState"],"mappings":"AAAA,IAAMA,EAAwB,CAC7B,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,oBC4Bc,SAAqBC,GAEnC,IAAMC,EAAU,CACfC,OAAO,EACPC,YAAa,kBAWd,QARoB,IAATH,GAAwB,UAAWA,IAC7CC,EAAQC,MAAQF,EAAKE,YAGF,IAATF,GAAwB,gBAAiBA,IACnDC,EAAQE,YAAcH,EAAKG,cDrCd,SAA4BC,GAI1C,IAHA,IAAIC,GAAU,EAGLC,EAAI,EAAGC,EAASR,EAAsBQ,OAAQD,EAAIC,GAAUF,EAASC,IACzEF,EAASI,QAAQT,EAAsBO,KAAO,IACjDD,GAAU,GAIZ,OAAOA,EC8BFI,CAAmBR,EAAQE,aAC/B,MAAM,IAAIO,MAAST,EAAQE,YAA3B,6EAGD,IAGC,GAFAQ,SAASC,cAAc,kBAElBX,EAAQC,MACZ,OAEA,MAAOW,IAET,IA9DwBV,EACpBC,EACAU,EACAC,EACEC,EA0DAC,GA9DkBd,EA8DkBF,EAAQE,YA1D5Ca,EAAe,GAEE,MAAnBb,EAAY,IACfC,EAAWD,EAAYe,MAAM,GAC7BJ,EAAS,SAACK,GAAD,OAAQA,EAAGC,UAAUN,OAAOV,IACrCW,EAAM,SAACI,GAAD,OAAQA,EAAGC,UAAUL,IAAIX,MAG/BA,EAAWD,EAAYe,MAAM,GAAI,GACjCJ,EAAS,SAACK,GAAD,OAAQA,EAAGE,gBAAgBjB,EAAU,KAC9CW,EAAM,SAACI,GAAD,OAAQA,EAAGG,aAAalB,EAAU,MAGlC,WACNY,EAAaO,SAAQ,SAAAC,GAAW,OAAIV,EAAOU,MAC3CR,EAAaT,OAAS,EAEtB,IAAIkB,EAAgBd,SAASc,cAG7B,IAAK,0BAA0BC,KAAKC,OAAOF,GAAeG,UACzD,KAAOH,GAA4C,IAA3BA,EAAcI,UACrCd,EAAIU,GACJT,EAAac,KAAKL,GAElBA,EAAgBA,EAAcM,aAmC3BC,EAAa,WACdrB,SAASsB,gBAAgBC,UAAU1B,QAAQ,oBAAsB,IAIrEG,SAASsB,gBAAgBC,UAAYvB,SAASsB,gBAAgBC,UAAY,mBAC1EvB,SAASwB,iBAAiB,QAASlB,GAAmB,GACtDN,SAASwB,iBAAiB,OAAQlB,GAAmB,KAG1B,aAAxBN,SAASyB,WACZJ,IAEArB,SAASwB,iBAAiB,mBAAoBH"}
@@ -0,0 +1,2 @@
1
+ var e=[" ",">","~",":","+","@","#","(",")"];function t(t){var n={force:!1,replaceWith:"[focus-within]"};if(void 0!==t&&"force"in t&&(n.force=t.force),void 0!==t&&"replaceWith"in t&&(n.replaceWith=t.replaceWith),!function(t){for(var n=!0,c=0,r=e.length;c<r&&n;c++)t.indexOf(e[c])>-1&&(n=!1);return n}(n.replaceWith))throw new Error(n.replaceWith+" is not a valid replacement since it can't be applied to single elements.");try{if(document.querySelector(":focus-within"),!n.force)return}catch(e){}var c,r,o,i,u,a=(c=n.replaceWith,u=[],"."===c[0]?(r=c.slice(1),o=function(e){return e.classList.remove(r)},i=function(e){return e.classList.add(r)}):(r=c.slice(1,-1),o=function(e){return e.removeAttribute(r,"")},i=function(e){return e.setAttribute(r,"")}),function(){u.forEach((function(e){return o(e)})),u.length=0;var e=document.activeElement;if(!/^(#document|HTML|BODY)$/.test(Object(e).nodeName))for(;e&&1===e.nodeType;)i(e),u.push(e),e=e.parentNode}),d=function(){document.documentElement.className.indexOf("js-focus-within")>-1||(document.documentElement.className=document.documentElement.className+" js-focus-within",document.addEventListener("focus",a,!0),document.addEventListener("blur",a,!0))};"complete"===document.readyState?d():document.addEventListener("DOMContentLoaded",d)}export{t as default};
2
+ //# sourceMappingURL=browser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.mjs","sources":["../src/is-valid-replacement.mjs","../src/browser.js"],"sourcesContent":["const INVALID_SELECTOR_CHAR = [\n\t' ', // Can't use child selector\n\t'>', // Can't use direct child selector\n\t'~', // Can't use sibling selector\n\t':', // Can't use pseudo selector\n\t'+', // Can't use adjacent selector\n\t'@', // Can't use at\n\t'#', // Can't use id selector\n\t'(', // Can't use parenthesis\n\t')', // Can't use parenthesis\n];\n\nexport default function isValidReplacement(selector) {\n\tlet isValid = true;\n\n\t// Purposely archaic so it's interoperable in old browsers\n\tfor (let i = 0, length = INVALID_SELECTOR_CHAR.length; i < length && isValid; i++) {\n\t\tif (selector.indexOf(INVALID_SELECTOR_CHAR[i]) > -1) {\n\t\t\tisValid = false;\n\t\t}\n\t}\n\n\treturn isValid;\n}\n","/* global document */\nimport isValidReplacement from './is-valid-replacement.mjs';\nfunction generateHandler(replaceWith) {\n\tlet selector;\n\tlet remove;\n\tlet add;\n\tconst lastElements = [];\n\n\tif (replaceWith[0] === '.') {\n\t\tselector = replaceWith.slice(1);\n\t\tremove = (el) => el.classList.remove(selector);\n\t\tadd = (el) => el.classList.add(selector);\n\t} else {\n\t\t// A bit naive\n\t\tselector = replaceWith.slice(1, -1);\n\t\tremove = (el) => el.removeAttribute(selector, '');\n\t\tadd = (el) => el.setAttribute(selector, '');\n\t}\n\n\treturn function handleFocusChange() {\n\t\tlastElements.forEach(lastElement => remove(lastElement));\n\t\tlastElements.length = 0;\n\n\t\tlet activeElement = document.activeElement;\n\n\t\t// only add focus if it has not been added and is not the document element\n\t\tif (!/^(#document|HTML|BODY)$/.test(Object(activeElement).nodeName)) {\n\t\t\twhile (activeElement && activeElement.nodeType === 1) {\n\t\t\t\tadd(activeElement);\n\t\t\t\tlastElements.push(activeElement);\n\n\t\t\t\tactiveElement = activeElement.parentNode;\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport default function focusWithin(opts) {\n\t// configuration\n\tconst options = {\n\t\tforce: false,\n\t\treplaceWith: '[focus-within]',\n\t};\n\n\tif (typeof opts !== 'undefined' && 'force' in opts) {\n\t\toptions.force = opts.force;\n\t}\n\n\tif (typeof opts !== 'undefined' && 'replaceWith' in opts) {\n\t\toptions.replaceWith = opts.replaceWith;\n\t}\n\n\tif (!isValidReplacement(options.replaceWith)) {\n\t\tthrow new Error(`${options.replaceWith} is not a valid replacement since it can't be applied to single elements.`);\n\t}\n\n\ttry {\n\t\tdocument.querySelector(':focus-within');\n\n\t\tif (!options.force) {\n\t\t\treturn;\n\t\t}\n\t} catch (ignoredError) { /* do nothing and continue */ }\n\n\tconst handleFocusChange = generateHandler(options.replaceWith);\n\n\tconst initialize = function initializeEventListeners() {\n\t\tif (document.documentElement.className.indexOf('js-focus-within') > -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.className = document.documentElement.className + ' js-focus-within';\n\t\tdocument.addEventListener('focus', handleFocusChange, true);\n\t\tdocument.addEventListener('blur', handleFocusChange, true);\n\t};\n\n\tif (document.readyState === 'complete') {\n\t\tinitialize();\n\t} else {\n\t\tdocument.addEventListener('DOMContentLoaded', initialize);\n\t}\n}\n"],"names":["INVALID_SELECTOR_CHAR","focusWithin","opts","options","force","replaceWith","selector","isValid","i","length","indexOf","isValidReplacement","Error","document","querySelector","ignoredError","remove","add","lastElements","handleFocusChange","slice","el","classList","removeAttribute","setAttribute","forEach","lastElement","activeElement","test","Object","nodeName","nodeType","push","parentNode","initialize","documentElement","className","addEventListener","readyState"],"mappings":"AAAA,IAAMA,EAAwB,CAC7B,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KC4Bc,SAASC,EAAYC,GAEnC,IAAMC,EAAU,CACfC,OAAO,EACPC,YAAa,kBAWd,QARoB,IAATH,GAAwB,UAAWA,IAC7CC,EAAQC,MAAQF,EAAKE,YAGF,IAATF,GAAwB,gBAAiBA,IACnDC,EAAQE,YAAcH,EAAKG,cDrCd,SAA4BC,GAI1C,IAHA,IAAIC,GAAU,EAGLC,EAAI,EAAGC,EAAST,EAAsBS,OAAQD,EAAIC,GAAUF,EAASC,IACzEF,EAASI,QAAQV,EAAsBQ,KAAO,IACjDD,GAAU,GAIZ,OAAOA,EC8BFI,CAAmBR,EAAQE,aAC/B,MAAM,IAAIO,MAAST,EAAQE,YAA3B,6EAGD,IAGC,GAFAQ,SAASC,cAAc,kBAElBX,EAAQC,MACZ,OAEA,MAAOW,IAET,IA9DwBV,EACpBC,EACAU,EACAC,EACEC,EA0DAC,GA9DkBd,EA8DkBF,EAAQE,YA1D5Ca,EAAe,GAEE,MAAnBb,EAAY,IACfC,EAAWD,EAAYe,MAAM,GAC7BJ,EAAS,SAACK,GAAD,OAAQA,EAAGC,UAAUN,OAAOV,IACrCW,EAAM,SAACI,GAAD,OAAQA,EAAGC,UAAUL,IAAIX,MAG/BA,EAAWD,EAAYe,MAAM,GAAI,GACjCJ,EAAS,SAACK,GAAD,OAAQA,EAAGE,gBAAgBjB,EAAU,KAC9CW,EAAM,SAACI,GAAD,OAAQA,EAAGG,aAAalB,EAAU,MAGlC,WACNY,EAAaO,SAAQ,SAAAC,GAAW,OAAIV,EAAOU,MAC3CR,EAAaT,OAAS,EAEtB,IAAIkB,EAAgBd,SAASc,cAG7B,IAAK,0BAA0BC,KAAKC,OAAOF,GAAeG,UACzD,KAAOH,GAA4C,IAA3BA,EAAcI,UACrCd,EAAIU,GACJT,EAAac,KAAKL,GAElBA,EAAgBA,EAAcM,aAmC3BC,EAAa,WACdrB,SAASsB,gBAAgBC,UAAU1B,QAAQ,oBAAsB,IAIrEG,SAASsB,gBAAgBC,UAAYvB,SAASsB,gBAAgBC,UAAY,mBAC1EvB,SAASwB,iBAAiB,QAASlB,GAAmB,GACtDN,SAASwB,iBAAiB,OAAQlB,GAAmB,KAG1B,aAAxBN,SAASyB,WACZJ,IAEArB,SAASwB,iBAAiB,mBAAoBH"}
package/dist/index.cjs CHANGED
@@ -1,2 +1 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=e(require("postcss-selector-parser"));const s=e=>{const s=String(Object(e).replaceWith||"[focus-within]"),r=Boolean(!("preserve"in Object(e))||e.preserve),o=t.default().astSync(s);return{postcssPlugin:"postcss-focus-within",Rule:(e,{result:s})=>{if(!e.selector.includes(":focus-within"))return;let c;try{const s=t.default((e=>{e.walkPseudos((e=>{":focus-within"===e.value&&(e.nodes&&e.nodes.length||e.replaceWith(o.clone({})))}))})).processSync(e.selector);c=String(s)}catch(t){return void e.warn(s,`Failed to parse selector : ${e.selector}`)}if(void 0===c)return;if(c===e.selector)return;const n=e.clone({selector:c});r?e.before(n):e.replaceWith(n)}}};s.postcss=!0,module.exports=s;
2
- //# sourceMappingURL=index.cjs.map
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=e(require("postcss-selector-parser"));const t=[" ",">","~",":","+","@","#","(",")"];const n=":focus-within",o=e=>{const o=Object.assign({preserve:!0,replaceWith:"[focus-within]"},e),l=s.default().astSync(o.replaceWith);return function(e){let s=!0;for(let n=0,o=t.length;n<o&&s;n++)e.indexOf(t[n])>-1&&(s=!1);return s}(o.replaceWith)?{postcssPlugin:"postcss-focus-within",Rule(e,{result:t}){if(!e.selector.toLowerCase().includes(n))return;const r=e.selectors.flatMap((o=>{if(!o.toLowerCase().includes(n))return[o];let r;try{r=s.default().astSync(o)}catch(s){return e.warn(t,`Failed to parse selector : ${o}`),o}if(void 0===r)return[o];let c=!1;if(r.walkPseudos((e=>{e.value.toLowerCase()===n&&(e.nodes&&e.nodes.length||(c=!0,e.replaceWith(l.clone({}))))})),!c)return[o];const i=r.clone();var a,u,d,f,p;if(null!=(a=r.nodes)&&null!=(u=a[0])&&null!=(d=u.nodes)&&d.length)for(let e=0;e<r.nodes[0].nodes.length;e++){const t=r.nodes[0].nodes[e];if("combinator"===t.type||s.default.isPseudoElement(t)){r.nodes[0].insertBefore(t,s.default.className({value:"js-focus-within"}));break}if(e===r.nodes[0].nodes.length-1){r.nodes[0].append(s.default.className({value:"js-focus-within"}));break}}return null!=(f=r.nodes)&&null!=(p=f[0])&&p.nodes&&(i.nodes[0].prepend(s.default.combinator({value:" "})),i.nodes[0].prepend(s.default.className({value:"js-focus-within"}))),[r.toString(),i.toString()]}));r.join(",")!==e.selectors.join(",")&&(e.cloneBefore({selectors:r}),o.preserve||e.remove())}}:{postcssPlugin:"postcss-focus-within",Once:(e,{result:s})=>{e.warn(s,`${o.replaceWith} is not a valid replacement since it can't be applied to single elements.`)}}};o.postcss=!0,module.exports=o;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { PluginCreator } from 'postcss';
2
- declare const creator: PluginCreator<{
2
+ declare type pluginOptions = {
3
3
  preserve?: boolean;
4
4
  replaceWith?: string;
5
- }>;
5
+ };
6
+ declare const creator: PluginCreator<pluginOptions>;
6
7
  export default creator;
package/dist/index.mjs CHANGED
@@ -1,2 +1 @@
1
- import e from"postcss-selector-parser";const s=s=>{const t=String(Object(s).replaceWith||"[focus-within]"),r=Boolean(!("preserve"in Object(s))||s.preserve),o=e().astSync(t);return{postcssPlugin:"postcss-focus-within",Rule:(s,{result:t})=>{if(!s.selector.includes(":focus-within"))return;let c;try{const t=e((e=>{e.walkPseudos((e=>{":focus-within"===e.value&&(e.nodes&&e.nodes.length||e.replaceWith(o.clone({})))}))})).processSync(s.selector);c=String(t)}catch(e){return void s.warn(t,`Failed to parse selector : ${s.selector}`)}if(void 0===c)return;if(c===s.selector)return;const n=s.clone({selector:c});r?s.before(n):s.replaceWith(n)}}};s.postcss=!0;export{s as default};
2
- //# sourceMappingURL=index.mjs.map
1
+ import e from"postcss-selector-parser";const s=[" ",">","~",":","+","@","#","(",")"];const n=":focus-within",t=t=>{const o=Object.assign({preserve:!0,replaceWith:"[focus-within]"},t),r=e().astSync(o.replaceWith);return function(e){let n=!0;for(let t=0,o=s.length;t<o&&n;t++)e.indexOf(s[t])>-1&&(n=!1);return n}(o.replaceWith)?{postcssPlugin:"postcss-focus-within",Rule(s,{result:t}){if(!s.selector.toLowerCase().includes(n))return;const l=s.selectors.flatMap((o=>{if(!o.toLowerCase().includes(n))return[o];let l;try{l=e().astSync(o)}catch(e){return s.warn(t,`Failed to parse selector : ${o}`),o}if(void 0===l)return[o];let c=!1;if(l.walkPseudos((e=>{e.value.toLowerCase()===n&&(e.nodes&&e.nodes.length||(c=!0,e.replaceWith(r.clone({}))))})),!c)return[o];const i=l.clone();var a,u,d,p,f;if(null!=(a=l.nodes)&&null!=(u=a[0])&&null!=(d=u.nodes)&&d.length)for(let s=0;s<l.nodes[0].nodes.length;s++){const n=l.nodes[0].nodes[s];if("combinator"===n.type||e.isPseudoElement(n)){l.nodes[0].insertBefore(n,e.className({value:"js-focus-within"}));break}if(s===l.nodes[0].nodes.length-1){l.nodes[0].append(e.className({value:"js-focus-within"}));break}}return null!=(p=l.nodes)&&null!=(f=p[0])&&f.nodes&&(i.nodes[0].prepend(e.combinator({value:" "})),i.nodes[0].prepend(e.className({value:"js-focus-within"}))),[l.toString(),i.toString()]}));l.join(",")!==s.selectors.join(",")&&(s.cloneBefore({selectors:l}),o.preserve||s.remove())}}:{postcssPlugin:"postcss-focus-within",Once:(e,{result:s})=>{e.warn(s,`${o.replaceWith} is not a valid replacement since it can't be applied to single elements.`)}}};t.postcss=!0;export{t as default};
package/package.json CHANGED
@@ -1,62 +1,101 @@
1
1
  {
2
- "name": "postcss-focus-within",
3
- "version": "5.0.2",
4
- "description": "Use the :focus-within pseudo-selector in CSS",
5
- "author": "Jonathan Neal <jonathantneal@hotmail.com>",
6
- "license": "CC0-1.0",
7
- "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-focus-within#readme",
8
- "bugs": "https://github.com/csstools/postcss-plugins/issues",
9
- "main": "dist/index.cjs",
10
- "module": "dist/index.mjs",
11
- "types": "dist/index.d.ts",
12
- "files": [
13
- "CHANGELOG.md",
14
- "INSTALL.md",
15
- "LICENSE.md",
16
- "README.md",
17
- "dist"
18
- ],
19
- "bin": {
20
- "postcss-focus-within": "dist/cli.mjs"
21
- },
22
- "scripts": {
23
- "build": "rollup -c ../../rollup/default.js",
24
- "clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true });\"",
25
- "lint": "eslint ./src --ext .js --ext .ts --ext .mjs --no-error-on-unmatched-pattern",
26
- "prepublishOnly": "npm run clean && npm run build && npm run test",
27
- "stryker": "stryker run --logLevel error",
28
- "test": "postcss-tape --ci"
29
- },
30
- "engines": {
31
- "node": "^12 || ^14 || >=16"
32
- },
33
- "dependencies": {
34
- "postcss-selector-parser": "^6.0.7"
35
- },
36
- "devDependencies": {
37
- "postcss": "^8.3.6",
38
- "postcss-tape": "^6.0.1"
39
- },
40
- "peerDependencies": {
41
- "postcss": "^8.3"
42
- },
43
- "keywords": [
44
- "postcss",
45
- "css",
46
- "postcss-plugin",
47
- "focus",
48
- "within",
49
- "polyfill",
50
- "pseudos",
51
- "selectors",
52
- "accessibility",
53
- "a11y",
54
- "descendants",
55
- "ancestors"
56
- ],
57
- "repository": {
58
- "type": "git",
59
- "url": "https://github.com/csstools/postcss-plugins.git",
60
- "directory": "plugins/postcss-focus-within"
61
- }
2
+ "name": "postcss-focus-within",
3
+ "description": "Use the :focus-within pseudo-selector in CSS",
4
+ "version": "6.0.0",
5
+ "contributors": [
6
+ {
7
+ "name": "Antonio Laguna",
8
+ "email": "antonio@laguna.es",
9
+ "url": "https://antonio.laguna.es"
10
+ },
11
+ {
12
+ "name": "Romain Menke",
13
+ "email": "romainmenke@gmail.com"
14
+ },
15
+ {
16
+ "name": "Jonathan Neal",
17
+ "email": "jonathantneal@hotmail.com"
18
+ }
19
+ ],
20
+ "license": "CC0-1.0",
21
+ "funding": {
22
+ "type": "opencollective",
23
+ "url": "https://opencollective.com/csstools"
24
+ },
25
+ "engines": {
26
+ "node": "^12 || ^14 || >=16"
27
+ },
28
+ "main": "dist/index.cjs",
29
+ "module": "dist/index.mjs",
30
+ "types": "dist/index.d.ts",
31
+ "exports": {
32
+ ".": {
33
+ "import": "./dist/index.mjs",
34
+ "require": "./dist/index.cjs",
35
+ "default": "./dist/index.mjs"
36
+ },
37
+ "./browser": {
38
+ "import": "./dist/browser.mjs",
39
+ "require": "./dist/browser.cjs",
40
+ "default": "./dist/browser.mjs"
41
+ },
42
+ "./browser-global": {
43
+ "default": "./dist/browser-global.js"
44
+ }
45
+ },
46
+ "files": [
47
+ "CHANGELOG.md",
48
+ "LICENSE.md",
49
+ "README.md",
50
+ "dist"
51
+ ],
52
+ "dependencies": {
53
+ "postcss-selector-parser": "^6.0.10"
54
+ },
55
+ "peerDependencies": {
56
+ "postcss": "^8.2"
57
+ },
58
+ "scripts": {
59
+ "build": "rollup -c ../../rollup/default.js",
60
+ "clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true });\"",
61
+ "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs",
62
+ "lint": "npm run lint:eslint && npm run lint:package-json",
63
+ "lint:eslint": "eslint ./src --ext .js --ext .ts --ext .mjs --no-error-on-unmatched-pattern",
64
+ "lint:package-json": "node ../../.github/bin/format-package-json.mjs",
65
+ "prepublishOnly": "npm run clean && npm run build && npm run test",
66
+ "test": "node .tape.mjs && npm run test:exports",
67
+ "test:browser": "node ./test/_browser.mjs",
68
+ "test:exports": "node ./test/_import.mjs && node ./test/_require.cjs",
69
+ "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs"
70
+ },
71
+ "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-focus-within#readme",
72
+ "repository": {
73
+ "type": "git",
74
+ "url": "https://github.com/csstools/postcss-plugins.git",
75
+ "directory": "plugins/postcss-focus-within"
76
+ },
77
+ "bugs": "https://github.com/csstools/postcss-plugins/issues",
78
+ "keywords": [
79
+ "a11y",
80
+ "accessibility",
81
+ "ancestors",
82
+ "css",
83
+ "descendants",
84
+ "focus",
85
+ "polyfill",
86
+ "postcss",
87
+ "postcss-plugin",
88
+ "pseudos",
89
+ "selectors",
90
+ "within"
91
+ ],
92
+ "csstools": {
93
+ "cssdbId": "focus-within-pseudo-class",
94
+ "exportName": "postcssFocusWithin",
95
+ "humanReadableName": "PostCSS Focus Within",
96
+ "specUrl": "https://www.w3.org/TR/selectors-4/#the-focus-within-pseudo"
97
+ },
98
+ "volta": {
99
+ "extends": "../../package.json"
100
+ }
62
101
  }
package/INSTALL.md DELETED
@@ -1,170 +0,0 @@
1
- # Installing PostCSS
2
-
3
- [PostCSS] 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] to your project:
11
-
12
- ```bash
13
- npm install postcss-focus-within --save-dev
14
- ```
15
-
16
- Use [PostCSS] to process your CSS:
17
-
18
- ```js
19
- const postcssFocusWithin = require('postcss-focus-within');
20
-
21
- postcssFocusWithin.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 postcssFocusWithin = require('postcss-focus-within');
29
-
30
- postcss([
31
- postcssFocusWithin(/* 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] in your `postcss.config.js` configuration file:
44
-
45
- ```js
46
- const postcssFocusWithin = require('postcss-focus-within');
47
-
48
- module.exports = {
49
- plugins: [
50
- postcssFocusWithin(/* 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] in your Webpack configuration:
64
-
65
- ```js
66
- const postcssFocusWithin = require('postcss-focus-within');
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
- postcssFocusWithin(/* 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] in your
98
- `config-overrides.js` file:
99
-
100
- ```js
101
- const reactAppRewirePostcss = require('react-app-rewire-postcss');
102
- const postcssFocusWithin = require('postcss-focus-within');
103
-
104
- module.exports = config => reactAppRewirePostcss(config, {
105
- plugins: () => [
106
- postcssFocusWithin(/* 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] in your Gulpfile:
120
-
121
- ```js
122
- const postcss = require('gulp-postcss');
123
- const postcssFocusWithin = require('postcss-focus-within');
124
-
125
- gulp.task('css', () => gulp.src('./src/*.css').pipe(
126
- postcss([
127
- postcssFocusWithin(/* 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] in your Gruntfile:
143
-
144
- ```js
145
- const postcssFocusWithin = require('postcss-focus-within');
146
-
147
- grunt.loadNpmTasks('grunt-postcss');
148
-
149
- grunt.initConfig({
150
- postcss: {
151
- options: {
152
- use: [
153
- postcssFocusWithin(/* 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]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-focus-within
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/dist/cli.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/dist/cli.mjs DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import e from"postcss-selector-parser";import t from"tty";import r from"path";import n from"url";import s,{promises as i}from"fs";const o=t=>{const r=String(Object(t).replaceWith||"[focus-within]"),n=Boolean(!("preserve"in Object(t))||t.preserve),s=e().astSync(r);return{postcssPlugin:"postcss-focus-within",Rule:(t,{result:r})=>{if(!t.selector.includes(":focus-within"))return;let i;try{const r=e((e=>{e.walkPseudos((e=>{":focus-within"===e.value&&(e.nodes&&e.nodes.length||e.replaceWith(s.clone({})))}))})).processSync(t.selector);i=String(r)}catch(e){return void t.warn(r,`Failed to parse selector : ${t.selector}`)}if(void 0===i)return;if(i===t.selector)return;const o=t.clone({selector:i});n?t.before(o):t.replaceWith(o)}}};var a;o.postcss=!0,function(e){e.InvalidArguments="INVALID_ARGUMENTS"}(a||(a={}));var l={exports:{}};let u=t,c=!("NO_COLOR"in process.env||process.argv.includes("--no-color"))&&("FORCE_COLOR"in process.env||process.argv.includes("--color")||"win32"===process.platform||u.isatty(1)&&"dumb"!==process.env.TERM||"CI"in process.env),h=(e,t,r=e)=>n=>{let s=""+n,i=s.indexOf(t,e.length);return~i?e+p(s,t,r,i)+t:e+s+t},p=(e,t,r,n)=>{let s=e.substring(0,n)+r,i=e.substring(n+t.length),o=i.indexOf(t);return~o?s+p(i,t,r,o):s+i},f=(e=c)=>({isColorSupported:e,reset:e?e=>`${e}`:String,bold:e?h("","",""):String,dim:e?h("","",""):String,italic:e?h("",""):String,underline:e?h("",""):String,inverse:e?h("",""):String,hidden:e?h("",""):String,strikethrough:e?h("",""):String,black:e?h("",""):String,red:e?h("",""):String,green:e?h("",""):String,yellow:e?h("",""):String,blue:e?h("",""):String,magenta:e?h("",""):String,cyan:e?h("",""):String,white:e?h("",""):String,gray:e?h("",""):String,bgBlack:e?h("",""):String,bgRed:e?h("",""):String,bgGreen:e?h("",""):String,bgYellow:e?h("",""):String,bgBlue:e?h("",""):String,bgMagenta:e?h("",""):String,bgCyan:e?h("",""):String,bgWhite:e?h("",""):String});l.exports=f(),l.exports.createColors=f;const d="'".charCodeAt(0),g='"'.charCodeAt(0),m="\\".charCodeAt(0),w="/".charCodeAt(0),y="\n".charCodeAt(0),v=" ".charCodeAt(0),C="\f".charCodeAt(0),S="\t".charCodeAt(0),b="\r".charCodeAt(0),_="[".charCodeAt(0),x="]".charCodeAt(0),O="(".charCodeAt(0),A=")".charCodeAt(0),M="{".charCodeAt(0),k="}".charCodeAt(0),E=";".charCodeAt(0),L="*".charCodeAt(0),R=":".charCodeAt(0),P="@".charCodeAt(0),I=/[\t\n\f\r "#'()/;[\\\]{}]/g,j=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,N=/.[\n"'(/\\]/,U=/[\da-f]/i;var F=function(e,t={}){let r,n,s,i,o,a,l,u,c,h,p=e.css.valueOf(),f=t.ignoreErrors,F=p.length,D=0,B=[],T=[];function $(t){throw e.error("Unclosed "+t,D)}return{back:function(e){T.push(e)},nextToken:function(e){if(T.length)return T.pop();if(D>=F)return;let t=!!e&&e.ignoreUnclosed;switch(r=p.charCodeAt(D),r){case y:case v:case S:case b:case C:n=D;do{n+=1,r=p.charCodeAt(n)}while(r===v||r===y||r===S||r===b||r===C);h=["space",p.slice(D,n)],D=n-1;break;case _:case x:case M:case k:case R:case E:case A:{let e=String.fromCharCode(r);h=[e,e,D];break}case O:if(u=B.length?B.pop()[1]:"",c=p.charCodeAt(D+1),"url"===u&&c!==d&&c!==g&&c!==v&&c!==y&&c!==S&&c!==C&&c!==b){n=D;do{if(a=!1,n=p.indexOf(")",n+1),-1===n){if(f||t){n=D;break}$("bracket")}for(l=n;p.charCodeAt(l-1)===m;)l-=1,a=!a}while(a);h=["brackets",p.slice(D,n+1),D,n],D=n}else n=p.indexOf(")",D+1),i=p.slice(D,n+1),-1===n||N.test(i)?h=["(","(",D]:(h=["brackets",i,D,n],D=n);break;case d:case g:s=r===d?"'":'"',n=D;do{if(a=!1,n=p.indexOf(s,n+1),-1===n){if(f||t){n=D+1;break}$("string")}for(l=n;p.charCodeAt(l-1)===m;)l-=1,a=!a}while(a);h=["string",p.slice(D,n+1),D,n],D=n;break;case P:I.lastIndex=D+1,I.test(p),n=0===I.lastIndex?p.length-1:I.lastIndex-2,h=["at-word",p.slice(D,n+1),D,n],D=n;break;case m:for(n=D,o=!0;p.charCodeAt(n+1)===m;)n+=1,o=!o;if(r=p.charCodeAt(n+1),o&&r!==w&&r!==v&&r!==y&&r!==S&&r!==b&&r!==C&&(n+=1,U.test(p.charAt(n)))){for(;U.test(p.charAt(n+1));)n+=1;p.charCodeAt(n+1)===v&&(n+=1)}h=["word",p.slice(D,n+1),D,n],D=n;break;default:r===w&&p.charCodeAt(D+1)===L?(n=p.indexOf("*/",D+2)+1,0===n&&(f||t?n=p.length:$("comment")),h=["comment",p.slice(D,n+1),D,n],D=n):(j.lastIndex=D+1,j.test(p),n=0===j.lastIndex?p.length-1:j.lastIndex-2,h=["word",p.slice(D,n+1),D,n],B.push(h),D=n)}return D++,h},endOfFile:function(){return 0===T.length&&D>=F},position:function(){return D}}};let D,B=l.exports,T=F;const $={brackets:B.cyan,"at-word":B.cyan,comment:B.gray,string:B.green,class:B.yellow,hash:B.magenta,call:B.cyan,"(":B.cyan,")":B.cyan,"{":B.yellow,"}":B.yellow,"[":B.yellow,"]":B.yellow,":":B.yellow,";":B.yellow};function G([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 z(e){let t=T(new D(e),{ignoreErrors:!0}),r="";for(;!t.endOfFile();){let e=t.nextToken(),n=$[G(e,t)];r+=n?e[1].split(/\r?\n/).map((e=>n(e))).join("\n"):e[1]}return r}z.registerInput=function(e){D=e};var W=z;let V=l.exports,J=W;class q 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,q)}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=V.isColorSupported),J&&e&&(t=J(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}=V.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 Y=q;q.default=q;var Q={};Q.isClean=Symbol("isClean"),Q.my=Symbol("my");const Z={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};class H{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 Z[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=Z[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 K=H;H.default=H;let X=K;function ee(e,t){new X(t).stringify(e)}var te=ee;ee.default=ee;let{isClean:re,my:ne}=Q,se=Y,ie=K,oe=te;function ae(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=>ae(e,r))):("object"===i&&null!==s&&(s=ae(s)),r[n]=s)}return r}class le{constructor(e={}){this.raws={},this[re]=!1,this[ne]=!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 se(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=oe){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=ae(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 ie).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[re]){this[re]=!1;let e=this;for(;e=e.parent;)e[re]=!1}}get proxyOf(){return this}}var ue=le;le.default=le;let ce=ue;class he extends ce{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 pe=he;he.default=he;var fe={},de={},ge={},me={},we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");me.encode=function(e){if(0<=e&&e<we.length)return we[e];throw new TypeError("Must be between 0 and 63: "+e)},me.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 ye=me;ge.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+=ye.encode(t)}while(n>0);return r},ge.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=ye.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 ve={};!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)}}(ve);var Ce={},Se=ve,be=Object.prototype.hasOwnProperty,_e="undefined"!=typeof Map;function xe(){this._array=[],this._set=_e?new Map:Object.create(null)}xe.fromArray=function(e,t){for(var r=new xe,n=0,s=e.length;n<s;n++)r.add(e[n],t);return r},xe.prototype.size=function(){return _e?this._set.size:Object.getOwnPropertyNames(this._set).length},xe.prototype.add=function(e,t){var r=_e?e:Se.toSetString(e),n=_e?this.has(e):be.call(this._set,r),s=this._array.length;n&&!t||this._array.push(e),n||(_e?this._set.set(e,s):this._set[r]=s)},xe.prototype.has=function(e){if(_e)return this._set.has(e);var t=Se.toSetString(e);return be.call(this._set,t)},xe.prototype.indexOf=function(e){if(_e){var t=this._set.get(e);if(t>=0)return t}else{var r=Se.toSetString(e);if(be.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},xe.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},xe.prototype.toArray=function(){return this._array.slice()},Ce.ArraySet=xe;var Oe={},Ae=ve;function Me(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}Me.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},Me.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||Ae.compareByGeneratedPositionsInflated(t,r)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},Me.prototype.toArray=function(){return this._sorted||(this._array.sort(Ae.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},Oe.MappingList=Me;var ke=ge,Ee=ve,Le=Ce.ArraySet,Re=Oe.MappingList;function Pe(e){e||(e={}),this._file=Ee.getArg(e,"file",null),this._sourceRoot=Ee.getArg(e,"sourceRoot",null),this._skipValidation=Ee.getArg(e,"skipValidation",!1),this._sources=new Le,this._names=new Le,this._mappings=new Re,this._sourcesContents=null}Pe.prototype._version=3,Pe.fromSourceMap=function(e){var t=e.sourceRoot,r=new Pe({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=Ee.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=Ee.relative(t,n)),r._sources.has(s)||r._sources.add(s);var i=e.sourceContentFor(n);null!=i&&r.setSourceContent(n,i)})),r},Pe.prototype.addMapping=function(e){var t=Ee.getArg(e,"generated"),r=Ee.getArg(e,"original",null),n=Ee.getArg(e,"source",null),s=Ee.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})},Pe.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=Ee.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[Ee.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[Ee.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},Pe.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=Ee.relative(s,n));var i=new Le,o=new Le;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=Ee.join(r,t.source)),null!=s&&(t.source=Ee.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=Ee.join(r,t)),null!=s&&(t=Ee.relative(s,t)),this.setSourceContent(t,n))}),this)},Pe.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}))},Pe.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(!Ee.compareByGeneratedPositionsInflated(t,h[p-1]))continue;e+=","}e+=ke.encode(t.generatedColumn-s),s=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=ke.encode(n-u),u=n,e+=ke.encode(t.originalLine-1-a),a=t.originalLine-1,e+=ke.encode(t.originalColumn-o),o=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=ke.encode(r-l),l=r)),c+=e}return c},Pe.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=Ee.relative(t,e));var r=Ee.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)},Pe.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},Pe.prototype.toString=function(){return JSON.stringify(this.toJSON())},de.SourceMapGenerator=Pe;var Ie={},je={};!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}}(je);var Ne={};function Ue(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 Fe=new WeakMap;Ne.quickSort=function(e,t,r=0){let n=Fe.get(t);void 0===n&&(n=function(e){let t=Ue.toString();return new Function(`return ${t}`)()(e)}(t),Fe.set(t,n)),n(e,t,r,e.length-1)};var De=ve,Be=je,Te=Ce.ArraySet,$e=ge,Ge=Ne.quickSort;function ze(e,t){var r=e;return"string"==typeof e&&(r=De.parseSourceMapInput(e)),null!=r.sections?new Ye(r,t):new We(r,t)}function We(e,t){var r=e;"string"==typeof e&&(r=De.parseSourceMapInput(e));var n=De.getArg(r,"version"),s=De.getArg(r,"sources"),i=De.getArg(r,"names",[]),o=De.getArg(r,"sourceRoot",null),a=De.getArg(r,"sourcesContent",null),l=De.getArg(r,"mappings"),u=De.getArg(r,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);o&&(o=De.normalize(o)),s=s.map(String).map(De.normalize).map((function(e){return o&&De.isAbsolute(o)&&De.isAbsolute(e)?De.relative(o,e):e})),this._names=Te.fromArray(i.map(String),!0),this._sources=Te.fromArray(s,!0),this._absoluteSources=this._sources.toArray().map((function(e){return De.computeSourceURL(o,e,t)})),this.sourceRoot=o,this.sourcesContent=a,this._mappings=l,this._sourceMapURL=t,this.file=u}function Ve(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}ze.fromSourceMap=function(e,t){return We.fromSourceMap(e,t)},ze.prototype._version=3,ze.prototype.__generatedMappings=null,Object.defineProperty(ze.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),ze.prototype.__originalMappings=null,Object.defineProperty(ze.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),ze.prototype._charIsMappingSeparator=function(e,t){var r=e.charAt(t);return";"===r||","===r},ze.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},ze.GENERATED_ORDER=1,ze.ORIGINAL_ORDER=2,ze.GREATEST_LOWER_BOUND=1,ze.LEAST_UPPER_BOUND=2,ze.prototype.eachMapping=function(e,t,r){var n,s=t||null;switch(r||ze.GENERATED_ORDER){case ze.GENERATED_ORDER:n=this._generatedMappings;break;case ze.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=De.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)})}},ze.prototype.allGeneratedPositionsFor=function(e){var t=De.getArg(e,"line"),r={source:De.getArg(e,"source"),originalLine:t,originalColumn:De.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",De.compareByOriginalPositions,Be.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:De.getArg(i,"generatedLine",null),column:De.getArg(i,"generatedColumn",null),lastColumn:De.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++s];else for(var a=i.originalColumn;i&&i.originalLine===t&&i.originalColumn==a;)n.push({line:De.getArg(i,"generatedLine",null),column:De.getArg(i,"generatedColumn",null),lastColumn:De.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++s]}return n},Ie.SourceMapConsumer=ze,We.prototype=Object.create(ze.prototype),We.prototype.consumer=ze,We.prototype._findSourceIndex=function(e){var t,r=e;if(null!=this.sourceRoot&&(r=De.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},We.fromSourceMap=function(e,t){var r=Object.create(We.prototype),n=r._names=Te.fromArray(e._names.toArray(),!0),s=r._sources=Te.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 De.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 Ve;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 Ge(r.__originalMappings,De.compareByOriginalPositions),r},We.prototype._version=3,Object.defineProperty(We.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});const Je=De.compareByGeneratedPositionsDeflatedNoLine;function qe(e,t){let r=e.length,n=e.length-t;if(!(n<=1))if(2==n){let r=e[t],n=e[t+1];Je(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(Je(t,n)<=0)break;e[r-1]=n,e[r]=t}else Ge(e,Je,t)}function Ye(e,t){var r=e;"string"==typeof e&&(r=De.parseSourceMapInput(e));var n=De.getArg(r,"version"),s=De.getArg(r,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new Te,this._names=new Te;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=De.getArg(e,"offset"),n=De.getArg(r,"line"),s=De.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 ze(De.getArg(e,"map"),t)}}))}We.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,qe(m,w),w=m.length;else if(","===e.charAt(f))f++;else{for((r=new Ve).generatedLine=o,s=f;s<p&&!this._charIsMappingSeparator(e,s);s++);for(e.slice(f,s),n=[];f<s;)$e.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)}}qe(m,w),this.__generatedMappings=m;for(var y=0;y<g.length;y++)null!=g[y]&&Ge(g[y],De.compareByOriginalPositionsNoSource);this.__originalMappings=[].concat(...g)},We.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 Be.search(e,t,s,i)},We.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}},We.prototype.originalPositionFor=function(e){var t={generatedLine:De.getArg(e,"line"),generatedColumn:De.getArg(e,"column")},r=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",De.compareByGeneratedPositionsDeflated,De.getArg(e,"bias",ze.GREATEST_LOWER_BOUND));if(r>=0){var n=this._generatedMappings[r];if(n.generatedLine===t.generatedLine){var s=De.getArg(n,"source",null);null!==s&&(s=this._sources.at(s),s=De.computeSourceURL(this.sourceRoot,s,this._sourceMapURL));var i=De.getArg(n,"name",null);return null!==i&&(i=this._names.at(i)),{source:s,line:De.getArg(n,"originalLine",null),column:De.getArg(n,"originalColumn",null),name:i}}}return{source:null,line:null,column:null,name:null}},We.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e})))},We.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=De.relative(this.sourceRoot,s)),null!=this.sourceRoot&&(n=De.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.')},We.prototype.generatedPositionFor=function(e){var t=De.getArg(e,"source");if((t=this._findSourceIndex(t))<0)return{line:null,column:null,lastColumn:null};var r={source:t,originalLine:De.getArg(e,"line"),originalColumn:De.getArg(e,"column")},n=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",De.compareByOriginalPositions,De.getArg(e,"bias",ze.GREATEST_LOWER_BOUND));if(n>=0){var s=this._originalMappings[n];if(s.source===r.source)return{line:De.getArg(s,"generatedLine",null),column:De.getArg(s,"generatedColumn",null),lastColumn:De.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},Ie.BasicSourceMapConsumer=We,Ye.prototype=Object.create(ze.prototype),Ye.prototype.constructor=ze,Ye.prototype._version=3,Object.defineProperty(Ye.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}}),Ye.prototype.originalPositionFor=function(e){var t={generatedLine:De.getArg(e,"line"),generatedColumn:De.getArg(e,"column")},r=Be.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}},Ye.prototype.hasContentsOfAllSources=function(){return this._sections.every((function(e){return e.consumer.hasContentsOfAllSources()}))},Ye.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.')},Ye.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var r=this._sections[t];if(-1!==r.consumer._findSourceIndex(De.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}},Ye.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=De.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)}Ge(this.__generatedMappings,De.compareByGeneratedPositionsDeflated),Ge(this.__originalMappings,De.compareByOriginalPositions)},Ie.IndexedSourceMapConsumer=Ye;var Qe={},Ze=de.SourceMapGenerator,He=ve,Ke=/(\r?\n)/,Xe="$$$isSourceNode$$$";function et(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[Xe]=!0,null!=n&&this.add(n)}et.fromStringWithSourceMap=function(e,t,r){var n=new et,s=e.split(Ke),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=He.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?He.join(r,e.source):e.source;n.add(new et(e.originalLine,e.originalColumn,s,t,e.name))}}},et.prototype.add=function(e){if(Array.isArray(e))e.forEach((function(e){this.add(e)}),this);else{if(!e[Xe]&&"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},et.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[Xe]&&"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},et.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r<n;r++)(t=this.children[r])[Xe]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},et.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},et.prototype.replaceRight=function(e,t){var r=this.children[this.children.length-1];return r[Xe]?r.replaceRight(e,t):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,t):this.children.push("".replace(e,t)),this},et.prototype.setSourceContent=function(e,t){this.sourceContents[He.toSetString(e)]=t},et.prototype.walkSourceContents=function(e){for(var t=0,r=this.children.length;t<r;t++)this.children[t][Xe]&&this.children[t].walkSourceContents(e);var n=Object.keys(this.sourceContents);for(t=0,r=n.length;t<r;t++)e(He.fromSetString(n[t]),this.sourceContents[n[t]])},et.prototype.toString=function(){var e="";return this.walk((function(t){e+=t})),e},et.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},r=new Ze(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}},Qe.SourceNode=et,fe.SourceMapGenerator=de.SourceMapGenerator,fe.SourceMapConsumer=Ie.SourceMapConsumer,fe.SourceNode=Qe.SourceNode;var tt={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:rt,SourceMapGenerator:nt}=fe,{existsSync:st,readFileSync:it}=s,{dirname:ot,join:at}=r;class lt{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=ot(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new rt(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=ot(e),st(e))return this.mapFile=e,it(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 rt)return nt.fromSourceMap(t).toString();if(t instanceof nt)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=at(ot(e),t)),this.loadFile(t)}}}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}}var ut=lt;lt.default=lt;let{SourceMapConsumer:ct,SourceMapGenerator:ht}=fe,{fileURLToPath:pt,pathToFileURL:ft}=n,{resolve:dt,isAbsolute:gt}=r,{nanoid:mt}=tt,wt=W,yt=Y,vt=ut,Ct=Symbol("fromOffsetCache"),St=Boolean(ct&&ht),bt=Boolean(dt&&gt);class _t{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&&(!bt||/^\w+:\/\//.test(t.from)||gt(t.from)?this.file=t.from:this.file=dt(t.from)),bt&&St){let e=new vt(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 "+mt(6)+">"),this.map&&(this.map.file=this.from)}fromOffset(e){let t,r;if(this[Ct])r=this[Ct];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[Ct]=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 yt(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 yt(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&&(ft&&(s.input.url=ft(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=gt(a.source)?ft(a.source):new URL(a.source,this.map.consumer().sourceRoot||ft(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(!pt)throw new Error("file: protocol is not available in this PostCSS build");l.file=pt(i)}let u=o.sourceContentFor(a.source);return u&&(l.source=u),l}mapResolve(e){return/^\w+:\/\//.test(e)?e:dt(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 xt=_t;_t.default=_t,wt&&wt.registerInput&&wt.registerInput(_t);let{SourceMapConsumer:Ot,SourceMapGenerator:At}=fe,{dirname:Mt,resolve:kt,relative:Et,sep:Lt}=r,{pathToFileURL:Rt}=n,Pt=xt,It=Boolean(Ot&&At),jt=Boolean(Mt&&kt&&Et&&Lt);var Nt=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 Pt(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||Mt(e.file);!1===this.mapOpts.sourcesContent?(t=new Ot(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=At.fromSourceMap(e)}else this.map=new At({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?Mt(this.opts.to):".";return"string"==typeof this.mapOpts.annotation&&(t=Mt(kt(t,this.mapOpts.annotation))),e=Et(t,e)}toUrl(e){return"\\"===Lt&&(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(Rt)return Rt(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 At({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(),jt&&It&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,(t=>{e+=t})),[e]}}};let Ut=ue;class Ft extends Ut{constructor(e){super(e),this.type="comment"}}var Dt=Ft;Ft.default=Ft;let Bt,Tt,$t,{isClean:Gt,my:zt}=Q,Wt=pe,Vt=Dt,Jt=ue;function qt(e){return e.map((e=>(e.nodes&&(e.nodes=qt(e.nodes)),delete e.source,e)))}function Yt(e){if(e[Gt]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)Yt(t)}class Qt extends Jt{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=qt(Bt(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 Wt(e)]}else if(e.selector)e=[new Tt(e)];else if(e.name)e=[new $t(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new Vt(e)]}return e.map((e=>(e[zt]||Qt.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[Gt]&&Yt(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}}Qt.registerParse=e=>{Bt=e},Qt.registerRule=e=>{Tt=e},Qt.registerAtRule=e=>{$t=e};var Zt=Qt;Qt.default=Qt,Qt.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,$t.prototype):"rule"===e.type?Object.setPrototypeOf(e,Tt.prototype):"decl"===e.type?Object.setPrototypeOf(e,Wt.prototype):"comment"===e.type&&Object.setPrototypeOf(e,Vt.prototype),e[zt]=!0,e.nodes&&e.nodes.forEach((e=>{Qt.rebuild(e)}))};let Ht,Kt,Xt=Zt;class er extends Xt{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new Ht(new Kt,this,e).stringify()}}er.registerLazyResult=e=>{Ht=e},er.registerProcessor=e=>{Kt=e};var tr=er;er.default=er;let rr={};var nr=function(e){rr[e]||(rr[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))};class sr{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 ir=sr;sr.default=sr;let or=ir;class ar{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 or(e,t);return this.messages.push(r),r}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}}var lr=ar;ar.default=ar;let ur=Zt;class cr extends ur{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 hr=cr;cr.default=cr,ur.registerAtRule(cr);let pr,fr,dr=Zt;class gr extends dr{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 pr(new fr,this,e).stringify()}}gr.registerLazyResult=e=>{pr=e},gr.registerProcessor=e=>{fr=e};var mr=gr;gr.default=gr;let wr={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=>wr.split(e,[" ","\n","\t"]),comma:e=>wr.split(e,[","],!0)};var yr=wr;wr.default=wr;let vr=Zt,Cr=yr;class Sr extends vr{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return Cr.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 br=Sr;Sr.default=Sr,vr.registerRule(Sr);let _r=pe,xr=F,Or=Dt,Ar=hr,Mr=mr,kr=br;var Er=class{constructor(e){this.input=e,this.root=new Mr,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=xr(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 Or;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 kr;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 kr;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 _r;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 Ar;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 Lr=Zt,Rr=Er,Pr=xt;function Ir(e,t){let r=new Pr(e,t),n=new Rr(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 jr=Ir;Ir.default=Ir,Lr.registerParse(Ir);let{isClean:Nr,my:Ur}=Q,Fr=Nt,Dr=te,Br=Zt,Tr=tr,$r=nr,Gr=lr,zr=jr,Wr=mr;const Vr={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},Jr={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},qr={postcssPlugin:!0,prepare:!0,Once:!0};function Yr(e){return"object"==typeof e&&"function"==typeof e.then}function Qr(e){let t=!1,r=Vr[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 Zr(e){let t;return t="document"===e.type?["Document",0,"DocumentExit"]:"root"===e.type?["Root",0,"RootExit"]:Qr(e),{node:e,events:t,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function Hr(e){return e[Nr]=!1,e.nodes&&e.nodes.forEach((e=>Hr(e))),e}let Kr={};class Xr{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 Xr||t instanceof Gr)n=Hr(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=zr;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[Ur]&&Br.rebuild(n)}else n=Hr(t);this.result=new Gr(e,n,r),this.helpers={...Kr,result:this.result,postcss:Kr},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||$r("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(Yr(this.runOnRoot(e)))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Nr];)e[Nr]=!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=Dr;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let r=new Fr(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result}walkSync(e){e[Nr]=!0;let t=Qr(e);for(let r of t)if(0===r)e.nodes&&e.each((e=>{e[Nr]||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(Yr(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 Yr(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(Yr(r))try{await r}catch(e){throw this.handleError(e)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Nr];){e[Nr]=!0;let t=[Zr(e)];for(;t.length>0;){let e=this.visitTick(t);if(Yr(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(!Jr[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!qr[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[Nr])return n[Nr]=!0,void e.push(Zr(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[Nr]=!0,t.iterator=r.getIterator()));if(this.listeners[e])return void(t.visitors=this.listeners[e])}e.pop()}}Xr.registerPostcss=e=>{Kr=e};var en=Xr;Xr.default=Xr,Wr.registerLazyResult(Xr),Tr.registerLazyResult(Xr);let tn=Nt,rn=te,nn=nr,sn=jr;const on=lr;class an{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=rn;this.result=new on(this._processor,n,this._opts),this.result.css=t;let i=this;Object.defineProperty(this.result,"root",{get:()=>i.root});let o=new tn(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=sn;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||nn("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 ln=an;an.default=an;let un=ln,cn=en,hn=tr,pn=mr;class fn{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 un(this,e,t):new cn(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 dn=fn;fn.default=fn,pn.registerProcessor(fn),hn.registerProcessor(fn);let gn=pe,mn=ut,wn=Dt,yn=hr,vn=xt,Cn=mr,Sn=br;function bn(e,t){if(Array.isArray(e))return e.map((e=>bn(e)));let{inputs:r,...n}=e;if(r){t=[];for(let e of r){let r={...e,__proto__:vn.prototype};r.map&&(r.map={...r.map,__proto__:mn.prototype}),t.push(r)}}if(n.nodes&&(n.nodes=e.nodes.map((e=>bn(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 Cn(n);if("decl"===n.type)return new gn(n);if("rule"===n.type)return new Sn(n);if("comment"===n.type)return new wn(n);if("atrule"===n.type)return new yn(n);throw new Error("Unknown node type: "+e.type)}var _n=bn;bn.default=bn;let xn=Y,On=pe,An=en,Mn=Zt,kn=dn,En=te,Ln=_n,Rn=tr,Pn=ir,In=Dt,jn=hr,Nn=lr,Un=xt,Fn=jr,Dn=yr,Bn=br,Tn=mr,$n=ue;function Gn(...e){return 1===e.length&&Array.isArray(e[0])&&(e=e[0]),new kn(e)}Gn.plugin=function(e,t){function r(...r){let n=t(...r);return n.postcssPlugin=e,n.postcssVersion=(new kn).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 Gn([r(n)]).process(e,t)},r},Gn.stringify=En,Gn.parse=Fn,Gn.fromJSON=Ln,Gn.list=Dn,Gn.comment=e=>new In(e),Gn.atRule=e=>new jn(e),Gn.decl=e=>new On(e),Gn.rule=e=>new Bn(e),Gn.root=e=>new Tn(e),Gn.document=e=>new Rn(e),Gn.CssSyntaxError=xn,Gn.Declaration=On,Gn.Container=Mn,Gn.Processor=kn,Gn.Document=Rn,Gn.Comment=In,Gn.Warning=Pn,Gn.AtRule=jn,Gn.Result=Nn,Gn.Input=Un,Gn.Rule=Bn,Gn.Root=Tn,Gn.Node=$n,An.registerPostcss(Gn);var zn=Gn;async function Wn(){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)}))}))}Gn.default=Gn,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(),a.InvalidArguments;if(!o){s.inputs.push(t);break}return r(),a.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(),a.InvalidArguments;0===s.inputs.length&&(s.stdin=!0),s.output||s.outputDir||s.replace||(s.stdout=!0),s.stdout&&(s.externalMap=!1);let l={};if(i)try{l=JSON.parse(i)}catch(e){return console.warn("[error] plugin options must be valid JSON\n"),r(),a.InvalidArguments}for(const e in l){const n=l[e];if(!t.includes(e))return console.warn(`[error] unknown plugin option: ${e}\n`),r(),a.InvalidArguments;s.pluginOptions[e]=n}return s}(process.argv.slice(2),t,n);s===a.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 Wn();s||(r(),process.exit(1)),n=(await zn([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 Wn();r||(n(),process.exit(1));const o=await zn([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 zn([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 zn([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)}(o,["preserve","replaceWith"],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-focus-within","PostCSS Focus Within","Lets you use the `:focus-within` pseudo-class in CSS, following the Selectors Level 4 specification.",{preserve:!0,replaceWith:".focus-within"}));
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import parser from 'postcss-selector-parser';\nimport type { PluginCreator } from 'postcss';\n\nconst creator: PluginCreator<{ preserve?: boolean, replaceWith?: string }> = (opts?: { preserve?: boolean, replaceWith?: string }) => {\n\tconst replaceWith = String(Object(opts).replaceWith || '[focus-within]');\n\tconst preserve = Boolean('preserve' in Object(opts) ? opts.preserve : true);\n\tconst replacementAST = parser().astSync(replaceWith);\n\n\treturn {\n\t\tpostcssPlugin: 'postcss-focus-within',\n\t\tRule: (rule, { result })=> {\n\t\t\tif (!rule.selector.includes(':focus-within')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet modifiedSelector;\n\n\t\t\ttry {\n\t\t\t\tconst modifiedSelectorAST = parser((selectors) => {\n\t\t\t\t\tselectors.walkPseudos((pseudo) => {\n\t\t\t\t\t\tif (pseudo.value !== ':focus-within') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (pseudo.nodes && pseudo.nodes.length) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpseudo.replaceWith(replacementAST.clone({}));\n\t\t\t\t\t});\n\t\t\t\t}).processSync(rule.selector);\n\n\t\t\t\tmodifiedSelector = String(modifiedSelectorAST);\n\t\t\t} catch (_) {\n\t\t\t\trule.warn(result, `Failed to parse selector : ${rule.selector}`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof modifiedSelector === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (modifiedSelector === rule.selector) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clone = rule.clone({ selector: modifiedSelector });\n\n\t\t\tif (preserve) {\n\t\t\t\trule.before(clone);\n\t\t\t} else {\n\t\t\t\trule.replaceWith(clone);\n\t\t\t}\n\t\t},\n\t};\n};\n\ncreator.postcss = true;\n\nexport default creator;\n\n"],"names":["creator","opts","replaceWith","String","Object","preserve","Boolean","replacementAST","parser","astSync","postcssPlugin","Rule","rule","result","selector","includes","modifiedSelector","modifiedSelectorAST","selectors","walkPseudos","pseudo","value","nodes","length","clone","processSync","_","warn","before","postcss"],"mappings":"uIAGMA,EAAwEC,IAC7E,MAAMC,EAAcC,OAAOC,OAAOH,GAAMC,aAAe,kBACjDG,EAAWC,UAAQ,aAAcF,OAAOH,KAAQA,EAAKI,UACrDE,EAAiBC,YAASC,QAAQP,GAExC,MAAO,CACNQ,cAAe,uBACfC,KAAM,CAACC,GAAQC,OAAAA,MACd,IAAKD,EAAKE,SAASC,SAAS,iBAC3B,OAGD,IAAIC,EAEJ,IACC,MAAMC,EAAsBT,WAAQU,IACnCA,EAAUC,aAAaC,IACD,kBAAjBA,EAAOC,QAIPD,EAAOE,OAASF,EAAOE,MAAMC,QAIjCH,EAAOlB,YAAYK,EAAeiB,MAAM,YAEvCC,YAAYb,EAAKE,UAEpBE,EAAmBb,OAAOc,GACzB,MAAOS,GAER,YADAd,EAAKe,KAAKd,EAAQ,8BAA8BD,EAAKE,YAItD,QAAgC,IAArBE,EACV,OAGD,GAAIA,IAAqBJ,EAAKE,SAC7B,OAGD,MAAMU,EAAQZ,EAAKY,MAAM,CAAEV,SAAUE,IAEjCX,EACHO,EAAKgB,OAAOJ,GAEZZ,EAAKV,YAAYsB,MAMrBxB,EAAQ6B,SAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import parser from 'postcss-selector-parser';\nimport type { PluginCreator } from 'postcss';\n\nconst creator: PluginCreator<{ preserve?: boolean, replaceWith?: string }> = (opts?: { preserve?: boolean, replaceWith?: string }) => {\n\tconst replaceWith = String(Object(opts).replaceWith || '[focus-within]');\n\tconst preserve = Boolean('preserve' in Object(opts) ? opts.preserve : true);\n\tconst replacementAST = parser().astSync(replaceWith);\n\n\treturn {\n\t\tpostcssPlugin: 'postcss-focus-within',\n\t\tRule: (rule, { result })=> {\n\t\t\tif (!rule.selector.includes(':focus-within')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet modifiedSelector;\n\n\t\t\ttry {\n\t\t\t\tconst modifiedSelectorAST = parser((selectors) => {\n\t\t\t\t\tselectors.walkPseudos((pseudo) => {\n\t\t\t\t\t\tif (pseudo.value !== ':focus-within') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (pseudo.nodes && pseudo.nodes.length) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpseudo.replaceWith(replacementAST.clone({}));\n\t\t\t\t\t});\n\t\t\t\t}).processSync(rule.selector);\n\n\t\t\t\tmodifiedSelector = String(modifiedSelectorAST);\n\t\t\t} catch (_) {\n\t\t\t\trule.warn(result, `Failed to parse selector : ${rule.selector}`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof modifiedSelector === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (modifiedSelector === rule.selector) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clone = rule.clone({ selector: modifiedSelector });\n\n\t\t\tif (preserve) {\n\t\t\t\trule.before(clone);\n\t\t\t} else {\n\t\t\t\trule.replaceWith(clone);\n\t\t\t}\n\t\t},\n\t};\n};\n\ncreator.postcss = true;\n\nexport default creator;\n\n"],"names":["creator","opts","replaceWith","String","Object","preserve","Boolean","replacementAST","parser","astSync","postcssPlugin","Rule","rule","result","selector","includes","modifiedSelector","modifiedSelectorAST","selectors","walkPseudos","pseudo","value","nodes","length","clone","processSync","_","warn","before","postcss"],"mappings":"6CAGMA,EAAwEC,IAC7E,MAAMC,EAAcC,OAAOC,OAAOH,GAAMC,aAAe,kBACjDG,EAAWC,UAAQ,aAAcF,OAAOH,KAAQA,EAAKI,UACrDE,EAAiBC,IAASC,QAAQP,GAExC,MAAO,CACNQ,cAAe,uBACfC,KAAM,CAACC,GAAQC,OAAAA,MACd,IAAKD,EAAKE,SAASC,SAAS,iBAC3B,OAGD,IAAIC,EAEJ,IACC,MAAMC,EAAsBT,GAAQU,IACnCA,EAAUC,aAAaC,IACD,kBAAjBA,EAAOC,QAIPD,EAAOE,OAASF,EAAOE,MAAMC,QAIjCH,EAAOlB,YAAYK,EAAeiB,MAAM,YAEvCC,YAAYb,EAAKE,UAEpBE,EAAmBb,OAAOc,GACzB,MAAOS,GAER,YADAd,EAAKe,KAAKd,EAAQ,8BAA8BD,EAAKE,YAItD,QAAgC,IAArBE,EACV,OAGD,GAAIA,IAAqBJ,EAAKE,SAC7B,OAGD,MAAMU,EAAQZ,EAAKY,MAAM,CAAEV,SAAUE,IAEjCX,EACHO,EAAKgB,OAAOJ,GAEZZ,EAAKV,YAAYsB,MAMrBxB,EAAQ6B,SAAU"}