css-blank-pseudo 6.0.0 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changes to CSS Blank Pseudo
2
2
 
3
+ ### 6.0.1
4
+
5
+ _December 15, 2023_
6
+
7
+ - Fix type definitions
8
+
3
9
  ### 6.0.0
4
10
 
5
11
  _July 3, 2023_
@@ -12,177 +18,4 @@ _February 6, 2023_
12
18
 
13
19
  - Reduce the amount of duplicate fallback CSS.
14
20
 
15
- ### 5.0.1
16
-
17
- _January 28, 2023_
18
-
19
- - Improve `types` declaration in `package.json`
20
-
21
- ### 5.0.0
22
-
23
- _January 24, 2023_
24
-
25
- - Updated: Support for Node v14+ (major).
26
- - Fix: Do not throw when a selector is invalid, show a warning instead.
27
- - Updated: Export and document the plugin options types.
28
-
29
- ### 4.1.1
30
-
31
- _August 23, 2022_
32
-
33
- - Fix: assign global browser polyfill to `window`, `self` or a blank object.
34
-
35
- ### 4.1.0
36
-
37
- _July 30, 2022_
38
-
39
- - Added: `disablePolyfillReadyClass` plugin option to prevent `.js-blank-pseudo` from being added.
40
-
41
- ### 4.0.0
42
-
43
- _July 8, 2022_
44
-
45
- - Updated: The polyfill now only attaches a single listener to the body so it's
46
- more efficient and also does less work at the MutationObserver handler.
47
- - Breaking: removed old CDN urls
48
- - Breaking: removed old CLI
49
- - Fix case insensitive matching.
50
-
51
- #### How to migrate:
52
-
53
- - If you use a CDN url, please update it.
54
- - Re-build your CSS with the new version of the library.
55
-
56
- ```diff
57
- - <script src="https://unpkg.com/css-blank-pseudo/browser"></script>
58
- - <script src="https://unpkg.com/css-blank-pseudo/browser.min"></script>
59
- + <script src="https://unpkg.com/css-blank-pseudo/dist/browser-global.js"></script>
60
- ```
61
-
62
- ```diff
63
- - cssBlankPseudo(document)
64
- + cssBlankPseudoInit()
65
- ```
66
-
67
- ```diff
68
- - cssBlankPseudo({
69
- - attr: false,
70
- - className: 'blank'
71
- - })
72
- + cssBlankPseudoInit({
73
- + replaceWith: '.blank'
74
- + })
75
- ```
76
-
77
- ### 3.0.3
78
-
79
- _February 5, 2022_
80
-
81
- - Rebuild of browser polyfills
82
-
83
- ### 3.0.2
84
-
85
- _January 2, 2022_
86
-
87
- - Removed Sourcemaps from package tarball.
88
- - Moved CLI to CLI Package. See [announcement](https://github.com/csstools/postcss-plugins/discussions/121).
89
-
90
- ### 3.0.1
91
-
92
- _December 27, 2021_
93
-
94
- - Fixed: require/import paths for browser script
95
-
96
- ### 3.0.0
97
-
98
- _December 13, 2021_
99
-
100
- - Breaking: require/import paths have changed
101
- - Changed: new polyfill CDN urls.
102
- - Changed: Supports Node 12+ (major).
103
- - Updated: documentation
104
-
105
- **Migrating to 3.0.0**
106
-
107
- PostCSS plugin :
108
-
109
- ```diff
110
- - const postcssBlankPseudo = require('css-blank-pseudo/postcss');
111
- + const postcssBlankPseudo = require('css-blank-pseudo');
112
- ```
113
-
114
- Browser Polyfill :
115
-
116
- ```diff
117
- - const cssBlankPseudo = require('css-blank-pseudo');
118
- + const cssBlankPseudo = require('css-blank-pseudo/browser');
119
- ```
120
-
121
- _The old CND url is now deprecated and will be removed in a next major release._
122
- _It will continue to work for now._
123
-
124
- ```diff
125
- - <script src="https://unpkg.com/css-blank-pseudo/browser"></script>
126
- + <script src="https://unpkg.com/css-blank-pseudo/dist/browser-global.js"></script>
127
- ```
128
-
129
- Browser Polyfill IE :
130
-
131
- _The polyfill for IE is now the same as the general polyfill_
132
-
133
- ```diff
134
- - const cssBlankPseudo = require('css-blank-pseudo');
135
- + const cssBlankPseudo = require('css-blank-pseudo/browser');
136
- ```
137
-
138
- _The old CND url is now deprecated and will be removed in a next major release._
139
- _It will continue to work for now._
140
-
141
- ```diff
142
- - <script src="https://unpkg.com/css-blank-pseudo/browser-legacy"></script>
143
- + <script src="https://unpkg.com/css-blank-pseudo/dist/browser-global.js"></script>
144
- ```
145
-
146
- ### 2.0.0
147
-
148
- _September 16, 2021_
149
-
150
- - Changed: Supports PostCSS 8.3+ (major).
151
- - Changed: Supports Node 10+ (major).
152
-
153
- ### 1.0.0
154
-
155
- _June 10, 2019_
156
-
157
- - Updated: `postcss` to 7.0.16 (patch)
158
- - Updated: Node 8+ compatibility (major)
159
-
160
- ### 0.1.4
161
-
162
- _November 17, 2018_
163
-
164
- - Update documentation
165
-
166
- ### 0.1.3
167
-
168
- _November 17, 2018_
169
-
170
- - Improve CLI usage
171
-
172
- ### 0.1.2
173
-
174
- _November 17, 2018_
175
-
176
- - Provide a version specifically for Internet Explorer 11
177
-
178
- ### 0.1.1
179
-
180
- _November 17, 2018_
181
-
182
- - Update documentation
183
-
184
- ### 0.1.0
185
-
186
- _November 17, 2018_
187
-
188
- - Initial version
21
+ [Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/css-blank-pseudo/CHANGELOG.md)
package/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  [<img alt="npm version" src="https://img.shields.io/npm/v/css-blank-pseudo.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/blank-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]
4
4
 
5
+ ```bash
6
+ npm install css-blank-pseudo --save-dev
7
+ ```
8
+
5
9
  [PostCSS Blank Pseudo] lets you style form elements when they are empty, following
6
10
  the [Selectors Level 4] specification.
7
11
 
@@ -145,7 +149,7 @@ or
145
149
 
146
150
  ```html
147
151
  <!-- When using a CDN url you will have to manually update the version number -->
148
- <script src="https://unpkg.com/css-blank-pseudo@6.0.0/dist/browser-global.js"></script>
152
+ <script src="https://unpkg.com/css-blank-pseudo@6.0.1/dist/browser-global.js"></script>
149
153
  <script>cssBlankPseudoInit()</script>
150
154
  ```
151
155
 
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("postcss-selector-parser");const s=[" ",">","~",":","+","@","#","(",")"];function isValidReplacement(e){let n=!0;for(let t=0,l=s.length;t<l&&n;t++)e.indexOf(s[t])>-1&&(n=!1);return n}const n="js-blank-pseudo",t=":blank",creator=s=>{const l=Object.assign({preserve:!0,replaceWith:"[blank]",disablePolyfillReadyClass:!1},s),r=e().astSync(l.replaceWith);return isValidReplacement(l.replaceWith)?{postcssPlugin:"css-blank-pseudo",prepare(){const s=new WeakSet;return{Rule(o,{result:a}){if(s.has(o))return;if(!o.selector.toLowerCase().includes(t))return;const i=o.selectors.flatMap((s=>{if(!s.toLowerCase().includes(t))return[s];let i;try{i=e().astSync(s)}catch(e){return o.warn(a,`Failed to parse selector : "${s}" with message: "${e.message}"`),[s]}if(void 0===i)return[s];let c=!1;if(i.walkPseudos((e=>{e.value.toLowerCase()===t&&(e.nodes&&e.nodes.length||(c=!0,e.replaceWith(r.clone({}))))})),!c)return[s];const d=i.clone();if(!l.disablePolyfillReadyClass){var u,p,f,g,m;if(null!=(u=i.nodes)&&null!=(p=u[0])&&null!=(f=p.nodes)&&f.length)for(let s=0;s<i.nodes[0].nodes.length;s++){const t=i.nodes[0].nodes[s];if("combinator"===t.type||e.isPseudoElement(t)){i.nodes[0].insertBefore(t,e.className({value:n}));break}if(s===i.nodes[0].nodes.length-1){i.nodes[0].append(e.className({value:n}));break}}return null!=(g=i.nodes)&&null!=(m=g[0])&&m.nodes&&(d.nodes[0].prepend(e.combinator({value:" "})),d.nodes[0].prepend(e.className({value:n}))),[i.toString(),d.toString()]}return[i.toString()]}));i.join(",")!==o.selectors.join(",")&&(s.add(o),o.cloneBefore({selectors:i}),l.preserve||o.remove())}}}}:{postcssPlugin:"css-blank-pseudo",Once:(e,{result:s})=>{e.warn(s,`${l.replaceWith} is not a valid replacement since it can't be applied to single elements.`)}}};creator.postcss=!0,module.exports=creator;
1
+ "use strict";var e=require("postcss-selector-parser");const s=[" ",">","~",":","+","@","#","(",")"];function isValidReplacement(e){let n=!0;for(let t=0,r=s.length;t<r&&n;t++)e.indexOf(s[t])>-1&&(n=!1);return n}const n="js-blank-pseudo",t=":blank",creator=s=>{const r=Object.assign({preserve:!0,replaceWith:"[blank]",disablePolyfillReadyClass:!1},s),o=e().astSync(r.replaceWith);return isValidReplacement(r.replaceWith)?{postcssPlugin:"css-blank-pseudo",prepare(){const s=new WeakSet;return{Rule(l,{result:a}){if(s.has(l))return;if(!l.selector.toLowerCase().includes(t))return;const i=l.selectors.flatMap((s=>{if(!s.toLowerCase().includes(t))return[s];let i;try{i=e().astSync(s)}catch(e){return l.warn(a,`Failed to parse selector : "${s}" with message: "${e instanceof Error?e.message:e}"`),[s]}if(void 0===i)return[s];let c=!1;if(i.walkPseudos((e=>{e.value.toLowerCase()===t&&(e.nodes&&e.nodes.length||(c=!0,e.replaceWith(o.clone({}))))})),!c)return[s];const d=i.clone();if(!r.disablePolyfillReadyClass){if(i.nodes?.[0]?.nodes?.length)for(let s=0;s<i.nodes[0].nodes.length;s++){const t=i.nodes[0].nodes[s];if("combinator"===t.type||e.isPseudoElement(t)){i.nodes[0].insertBefore(t,e.className({value:n}));break}if(s===i.nodes[0].nodes.length-1){i.nodes[0].append(e.className({value:n}));break}}return i.nodes?.[0]?.nodes&&(d.nodes[0].prepend(e.combinator({value:" "})),d.nodes[0].prepend(e.className({value:n}))),[i.toString(),d.toString()]}return[i.toString()]}));i.join(",")!==l.selectors.join(",")&&(s.add(l),l.cloneBefore({selectors:i}),r.preserve||l.remove())}}}}:{postcssPlugin:"css-blank-pseudo",Once:(e,{result:s})=>{e.warn(s,`${r.replaceWith} is not a valid replacement since it can't be applied to single elements.`)}}};creator.postcss=!0,module.exports=creator;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  import type { PluginCreator } from 'postcss';
2
+
3
+ declare const creator: PluginCreator<pluginOptions>;
4
+ export default creator;
5
+
2
6
  /** css-blank-pseudo plugin options */
3
- export type pluginOptions = {
7
+ export declare type pluginOptions = {
4
8
  /** Preserve the original notation. default: true */
5
9
  preserve?: boolean;
6
10
  /** Replacement for ":blank". default: "[blank]" */
@@ -8,5 +12,5 @@ export type pluginOptions = {
8
12
  /** Do not inject "js-blank-pseudo" before each selector with "[blank]". default: false */
9
13
  disablePolyfillReadyClass?: boolean;
10
14
  };
11
- declare const creator: PluginCreator<pluginOptions>;
12
- export default creator;
15
+
16
+ export { }
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import e from"postcss-selector-parser";const s=[" ",">","~",":","+","@","#","(",")"];function isValidReplacement(e){let n=!0;for(let t=0,l=s.length;t<l&&n;t++)e.indexOf(s[t])>-1&&(n=!1);return n}const n="js-blank-pseudo",t=":blank",creator=s=>{const l=Object.assign({preserve:!0,replaceWith:"[blank]",disablePolyfillReadyClass:!1},s),o=e().astSync(l.replaceWith);return isValidReplacement(l.replaceWith)?{postcssPlugin:"css-blank-pseudo",prepare(){const s=new WeakSet;return{Rule(r,{result:a}){if(s.has(r))return;if(!r.selector.toLowerCase().includes(t))return;const i=r.selectors.flatMap((s=>{if(!s.toLowerCase().includes(t))return[s];let i;try{i=e().astSync(s)}catch(e){return r.warn(a,`Failed to parse selector : "${s}" with message: "${e.message}"`),[s]}if(void 0===i)return[s];let c=!1;if(i.walkPseudos((e=>{e.value.toLowerCase()===t&&(e.nodes&&e.nodes.length||(c=!0,e.replaceWith(o.clone({}))))})),!c)return[s];const d=i.clone();if(!l.disablePolyfillReadyClass){var u,p,f,m,g;if(null!=(u=i.nodes)&&null!=(p=u[0])&&null!=(f=p.nodes)&&f.length)for(let s=0;s<i.nodes[0].nodes.length;s++){const t=i.nodes[0].nodes[s];if("combinator"===t.type||e.isPseudoElement(t)){i.nodes[0].insertBefore(t,e.className({value:n}));break}if(s===i.nodes[0].nodes.length-1){i.nodes[0].append(e.className({value:n}));break}}return null!=(m=i.nodes)&&null!=(g=m[0])&&g.nodes&&(d.nodes[0].prepend(e.combinator({value:" "})),d.nodes[0].prepend(e.className({value:n}))),[i.toString(),d.toString()]}return[i.toString()]}));i.join(",")!==r.selectors.join(",")&&(s.add(r),r.cloneBefore({selectors:i}),l.preserve||r.remove())}}}}:{postcssPlugin:"css-blank-pseudo",Once:(e,{result:s})=>{e.warn(s,`${l.replaceWith} is not a valid replacement since it can't be applied to single elements.`)}}};creator.postcss=!0;export{creator as default};
1
+ import e from"postcss-selector-parser";const s=[" ",">","~",":","+","@","#","(",")"];function isValidReplacement(e){let n=!0;for(let t=0,o=s.length;t<o&&n;t++)e.indexOf(s[t])>-1&&(n=!1);return n}const n="js-blank-pseudo",t=":blank",creator=s=>{const o=Object.assign({preserve:!0,replaceWith:"[blank]",disablePolyfillReadyClass:!1},s),r=e().astSync(o.replaceWith);return isValidReplacement(o.replaceWith)?{postcssPlugin:"css-blank-pseudo",prepare(){const s=new WeakSet;return{Rule(l,{result:a}){if(s.has(l))return;if(!l.selector.toLowerCase().includes(t))return;const i=l.selectors.flatMap((s=>{if(!s.toLowerCase().includes(t))return[s];let i;try{i=e().astSync(s)}catch(e){return l.warn(a,`Failed to parse selector : "${s}" with message: "${e instanceof Error?e.message:e}"`),[s]}if(void 0===i)return[s];let c=!1;if(i.walkPseudos((e=>{e.value.toLowerCase()===t&&(e.nodes&&e.nodes.length||(c=!0,e.replaceWith(r.clone({}))))})),!c)return[s];const d=i.clone();if(!o.disablePolyfillReadyClass){if(i.nodes?.[0]?.nodes?.length)for(let s=0;s<i.nodes[0].nodes.length;s++){const t=i.nodes[0].nodes[s];if("combinator"===t.type||e.isPseudoElement(t)){i.nodes[0].insertBefore(t,e.className({value:n}));break}if(s===i.nodes[0].nodes.length-1){i.nodes[0].append(e.className({value:n}));break}}return i.nodes?.[0]?.nodes&&(d.nodes[0].prepend(e.combinator({value:" "})),d.nodes[0].prepend(e.className({value:n}))),[i.toString(),d.toString()]}return[i.toString()]}));i.join(",")!==l.selectors.join(",")&&(s.add(l),l.cloneBefore({selectors:i}),o.preserve||l.remove())}}}}:{postcssPlugin:"css-blank-pseudo",Once:(e,{result:s})=>{e.warn(s,`${o.replaceWith} is not a valid replacement since it can't be applied to single elements.`)}}};creator.postcss=!0;export{creator as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "css-blank-pseudo",
3
3
  "description": "Style form elements when they are empty",
4
- "version": "6.0.0",
4
+ "version": "6.0.1",
5
5
  "contributors": [
6
6
  {
7
7
  "name": "Antonio Laguna",
@@ -31,15 +31,18 @@
31
31
  "engines": {
32
32
  "node": "^14 || ^16 || >=18"
33
33
  },
34
+ "type": "module",
34
35
  "main": "dist/index.cjs",
35
36
  "module": "dist/index.mjs",
36
- "types": "dist/index.d.ts",
37
37
  "exports": {
38
38
  ".": {
39
- "types": "./dist/index.d.ts",
40
- "import": "./dist/index.mjs",
41
- "require": "./dist/index.cjs",
42
- "default": "./dist/index.mjs"
39
+ "import": {
40
+ "types": "./dist/index.d.ts",
41
+ "default": "./dist/index.mjs"
42
+ },
43
+ "require": {
44
+ "default": "./dist/index.cjs"
45
+ }
43
46
  },
44
47
  "./browser": {
45
48
  "import": "./dist/browser.mjs",
@@ -62,19 +65,6 @@
62
65
  "peerDependencies": {
63
66
  "postcss": "^8.4"
64
67
  },
65
- "devDependencies": {
66
- "@csstools/postcss-tape": "*",
67
- "puppeteer": "^20.7.4"
68
- },
69
- "scripts": {
70
- "build": "rollup -c ../../rollup/default.mjs",
71
- "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs",
72
- "lint": "node ../../.github/bin/format-package-json.mjs",
73
- "prepublishOnly": "npm run build && npm run test",
74
- "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs && node ./test/_valid-replacements.mjs",
75
- "test:browser": "node ./test/_browser.mjs",
76
- "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs"
77
- },
78
68
  "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/css-blank-pseudo#readme",
79
69
  "repository": {
80
70
  "type": "git",
@@ -98,14 +88,5 @@
98
88
  "select",
99
89
  "selectors",
100
90
  "textarea"
101
- ],
102
- "csstools": {
103
- "cssdbId": "blank-pseudo-class",
104
- "exportName": "postcssBlankPseudo",
105
- "humanReadableName": "PostCSS Blank Pseudo",
106
- "specUrl": "https://www.w3.org/TR/selectors-4/#blank"
107
- },
108
- "volta": {
109
- "extends": "../../package.json"
110
- }
91
+ ]
111
92
  }