From bc36328c253fa7aac8a584b707763960d913db6c Mon Sep 17 00:00:00 2001
From: Brian Hough
Date: Sun, 29 Mar 2020 10:18:50 -0400
Subject: [PATCH 01/15] chore(library): update dependencies
Update dependencies and fix new flow error in triangle.test.js
---
yarn.lock | 134 +++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 123 insertions(+), 11 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 518d717c..9bbfd261 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -96,7 +96,17 @@
lodash "^4.17.13"
source-map "^0.5.0"
-"@babel/generator@^7.9.0", "@babel/generator@^7.9.4", "@babel/generator@^7.9.5":
+"@babel/generator@^7.9.0":
+ version "7.9.4"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce"
+ integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==
+ dependencies:
+ "@babel/types" "^7.9.0"
+ jsesc "^2.5.1"
+ lodash "^4.17.13"
+ source-map "^0.5.0"
+
+"@babel/generator@^7.9.4":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9"
integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==
@@ -301,6 +311,11 @@
dependencies:
"@babel/types" "^7.8.3"
+"@babel/helper-validator-identifier@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed"
+ integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==
+
"@babel/helper-validator-identifier@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
@@ -460,6 +475,14 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-numeric-separator" "^7.8.3"
+"@babel/plugin-proposal-object-rest-spread@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f"
+ integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+
"@babel/plugin-proposal-object-rest-spread@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz#3fd65911306d8746014ec0d0cf78f0e39a149116"
@@ -709,6 +732,20 @@
"@babel/helper-plugin-utils" "^7.8.3"
lodash "^4.17.13"
+"@babel/plugin-transform-classes@^7.9.0":
+ version "7.9.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d"
+ integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.8.3"
+ "@babel/helper-define-map" "^7.8.3"
+ "@babel/helper-function-name" "^7.8.3"
+ "@babel/helper-optimise-call-expression" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-replace-supers" "^7.8.6"
+ "@babel/helper-split-export-declaration" "^7.8.3"
+ globals "^11.1.0"
+
"@babel/plugin-transform-classes@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c"
@@ -730,7 +767,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-destructuring@^7.9.5":
+"@babel/plugin-transform-destructuring@^7.8.3", "@babel/plugin-transform-destructuring@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50"
integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==
@@ -856,7 +893,7 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/helper-replace-supers" "^7.8.3"
-"@babel/plugin-transform-parameters@^7.9.5":
+"@babel/plugin-transform-parameters@^7.8.7", "@babel/plugin-transform-parameters@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795"
integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==
@@ -990,7 +1027,73 @@
core-js "^2.6.5"
regenerator-runtime "^0.13.4"
-"@babel/preset-env@^7.9.0", "@babel/preset-env@^7.9.5":
+"@babel/preset-env@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8"
+ integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==
+ dependencies:
+ "@babel/compat-data" "^7.9.0"
+ "@babel/helper-compilation-targets" "^7.8.7"
+ "@babel/helper-module-imports" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-proposal-async-generator-functions" "^7.8.3"
+ "@babel/plugin-proposal-dynamic-import" "^7.8.3"
+ "@babel/plugin-proposal-json-strings" "^7.8.3"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-proposal-numeric-separator" "^7.8.3"
+ "@babel/plugin-proposal-object-rest-spread" "^7.9.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-proposal-optional-chaining" "^7.9.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.8.3"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+ "@babel/plugin-syntax-top-level-await" "^7.8.3"
+ "@babel/plugin-transform-arrow-functions" "^7.8.3"
+ "@babel/plugin-transform-async-to-generator" "^7.8.3"
+ "@babel/plugin-transform-block-scoped-functions" "^7.8.3"
+ "@babel/plugin-transform-block-scoping" "^7.8.3"
+ "@babel/plugin-transform-classes" "^7.9.0"
+ "@babel/plugin-transform-computed-properties" "^7.8.3"
+ "@babel/plugin-transform-destructuring" "^7.8.3"
+ "@babel/plugin-transform-dotall-regex" "^7.8.3"
+ "@babel/plugin-transform-duplicate-keys" "^7.8.3"
+ "@babel/plugin-transform-exponentiation-operator" "^7.8.3"
+ "@babel/plugin-transform-for-of" "^7.9.0"
+ "@babel/plugin-transform-function-name" "^7.8.3"
+ "@babel/plugin-transform-literals" "^7.8.3"
+ "@babel/plugin-transform-member-expression-literals" "^7.8.3"
+ "@babel/plugin-transform-modules-amd" "^7.9.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.9.0"
+ "@babel/plugin-transform-modules-systemjs" "^7.9.0"
+ "@babel/plugin-transform-modules-umd" "^7.9.0"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3"
+ "@babel/plugin-transform-new-target" "^7.8.3"
+ "@babel/plugin-transform-object-super" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.8.7"
+ "@babel/plugin-transform-property-literals" "^7.8.3"
+ "@babel/plugin-transform-regenerator" "^7.8.7"
+ "@babel/plugin-transform-reserved-words" "^7.8.3"
+ "@babel/plugin-transform-shorthand-properties" "^7.8.3"
+ "@babel/plugin-transform-spread" "^7.8.3"
+ "@babel/plugin-transform-sticky-regex" "^7.8.3"
+ "@babel/plugin-transform-template-literals" "^7.8.3"
+ "@babel/plugin-transform-typeof-symbol" "^7.8.4"
+ "@babel/plugin-transform-unicode-regex" "^7.8.3"
+ "@babel/preset-modules" "^0.1.3"
+ "@babel/types" "^7.9.0"
+ browserslist "^4.9.1"
+ core-js-compat "^3.6.2"
+ invariant "^2.2.2"
+ levenary "^1.1.1"
+ semver "^5.5.0"
+
+"@babel/preset-env@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.5.tgz#8ddc76039bc45b774b19e2fc548f6807d8a8919f"
integrity sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ==
@@ -1131,16 +1234,16 @@
lodash "^4.17.13"
"@babel/traverse@^7.9.0":
- version "7.9.5"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2"
- integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892"
+ integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==
dependencies:
"@babel/code-frame" "^7.8.3"
- "@babel/generator" "^7.9.5"
- "@babel/helper-function-name" "^7.9.5"
+ "@babel/generator" "^7.9.0"
+ "@babel/helper-function-name" "^7.8.3"
"@babel/helper-split-export-declaration" "^7.8.3"
"@babel/parser" "^7.9.0"
- "@babel/types" "^7.9.5"
+ "@babel/types" "^7.9.0"
debug "^4.1.0"
globals "^11.1.0"
lodash "^4.17.13"
@@ -1154,7 +1257,16 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"
-"@babel/types@^7.4.4", "@babel/types@^7.9.0", "@babel/types@^7.9.5":
+"@babel/types@^7.4.4", "@babel/types@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5"
+ integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.9.0"
+ lodash "^4.17.13"
+ to-fast-properties "^2.0.0"
+
+"@babel/types@^7.9.5":
version "7.9.5"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444"
integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==
From 932d15f95a5b4d3bb79aeac6afd6f059b7a31950 Mon Sep 17 00:00:00 2001
From: Brian Hough
Date: Sun, 29 Mar 2020 10:27:42 -0400
Subject: [PATCH 02/15] refactor(stripunit): fully deprecate returnUnit
Fully deprecate returnUnit functionality and refactor return.
---
src/helpers/stripUnit.js | 23 +-
.../test/__snapshots__/stripUnit.test.js.snap | 315 ------------------
src/helpers/test/stripUnit.test.js | 37 --
3 files changed, 3 insertions(+), 372 deletions(-)
diff --git a/src/helpers/stripUnit.js b/src/helpers/stripUnit.js
index 73e07b98..3af7bc44 100644
--- a/src/helpers/stripUnit.js
+++ b/src/helpers/stripUnit.js
@@ -1,12 +1,9 @@
// @flow
-
const cssRegex = /^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/
/**
* Returns a given CSS value minus its unit of measure.
*
- * @deprecated - stripUnit's unitReturn functionality has been marked for deprecation in polished 4.0. It's functionality has been been moved to getValueAndUnit.
- *
* @example
* // Styles as object usage
* const styles = {
@@ -24,22 +21,8 @@ const cssRegex = /^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/
* '--dimension': 100
* }
*/
-export default function stripUnit(
- value: string | number,
- unitReturn?: boolean,
-): any {
- if (typeof value !== 'string') return unitReturn ? [value, undefined] : value
+export default function stripUnit(value: string | number): string | number {
+ if (typeof value !== 'string') return value
const matchedValue = value.match(cssRegex)
-
- if (unitReturn) {
- // eslint-disable-next-line no-console
- console.warn(
- "stripUnit's unitReturn functionality has been marked for deprecation in polished 4.0. It's functionality has been been moved to getValueAndUnit.",
- )
- if (matchedValue) return [parseFloat(value), matchedValue[2]]
- return [value, undefined]
- }
-
- if (matchedValue) return parseFloat(value)
- return value
+ return matchedValue ? parseFloat(value) : value
}
diff --git a/src/helpers/test/__snapshots__/stripUnit.test.js.snap b/src/helpers/test/__snapshots__/stripUnit.test.js.snap
index 15b5f43d..54e6d510 100644
--- a/src/helpers/test/__snapshots__/stripUnit.test.js.snap
+++ b/src/helpers/test/__snapshots__/stripUnit.test.js.snap
@@ -7,520 +7,205 @@ Object {
`;
exports[`stripUnit should return a unitless value when passed 2`] = `
-Object {
- "--dimension": Array [
- 33,
- "",
- ],
-}
-`;
-
-exports[`stripUnit should return a unitless value when passed 3`] = `
Object {
"--dimension": 33,
}
`;
-exports[`stripUnit should return a unitless value when passed 4`] = `
-Object {
- "--dimension": Array [
- 33,
- undefined,
- ],
-}
-`;
-
exports[`stripUnit should return invalid value when passed 1`] = `
Object {
"--dimension": "blah",
}
`;
-exports[`stripUnit should return invalid value when passed 2`] = `
-Object {
- "--dimension": Array [
- "blah",
- undefined,
- ],
-}
-`;
-
exports[`stripUnit should strip % from decimal values 1`] = `
Object {
"--dimension": 33.3,
}
`;
-exports[`stripUnit should strip % from decimal values 2`] = `
-Object {
- "--dimension": Array [
- 33.3,
- "%",
- ],
-}
-`;
-
exports[`stripUnit should strip % from whole values 1`] = `
Object {
"--dimension": 80,
}
`;
-exports[`stripUnit should strip % from whole values 2`] = `
-Object {
- "--dimension": Array [
- 80,
- "%",
- ],
-}
-`;
-
exports[`stripUnit should strip ch from decimal values 1`] = `
Object {
"--dimension": 1.2,
}
`;
-exports[`stripUnit should strip ch from decimal values 2`] = `
-Object {
- "--dimension": Array [
- 1.2,
- "ch",
- ],
-}
-`;
-
exports[`stripUnit should strip ch from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip ch from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "ch",
- ],
-}
-`;
-
exports[`stripUnit should strip cm from values 1`] = `
Object {
"--dimension": 1.5,
}
`;
-exports[`stripUnit should strip cm from values 2`] = `
-Object {
- "--dimension": Array [
- 1.5,
- "cm",
- ],
-}
-`;
-
exports[`stripUnit should strip cm from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip cm from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "cm",
- ],
-}
-`;
-
exports[`stripUnit should strip em from decimal values 1`] = `
Object {
"--dimension": 1.2,
}
`;
-exports[`stripUnit should strip em from decimal values 2`] = `
-Object {
- "--dimension": Array [
- 1.2,
- "em",
- ],
-}
-`;
-
exports[`stripUnit should strip em from whole value 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip em from whole value 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "em",
- ],
-}
-`;
-
exports[`stripUnit should strip ex from decimal values 1`] = `
Object {
"--dimension": 1.2,
}
`;
-exports[`stripUnit should strip ex from decimal values 2`] = `
-Object {
- "--dimension": Array [
- 1.2,
- "ex",
- ],
-}
-`;
-
exports[`stripUnit should strip ex from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip ex from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "ex",
- ],
-}
-`;
-
exports[`stripUnit should strip in from values 1`] = `
Object {
"--dimension": 1.5,
}
`;
-exports[`stripUnit should strip in from values 2`] = `
-Object {
- "--dimension": Array [
- 1.5,
- "in",
- ],
-}
-`;
-
exports[`stripUnit should strip in from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip in from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "in",
- ],
-}
-`;
-
exports[`stripUnit should strip mm from values 1`] = `
Object {
"--dimension": 1.5,
}
`;
-exports[`stripUnit should strip mm from values 2`] = `
-Object {
- "--dimension": Array [
- 1.5,
- "mm",
- ],
-}
-`;
-
exports[`stripUnit should strip mm from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip mm from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "mm",
- ],
-}
-`;
-
exports[`stripUnit should strip pc from values 1`] = `
Object {
"--dimension": 1.5,
}
`;
-exports[`stripUnit should strip pc from values 2`] = `
-Object {
- "--dimension": Array [
- 1.5,
- "pc",
- ],
-}
-`;
-
exports[`stripUnit should strip pc from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip pc from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "pc",
- ],
-}
-`;
-
exports[`stripUnit should strip pt from values 1`] = `
Object {
"--dimension": 1.5,
}
`;
-exports[`stripUnit should strip pt from values 2`] = `
-Object {
- "--dimension": Array [
- 1.5,
- "pt",
- ],
-}
-`;
-
exports[`stripUnit should strip pt from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip pt from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "pt",
- ],
-}
-`;
-
exports[`stripUnit should strip px from values 1`] = `
Object {
"--dimension": 1.5,
}
`;
-exports[`stripUnit should strip px from values 2`] = `
-Object {
- "--dimension": Array [
- 1.5,
- "px",
- ],
-}
-`;
-
exports[`stripUnit should strip px from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip px from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "px",
- ],
-}
-`;
-
exports[`stripUnit should strip q from values 1`] = `
Object {
"--dimension": 1.5,
}
`;
-exports[`stripUnit should strip q from values 2`] = `
-Object {
- "--dimension": Array [
- 1.5,
- "q",
- ],
-}
-`;
-
exports[`stripUnit should strip q from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip q from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "q",
- ],
-}
-`;
-
exports[`stripUnit should strip rem from decimal values 1`] = `
Object {
"--dimension": 1.2,
}
`;
-exports[`stripUnit should strip rem from decimal values 2`] = `
-Object {
- "--dimension": Array [
- 1.2,
- "rem",
- ],
-}
-`;
-
exports[`stripUnit should strip rem from whole values 1`] = `
Object {
"--dimension": 1,
}
`;
-exports[`stripUnit should strip rem from whole values 2`] = `
-Object {
- "--dimension": Array [
- 1,
- "rem",
- ],
-}
-`;
-
exports[`stripUnit should strip vh from decimal values 1`] = `
Object {
"--dimension": 33.33,
}
`;
-exports[`stripUnit should strip vh from decimal values 2`] = `
-Object {
- "--dimension": Array [
- 33.33,
- "vh",
- ],
-}
-`;
-
exports[`stripUnit should strip vh from whole values 1`] = `
Object {
"--dimension": 100,
}
`;
-exports[`stripUnit should strip vh from whole values 2`] = `
-Object {
- "--dimension": Array [
- 100,
- "vh",
- ],
-}
-`;
-
exports[`stripUnit should strip vmax from decimal values 1`] = `
Object {
"--dimension": 33.33,
}
`;
-exports[`stripUnit should strip vmax from decimal values 2`] = `
-Object {
- "--dimension": Array [
- 33.33,
- "vmax",
- ],
-}
-`;
-
exports[`stripUnit should strip vmax from whole values 1`] = `
Object {
"--dimension": 100,
}
`;
-exports[`stripUnit should strip vmax from whole values 2`] = `
-Object {
- "--dimension": Array [
- 100,
- "vmax",
- ],
-}
-`;
-
exports[`stripUnit should strip vmin from decimal values 1`] = `
Object {
"--dimension": 33.33,
}
`;
-exports[`stripUnit should strip vmin from decimal values 2`] = `
-Object {
- "--dimension": Array [
- 33.33,
- "vmin",
- ],
-}
-`;
-
exports[`stripUnit should strip vmin from whole values 1`] = `
Object {
"--dimension": 100,
}
`;
-exports[`stripUnit should strip vmin from whole values 2`] = `
-Object {
- "--dimension": Array [
- 100,
- "vmin",
- ],
-}
-`;
-
exports[`stripUnit should strip vw from decimal values 1`] = `
Object {
"--dimension": 33.33,
}
`;
-exports[`stripUnit should strip vw from decimal values 2`] = `
-Object {
- "--dimension": Array [
- 33.33,
- "vw",
- ],
-}
-`;
-
exports[`stripUnit should strip vw from whole values 1`] = `
Object {
"--dimension": 100,
}
`;
-
-exports[`stripUnit should strip vw from whole values 2`] = `
-Object {
- "--dimension": Array [
- 100,
- "vw",
- ],
-}
-`;
diff --git a/src/helpers/test/stripUnit.test.js b/src/helpers/test/stripUnit.test.js
index 1892c2b1..2cb7ffea 100644
--- a/src/helpers/test/stripUnit.test.js
+++ b/src/helpers/test/stripUnit.test.js
@@ -2,178 +2,141 @@
import stripUnit from '../stripUnit'
describe('stripUnit', () => {
- // Number Returns
it('should strip px from whole values', () => {
expect({ '--dimension': stripUnit('1px') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1px', true) }).toMatchSnapshot()
})
it('should strip px from values', () => {
expect({ '--dimension': stripUnit('1.5px') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.5px', true) }).toMatchSnapshot()
})
it('should strip pt from whole values', () => {
expect({ '--dimension': stripUnit('1pt') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1pt', true) }).toMatchSnapshot()
})
it('should strip pt from values', () => {
expect({ '--dimension': stripUnit('1.5pt') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.5pt', true) }).toMatchSnapshot()
})
it('should strip pc from whole values', () => {
expect({ '--dimension': stripUnit('1pc') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1pc', true) }).toMatchSnapshot()
})
it('should strip pc from values', () => {
expect({ '--dimension': stripUnit('1.5pc') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.5pc', true) }).toMatchSnapshot()
})
it('should strip mm from whole values', () => {
expect({ '--dimension': stripUnit('1mm') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1mm', true) }).toMatchSnapshot()
})
it('should strip mm from values', () => {
expect({ '--dimension': stripUnit('1.5mm') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.5mm', true) }).toMatchSnapshot()
})
it('should strip q from whole values', () => {
expect({ '--dimension': stripUnit('1q') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1q', true) }).toMatchSnapshot()
})
it('should strip q from values', () => {
expect({ '--dimension': stripUnit('1.5q') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.5q', true) }).toMatchSnapshot()
})
it('should strip cm from whole values', () => {
expect({ '--dimension': stripUnit('1cm') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1cm', true) }).toMatchSnapshot()
})
it('should strip cm from values', () => {
expect({ '--dimension': stripUnit('1.5cm') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.5cm', true) }).toMatchSnapshot()
})
it('should strip in from whole values', () => {
expect({ '--dimension': stripUnit('1in') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1in', true) }).toMatchSnapshot()
})
it('should strip in from values', () => {
expect({ '--dimension': stripUnit('1.5in') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.5in', true) }).toMatchSnapshot()
})
it('should strip em from whole value', () => {
expect({ '--dimension': stripUnit('1em') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1em', true) }).toMatchSnapshot()
})
it('should strip em from decimal values', () => {
expect({ '--dimension': stripUnit('1.2em') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.2em', true) }).toMatchSnapshot()
})
it('should strip rem from whole values', () => {
expect({ '--dimension': stripUnit('1rem') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1rem', true) }).toMatchSnapshot()
})
it('should strip rem from decimal values', () => {
expect({ '--dimension': stripUnit('1.2rem') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.2rem', true) }).toMatchSnapshot()
})
it('should strip ex from whole values', () => {
expect({ '--dimension': stripUnit('1ex') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1ex', true) }).toMatchSnapshot()
})
it('should strip ex from decimal values', () => {
expect({ '--dimension': stripUnit('1.2ex') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.2ex', true) }).toMatchSnapshot()
})
it('should strip ch from whole values', () => {
expect({ '--dimension': stripUnit('1ch') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1ch', true) }).toMatchSnapshot()
})
it('should strip ch from decimal values', () => {
expect({ '--dimension': stripUnit('1.2ch') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('1.2ch', true) }).toMatchSnapshot()
})
it('should strip vh from whole values', () => {
expect({ '--dimension': stripUnit('100vh') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('100vh', true) }).toMatchSnapshot()
})
it('should strip vh from decimal values', () => {
expect({ '--dimension': stripUnit('33.33vh') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('33.33vh', true) }).toMatchSnapshot()
})
it('should strip vw from whole values', () => {
expect({ '--dimension': stripUnit('100vw') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('100vw', true) }).toMatchSnapshot()
})
it('should strip vw from decimal values', () => {
expect({ '--dimension': stripUnit('33.33vw') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('33.33vw', true) }).toMatchSnapshot()
})
it('should strip vmin from whole values', () => {
expect({ '--dimension': stripUnit('100vmin') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('100vmin', true) }).toMatchSnapshot()
})
it('should strip vmin from decimal values', () => {
expect({ '--dimension': stripUnit('33.33vmin') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('33.33vmin', true) }).toMatchSnapshot()
})
it('should strip vmax from whole values', () => {
expect({ '--dimension': stripUnit('100vmax') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('100vmax', true) }).toMatchSnapshot()
})
it('should strip vmax from decimal values', () => {
expect({ '--dimension': stripUnit('33.33vmax') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('33.33vmax', true) }).toMatchSnapshot()
})
it('should strip % from whole values', () => {
expect({ '--dimension': stripUnit('80%') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('80%', true) }).toMatchSnapshot()
})
it('should strip % from decimal values', () => {
expect({ '--dimension': stripUnit('33.3%') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('33.3%', true) }).toMatchSnapshot()
})
it('should return a unitless value when passed', () => {
expect({ '--dimension': stripUnit('33') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('33', true) }).toMatchSnapshot()
// $FlowFixMe
expect({ '--dimension': stripUnit(33) }).toMatchSnapshot()
- // $FlowFixMe
- expect({ '--dimension': stripUnit(33, true) }).toMatchSnapshot()
})
it('should return invalid value when passed', () => {
expect({ '--dimension': stripUnit('blah') }).toMatchSnapshot()
- expect({ '--dimension': stripUnit('blah', true) }).toMatchSnapshot()
})
})
From 27c399b7b27bd6e2affded79ab6393ab2f1c73cd Mon Sep 17 00:00:00 2001
From: Brian Hough
Date: Sun, 29 Mar 2020 10:34:34 -0400
Subject: [PATCH 03/15] refactor(readablecolor): make strict mode default
Make strict mode default when passing custom colors.
---
docs/assets/polished.js | 26 +++++--------------
docs/docs/index.html | 18 ++++---------
src/color/readableColor.js | 8 +++---
.../__snapshots__/readableColor.test.js.snap | 2 ++
src/color/test/readableColor.test.js | 12 +++++----
5 files changed, 24 insertions(+), 42 deletions(-)
diff --git a/docs/assets/polished.js b/docs/assets/polished.js
index 8b8c906d..dfc45490 100644
--- a/docs/assets/polished.js
+++ b/docs/assets/polished.js
@@ -639,8 +639,6 @@
/**
* Returns a given CSS value minus its unit of measure.
*
- * @deprecated - stripUnit's unitReturn functionality has been marked for deprecation in polished 4.0. It's functionality has been been moved to getValueAndUnit.
- *
* @example
* // Styles as object usage
* const styles = {
@@ -659,19 +657,10 @@
* }
*/
- function stripUnit(value, unitReturn) {
- if (typeof value !== 'string') return unitReturn ? [value, undefined] : value;
+ function stripUnit(value) {
+ if (typeof value !== 'string') return value;
var matchedValue = value.match(cssRegex);
-
- if (unitReturn) {
- // eslint-disable-next-line no-console
- console.warn("stripUnit's unitReturn functionality has been marked for deprecation in polished 4.0. It's functionality has been been moved to getValueAndUnit.");
- if (matchedValue) return [parseFloat(value), matchedValue[2]];
- return [value, undefined];
- }
-
- if (matchedValue) return parseFloat(value);
- return value;
+ return matchedValue ? parseFloat(value) : value;
}
/**
@@ -3073,10 +3062,10 @@
/**
* Returns black or white (or optional light and dark return colors) for best
* contrast depending on the luminosity of the given color.
- * When passing custom return colors, set `strict` to `true` to ensure that the
+ * When passing custom return colors, strict mode ensures that the
* return color always meets or exceeds WCAG level AA or greater. If this test
* fails, the default return color (black or white) is returned in place of the
- * custom return color.
+ * custom return color. You can optionally turn off strict mode.
*
* Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).
*
@@ -3116,12 +3105,11 @@
}
if (strict === void 0) {
- strict = false;
+ strict = true;
}
var isLightColor = getLuminance(color) > 0.179;
- var preferredReturnColor = isLightColor ? lightReturnColor : darkReturnColor; // TODO: Make `strict` the default behaviour in the next major release.
- // Without `strict`, this may return a color that does not meet WCAG AA.
+ var preferredReturnColor = isLightColor ? lightReturnColor : darkReturnColor;
if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {
return preferredReturnColor;
diff --git a/docs/docs/index.html b/docs/docs/index.html
index 168a7276..94466475 100644
--- a/docs/docs/index.html
+++ b/docs/docs/index.html
@@ -5019,10 +5019,10 @@
Returns black or white (or optional light and dark return colors) for best
contrast depending on the luminosity of the given color.
-When passing custom return colors, set strict
to true
to ensure that the
+When passing custom return colors, strict mode ensures that the
return color always meets or exceeds WCAG level AA or greater. If this test
fails, the default return color (black or white) is returned in place of the
-custom return color.
+custom return color. You can optionally turn off strict mode.
Follows W3C specs for readability.
@@ -5076,7 +5076,7 @@
strict (boolean
- = false
)
+ =
true
)
@@ -9049,7 +9049,7 @@
Returns a given CSS value minus its unit of measure.
-
+
@@ -9078,14 +9078,6 @@
-
-
@@ -9099,7 +9091,7 @@
Returns
- any
+ (string | number)
diff --git a/src/color/readableColor.js b/src/color/readableColor.js
index 7eeb09e8..b66aef3c 100644
--- a/src/color/readableColor.js
+++ b/src/color/readableColor.js
@@ -8,10 +8,10 @@ const defaultDarkReturnColor = '#fff'
/**
* Returns black or white (or optional light and dark return colors) for best
* contrast depending on the luminosity of the given color.
- * When passing custom return colors, set `strict` to `true` to ensure that the
+ * When passing custom return colors, strict mode ensures that the
* return color always meets or exceeds WCAG level AA or greater. If this test
* fails, the default return color (black or white) is returned in place of the
- * custom return color.
+ * custom return color. You can optionally turn off strict mode.
*
* Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).
*
@@ -44,13 +44,11 @@ export default function readableColor(
color: string,
lightReturnColor?: string = defaultLightReturnColor,
darkReturnColor?: string = defaultDarkReturnColor,
- strict?: boolean = false,
+ strict?: boolean = true,
): string {
const isLightColor = getLuminance(color) > 0.179
const preferredReturnColor = isLightColor ? lightReturnColor : darkReturnColor
- // TODO: Make `strict` the default behaviour in the next major release.
- // Without `strict`, this may return a color that does not meet WCAG AA.
if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {
return preferredReturnColor
}
diff --git a/src/color/test/__snapshots__/readableColor.test.js.snap b/src/color/test/__snapshots__/readableColor.test.js.snap
index 2c485011..b9939eae 100644
--- a/src/color/test/__snapshots__/readableColor.test.js.snap
+++ b/src/color/test/__snapshots__/readableColor.test.js.snap
@@ -34,6 +34,8 @@ exports[`readableColor should return the default dark background when contrast f
exports[`readableColor should return the default light background when contrast fails AA in strict mode 1`] = `"#000"`;
+exports[`readableColor should return the the passed colors when constrast fails AA with strict mode off 1`] = `"#aaa"`;
+
exports[`readableColor should return white given black, "black" 1`] = `"#fff"`;
exports[`readableColor should return white given black, #000 1`] = `"#fff"`;
diff --git a/src/color/test/readableColor.test.js b/src/color/test/readableColor.test.js
index 65ece7fd..3af793f7 100644
--- a/src/color/test/readableColor.test.js
+++ b/src/color/test/readableColor.test.js
@@ -82,17 +82,19 @@ describe('readableColor', () => {
it('should return white given blue, hsla(250, 100%, 50%, 0.2)', () => {
expect(readableColor('hsla(250, 100%, 50%, 0.2)')).toMatchSnapshot()
})
-
it('should return custom light background when contrast meets AA in strict mode', () => {
- expect(readableColor('red', '#001', '#ff8', true)).toMatchSnapshot()
+ expect(readableColor('red', '#001', '#ff8')).toMatchSnapshot()
})
it('should return custom dark background when contrast meets AA in strict mode', () => {
- expect(readableColor('darkred', '#001', '#ff8', true)).toMatchSnapshot()
+ expect(readableColor('darkred', '#001', '#ff8')).toMatchSnapshot()
})
it('should return the default light background when contrast fails AA in strict mode', () => {
- expect(readableColor('red', '#333', '#aaa', true)).toMatchSnapshot()
+ expect(readableColor('red', '#333', '#aaa')).toMatchSnapshot()
})
it('should return the default dark background when contrast fails AA in strict mode', () => {
- expect(readableColor('darkred', '#333', '#aaa', true)).toMatchSnapshot()
+ expect(readableColor('darkred', '#333', '#aaa')).toMatchSnapshot()
+ })
+ it('should return the the passed colors when constrast fails AA with strict mode off', () => {
+ expect(readableColor('darkred', '#333', '#aaa', false)).toMatchSnapshot()
})
})
From 5db08919a39a45da6e28b54ead6110c5ba59bc8a Mon Sep 17 00:00:00 2001
From: Brian Hough
Date: Sun, 29 Mar 2020 10:59:18 -0400
Subject: [PATCH 04/15] build(babel): enable bugfix: true
Enable bugfix:true in build and target explicit browser list
---
.browserlistrc | 8 ++++++++
babel.config.js | 15 +++++++++++----
2 files changed, 19 insertions(+), 4 deletions(-)
create mode 100644 .browserlistrc
diff --git a/.browserlistrc b/.browserlistrc
new file mode 100644
index 00000000..c548505d
--- /dev/null
+++ b/.browserlistrc
@@ -0,0 +1,8 @@
+ie >= 11
+last 1 Edge version
+last 1 Firefox version
+last 1 Chrome version
+last 1 Safari version
+last 1 iOS version
+last 1 Android version
+last 1 ChromeAndroid version
diff --git a/babel.config.js b/babel.config.js
index 73f65768..5599a54a 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -3,12 +3,19 @@ const cjs = BABEL_ENV === "cjs" || NODE_ENV === "test";
module.exports = {
presets: [
- ["@babel/env", { loose: true, exclude: [/transform-typeof-symbol/] }],
- "@babel/flow"
+ [
+ "@babel/preset-env",
+ {
+ loose: true,
+ exclude: [/transform-typeof-symbol/],
+ bugfixes: true,
+ },
+ ],
+ "@babel/flow",
],
plugins: [
cjs && "add-module-exports",
"annotate-pure-calls",
- "preval"
- ].filter(Boolean)
+ "preval",
+ ].filter(Boolean),
};
From e2703a18d0133f34381c1d35a2b6831d96b6bd9c Mon Sep 17 00:00:00 2001
From: Brian Hough
Date: Sun, 29 Mar 2020 11:00:31 -0400
Subject: [PATCH 05/15] build(lint-staged): remove superfulous git add
---
package.json | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/package.json b/package.json
index b8caaf2e..f6031a1f 100644
--- a/package.json
+++ b/package.json
@@ -55,13 +55,11 @@
"lint-staged": {
"src/**/!(*.test).js": [
"prettier --no-semi --single-quote --trailing-comma all --write",
- "eslint --fix",
- "git add"
+ "eslint --fix"
],
"src/**/*.test.js": [
"prettier --no-semi --single-quote --trailing-comma all --write",
- "eslint --fix",
- "git add"
+ "eslint --fix"
]
},
"watch": {
From 3f0b5deb3aeea6e83a27e8a17d17ad6a1fc842e2 Mon Sep 17 00:00:00 2001
From: Brian Hough
Date: Sun, 29 Mar 2020 11:05:28 -0400
Subject: [PATCH 06/15] build(lerna): lerna init
---
lerna.json | 6 ++++++
package.json | 1 +
2 files changed, 7 insertions(+)
create mode 100644 lerna.json
diff --git a/lerna.json b/lerna.json
new file mode 100644
index 00000000..d6707ca0
--- /dev/null
+++ b/lerna.json
@@ -0,0 +1,6 @@
+{
+ "packages": [
+ "packages/*"
+ ],
+ "version": "0.0.0"
+}
diff --git a/package.json b/package.json
index f6031a1f..f9e4049c 100644
--- a/package.json
+++ b/package.json
@@ -94,6 +94,7 @@
"flow-copy-source": "^2.0.8",
"husky": "^4.2.5",
"jest": "^25.4.0",
+ "lerna": "^3.20.2",
"lint-staged": "^10.1.7",
"lodash": "^4.17.15",
"npm-watch": "^0.6.0",
From 2f29e04d9c305e6e14eefcf31d4a3921fef1f9df Mon Sep 17 00:00:00 2001
From: Brian Hough
Date: Sun, 29 Mar 2020 11:30:15 -0400
Subject: [PATCH 07/15] feat(normalize): upgrade to normalize 8.0.1
From 32d434ed7198657b6e2723bd4cfc504ef450c8a2 Mon Sep 17 00:00:00 2001
From: Brian Hough
Date: Sun, 29 Mar 2020 14:38:36 -0400
Subject: [PATCH 08/15] build(docs): removed documentation.js auto generation
---
.documentation.json | 116 -
CNAME | 1 -
docs-theme/assets/GitHub-Mark-Light-64px.png | Bin 2330 -> 0 bytes
docs-theme/assets/anchor.js | 197 -
docs-theme/assets/bass-addons.css | 12 -
docs-theme/assets/bass.css | 543 -
docs-theme/assets/docs.js | 108 -
.../assets/fonts/EOT/SourceCodePro-Bold.eot | Bin 83598 -> 0 bytes
.../fonts/EOT/SourceCodePro-Regular.eot | Bin 83790 -> 0 bytes
docs-theme/assets/fonts/LICENSE.txt | 93 -
.../assets/fonts/OTF/SourceCodePro-Bold.otf | Bin 143932 -> 0 bytes
.../fonts/OTF/SourceCodePro-Regular.otf | Bin 140088 -> 0 bytes
.../assets/fonts/TTF/SourceCodePro-Bold.ttf | Bin 197004 -> 0 bytes
.../fonts/TTF/SourceCodePro-Regular.ttf | Bin 197644 -> 0 bytes
.../WOFF/OTF/SourceCodePro-Bold.otf.woff | Bin 90556 -> 0 bytes
.../WOFF/OTF/SourceCodePro-Regular.otf.woff | Bin 89024 -> 0 bytes
.../WOFF/TTF/SourceCodePro-Bold.ttf.woff | Bin 89188 -> 0 bytes
.../WOFF/TTF/SourceCodePro-Regular.ttf.woff | Bin 89604 -> 0 bytes
.../WOFF2/OTF/SourceCodePro-Bold.otf.woff2 | Bin 77136 -> 0 bytes
.../WOFF2/OTF/SourceCodePro-Regular.otf.woff2 | Bin 76256 -> 0 bytes
.../WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 | Bin 65028 -> 0 bytes
.../WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 | Bin 64948 -> 0 bytes
docs-theme/assets/fonts/source-code-pro.css | 23 -
docs-theme/assets/github.css | 91 -
docs-theme/assets/highlight.pack.js | 5 -
docs-theme/assets/logo.svg | 1 -
docs-theme/assets/meta.png | Bin 36595 -> 0 bytes
docs-theme/assets/script.js | 3 -
docs-theme/assets/style.css | 287 -
docs-theme/docs/index._ | 84 -
docs-theme/favicon.png | Bin 9500 -> 0 bytes
docs-theme/index._ | 35 -
docs-theme/index.js | 130 -
docs-theme/partials/base._ | 52 -
docs-theme/partials/note._ | 10 -
docs-theme/partials/section._ | 151 -
docs-theme/partials/section_list._ | 19 -
docs/CNAME | 1 -
docs/assets/GitHub-Mark-Light-64px.png | Bin 2330 -> 0 bytes
docs/assets/anchor.js | 197 -
docs/assets/bass-addons.css | 12 -
docs/assets/bass.css | 543 -
docs/assets/docs.js | 108 -
docs/assets/fonts/EOT/SourceCodePro-Bold.eot | Bin 83598 -> 0 bytes
.../fonts/EOT/SourceCodePro-Regular.eot | Bin 83790 -> 0 bytes
docs/assets/fonts/LICENSE.txt | 93 -
docs/assets/fonts/OTF/SourceCodePro-Bold.otf | Bin 143932 -> 0 bytes
.../fonts/OTF/SourceCodePro-Regular.otf | Bin 140088 -> 0 bytes
docs/assets/fonts/TTF/SourceCodePro-Bold.ttf | Bin 197004 -> 0 bytes
.../fonts/TTF/SourceCodePro-Regular.ttf | Bin 197644 -> 0 bytes
.../WOFF/OTF/SourceCodePro-Bold.otf.woff | Bin 90556 -> 0 bytes
.../WOFF/OTF/SourceCodePro-Regular.otf.woff | Bin 89024 -> 0 bytes
.../WOFF/TTF/SourceCodePro-Bold.ttf.woff | Bin 89188 -> 0 bytes
.../WOFF/TTF/SourceCodePro-Regular.ttf.woff | Bin 89604 -> 0 bytes
.../WOFF2/OTF/SourceCodePro-Bold.otf.woff2 | Bin 77136 -> 0 bytes
.../WOFF2/OTF/SourceCodePro-Regular.otf.woff2 | Bin 76256 -> 0 bytes
.../WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 | Bin 65028 -> 0 bytes
.../WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 | Bin 64948 -> 0 bytes
docs/assets/fonts/source-code-pro.css | 23 -
docs/assets/github.css | 91 -
docs/assets/highlight.pack.js | 5 -
docs/assets/logo.svg | 1 -
docs/assets/meta.png | Bin 36595 -> 0 bytes
docs/assets/script.js | 3 -
docs/assets/style.css | 287 -
docs/docs/index.html | 10678 ----------------
docs/favicon.png | Bin 9500 -> 0 bytes
docs/index.html | 74 -
package.json | 16 +-
yarn.lock | 3387 +++--
70 files changed, 1623 insertions(+), 15857 deletions(-)
delete mode 100644 .documentation.json
delete mode 100644 CNAME
delete mode 100644 docs-theme/assets/GitHub-Mark-Light-64px.png
delete mode 100644 docs-theme/assets/anchor.js
delete mode 100644 docs-theme/assets/bass-addons.css
delete mode 100644 docs-theme/assets/bass.css
delete mode 100644 docs-theme/assets/docs.js
delete mode 100755 docs-theme/assets/fonts/EOT/SourceCodePro-Bold.eot
delete mode 100755 docs-theme/assets/fonts/EOT/SourceCodePro-Regular.eot
delete mode 100755 docs-theme/assets/fonts/LICENSE.txt
delete mode 100755 docs-theme/assets/fonts/OTF/SourceCodePro-Bold.otf
delete mode 100755 docs-theme/assets/fonts/OTF/SourceCodePro-Regular.otf
delete mode 100755 docs-theme/assets/fonts/TTF/SourceCodePro-Bold.ttf
delete mode 100755 docs-theme/assets/fonts/TTF/SourceCodePro-Regular.ttf
delete mode 100755 docs-theme/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff
delete mode 100755 docs-theme/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff
delete mode 100755 docs-theme/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff
delete mode 100755 docs-theme/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff
delete mode 100755 docs-theme/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2
delete mode 100755 docs-theme/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2
delete mode 100755 docs-theme/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2
delete mode 100755 docs-theme/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2
delete mode 100755 docs-theme/assets/fonts/source-code-pro.css
delete mode 100644 docs-theme/assets/github.css
delete mode 100644 docs-theme/assets/highlight.pack.js
delete mode 100644 docs-theme/assets/logo.svg
delete mode 100644 docs-theme/assets/meta.png
delete mode 100644 docs-theme/assets/script.js
delete mode 100644 docs-theme/assets/style.css
delete mode 100644 docs-theme/docs/index._
delete mode 100644 docs-theme/favicon.png
delete mode 100644 docs-theme/index._
delete mode 100644 docs-theme/index.js
delete mode 100644 docs-theme/partials/base._
delete mode 100644 docs-theme/partials/note._
delete mode 100644 docs-theme/partials/section._
delete mode 100644 docs-theme/partials/section_list._
delete mode 100644 docs/CNAME
delete mode 100644 docs/assets/GitHub-Mark-Light-64px.png
delete mode 100644 docs/assets/anchor.js
delete mode 100644 docs/assets/bass-addons.css
delete mode 100644 docs/assets/bass.css
delete mode 100644 docs/assets/docs.js
delete mode 100755 docs/assets/fonts/EOT/SourceCodePro-Bold.eot
delete mode 100755 docs/assets/fonts/EOT/SourceCodePro-Regular.eot
delete mode 100755 docs/assets/fonts/LICENSE.txt
delete mode 100755 docs/assets/fonts/OTF/SourceCodePro-Bold.otf
delete mode 100755 docs/assets/fonts/OTF/SourceCodePro-Regular.otf
delete mode 100755 docs/assets/fonts/TTF/SourceCodePro-Bold.ttf
delete mode 100755 docs/assets/fonts/TTF/SourceCodePro-Regular.ttf
delete mode 100755 docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff
delete mode 100755 docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff
delete mode 100755 docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff
delete mode 100755 docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff
delete mode 100755 docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2
delete mode 100755 docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2
delete mode 100755 docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2
delete mode 100755 docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2
delete mode 100755 docs/assets/fonts/source-code-pro.css
delete mode 100644 docs/assets/github.css
delete mode 100644 docs/assets/highlight.pack.js
delete mode 100644 docs/assets/logo.svg
delete mode 100644 docs/assets/meta.png
delete mode 100644 docs/assets/script.js
delete mode 100644 docs/assets/style.css
delete mode 100644 docs/docs/index.html
delete mode 100644 docs/favicon.png
delete mode 100644 docs/index.html
diff --git a/.documentation.json b/.documentation.json
deleted file mode 100644
index ef0a3ef4..00000000
--- a/.documentation.json
+++ /dev/null
@@ -1,116 +0,0 @@
-{
- "hljs": {
- "highlightAuto": true
- },
- "inferPrivate": "^_",
- "toc": [
- {
- "name": "Installation",
- "description": "npm install --save polished
",
- "markdown": false
- },
- {
- "name": "Usage",
- "description": "import { lighten, modularScale } from 'polished'
",
- "markdown": false
- },
- {
- "name": "Mixins"
- },
- "between",
- "clearFix",
- "cover",
- "ellipsis",
- "fluidRange",
- "fontFace",
- "hideText",
- "hideVisually",
- "hiDPI",
- "linearGradient",
- "normalize",
- "radialGradient",
- "retinaImage",
- "timingFunctions",
- "triangle",
- "wordWrap",
- {
- "name": "Color"
- },
- "adjustHue",
- "complement",
- "darken",
- "desaturate",
- "getContrast",
- "getLuminance",
- "grayscale",
- "hsl",
- "hsla",
- "hslToColorString",
- "invert",
- "lighten",
- "meetsContrastGuidelines",
- "mix",
- "opacify",
- "parseToHsl",
- "parseToRgb",
- "readableColor",
- "rgb",
- "rgba",
- "rgbToColorString",
- "saturate",
- "setHue",
- "setLightness",
- "setSaturation",
- "shade",
- "tint",
- "toColorString",
- "transparentize",
- {
- "name": "Math"
- },
- "math",
- {
- "name": "Shorthands"
- },
- "animation",
- "backgroundImages",
- "backgrounds",
- "border",
- "borderColor",
- "borderRadius",
- "borderStyle",
- "borderWidth",
- "buttons",
- "margin",
- "padding",
- "position",
- "size",
- "textInputs",
- "transitions",
- {
- "name": "Helpers"
- },
- "cssVar",
- "directionalProperty",
- "em",
- "getValueAndUnit",
- "modularScale",
- "rem",
- "stripUnit",
- {
- "name": "Types"
- },
- "FluidRangeConfiguration",
- "FontFaceConfiguration",
- "HslColor",
- "HslaColor",
- "InteractionState",
- "ModularScaleRatio",
- "RadialGradientConfiguration",
- "RgbaColor",
- "RgbColor",
- "SideKeyword",
- "Styles",
- "TriangleConfiguration"
- ]
-}
diff --git a/CNAME b/CNAME
deleted file mode 100644
index 284b9636..00000000
--- a/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-polished.js.org
diff --git a/docs-theme/assets/GitHub-Mark-Light-64px.png b/docs-theme/assets/GitHub-Mark-Light-64px.png
deleted file mode 100644
index 73db1f61f3aa55fcaecbca896dbea067706bb7bd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2330
zcmaJ@dpy&7A0KVQT+TU3iOLKmvh6n;HrL%O6)ohFIM()K!!EXAIjO}-B}W%^)GMS^
zbRj&Vi`ep%r%r`PE0rauRMJE)p`NWn=lP@Od|$8M_wsqY-=EL>bNS=9n;FC~MOYyq
z5Qu5ON?Ne?^wWKYaP5AUm;6k7ER@nCq#?pMX&OrmLdYE9CJ-6GXT^iTAd9m(`4;E}
zfy}Yzg+@pt0@sk(LOz-_L`>RbTB#+~b3MT|&
z14UGj%UhW)21C+=LfPqwY$6Bc>x1-?k+cr@pp=D_@sk7+lFS?R)h|hV*O@UW6`Ai_H`049j)JozV)4d8r`BUo7M!zgCCD`;G!S0dV&q
zp8LL%~Ba#6Eg$iKtZe$N47EeRXa5>+}e1_})f4LZ~7>us9|I_MOlXiY|*KdQX
zeS8~zP@tW6v39VXfr*USwp~rS`=B$j`)nk?@}kq(ClF4d>YOz8hkr;=W~kkm
zCW7a<(pcz5X#A0R<9Z{E*BfJ?`u2(tHC?l!+(h-PRUM^q=-1CbjbNI^81U7VyU;3(
zT2f^?#ma%q8;EN&iz|Pk@=)pdaMq3d25mbDNrIP#bi|hqP`3*fT}kuvR+%ng#;F!o
z!3#SBB2F;iNzfJ(L`*fNFT`NdGQiAH|Ej|Hc2f5bF>p2ufwkUZTFe}(dJ$`MX;C(0
z-V{r-E2m(c5BI}drL(~k6SEswne#fEUdvi&3FiZh%N)80&$C_2kh}Zs$!WSMT5)2L
z->t!4_PuW(@0iMUf!tM3EXsxR=8aqQJS!tI77vxXD$Q$NZ1vCFp)TCJPPKgJ6$dq6
z6AvwIT>T_kTfhs9Ro&hblgcP`#)4Y!f6RfcKKz5}fFeLswhx__Ru
z`f>qsFw=AMC$D2)!n`KC&FVyxLH=oq<|UuIL`hLk2jvOa!Qq_R3CqNXSp|NlZhBlh
z@V0BxvHNAmtK__)^rv^SNw9j3M7}#zg*ToWtbKT~2{x#g2)k9TC|R>Dzhq!T-pA~R
z>ZL3u2sdInHHePlU?n!;#-16SNWGJd=j+gQ4vI}N_YbJpa3kc$Q-$nCw8DusXXMl4
z*nJS|qzj=rNJpZI;
z$vRbg>YS|lmxjj--{P0zyGBQ?yoS4%MX$EkOMqE$O+Pm%_1o-3WM-q=b4f2dQfTt>
zOFR@zTq!4JBAQzKEZEFs#YOE+WUR@=e`!;~PCh-+ddeAuP%>I*Cd8Cb%!1YNZFKDIJTra--
zG#+}%TS;ZSZaqDK8^0CL=AU{B|LU>Hu0mU~}a9D5U=
zlszxG=SokFC;8liaQHBlh
z2BUO}iYG`REj!%$Xj-syeaVfwq3hF5*L>e!Jm^2?Jo?@}>G*`TrXZHmap&CnfJ4u^
zk68!bvsByruv+!zzl{#!R8}8y9^Ra-sENMbl68A9w_o}?z5eO*E&If08t#Rq+K#s{
zb}mq^_${jVjmeHhTXNWUoFMIe)lJ26`vXz
zWvk~HR@whs?OF8cKV8YyEs1et|A`i*;GS`_+RH=ns17TKJg|lJv;Y(H<+2}hIXsat
z5ANw;3-!HT?J@e?t>VkCV$sSaXTfoVh-!;h=kN@TPi^X~Dlo@yIP4fl2
z#pt2|1Jj>Ov$71^ei~h1H$uM|R6wY=ZG3Q99U>X|mV`BoS9`4vYw~J@(FazM_8hI9o-&aIo@yE|
z6xi92RAt7!kM;6HVQV)mjXu!6Snn}L!YlYRm7CF)XL~-WsBd9Uk6GUDFm8S4@oR}s
z!f_@&&0G2FHTy?nQd8F&@&}*SrC)xRgU!h6eepUXk}}=;?q@wX1aZ#AJc}avS@*XR
MKo6o-Qerdz3wwRZj{pDw
diff --git a/docs-theme/assets/anchor.js b/docs-theme/assets/anchor.js
deleted file mode 100644
index 47d871ad..00000000
--- a/docs-theme/assets/anchor.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/*!
- * AnchorJS - v1.2.1 - 2015-07-02
- * https://github.com/bryanbraun/anchorjs
- * Copyright (c) 2015 Bryan Braun; Licensed MIT
- */
-
-function AnchorJS(options) {
- 'use strict';
-
- this.options = options || {};
-
- this._applyRemainingDefaultOptions = function(opts) {
- this.options.icon = this.options.hasOwnProperty('icon') ? opts.icon : '\ue9cb'; // Accepts characters (and also URLs?), like '#', '¶', '❡', or '§'.
- this.options.visible = this.options.hasOwnProperty('visible') ? opts.visible : 'hover'; // Also accepts 'always'
- this.options.placement = this.options.hasOwnProperty('placement') ? opts.placement : 'right'; // Also accepts 'left'
- this.options.class = this.options.hasOwnProperty('class') ? opts.class : ''; // Accepts any class name.
- };
-
- this._applyRemainingDefaultOptions(options);
-
- this.add = function(selector) {
- var elements,
- elsWithIds,
- idList,
- elementID,
- i,
- roughText,
- tidyText,
- index,
- count,
- newTidyText,
- readableID,
- anchor;
-
- this._applyRemainingDefaultOptions(this.options);
-
- // Provide a sensible default selector, if none is given.
- if (!selector) {
- selector = 'h1, h2, h3, h4, h5, h6';
- } else if (typeof selector !== 'string') {
- throw new Error('The selector provided to AnchorJS was invalid.');
- }
-
- elements = document.querySelectorAll(selector);
- if (elements.length === 0) {
- return false;
- }
-
- this._addBaselineStyles();
-
- // We produce a list of existing IDs so we don't generate a duplicate.
- elsWithIds = document.querySelectorAll('[id]');
- idList = [].map.call(elsWithIds, function assign(el) {
- return el.id;
- });
-
- for (i = 0; i < elements.length; i++) {
-
- if (elements[i].hasAttribute('id')) {
- elementID = elements[i].getAttribute('id');
- } else {
- roughText = elements[i].textContent;
-
- // Refine it so it makes a good ID. Strip out non-safe characters, replace
- // spaces with hyphens, truncate to 32 characters, and make toLowerCase.
- //
- // Example string: // '⚡⚡⚡ Unicode icons are cool--but they definitely don't belong in a URL fragment.'
- tidyText = roughText.replace(/[^\w\s-]/gi, '') // ' Unicode icons are cool--but they definitely dont belong in a URL fragment'
- .replace(/\s+/g, '-') // '-Unicode-icons-are-cool--but-they-definitely-dont-belong-in-a-URL-fragment'
- .replace(/-{2,}/g, '-') // '-Unicode-icons-are-cool-but-they-definitely-dont-belong-in-a-URL-fragment'
- .substring(0, 64) // '-Unicode-icons-are-cool-but-they-definitely-dont-belong-in-a-URL'
- .replace(/^-+|-+$/gm, '') // 'Unicode-icons-are-cool-but-they-definitely-dont-belong-in-a-URL'
- .toLowerCase(); // 'unicode-icons-are-cool-but-they-definitely-dont-belong-in-a-url'
-
- // Compare our generated ID to existing IDs (and increment it if needed)
- // before we add it to the page.
- newTidyText = tidyText;
- count = 0;
- do {
- if (index !== undefined) {
- newTidyText = tidyText + '-' + count;
- }
- // .indexOf is supported in IE9+.
- index = idList.indexOf(newTidyText);
- count += 1;
- } while (index !== -1);
- index = undefined;
- idList.push(newTidyText);
-
- // Assign it to our element.
- // Currently the setAttribute element is only supported in IE9 and above.
- elements[i].setAttribute('id', newTidyText);
-
- elementID = newTidyText;
- }
-
- readableID = elementID.replace(/-/g, ' ');
-
- // The following code builds the following DOM structure in a more effiecient (albeit opaque) way.
- // '';
- anchor = document.createElement('a');
- anchor.className = 'anchorjs-link ' + this.options.class;
- anchor.href = '#' + elementID;
- anchor.setAttribute('aria-label', 'Anchor link for: ' + readableID);
- anchor.setAttribute('data-anchorjs-icon', this.options.icon);
-
- if (this.options.visible === 'always') {
- anchor.style.opacity = '1';
- }
-
- if (this.options.icon === '\ue9cb') {
- anchor.style.fontFamily = 'anchorjs-icons';
- anchor.style.fontStyle = 'normal';
- anchor.style.fontVariant = 'normal';
- anchor.style.fontWeight = 'normal';
- anchor.style.lineHeight = 1;
- }
-
- if (this.options.placement === 'left') {
- anchor.style.position = 'absolute';
- anchor.style.marginLeft = '-1em';
- anchor.style.paddingRight = '0.5em';
- elements[i].insertBefore(anchor, elements[i].firstChild);
- } else { // if the option provided is `right` (or anything else).
- anchor.style.paddingLeft = '0.375em';
- elements[i].appendChild(anchor);
- }
- }
-
- return this;
- };
-
- this.remove = function(selector) {
- var domAnchor,
- elements = document.querySelectorAll(selector);
- for (var i = 0; i < elements.length; i++) {
- domAnchor = elements[i].querySelector('.anchorjs-link');
- if (domAnchor) {
- elements[i].removeChild(domAnchor);
- }
- }
- return this;
- };
-
- this._addBaselineStyles = function() {
- // We don't want to add global baseline styles if they've been added before.
- if (document.head.querySelector('style.anchorjs') !== null) {
- return;
- }
-
- var style = document.createElement('style'),
- linkRule =
- ' .anchorjs-link {' +
- ' opacity: 0;' +
- ' text-decoration: none;' +
- ' -webkit-font-smoothing: antialiased;' +
- ' -moz-osx-font-smoothing: grayscale;' +
- ' }',
- hoverRule =
- ' *:hover > .anchorjs-link,' +
- ' .anchorjs-link:focus {' +
- ' opacity: 1;' +
- ' }',
- anchorjsLinkFontFace =
- ' @font-face {' +
- ' font-family: "anchorjs-icons";' +
- ' font-style: normal;' +
- ' font-weight: normal;' + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above
- ' src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBTUAAAC8AAAAYGNtYXAWi9QdAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zgq29TcAAAF4AAABNGhlYWQEZM3pAAACrAAAADZoaGVhBhUDxgAAAuQAAAAkaG10eASAADEAAAMIAAAAFGxvY2EAKACuAAADHAAAAAxtYXhwAAgAVwAAAygAAAAgbmFtZQ5yJ3cAAANIAAAB2nBvc3QAAwAAAAAFJAAAACAAAwJAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpywPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6cv//f//AAAAAAAg6cv//f//AAH/4xY5AAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACADEARAJTAsAAKwBUAAABIiYnJjQ/AT4BMzIWFxYUDwEGIicmND8BNjQnLgEjIgYPAQYUFxYUBw4BIwciJicmND8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFA8BDgEjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAEAAAABAACiToc1Xw889QALBAAAAAAA0XnFFgAAAADRecUWAAAAAAJTAsAAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAAlMAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAACAAAAAoAAMQAAAAAACgAUAB4AmgABAAAABQBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIABwCfAAEAAAAAAAMADgBLAAEAAAAAAAQADgC0AAEAAAAAAAUACwAqAAEAAAAAAAYADgB1AAEAAAAAAAoAGgDeAAMAAQQJAAEAHAAOAAMAAQQJAAIADgCmAAMAAQQJAAMAHABZAAMAAQQJAAQAHADCAAMAAQQJAAUAFgA1AAMAAQQJAAYAHACDAAMAAQQJAAoANAD4YW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("truetype");' +
- ' }',
- pseudoElContent =
- ' [data-anchorjs-icon]::after {' +
- ' content: attr(data-anchorjs-icon);' +
- ' }',
- firstStyleEl;
-
- style.className = 'anchorjs';
- style.appendChild(document.createTextNode('')); // Necessary for Webkit.
-
- // We place it in the head with the other style tags, if possible, so as to
- // not look out of place. We insert before the others so these styles can be
- // overridden if necessary.
- firstStyleEl = document.head.querySelector('[rel="stylesheet"], style');
- if (firstStyleEl === undefined) {
- document.head.appendChild(style);
- } else {
- document.head.insertBefore(style, firstStyleEl);
- }
-
- style.sheet.insertRule(linkRule, style.sheet.cssRules.length);
- style.sheet.insertRule(hoverRule, style.sheet.cssRules.length);
- style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length);
- style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length);
- };
-}
-
-var anchors = new AnchorJS();
diff --git a/docs-theme/assets/bass-addons.css b/docs-theme/assets/bass-addons.css
deleted file mode 100644
index c27e96d8..00000000
--- a/docs-theme/assets/bass-addons.css
+++ /dev/null
@@ -1,12 +0,0 @@
-.input {
- font-family: inherit;
- display: block;
- width: 100%;
- height: 2rem;
- padding: .5rem;
- margin-bottom: 1rem;
- border: 1px solid #ccc;
- font-size: .875rem;
- border-radius: 3px;
- box-sizing: border-box;
-}
diff --git a/docs-theme/assets/bass.css b/docs-theme/assets/bass.css
deleted file mode 100644
index 15e0dc9a..00000000
--- a/docs-theme/assets/bass.css
+++ /dev/null
@@ -1,543 +0,0 @@
-/*! Basscss | http://basscss.com | MIT License */
-
-.h1{ font-size: 2rem }
-.h2{ font-size: 1.5rem }
-.h3{ font-size: 1.25rem }
-.h4{ font-size: 1rem }
-.h5{ font-size: .875rem }
-.h6{ font-size: .75rem }
-
-.font-family-inherit{ font-family:inherit }
-.font-size-inherit{ font-size:inherit }
-.text-decoration-none{ text-decoration:none }
-
-.bold{ font-weight: bold; font-weight: bold }
-.regular{ font-weight:normal }
-.italic{ font-style:italic }
-.caps{ text-transform:uppercase; letter-spacing: .2em; }
-
-.left-align{ text-align:left }
-.center{ text-align:center }
-.right-align{ text-align:right }
-.justify{ text-align:justify }
-
-.nowrap{ white-space:nowrap }
-.break-word{ word-wrap:break-word }
-
-.line-height-1{ line-height: 1 }
-.line-height-2{ line-height: 1.125 }
-.line-height-3{ line-height: 1.25 }
-.line-height-4{ line-height: 1.5 }
-
-.list-style-none{ list-style:none }
-.underline{ text-decoration:underline }
-
-.truncate{
- max-width:100%;
- overflow:hidden;
- text-overflow:ellipsis;
- white-space:nowrap;
-}
-
-.list-reset{
- list-style:none;
- padding-left:0;
-}
-
-.inline{ display:inline }
-.block{ display:block }
-.inline-block{ display:inline-block }
-.table{ display:table }
-.table-cell{ display:table-cell }
-
-.overflow-hidden{ overflow:hidden }
-.overflow-scroll{ overflow:scroll }
-.overflow-auto{ overflow:auto }
-
-.clearfix:before,
-.clearfix:after{
- content:" ";
- display:table
-}
-.clearfix:after{ clear:both }
-
-.left{ float:left }
-.right{ float:right }
-
-.fit{ max-width:100% }
-
-.max-width-1{ max-width: 24rem }
-.max-width-2{ max-width: 32rem }
-.max-width-3{ max-width: 48rem }
-.max-width-4{ max-width: 64rem }
-
-.border-box{ box-sizing:border-box }
-
-.align-baseline{ vertical-align:baseline }
-.align-top{ vertical-align:top }
-.align-middle{ vertical-align:middle }
-.align-bottom{ vertical-align:bottom }
-
-.m0{ margin:0 }
-.mt0{ margin-top:0 }
-.mr0{ margin-right:0 }
-.mb0{ margin-bottom:0 }
-.ml0{ margin-left:0 }
-.mx0{ margin-left:0; margin-right:0 }
-.my0{ margin-top:0; margin-bottom:0 }
-
-.m1{ margin: .5rem }
-.mt1{ margin-top: .5rem }
-.mr1{ margin-right: .5rem }
-.mb1{ margin-bottom: .5rem }
-.ml1{ margin-left: .5rem }
-.mx1{ margin-left: .5rem; margin-right: .5rem }
-.my1{ margin-top: .5rem; margin-bottom: .5rem }
-
-.m2{ margin: 1rem }
-.mt2{ margin-top: 1rem }
-.mr2{ margin-right: 1rem }
-.mb2{ margin-bottom: 1rem }
-.ml2{ margin-left: 1rem }
-.mx2{ margin-left: 1rem; margin-right: 1rem }
-.my2{ margin-top: 1rem; margin-bottom: 1rem }
-
-.m3{ margin: 2rem }
-.mt3{ margin-top: 2rem }
-.mr3{ margin-right: 2rem }
-.mb3{ margin-bottom: 2rem }
-.ml3{ margin-left: 2rem }
-.mx3{ margin-left: 2rem; margin-right: 2rem }
-.my3{ margin-top: 2rem; margin-bottom: 2rem }
-
-.m4{ margin: 4rem }
-.mt4{ margin-top: 4rem }
-.mr4{ margin-right: 4rem }
-.mb4{ margin-bottom: 4rem }
-.ml4{ margin-left: 4rem }
-.mx4{ margin-left: 4rem; margin-right: 4rem }
-.my4{ margin-top: 4rem; margin-bottom: 4rem }
-
-.mxn1{ margin-left: -.5rem; margin-right: -.5rem; }
-.mxn2{ margin-left: -1rem; margin-right: -1rem; }
-.mxn3{ margin-left: -2rem; margin-right: -2rem; }
-.mxn4{ margin-left: -4rem; margin-right: -4rem; }
-
-.ml-auto{ margin-left:auto }
-.mr-auto{ margin-right:auto }
-.mx-auto{ margin-left:auto; margin-right:auto; }
-
-.p0{ padding:0 }
-.pt0{ padding-top:0 }
-.pr0{ padding-right:0 }
-.pb0{ padding-bottom:0 }
-.pl0{ padding-left:0 }
-.px0{ padding-left:0; padding-right:0 }
-.py0{ padding-top:0; padding-bottom:0 }
-
-.p1{ padding: .5rem }
-.pt1{ padding-top: .5rem }
-.pr1{ padding-right: .5rem }
-.pb1{ padding-bottom: .5rem }
-.pl1{ padding-left: .5rem }
-.py1{ padding-top: .5rem; padding-bottom: .5rem }
-.px1{ padding-left: .5rem; padding-right: .5rem }
-
-.p2{ padding: 1rem }
-.pt2{ padding-top: 1rem }
-.pr2{ padding-right: 1rem }
-.pb2{ padding-bottom: 1rem }
-.pl2{ padding-left: 1rem }
-.py2{ padding-top: 1rem; padding-bottom: 1rem }
-.px2{ padding-left: 1rem; padding-right: 1rem }
-
-.p3{ padding: 2rem }
-.pt3{ padding-top: 2rem }
-.pr3{ padding-right: 2rem }
-.pb3{ padding-bottom: 2rem }
-.pl3{ padding-left: 2rem }
-.py3{ padding-top: 2rem; padding-bottom: 2rem }
-.px3{ padding-left: 2rem; padding-right: 2rem }
-
-.p4{ padding: 4rem }
-.pt4{ padding-top: 4rem }
-.pr4{ padding-right: 4rem }
-.pb4{ padding-bottom: 4rem }
-.pl4{ padding-left: 4rem }
-.py4{ padding-top: 4rem; padding-bottom: 4rem }
-.px4{ padding-left: 4rem; padding-right: 4rem }
-
-.col{
- float:left;
- box-sizing:border-box;
-}
-
-.col-right{
- float:right;
- box-sizing:border-box;
-}
-
-.col-1{
- width:8.33333%;
-}
-
-.col-2{
- width:16.66667%;
-}
-
-.col-3{
- width:25%;
-}
-
-.col-4{
- width:33.33333%;
-}
-
-.col-5{
- width:41.66667%;
-}
-
-.col-6{
- width:50%;
-}
-
-.col-7{
- width:58.33333%;
-}
-
-.col-8{
- width:66.66667%;
-}
-
-.col-9{
- width:75%;
-}
-
-.col-10{
- width:83.33333%;
-}
-
-.col-11{
- width:91.66667%;
-}
-
-.col-12{
- width:100%;
-}
-@media (min-width: 40em){
-
- .sm-col{
- float:left;
- box-sizing:border-box;
- }
-
- .sm-col-right{
- float:right;
- box-sizing:border-box;
- }
-
- .sm-col-1{
- width:8.33333%;
- }
-
- .sm-col-2{
- width:16.66667%;
- }
-
- .sm-col-3{
- width:25%;
- }
-
- .sm-col-4{
- width:33.33333%;
- }
-
- .sm-col-5{
- width:41.66667%;
- }
-
- .sm-col-6{
- width:50%;
- }
-
- .sm-col-7{
- width:58.33333%;
- }
-
- .sm-col-8{
- width:66.66667%;
- }
-
- .sm-col-9{
- width:75%;
- }
-
- .sm-col-10{
- width:83.33333%;
- }
-
- .sm-col-11{
- width:91.66667%;
- }
-
- .sm-col-12{
- width:100%;
- }
-
-}
-@media (min-width: 52em){
-
- .md-col{
- float:left;
- box-sizing:border-box;
- }
-
- .md-col-right{
- float:right;
- box-sizing:border-box;
- }
-
- .md-col-1{
- width:8.33333%;
- }
-
- .md-col-2{
- width:16.66667%;
- }
-
- .md-col-3{
- width:25%;
- }
-
- .md-col-4{
- width:33.33333%;
- }
-
- .md-col-5{
- width:41.66667%;
- }
-
- .md-col-6{
- width:50%;
- }
-
- .md-col-7{
- width:58.33333%;
- }
-
- .md-col-8{
- width:66.66667%;
- }
-
- .md-col-9{
- width:75%;
- }
-
- .md-col-10{
- width:83.33333%;
- }
-
- .md-col-11{
- width:91.66667%;
- }
-
- .md-col-12{
- width:100%;
- }
-
-}
-@media (min-width: 64em){
-
- .lg-col{
- float:left;
- box-sizing:border-box;
- }
-
- .lg-col-right{
- float:right;
- box-sizing:border-box;
- }
-
- .lg-col-1{
- width:8.33333%;
- }
-
- .lg-col-2{
- width:16.66667%;
- }
-
- .lg-col-3{
- width:25%;
- }
-
- .lg-col-4{
- width:33.33333%;
- }
-
- .lg-col-5{
- width:41.66667%;
- }
-
- .lg-col-6{
- width:50%;
- }
-
- .lg-col-7{
- width:58.33333%;
- }
-
- .lg-col-8{
- width:66.66667%;
- }
-
- .lg-col-9{
- width:75%;
- }
-
- .lg-col-10{
- width:83.33333%;
- }
-
- .lg-col-11{
- width:91.66667%;
- }
-
- .lg-col-12{
- width:100%;
- }
-
-}
-.flex{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex }
-
-@media (min-width: 40em){
- .sm-flex{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex }
-}
-
-@media (min-width: 52em){
- .md-flex{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex }
-}
-
-@media (min-width: 64em){
- .lg-flex{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex }
-}
-
-.flex-column{ -webkit-box-orient:vertical; -webkit-box-direction:normal; -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column }
-.flex-wrap{ -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap }
-
-.items-start{ -webkit-box-align:start; -webkit-align-items:flex-start; -ms-flex-align:start; -ms-grid-row-align:flex-start; align-items:flex-start }
-.items-end{ -webkit-box-align:end; -webkit-align-items:flex-end; -ms-flex-align:end; -ms-grid-row-align:flex-end; align-items:flex-end }
-.items-center{ -webkit-box-align:center; -webkit-align-items:center; -ms-flex-align:center; -ms-grid-row-align:center; align-items:center }
-.items-baseline{ -webkit-box-align:baseline; -webkit-align-items:baseline; -ms-flex-align:baseline; -ms-grid-row-align:baseline; align-items:baseline }
-.items-stretch{ -webkit-box-align:stretch; -webkit-align-items:stretch; -ms-flex-align:stretch; -ms-grid-row-align:stretch; align-items:stretch }
-
-.self-start{ -webkit-align-self:flex-start; -ms-flex-item-align:start; align-self:flex-start }
-.self-end{ -webkit-align-self:flex-end; -ms-flex-item-align:end; align-self:flex-end }
-.self-center{ -webkit-align-self:center; -ms-flex-item-align:center; align-self:center }
-.self-baseline{ -webkit-align-self:baseline; -ms-flex-item-align:baseline; align-self:baseline }
-.self-stretch{ -webkit-align-self:stretch; -ms-flex-item-align:stretch; align-self:stretch }
-
-.justify-start{ -webkit-box-pack:start; -webkit-justify-content:flex-start; -ms-flex-pack:start; justify-content:flex-start }
-.justify-end{ -webkit-box-pack:end; -webkit-justify-content:flex-end; -ms-flex-pack:end; justify-content:flex-end }
-.justify-center{ -webkit-box-pack:center; -webkit-justify-content:center; -ms-flex-pack:center; justify-content:center }
-.justify-between{ -webkit-box-pack:justify; -webkit-justify-content:space-between; -ms-flex-pack:justify; justify-content:space-between }
-.justify-around{ -webkit-justify-content:space-around; -ms-flex-pack:distribute; justify-content:space-around }
-
-.content-start{ -webkit-align-content:flex-start; -ms-flex-line-pack:start; align-content:flex-start }
-.content-end{ -webkit-align-content:flex-end; -ms-flex-line-pack:end; align-content:flex-end }
-.content-center{ -webkit-align-content:center; -ms-flex-line-pack:center; align-content:center }
-.content-between{ -webkit-align-content:space-between; -ms-flex-line-pack:justify; align-content:space-between }
-.content-around{ -webkit-align-content:space-around; -ms-flex-line-pack:distribute; align-content:space-around }
-.content-stretch{ -webkit-align-content:stretch; -ms-flex-line-pack:stretch; align-content:stretch }
-.flex-auto{
- -webkit-box-flex:1;
- -webkit-flex:1 1 auto;
- -ms-flex:1 1 auto;
- flex:1 1 auto;
- min-width:0;
- min-height:0;
-}
-.flex-none{ -webkit-box-flex:0; -webkit-flex:none; -ms-flex:none; flex:none }
-
-.order-0{ -webkit-box-ordinal-group:1; -webkit-order:0; -ms-flex-order:0; order:0 }
-.order-1{ -webkit-box-ordinal-group:2; -webkit-order:1; -ms-flex-order:1; order:1 }
-.order-2{ -webkit-box-ordinal-group:3; -webkit-order:2; -ms-flex-order:2; order:2 }
-.order-3{ -webkit-box-ordinal-group:4; -webkit-order:3; -ms-flex-order:3; order:3 }
-.order-last{ -webkit-box-ordinal-group:100000; -webkit-order:99999; -ms-flex-order:99999; order:99999 }
-
-.relative{ position:relative }
-.absolute{ position:absolute }
-.fixed{ position:fixed }
-
-.top-0{ top:0 }
-.right-0{ right:0 }
-.bottom-0{ bottom:0 }
-.left-0{ left:0 }
-
-.z1{ z-index: 1 }
-.z2{ z-index: 2 }
-.z3{ z-index: 3 }
-.z4{ z-index: 4 }
-
-.border{
- border-style:solid;
- border-width: 1px;
-}
-
-.border-top{
- border-top-style:solid;
- border-top-width: 1px;
-}
-
-.border-right{
- border-right-style:solid;
- border-right-width: 1px;
-}
-
-.border-bottom{
- border-bottom-style:solid;
- border-bottom-width: 1px;
-}
-
-.border-left{
- border-left-style:solid;
- border-left-width: 1px;
-}
-
-.border-none{ border:0 }
-
-.rounded{ border-radius: 3px }
-.circle{ border-radius:50% }
-
-.rounded-top{ border-radius: 3px 3px 0 0 }
-.rounded-right{ border-radius: 0 3px 3px 0 }
-.rounded-bottom{ border-radius: 0 0 3px 3px }
-.rounded-left{ border-radius: 3px 0 0 3px }
-
-.not-rounded{ border-radius:0 }
-
-.hide{
- position:absolute !important;
- height:1px;
- width:1px;
- overflow:hidden;
- clip:rect(1px, 1px, 1px, 1px);
-}
-
-@media (max-width: 40em){
- .xs-hide{ display:none !important }
-}
-
-@media (min-width: 40em) and (max-width: 52em){
- .sm-hide{ display:none !important }
-}
-
-@media (min-width: 52em) and (max-width: 64em){
- .md-hide{ display:none !important }
-}
-
-@media (min-width: 64em){
- .lg-hide{ display:none !important }
-}
-
-.display-none{ display:none !important }
-
diff --git a/docs-theme/assets/docs.js b/docs-theme/assets/docs.js
deleted file mode 100644
index 559c65e5..00000000
--- a/docs-theme/assets/docs.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/* global anchors */
-
-// add anchor links to headers
-anchors.options.placement = 'left';
-anchors.add('h3');
-
-// Filter UI
-var tocElements = document.getElementById('toc')
- .getElementsByTagName('li');
-
-document.getElementById('filter-input')
- .addEventListener('keyup', function (e) {
-
- var i, element, children;
-
- // enter key
- if (e.keyCode === 13) {
- // go to the first displayed item in the toc
- for (i = 0; i < tocElements.length; i++) {
- element = tocElements[i];
- if (!element.classList.contains('display-none')) {
- location.replace(element.firstChild.href);
- return e.preventDefault();
- }
- }
- }
-
- var match = function () {
- return true;
- };
-
- var value = this.value.toLowerCase();
-
- if (!value.match(/^\s*$/)) {
- match = function (element) {
- return element.firstChild.innerHTML.toLowerCase().indexOf(value) !== -1;
- };
- }
-
- for (i = 0; i < tocElements.length; i++) {
- element = tocElements[i];
- children = Array.from(element.getElementsByTagName('li'));
- if (match(element) || children.some(match)) {
- element.classList.remove('display-none');
- } else {
- element.classList.add('display-none');
- }
- }
- });
-
-var toggles = document.getElementsByClassName('toggle-step-sibling');
-for (var i = 0; i < toggles.length; i++) {
- toggles[i].addEventListener('click', toggleStepSibling);
-}
-
-function toggleStepSibling() {
- var stepSibling = this.parentNode.parentNode.parentNode.getElementsByClassName('toggle-target')[0];
- var klass = 'display-none';
- if (stepSibling.classList.contains(klass)) {
- stepSibling.classList.remove(klass);
- stepSibling.innerHTML = '▾';
- } else {
- stepSibling.classList.add(klass);
- stepSibling.innerHTML = '▸';
- }
-}
-
-var items = document.getElementsByClassName('toggle-sibling');
-for (var j = 0; j < items.length; j++) {
- items[j].addEventListener('click', toggleSibling);
-}
-
-function toggleSibling() {
- var stepSibling = this.parentNode.getElementsByClassName('toggle-target')[0];
- var icon = this.getElementsByClassName('icon')[0];
- var klass = 'display-none';
- if (stepSibling.classList.contains(klass)) {
- stepSibling.classList.remove(klass);
- icon.innerHTML = '▾';
- } else {
- stepSibling.classList.add(klass);
- icon.innerHTML = '▸';
- }
-}
-
-function showHashTarget(targetId) {
- var hashTarget = document.getElementById(targetId);
- // new target is hidden
- if (hashTarget && hashTarget.offsetHeight === 0 &&
- hashTarget.parentNode.parentNode.classList.contains('display-none')) {
- hashTarget.parentNode.parentNode.classList.remove('display-none');
- }
-}
-
-window.addEventListener('hashchange', function() {
- showHashTarget(location.hash.substring(1));
-});
-
-showHashTarget(location.hash.substring(1));
-
-var toclinks = document.getElementsByClassName('pre-open');
-for (var k = 0; k < toclinks.length; k++) {
- toclinks[k].addEventListener('mousedown', preOpen, false);
-}
-
-function preOpen() {
- showHashTarget(this.hash.substring(1));
-}
diff --git a/docs-theme/assets/fonts/EOT/SourceCodePro-Bold.eot b/docs-theme/assets/fonts/EOT/SourceCodePro-Bold.eot
deleted file mode 100755
index d24cc39f470643cb28cfd7363ee2b9dabec436b7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 83598
zcmafZWl$Wzvh^-3?(VX}I|O$K4#5Hhx1b3SlDynoufBT!
zzUi9kp3|pK_57Xb6geOODhmX_{WA~%0Dwb7LV*Xt!@+@ofPT1t06<0KCmetpUhp5`
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
=nqCCe!b4(wgFul^m
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