summaryrefslogtreecommitdiffstats
path: root/node_modules/icss-utils
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/icss-utils
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/icss-utils')
-rw-r--r--node_modules/icss-utils/README.md79
-rw-r--r--node_modules/icss-utils/lib/createICSSRules.js54
-rw-r--r--node_modules/icss-utils/lib/extractICSS.js45
-rw-r--r--node_modules/icss-utils/lib/index.js43
-rw-r--r--node_modules/icss-utils/lib/replaceSymbols.js22
-rw-r--r--node_modules/icss-utils/lib/replaceValueSymbols.js20
-rw-r--r--node_modules/icss-utils/package.json97
7 files changed, 360 insertions, 0 deletions
diff --git a/node_modules/icss-utils/README.md b/node_modules/icss-utils/README.md
new file mode 100644
index 0000000..19687f0
--- /dev/null
+++ b/node_modules/icss-utils/README.md
@@ -0,0 +1,79 @@
+[![Build Status](https://travis-ci.org/css-modules/icss-utils.svg)](https://travis-ci.org/css-modules/icss-utils)
+
+# ICSS Utils
+
+## replaceSymbols
+
+Governs the way tokens are searched & replaced during the linking stage of ICSS loading.
+
+This is broken into its own module in case the behaviour needs to be replicated in other PostCSS plugins
+(i.e. [CSS Modules Values](https://github.com/css-modules/postcss-modules-values))
+
+```js
+import { replaceSymbols, replaceValueSymbols } from "icss-utils"
+replaceSymbols(css, replacements)
+replaceValueSymbols(string, replacements)
+```
+
+Where:
+
+- `css` is the PostCSS tree you're working with
+- `replacements` is an JS object of `symbol: "replacement"` pairs, where all occurrences of `symbol` are replaced with `replacement`.
+
+A symbol is a string of alphanumeric, `-` or `_` characters. A replacement can be any string. They are replaced in the following places:
+
+- In the value of a declaration, i.e. `color: my_symbol;` or `box-shadow: 0 0 blur spread shadow-color`
+- In a media expression i.e. `@media small {}` or `@media screen and not-large {}`
+
+## extractICSS(css, removeRules = true)
+
+Extracts and remove (if removeRules is equal true) from PostCSS tree `:import` and `:export` statements.
+
+```js
+import postcss from 'postcss';
+import { extractICSS } from 'icss-utils'
+
+const css = postcss.parse(`
+ :import(colors) {
+ a: b;
+ }
+ :export {
+ c: d;
+ }
+`)
+
+extractICSS(css)
+/*
+ {
+ icssImports: {
+ colors: {
+ a: 'b'
+ }
+ },
+ icssExports: {
+ c: 'd'
+ }
+ }
+*/
+```
+
+## createICSSRules(icssImports, icssExports)
+
+Converts icss imports and exports definitions to postcss ast
+
+```js
+createICSSRules({
+ colors: {
+ a: 'b'
+ }
+}, {
+ c: 'd'
+})
+```
+
+## License
+
+ISC
+
+---
+Glen Maddern and Bogdan Chadkin, 2015.
diff --git a/node_modules/icss-utils/lib/createICSSRules.js b/node_modules/icss-utils/lib/createICSSRules.js
new file mode 100644
index 0000000..585a984
--- /dev/null
+++ b/node_modules/icss-utils/lib/createICSSRules.js
@@ -0,0 +1,54 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _postcss = require('postcss');
+
+var _postcss2 = _interopRequireDefault(_postcss);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
+
+var createImports = function createImports(imports) {
+ return Object.keys(imports).map(function (path) {
+ var aliases = imports[path];
+ var declarations = Object.keys(aliases).map(function (key) {
+ return _postcss2.default.decl({
+ prop: key,
+ value: aliases[key],
+ raws: { before: '\n ' }
+ });
+ });
+ return _postcss2.default.rule({
+ selector: `:import(${path})`,
+ raws: { after: '\n' }
+ }).append(declarations);
+ });
+};
+
+var createExports = function createExports(exports) {
+ var declarations = Object.keys(exports).map(function (key) {
+ return _postcss2.default.decl({
+ prop: key,
+ value: exports[key],
+ raws: { before: '\n ' }
+ });
+ });
+ if (declarations.length === 0) {
+ return [];
+ }
+ var rule = _postcss2.default.rule({
+ selector: `:export`,
+ raws: { after: '\n' }
+ }).append(declarations);
+ return [rule];
+};
+
+var createICSSRules = function createICSSRules(imports, exports) {
+ return [].concat(_toConsumableArray(createImports(imports)), _toConsumableArray(createExports(exports)));
+};
+
+exports.default = createICSSRules; \ No newline at end of file
diff --git a/node_modules/icss-utils/lib/extractICSS.js b/node_modules/icss-utils/lib/extractICSS.js
new file mode 100644
index 0000000..3b2f863
--- /dev/null
+++ b/node_modules/icss-utils/lib/extractICSS.js
@@ -0,0 +1,45 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+var importPattern = /^:import\(("[^"]*"|'[^']*'|[\w-\.]+)\)$/;
+
+var getDeclsObject = function getDeclsObject(rule) {
+ var object = {};
+ rule.walkDecls(function (decl) {
+ object[decl.raws.before.trim() + decl.prop] = decl.value;
+ });
+ return object;
+};
+
+var extractICSS = function extractICSS(css) {
+ var removeRules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
+
+ var icssImports = {};
+ var icssExports = {};
+ css.each(function (node) {
+ if (node.type === "rule") {
+ if (node.selector.slice(0, 7) === ":import") {
+ var matches = importPattern.exec(node.selector);
+ if (matches) {
+ var path = matches[1];
+ var aliases = Object.assign(icssImports[path] || {}, getDeclsObject(node));
+ icssImports[path] = aliases;
+ if (removeRules) {
+ node.remove();
+ }
+ }
+ }
+ if (node.selector === ":export") {
+ Object.assign(icssExports, getDeclsObject(node));
+ if (removeRules) {
+ node.remove();
+ }
+ }
+ }
+ });
+ return { icssImports, icssExports };
+};
+
+exports.default = extractICSS; \ No newline at end of file
diff --git a/node_modules/icss-utils/lib/index.js b/node_modules/icss-utils/lib/index.js
new file mode 100644
index 0000000..d9559c1
--- /dev/null
+++ b/node_modules/icss-utils/lib/index.js
@@ -0,0 +1,43 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _replaceValueSymbols = require('./replaceValueSymbols.js');
+
+Object.defineProperty(exports, 'replaceValueSymbols', {
+ enumerable: true,
+ get: function get() {
+ return _interopRequireDefault(_replaceValueSymbols).default;
+ }
+});
+
+var _replaceSymbols = require('./replaceSymbols.js');
+
+Object.defineProperty(exports, 'replaceSymbols', {
+ enumerable: true,
+ get: function get() {
+ return _interopRequireDefault(_replaceSymbols).default;
+ }
+});
+
+var _extractICSS = require('./extractICSS.js');
+
+Object.defineProperty(exports, 'extractICSS', {
+ enumerable: true,
+ get: function get() {
+ return _interopRequireDefault(_extractICSS).default;
+ }
+});
+
+var _createICSSRules = require('./createICSSRules.js');
+
+Object.defineProperty(exports, 'createICSSRules', {
+ enumerable: true,
+ get: function get() {
+ return _interopRequireDefault(_createICSSRules).default;
+ }
+});
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } \ No newline at end of file
diff --git a/node_modules/icss-utils/lib/replaceSymbols.js b/node_modules/icss-utils/lib/replaceSymbols.js
new file mode 100644
index 0000000..4bf349d
--- /dev/null
+++ b/node_modules/icss-utils/lib/replaceSymbols.js
@@ -0,0 +1,22 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _replaceValueSymbols = require('./replaceValueSymbols.js');
+
+var _replaceValueSymbols2 = _interopRequireDefault(_replaceValueSymbols);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var replaceSymbols = function replaceSymbols(css, replacements) {
+ css.walkDecls(function (decl) {
+ return decl.value = (0, _replaceValueSymbols2.default)(decl.value, replacements);
+ });
+ css.walkAtRules('media', function (atRule) {
+ return atRule.params = (0, _replaceValueSymbols2.default)(atRule.params, replacements);
+ });
+};
+
+exports.default = replaceSymbols; \ No newline at end of file
diff --git a/node_modules/icss-utils/lib/replaceValueSymbols.js b/node_modules/icss-utils/lib/replaceValueSymbols.js
new file mode 100644
index 0000000..ae6e553
--- /dev/null
+++ b/node_modules/icss-utils/lib/replaceValueSymbols.js
@@ -0,0 +1,20 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+var matchValueName = /[$#]?[\w-\.]+/g;
+
+var replaceValueSymbols = function replaceValueSymbols(value, replacements) {
+ var matches = void 0;
+ while (matches = matchValueName.exec(value)) {
+ var replacement = replacements[matches[0]];
+ if (replacement) {
+ value = value.slice(0, matches.index) + replacement + value.slice(matchValueName.lastIndex);
+ matchValueName.lastIndex -= matches[0].length - replacement.length;
+ }
+ }
+ return value;
+};
+
+exports.default = replaceValueSymbols; \ No newline at end of file
diff --git a/node_modules/icss-utils/package.json b/node_modules/icss-utils/package.json
new file mode 100644
index 0000000..c16f5bc
--- /dev/null
+++ b/node_modules/icss-utils/package.json
@@ -0,0 +1,97 @@
+{
+ "_from": "icss-utils@^2.1.0",
+ "_id": "icss-utils@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "_location": "/icss-utils",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "icss-utils@^2.1.0",
+ "name": "icss-utils",
+ "escapedName": "icss-utils",
+ "rawSpec": "^2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.0"
+ },
+ "_requiredBy": [
+ "/css-loader"
+ ],
+ "_resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
+ "_shasum": "83f0a0ec378bf3246178b6c2ad9136f135b1c962",
+ "_spec": "icss-utils@^2.1.0",
+ "_where": "/home/pruss/Dev/3-minute-website/node_modules/css-loader",
+ "author": {
+ "name": "Glen Maddern"
+ },
+ "babel": {
+ "presets": [
+ [
+ "env",
+ {
+ "targets": {
+ "node": 4
+ }
+ }
+ ]
+ ]
+ },
+ "bugs": {
+ "url": "https://github.com/css-modules/icss-utils/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "postcss": "^6.0.1"
+ },
+ "deprecated": false,
+ "description": "ICSS utils for postcss ast",
+ "devDependencies": {
+ "babel-cli": "^6.24.1",
+ "babel-jest": "^20.0.3",
+ "babel-preset-env": "^1.5.1",
+ "eslint": "^3.19.0",
+ "husky": "^0.13.3",
+ "jest": "^20.0.3",
+ "lint-staged": "^3.4.2",
+ "prettier": "^1.3.1"
+ },
+ "eslintConfig": {
+ "parserOptions": {
+ "ecmaVersion": 6,
+ "sourceType": "module"
+ },
+ "extends": "eslint:recommended"
+ },
+ "files": [
+ "lib"
+ ],
+ "homepage": "https://github.com/css-modules/icss-utils#readme",
+ "keywords": [
+ "css",
+ "modules",
+ "icss",
+ "postcss"
+ ],
+ "license": "ISC",
+ "lint-staged": {
+ "*.js": [
+ "eslint",
+ "prettier --write",
+ "git add"
+ ]
+ },
+ "main": "lib/index.js",
+ "name": "icss-utils",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/css-modules/icss-utils.git"
+ },
+ "scripts": {
+ "build": "babel --out-dir lib src",
+ "precommit": "lint-staged",
+ "prepublish": "yarn test && yarn run build",
+ "test": "jest --coverage"
+ },
+ "version": "2.1.0"
+}