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 +15 -0
- package/README.md +74 -44
- package/dist/browser-global.js +2 -0
- package/dist/browser-global.js.map +1 -0
- package/dist/browser.cjs +2 -0
- package/dist/browser.cjs.map +1 -0
- package/dist/browser.mjs +2 -0
- package/dist/browser.mjs.map +1 -0
- package/dist/index.cjs +1 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.mjs +1 -2
- package/package.json +99 -60
- package/INSTALL.md +0 -170
- package/dist/cli.d.ts +0 -1
- package/dist/cli.mjs +0 -3
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs.map +0 -1
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
|
-
|
|
12
|
-
|
|
13
|
-
[](https://caniuse.com/#feat=css-focus-within)
|
|
14
|
-
|
|
15
|
-
```css
|
|
8
|
+
```pcss
|
|
16
9
|
.my-form-field:focus-within label {
|
|
17
|
-
|
|
10
|
+
background-color: yellow;
|
|
18
11
|
}
|
|
19
12
|
|
|
20
13
|
/* becomes */
|
|
21
14
|
|
|
22
|
-
.my-form-field[focus-within] label {
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
75
|
-
default,
|
|
58
|
+
The `preserve` option determines whether the original notation
|
|
59
|
+
is preserved. By default, it is preserved.
|
|
76
60
|
|
|
77
61
|
```js
|
|
78
|
-
|
|
62
|
+
postcssFocusWithin({ preserve: false })
|
|
79
63
|
```
|
|
80
64
|
|
|
81
|
-
```
|
|
65
|
+
```pcss
|
|
82
66
|
.my-form-field:focus-within label {
|
|
83
|
-
|
|
67
|
+
background-color: yellow;
|
|
84
68
|
}
|
|
85
69
|
|
|
86
70
|
/* becomes */
|
|
87
71
|
|
|
88
|
-
.my-form-field[focus-within] label {
|
|
89
|
-
|
|
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
|
-
|
|
86
|
+
postcssFocusWithin({ replaceWith: '.focus-within' });
|
|
100
87
|
```
|
|
101
88
|
|
|
102
|
-
```
|
|
89
|
+
```pcss
|
|
103
90
|
.my-form-field:focus-within label {
|
|
104
|
-
|
|
91
|
+
background-color: yellow;
|
|
105
92
|
}
|
|
106
93
|
|
|
107
94
|
/* becomes */
|
|
108
95
|
|
|
109
|
-
.my-form-field.focus-within label {
|
|
110
|
-
|
|
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
|
-
|
|
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
|
-
[
|
|
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"}
|
package/dist/browser.cjs
ADDED
|
@@ -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"}
|
package/dist/browser.mjs
ADDED
|
@@ -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
|
|
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
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import e from"postcss-selector-parser";const s=
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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=>`[0m${e}[0m`:String,bold:e?h("[1m","[22m","[22m[1m"):String,dim:e?h("[2m","[22m","[22m[2m"):String,italic:e?h("[3m","[23m"):String,underline:e?h("[4m","[24m"):String,inverse:e?h("[7m","[27m"):String,hidden:e?h("[8m","[28m"):String,strikethrough:e?h("[9m","[29m"):String,black:e?h("[30m","[39m"):String,red:e?h("[31m","[39m"):String,green:e?h("[32m","[39m"):String,yellow:e?h("[33m","[39m"):String,blue:e?h("[34m","[39m"):String,magenta:e?h("[35m","[39m"):String,cyan:e?h("[36m","[39m"):String,white:e?h("[37m","[39m"):String,gray:e?h("[90m","[39m"):String,bgBlack:e?h("[40m","[49m"):String,bgRed:e?h("[41m","[49m"):String,bgGreen:e?h("[42m","[49m"):String,bgYellow:e?h("[43m","[49m"):String,bgBlue:e?h("[44m","[49m"):String,bgMagenta:e?h("[45m","[49m"):String,bgCyan:e?h("[46m","[49m"):String,bgWhite:e?h("[47m","[49m"):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&>);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"}));
|
package/dist/index.cjs.map
DELETED
|
@@ -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"}
|
package/dist/index.mjs.map
DELETED
|
@@ -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"}
|