postcss-double-position-gradients 3.1.0 → 3.1.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 PostCSS Double Position Gradients
2
2
 
3
+ ### 3.1.1 (March 7, 2022)
4
+
5
+ - Add typescript support
6
+ - Fix color functions.
7
+ - Fix `at` keyword with `at 20px 20px` being interpreted as a double position color stop.
8
+
3
9
  ### 3.1.0 (February 15, 2022)
4
10
 
5
11
  - Ignore values in relevant `@supports` rules.
@@ -0,0 +1,2 @@
1
+ import type { Node } from 'postcss';
2
+ export declare function hasSupportsAtRuleAncestor(node: Node): boolean;
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@csstools/postcss-progressive-custom-properties"),t=require("postcss-value-parser");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=r(e),i=r(t);function a(e){return e.includes("conic-gradient(")||e.includes("linear-gradient(")||e.includes("radial-gradient(")||e.includes("repeating-conic-gradient(")||e.includes("repeating-linear-gradient(")||e.includes("repeating-radial-gradient(")}const s=e=>"div"===e.type&&","===e.value;function o(e){try{return!1!==i.default.unit(null==e?void 0:e.value)}catch(e){return!1}}const u=e=>({postcssPlugin:"postcss-double-position-gradients",Declaration(t,{result:r}){if(!a(t.value))return;if(function(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name&&a(t.params))return!0;t=t.parent}else t=t.parent;return!1}(t))return;let n;try{n=i.default(t.value)}catch(e){t.warn(r,`Failed to parse value '${t.value}' as a CSS gradient. Leaving the original value intact.`)}if(void 0===n)return;n.walk((e=>{if("function"!==e.type||"conic-gradient"!==(t=e.value)&&"linear-gradient"!==t&&"radial-gradient"!==t&&"repeating-conic-gradient"!==t&&"repeating-linear-gradient"!==t&&"repeating-radial-gradient"!==t)return;var t;return e.nodes.filter((e=>"comment"!==e.type&&"space"!==e.type)).forEach(((t,r,n)=>{const i=Object(n[r-1]),a=Object(n[r-2]),u=Object(n[r+1]);if(a.type&&o(i)&&o(t)){const r={type:a.type,value:a.value},n={type:"div",value:",",before:s(u)?u.before:"",after:s(u)?"":" "};!function(e,t,...r){const n=e.findIndex((e=>e===t));e.splice.apply(e,[n-1,0].concat(Array.prototype.slice.call(...r,0)))}(e.nodes,t,[n,r])}})),!1}));const u=n.toString();if(u!==t.value){if(e.preserve)return void t.cloneBefore({value:u});t.value=u}}});u.postcss=!0;const l=e=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!0},e);return t.enableProgressiveCustomProperties&&t.preserve?{postcssPlugin:"postcss-double-position-gradients",plugins:[n.default(),u(t)]}:u(t)};l.postcss=!0,module.exports=l;
1
+ "use strict";var e=require("@csstools/postcss-progressive-custom-properties"),t=require("postcss-value-parser");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=r(e),i=r(t);function s(e){return e.includes("conic-gradient(")||e.includes("linear-gradient(")||e.includes("radial-gradient(")||e.includes("repeating-conic-gradient(")||e.includes("repeating-linear-gradient(")||e.includes("repeating-radial-gradient(")}const a=["at","bottom","center","circle","closest-corner","closest-side","ellipse","farthest-corner","farthest-side","from","in","left","right","to","top"],o=e=>"div"===e.type&&","===e.value;function l(e){try{return!1!==i.default.unit(null==e?void 0:e.value)}catch(e){return!1}}const c=e=>({postcssPlugin:"postcss-double-position-gradients",Declaration(t,{result:r}){if(!s(t.value))return;if(function(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name&&s(t.params))return!0;t=t.parent}else t=t.parent;return!1}(t))return;let n;try{n=i.default(t.value)}catch(e){t.warn(r,`Failed to parse value '${t.value}' as a CSS gradient. Leaving the original value intact.`)}if(void 0===n)return;n.walk((e=>{if("function"!==e.type||"conic-gradient"!==(t=e.value)&&"linear-gradient"!==t&&"radial-gradient"!==t&&"repeating-conic-gradient"!==t&&"repeating-linear-gradient"!==t&&"repeating-radial-gradient"!==t)return;var t;const r=e.nodes.filter((e=>"comment"!==e.type&&"space"!==e.type));let n=!1;r.forEach(((t,r,i)=>{if("word"===t.type&&a.includes(t.value)&&(n=!0),"div"===t.type&&","===t.value&&(n=!1),n)return;const s=Object(i[r-1]),c=Object(i[r-2]),u=Object(i[r+1]);if(c.type&&l(s)&&l(t)){const r=c,n={type:"div",value:",",before:o(u)?u.before:"",after:o(u)?"":" "};e.nodes.splice(e.nodes.indexOf(t)-1,0,n,r)}}))}));const c=n.toString();if(c!==t.value){if(e.preserve)return void t.cloneBefore({value:c});t.value=c}}});c.postcss=!0;const u=e=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!0},e);return t.enableProgressiveCustomProperties&&t.preserve?{postcssPlugin:"postcss-double-position-gradients",plugins:[n.default(),c(t)]}:c(t)};u.postcss=!0,module.exports=u;
@@ -0,0 +1,7 @@
1
+ import type { PluginCreator } from 'postcss';
2
+ declare type pluginOptions = {
3
+ preserve?: boolean;
4
+ enableProgressiveCustomProperties?: boolean;
5
+ };
6
+ declare const postcssPlugin: PluginCreator<pluginOptions>;
7
+ export default postcssPlugin;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import e from"@csstools/postcss-progressive-custom-properties";import t from"postcss-value-parser";function r(e){return e.includes("conic-gradient(")||e.includes("linear-gradient(")||e.includes("radial-gradient(")||e.includes("repeating-conic-gradient(")||e.includes("repeating-linear-gradient(")||e.includes("repeating-radial-gradient(")}const n=e=>"div"===e.type&&","===e.value;function i(e){try{return!1!==t.unit(null==e?void 0:e.value)}catch(e){return!1}}const a=e=>({postcssPlugin:"postcss-double-position-gradients",Declaration(a,{result:s}){if(!r(a.value))return;if(function(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name&&r(t.params))return!0;t=t.parent}else t=t.parent;return!1}(a))return;let o;try{o=t(a.value)}catch(e){a.warn(s,`Failed to parse value '${a.value}' as a CSS gradient. Leaving the original value intact.`)}if(void 0===o)return;o.walk((e=>{if("function"!==e.type||"conic-gradient"!==(t=e.value)&&"linear-gradient"!==t&&"radial-gradient"!==t&&"repeating-conic-gradient"!==t&&"repeating-linear-gradient"!==t&&"repeating-radial-gradient"!==t)return;var t;return e.nodes.filter((e=>"comment"!==e.type&&"space"!==e.type)).forEach(((t,r,a)=>{const s=Object(a[r-1]),o=Object(a[r-2]),c=Object(a[r+1]);if(o.type&&i(s)&&i(t)){const r={type:o.type,value:o.value},i={type:"div",value:",",before:n(c)?c.before:"",after:n(c)?"":" "};!function(e,t,...r){const n=e.findIndex((e=>e===t));e.splice.apply(e,[n-1,0].concat(Array.prototype.slice.call(...r,0)))}(e.nodes,t,[i,r])}})),!1}));const c=o.toString();if(c!==a.value){if(e.preserve)return void a.cloneBefore({value:c});a.value=c}}});a.postcss=!0;const s=t=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!0},t);return r.enableProgressiveCustomProperties&&r.preserve?{postcssPlugin:"postcss-double-position-gradients",plugins:[e(),a(r)]}:a(r)};s.postcss=!0;export{s as default};
1
+ import e from"@csstools/postcss-progressive-custom-properties";import t from"postcss-value-parser";function r(e){return e.includes("conic-gradient(")||e.includes("linear-gradient(")||e.includes("radial-gradient(")||e.includes("repeating-conic-gradient(")||e.includes("repeating-linear-gradient(")||e.includes("repeating-radial-gradient(")}const n=["at","bottom","center","circle","closest-corner","closest-side","ellipse","farthest-corner","farthest-side","from","in","left","right","to","top"],i=e=>"div"===e.type&&","===e.value;function s(e){try{return!1!==t.unit(null==e?void 0:e.value)}catch(e){return!1}}const a=e=>({postcssPlugin:"postcss-double-position-gradients",Declaration(a,{result:o}){if(!r(a.value))return;if(function(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name&&r(t.params))return!0;t=t.parent}else t=t.parent;return!1}(a))return;let l;try{l=t(a.value)}catch(e){a.warn(o,`Failed to parse value '${a.value}' as a CSS gradient. Leaving the original value intact.`)}if(void 0===l)return;l.walk((e=>{if("function"!==e.type||"conic-gradient"!==(t=e.value)&&"linear-gradient"!==t&&"radial-gradient"!==t&&"repeating-conic-gradient"!==t&&"repeating-linear-gradient"!==t&&"repeating-radial-gradient"!==t)return;var t;const r=e.nodes.filter((e=>"comment"!==e.type&&"space"!==e.type));let a=!1;r.forEach(((t,r,o)=>{if("word"===t.type&&n.includes(t.value)&&(a=!0),"div"===t.type&&","===t.value&&(a=!1),a)return;const l=Object(o[r-1]),c=Object(o[r-2]),u=Object(o[r+1]);if(c.type&&s(l)&&s(t)){const r=c,n={type:"div",value:",",before:i(u)?u.before:"",after:i(u)?"":" "};e.nodes.splice(e.nodes.indexOf(t)-1,0,n,r)}}))}));const c=l.toString();if(c!==a.value){if(e.preserve)return void a.cloneBefore({value:c});a.value=c}}});a.postcss=!0;const o=t=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!0},t);return r.enableProgressiveCustomProperties&&r.preserve?{postcssPlugin:"postcss-double-position-gradients",plugins:[e(),a(r)]}:a(r)};o.postcss=!0;export{o as default};
@@ -0,0 +1,2 @@
1
+ export declare function includesGradientsFunction(str: string): boolean;
2
+ export declare function isGradientsFunctions(str: string): boolean;
package/package.json CHANGED
@@ -1,67 +1,74 @@
1
1
  {
2
- "name": "postcss-double-position-gradients",
3
- "version": "3.1.0",
4
- "description": "Use double-position gradients in CSS",
5
- "author": "Jonathan Neal <jonathantneal@hotmail.com>",
6
- "license": "CC0-1.0",
7
- "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-double-position-gradients#readme",
8
- "bugs": "https://github.com/csstools/postcss-plugins/issues",
9
- "main": "dist/index.cjs",
10
- "module": "dist/index.mjs",
11
- "exports": {
12
- ".": {
13
- "import": "./dist/index.mjs",
14
- "require": "./dist/index.cjs",
15
- "default": "./dist/index.mjs"
16
- }
17
- },
18
- "files": [
19
- "CHANGELOG.md",
20
- "LICENSE.md",
21
- "README.md",
22
- "dist"
23
- ],
24
- "scripts": {
25
- "build": "rollup -c ../../rollup/default.js",
26
- "clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true });\"",
27
- "lint": "eslint ./src --ext .js --ext .ts --ext .mjs --no-error-on-unmatched-pattern",
28
- "prepublishOnly": "npm run clean && npm run build && npm run test",
29
- "stryker": "stryker run --logLevel error",
30
- "test": "node .tape.mjs && npm run test:exports",
31
- "test:exports": "node ./test/_import.mjs && node ./test/_require.cjs",
32
- "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs"
33
- },
34
- "engines": {
35
- "node": "^12 || ^14 || >=16"
36
- },
37
- "dependencies": {
38
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
39
- "postcss-value-parser": "^4.2.0"
40
- },
41
- "peerDependencies": {
42
- "postcss": "^8.4"
43
- },
44
- "keywords": [
45
- "postcss",
46
- "css",
47
- "postcss-plugin",
48
- "double",
49
- "position",
50
- "gradients",
51
- "linear",
52
- "radial",
53
- "conic",
54
- "color",
55
- "stop",
56
- "syntax",
57
- "repeating"
58
- ],
59
- "repository": {
60
- "type": "git",
61
- "url": "https://github.com/csstools/postcss-plugins.git",
62
- "directory": "plugins/postcss-double-position-gradients"
63
- },
64
- "volta": {
65
- "extends": "../../package.json"
66
- }
2
+ "name": "postcss-double-position-gradients",
3
+ "description": "Use double-position gradients in CSS",
4
+ "version": "3.1.1",
5
+ "author": "Jonathan Neal <jonathantneal@hotmail.com>",
6
+ "license": "CC0-1.0",
7
+ "engines": {
8
+ "node": "^12 || ^14 || >=16"
9
+ },
10
+ "main": "dist/index.cjs",
11
+ "module": "dist/index.mjs",
12
+ "types": "dist/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "import": "./dist/index.mjs",
16
+ "require": "./dist/index.cjs",
17
+ "default": "./dist/index.mjs"
18
+ }
19
+ },
20
+ "files": [
21
+ "CHANGELOG.md",
22
+ "LICENSE.md",
23
+ "README.md",
24
+ "dist"
25
+ ],
26
+ "dependencies": {
27
+ "@csstools/postcss-progressive-custom-properties": "^1.1.0",
28
+ "postcss-value-parser": "^4.2.0"
29
+ },
30
+ "peerDependencies": {
31
+ "postcss": "^8.4"
32
+ },
33
+ "scripts": {
34
+ "build": "rollup -c ../../rollup/default.js",
35
+ "clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true });\"",
36
+ "docs": "node ../../.github/bin/generate-docs/install.mjs",
37
+ "lint": "npm run lint:eslint && npm run lint:package-json",
38
+ "lint:eslint": "eslint ./src --ext .js --ext .ts --ext .mjs --no-error-on-unmatched-pattern",
39
+ "lint:package-json": "node ../../.github/bin/format-package-json.mjs",
40
+ "prepublishOnly": "npm run clean && npm run build && npm run test",
41
+ "test": "node .tape.mjs && npm run test:exports",
42
+ "test:exports": "node ./test/_import.mjs && node ./test/_require.cjs",
43
+ "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs"
44
+ },
45
+ "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-double-position-gradients#readme",
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "https://github.com/csstools/postcss-plugins.git",
49
+ "directory": "plugins/postcss-double-position-gradients"
50
+ },
51
+ "bugs": "https://github.com/csstools/postcss-plugins/issues",
52
+ "keywords": [
53
+ "color",
54
+ "conic",
55
+ "css",
56
+ "double",
57
+ "gradients",
58
+ "linear",
59
+ "position",
60
+ "postcss",
61
+ "postcss-plugin",
62
+ "radial",
63
+ "repeating",
64
+ "stop",
65
+ "syntax"
66
+ ],
67
+ "csstools": {
68
+ "exportName": "postcssDoublePositionGradients",
69
+ "humanReadableName": "PostCSS Double Position Gradients"
70
+ },
71
+ "volta": {
72
+ "extends": "../../package.json"
73
+ }
67
74
  }