From a900965fbae8605ee4afbc3f6755a778834985e2 Mon Sep 17 00:00:00 2001 From: Anselm Bradford Date: Thu, 17 Aug 2017 20:28:38 -0400 Subject: [PATCH] Fixes #3516 - replaces scss-lint with stylelint --- .scss-lint.yml | 166 -- .stylelintrc.yaml | 56 + CONTRIBUTORS.rst | 1 + Makefile | 4 +- circle.yml | 1 - client/src/components/Explorer/Explorer.scss | 2 - .../src/components/Explorer/ExplorerItem.scss | 2 - .../src/components/Transition/Transition.scss | 1 - docs/contributing/css_guidelines.rst | 25 +- package-lock.json | 1755 ++++++++++++++++- package.json | 4 +- .../scss/choose_parent_page.scss | 2 + .../wagtailmodeladmin/scss/index.scss | 3 +- .../static_src/wagtailadmin/scss/_mixins.scss | 4 +- .../scss/components/_datetimepicker.scss | 3 + .../scss/components/_dropdowns.scss | 7 - .../wagtailadmin/scss/components/_forms.scss | 183 +- .../wagtailadmin/scss/components/_header.scss | 2 +- .../wagtailadmin/scss/components/_icons.scss | 1 - .../scss/components/_indicator.scss | 2 - .../scss/components/_listing.scss | 2 - .../scss/components/_main-nav.scss | 4 +- .../scss/components/_messages.scss | 6 +- .../wagtailadmin/scss/components/_modals.scss | 1 + .../scss/components/_tooltips.scss | 1 - .../scss/components/_typography.scss | 63 +- .../static_src/wagtailadmin/scss/core.scss | 4 +- .../wagtailadmin/scss/layouts/login.scss | 125 +- .../wagtailadmin/scss/panels/rich-text.scss | 4 - .../static_src/wagtailadmin/scss/userbar.scss | 301 ++- 30 files changed, 2163 insertions(+), 572 deletions(-) delete mode 100644 .scss-lint.yml create mode 100644 .stylelintrc.yaml diff --git a/.scss-lint.yml b/.scss-lint.yml deleted file mode 100644 index f184f8437..000000000 --- a/.scss-lint.yml +++ /dev/null @@ -1,166 +0,0 @@ -# Useful regexes to fix lint errors -# SpaceBeforeBrace: search "([^\ ])\{" replace "$1 {" -# SpaceAfterPropertyColon: search "([^\&]):([^\ \n]*);" replace "$1: $2;" - -scss_files: -- wagtail/**/static_src/**/scss/**/*.scss -- client/**/*.scss - -linters: - BorderZero: - enabled: true - - Indentation: - severity: warning - width: 4 - # because https://github.com/brigade/scss-lint/issues/409 - allow_non_nested_indentation: true - character: space - - ColorKeyword: - enabled: true - - ColorVariable: - enabled: false - - BangFormat: - space_before_bang: true - space_after_bang: false - - PropertySortOrder: - enabled: false - - Comment: - enabled: true - - DeclarationOrder: - enabled: true - - DuplicateProperty: - enabled: true - - ElsePlacement: - enabled: true - - EmptyLineBetweenBlocks: - enabled: true - - EmptyRule: - enabled: true - - FinalNewline: - present: true - - HexLength: - style: short - - HexNotation: - style: lowercase - - HexValidation: - enabled: true - - IdSelector: - enabled: true - exclude: - - '**/choose_parent_page.scss' - - ImportantRule: - enabled: false - exclude: - - '**/_datetimepicker.scss' - - ImportPath: - enabled: true - - LeadingZero: - enabled: false - - MergeableSelector: - enabled: false - - NameFormat: - allow_leading_underscore: true - - NestingDepth: - max_depth: 5 - - PseudoElement: - enabled: false - - SelectorDepth: - enabled: false - - # There is currently no de facto standard for selector format in Wagtail, due to: - # a) the conversion of django field/widget names to underscored class names - # b) the use of third party code such as Hallo.js which uses classes with snakeCaseClasses. - SelectorFormat: - convention: '.*' # allow anything - - PlaceholderInExtend: - enabled: false - - PropertyCount: - enabled: false - - QualifyingElement: - allow_element_with_attribute: true - allow_element_with_class: true - allow_element_with_id: false - - Shorthand: - enabled: true - - SingleLinePerProperty: - enabled: true - allow_single_line_rule_sets: true - - SingleLinePerSelector: - enabled: true - - SpaceAfterComma: - enabled: true - - SpaceAfterPropertyColon: - style: at_least_one_space - - SpaceAfterPropertyName: - enabled: true - - SpaceBeforeBrace: - enabled: true - allow_single_line_padding: true - style: space - - SpaceBetweenParens: - enabled: true - - StringQuotes: - style: single_quotes - - TrailingSemicolon: - enabled: true - - TrailingZero: - enabled: true - - UnnecessaryMantissa: - enabled: true - - UnnecessaryParentReference: - enbabled: true - - UrlFormat: - enabled: false - - UrlQuotes: - enabled: true - - VariableForProperty: - enabled: false - - VendorPrefix: - enabled: false - - ZeroUnit: - enabled: true diff --git a/.stylelintrc.yaml b/.stylelintrc.yaml new file mode 100644 index 000000000..633b19e52 --- /dev/null +++ b/.stylelintrc.yaml @@ -0,0 +1,56 @@ +ignoreFiles: + - node_modules +plugins: + - stylelint-scss +rules: + block-closing-brace-newline-after: + - always + - ignoreAtRules: + # Ignore @if … @else in SCSS. + - if + - else + block-no-empty: true + block-opening-brace-space-before: always + color-hex-case: lower + color-hex-length: short + color-named: never + color-no-invalid-hex: true + declaration-bang-space-after: never + declaration-bang-space-before: always + declaration-block-no-duplicate-properties: true + declaration-block-no-redundant-longhand-properties: true + declaration-block-single-line-max-declarations: 1 + declaration-block-trailing-semicolon: always + declaration-colon-space-after: always + declaration-colon-space-before: never + declaration-property-value-blacklist: + - /^border/: [none] + - severity: error + function-comma-space-after: always + function-parentheses-space-inside: never + function-url-quotes: always + indentation: + - 4 + - severity: warning + length-zero-no-unit: true + max-nesting-depth: 5 + no-eol-whitespace: true + no-missing-end-of-source-newline: true + number-no-trailing-zeros: true + rule-empty-line-before: + - always + - except: + - after-single-line-comment + - first-nested + scss/at-import-no-partial-leading-underscore: true + scss/at-import-partial-extension-blacklist: + - scss + scss/at-else-empty-line-before: never + selector-no-qualifying-type: + - true + - ignore: + - attribute + - class + selector-list-comma-newline-after: always + selector-max-id: 0 + string-quotes: single diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index be25b7962..5d953b413 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -252,6 +252,7 @@ Contributors * Emily Horsman * jcronyn * Ben Sturmfels +* Anselm Bradford Translators =========== diff --git a/Makefile b/Makefile index 8173617a8..827bbb85c 100644 --- a/Makefile +++ b/Makefile @@ -18,8 +18,8 @@ develop: clean-pyc lint: flake8 wagtail isort --check-only --diff --recursive wagtail - npm run lint:css - npm run lint:js + npm run lint:css --silent + npm run lint:js --silent test: python runtests.py diff --git a/circle.yml b/circle.yml index b46de50b6..848354353 100644 --- a/circle.yml +++ b/circle.yml @@ -5,7 +5,6 @@ machine: dependencies: pre: - pip install -e .[testing] - - gem install scss_lint test: override: diff --git a/client/src/components/Explorer/Explorer.scss b/client/src/components/Explorer/Explorer.scss index 6f5680e1a..86d9a49b6 100644 --- a/client/src/components/Explorer/Explorer.scss +++ b/client/src/components/Explorer/Explorer.scss @@ -1,5 +1,3 @@ -// scss-lint:disable DeclarationOrder - $c-explorer-bg: #4c4e4d; $c-explorer-bg-dark: $color-grey-1; $c-explorer-bg-active: rgba(0, 0, 0, 0.425); diff --git a/client/src/components/Explorer/ExplorerItem.scss b/client/src/components/Explorer/ExplorerItem.scss index 1465eebf7..1a327257b 100644 --- a/client/src/components/Explorer/ExplorerItem.scss +++ b/client/src/components/Explorer/ExplorerItem.scss @@ -1,5 +1,3 @@ -// scss-lint:disable DeclarationOrder - .c-explorer__item { display: flex; flex-flow: row nowrap; diff --git a/client/src/components/Transition/Transition.scss b/client/src/components/Transition/Transition.scss index d12174785..9dc05f466 100644 --- a/client/src/components/Transition/Transition.scss +++ b/client/src/components/Transition/Transition.scss @@ -35,7 +35,6 @@ $c-transition-duration: 200ms; // ============================================================================= // Pop transition // ============================================================================= - .c-transition-pop-enter { transform: translateX(-100%); transition: transform $c-transition-duration ease, opacity $c-transition-duration linear; diff --git a/docs/contributing/css_guidelines.rst b/docs/contributing/css_guidelines.rst index a2751c315..3abefdaa7 100644 --- a/docs/contributing/css_guidelines.rst +++ b/docs/contributing/css_guidelines.rst @@ -8,7 +8,7 @@ Compiling The SCSS source files are compiled to CSS using the `gulp `_ build system. -This requires `node.js `_ to run. +This requires `Node.js `_ to run. To install the libraries required for compiling the SCSS, run the following from the Wagtail repository root: @@ -35,22 +35,25 @@ automatically recompiling when any changes are observed, by running: Linting SCSS ~~~~~~~~~~~~ -Wagtail uses the "scss_lint" Ruby Gem for linting. +Wagtail uses the `stylelint `_ linter. +You'll need Node.js and npm on your development machine. +Ensure project dependencies are installed by running ``npm install`` -Install it thus: - -.. code-block:: console - - $ gem install scss_lint - - -Then run the linter from the wagtail project root: +Run the linter from the wagtail project root: .. code-block:: console $ npm run lint:css -The linter is configured to check your code for adherance to the guidelines below, plus a little more. + +The linter is configured to check your code for adherance to the guidelines +below, plus a little more. + +If you want to autofix errors, you can run that command directly with: + +.. code-block:: console + + $ npm run lint:css -- --fix Spacing diff --git a/package-lock.json b/package-lock.json index e68f73658..d3b27c775 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,12 @@ "json-stable-stringify": "1.0.1" } }, + "ajv-keywords": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "dev": true + }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", @@ -103,6 +109,15 @@ } } }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -142,6 +157,15 @@ "integrity": "sha1-5zA08A3MH0CHYAj9IP6ud71LfC8=", "dev": true }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", @@ -154,6 +178,12 @@ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -178,6 +208,20 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "autoprefixer": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.2.tgz", + "integrity": "sha1-++rwfUj9h44Ggr98vurecorbKxg=", + "dev": true, + "requires": { + "browserslist": "2.3.3", + "caniuse-lite": "1.0.30000715", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "6.0.9", + "postcss-value-parser": "3.3.0" + } + }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -5813,6 +5857,16 @@ "repeat-element": "1.1.2" } }, + "browserslist": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.3.3.tgz", + "integrity": "sha512-p9hz6FA2H1w1ZUAXKfK3MlIA4Z9fEd56hnZSOecBIITb5j0oZk/tZRwhdE0xG56RGx2x8cc1c5AWJKWVjMLOEQ==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000715", + "electron-to-chromium": "1.3.18" + } + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -5844,6 +5898,12 @@ } } }, + "caniuse-lite": { + "version": "1.0.30000715", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000715.tgz", + "integrity": "sha1-wyf15tkH687GLN5ZjDvw3Xk/uaA=", + "dev": true + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -5874,6 +5934,12 @@ "supports-color": "2.0.0" } }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", @@ -5892,6 +5958,16 @@ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", "dev": true }, + "clone-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", + "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=", + "dev": true, + "requires": { + "is-regexp": "1.0.0", + "is-supported-regexp-flag": "1.0.0" + } + }, "clone-stats": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", @@ -5910,6 +5986,21 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "color-convert": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", @@ -5943,6 +6034,21 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.9.1", + "minimist": "1.2.0", + "object-assign": "4.1.1", + "os-homedir": "1.0.2", + "parse-json": "2.2.0", + "require-from-string": "1.2.1" + } + }, "cross-spawn": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", @@ -6006,6 +6112,15 @@ "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc=", "dev": true }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -6021,6 +6136,37 @@ "clone": "1.0.2" } }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.1" + }, + "dependencies": { + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -6067,6 +6213,12 @@ "jsbn": "0.1.1" } }, + "electron-to-chromium": { + "version": "1.3.18", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz", + "integrity": "sha1-PcyZ2j5rZl9qu8ccKK1Ros1zGpw=", + "dev": true + }, "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", @@ -9767,6 +9919,21 @@ } } }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "execall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz", + "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", + "dev": true, + "requires": { + "clone-regexp": "1.0.0" + } + }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", @@ -9840,6 +10007,16 @@ "ua-parser-js": "0.7.12" } }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.2.2", + "object-assign": "4.1.1" + } + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -9923,6 +10100,32 @@ "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", "dev": true }, + "flat-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", + "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, "focus-trap-react": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/focus-trap-react/-/focus-trap-react-3.0.3.tgz", @@ -10273,6 +10476,25 @@ "which": "1.3.0" } }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, "globule": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", @@ -12169,6 +12391,12 @@ "ansi-regex": "2.1.1" } }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, "has-gulplog": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", @@ -12217,6 +12445,12 @@ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", @@ -12234,6 +12468,18 @@ "integrity": "sha1-T9qjs4rLwsAxsEXQ7c3+HsqxjI0=", "dev": true }, + "ignore": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", + "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "in-publish": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", @@ -12249,6 +12495,12 @@ "repeating": "2.0.1" } }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -12314,6 +12566,12 @@ "builtin-modules": "1.1.1" } }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -12377,6 +12635,30 @@ "kind-of": "3.2.2" } }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -12406,6 +12688,12 @@ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, "is-relative": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", @@ -12421,6 +12709,12 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-supported-regexp-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", + "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=", + "dev": true + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -16252,6 +16546,16 @@ "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", "dev": true }, + "js-yaml": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz", + "integrity": "sha512-CbcG379L1e+mWBnLvHWWeLs8GyV/EMw862uLI3c+GxVyDHWZcjZinwuBd3iW2pgxgIlksW/1vNJa4to+RvDOww==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -16315,6 +16619,12 @@ "is-buffer": "1.1.5" } }, + "known-css-properties": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.2.0.tgz", + "integrity": "sha512-UTCzU28rRI9wkb8qSGoZa9pgWvxr4LjP2MEhi9XHb/1XMOJy0uTnIxaxzj8My/PORG+kQG6VzAcGvRw66eIOfA==", + "dev": true + }, "lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", @@ -16538,6 +16848,15 @@ "lodash.escape": "3.2.0" } }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", @@ -16581,6 +16900,12 @@ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, + "mathml-tag-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.0.1.tgz", + "integrity": "sha1-jUEmgWi/htEQK5gQnijlMeejRXg=", + "dev": true + }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", @@ -16667,6 +16992,12 @@ } } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "multipipe": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", @@ -16835,6 +17166,18 @@ "remove-trailing-separator": "1.0.2" } }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -16847,6 +17190,12 @@ "set-blocking": "2.0.0" } }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -17016,6 +17365,12 @@ "pinkie-promise": "2.0.1" } }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, "path-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", @@ -17083,6 +17438,135 @@ "pinkie": "2.0.4" } }, + "postcss": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.9.tgz", + "integrity": "sha512-bBE2AHNEBhF23TfET6AA/lFP8ah+qHOZoFJEflFG+HgvVLdTmMOrocx/4LVVDIn3w6jUssw1q2Exk1cc9UOI8w==", + "dev": true, + "requires": { + "chalk": "2.1.0", + "source-map": "0.5.6", + "supports-color": "4.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-less": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-1.1.0.tgz", + "integrity": "sha1-vcx2vmTEMk2HP7xc2foueZ5DBfo=", + "dev": true, + "requires": { + "postcss": "5.2.17" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.1.9", + "source-map": "0.5.6", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "postcss-reporter": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-4.0.0.tgz", + "integrity": "sha512-IEVx20y277AIs3bZ6sUdzdq0YOE2RRbwnjUvTMfYYZmws0mE7YgqxZd0J8j60Byaf/QbjxyLfFJEQHH2bb+ecA==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "lodash": "4.17.4", + "log-symbols": "1.0.2" + } + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "postcss-scss": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.2.tgz", + "integrity": "sha1-/0XPM1S4ee6JpOtoaA9GrJuxT5Q=", + "dev": true, + "requires": { + "postcss": "6.0.9" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -18062,6 +18546,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true + }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", @@ -18087,6 +18577,12 @@ "global-modules": "0.2.3" } }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -18221,6 +18717,12 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", @@ -18263,6 +18765,18 @@ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, + "specificity": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.1.tgz", + "integrity": "sha1-8bBoQkzjF64HR42V3jwhz4Xo1Wc=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", @@ -18385,12 +18899,211 @@ "get-stdin": "4.0.1" } }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "stylelint": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-8.0.0.tgz", + "integrity": "sha512-k1GkRhOtghvYu5PWCdec7SNN22KZZLq4TL1vVyykBvHr91oUS7eVfX2IAZJjBpYKh9Gdep+AnSZCwuUn+J76Bw==", + "dev": true, + "requires": { + "autoprefixer": "7.1.2", + "balanced-match": "1.0.0", + "chalk": "2.1.0", + "cosmiconfig": "2.2.2", + "debug": "2.6.8", + "execall": "1.0.0", + "file-entry-cache": "2.0.0", + "get-stdin": "5.0.1", + "globby": "6.1.0", + "globjoin": "0.1.4", + "html-tags": "2.0.0", + "ignore": "3.3.3", + "imurmurhash": "0.1.4", + "known-css-properties": "0.2.0", + "lodash": "4.17.4", + "log-symbols": "1.0.2", + "mathml-tag-names": "2.0.1", + "meow": "3.7.0", + "micromatch": "2.3.11", + "normalize-selector": "0.2.0", + "pify": "3.0.0", + "postcss": "6.0.9", + "postcss-less": "1.1.0", + "postcss-media-query-parser": "0.2.3", + "postcss-reporter": "4.0.0", + "postcss-resolve-nested-selector": "0.1.1", + "postcss-scss": "1.0.2", + "postcss-selector-parser": "2.2.3", + "postcss-value-parser": "3.3.0", + "resolve-from": "3.0.0", + "specificity": "0.3.1", + "string-width": "2.1.1", + "style-search": "0.1.0", + "sugarss": "1.0.0", + "svg-tags": "1.0.0", + "table": "4.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "stylelint-scss": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-2.0.1.tgz", + "integrity": "sha512-LjXVIakwBcilmmrf2UdcjDWvBOwzNr/faIOgNqF4U7E1SG0ZSdXJ+UV20t/bei/08oEO/Ez3ngS0YR+SzWaiqQ==", + "dev": true, + "requires": { + "lodash": "4.17.4", + "postcss-media-query-parser": "0.2.3", + "postcss-resolve-nested-selector": "0.1.1", + "postcss-selector-parser": "2.2.3", + "postcss-value-parser": "3.3.0" + } + }, + "sugarss": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-1.0.0.tgz", + "integrity": "sha1-ZeUbOVhDL7cNVFGmi7M+MtDPHvc=", + "dev": true, + "requires": { + "postcss": "6.0.9" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "table": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.1.tgz", + "integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=", + "dev": true, + "requires": { + "ajv": "4.11.8", + "ajv-keywords": "1.5.1", + "chalk": "1.1.3", + "lodash": "4.17.4", + "slice-ansi": "0.0.4", + "string-width": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, "tar": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", @@ -18521,6 +19234,12 @@ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, "unique-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", @@ -18769,7 +19488,7 @@ "requires": { "graceful-fs": "4.1.11", "memory-fs": "0.4.1", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "object-assign": "4.1.1", "tapable": "0.2.6" }, "dependencies": { @@ -18778,11 +19497,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true - }, - "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true } } }, @@ -18819,7 +19533,7 @@ "big.js": "3.1.3", "emojis-list": "2.1.0", "json5": "0.5.1", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "object-assign": "4.1.1" }, "dependencies": { "big.js": { @@ -18833,11 +19547,6 @@ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true - }, - "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true } } }, @@ -20216,6 +20925,7 @@ "requires": { "anymatch": "1.3.0", "async-each": "1.0.1", + "fsevents": "1.1.2", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -20551,6 +21261,1018 @@ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true }, + "fsevents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", + "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.6.2", + "node-pre-gyp": "0.6.36" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "aproba": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.36", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", + "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", + "dev": true, + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "optional": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } + }, "glob-parent": { "version": "2.0.0", "resolved": "http://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", @@ -21279,6 +23001,15 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", diff --git a/package.json b/package.json index 5f50503af..7e2dbceef 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,8 @@ "react-addons-perf": "^15.4.2", "react-test-renderer": "^15.5.4", "redux-mock-store": "^1.2.2", + "stylelint": "^8.0.0", + "stylelint-scss": "^2.0.1", "webpack": "^2.6.1" }, "dependencies": { @@ -82,7 +84,7 @@ "watch": "webpack --config ./client/webpack/dev.config.js & gulp watch", "start": "npm run watch", "lint:js": "eslint --max-warnings 16 ./client", - "lint:css": "scss-lint", + "lint:css": "stylelint **/*.scss", "lint": "npm run lint:js", "test": "npm run test:unit", "test:unit": "jest", diff --git a/wagtail/contrib/modeladmin/static_src/wagtailmodeladmin/scss/choose_parent_page.scss b/wagtail/contrib/modeladmin/static_src/wagtailmodeladmin/scss/choose_parent_page.scss index a412e176e..a9b4ee562 100644 --- a/wagtail/contrib/modeladmin/static_src/wagtailmodeladmin/scss/choose_parent_page.scss +++ b/wagtail/contrib/modeladmin/static_src/wagtailmodeladmin/scss/choose_parent_page.scss @@ -1,7 +1,9 @@ +// stylelint-disable-next-line selector-max-id #id_parent_page li { margin: 15px 0; } +// stylelint-disable-next-line selector-max-id #id_parent_page li label { float: none; } diff --git a/wagtail/contrib/modeladmin/static_src/wagtailmodeladmin/scss/index.scss b/wagtail/contrib/modeladmin/static_src/wagtailmodeladmin/scss/index.scss index 6db055d66..6b225e96d 100644 --- a/wagtail/contrib/modeladmin/static_src/wagtailmodeladmin/scss/index.scss +++ b/wagtail/contrib/modeladmin/static_src/wagtailmodeladmin/scss/index.scss @@ -10,7 +10,6 @@ } .listing { - td, th { vertical-align: top; @@ -118,7 +117,7 @@ float: left; margin: 0 15px 15px 0; width: 50px; - } + } } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/_mixins.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/_mixins.scss index fba5d7919..6f01f9014 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/_mixins.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/_mixins.scss @@ -107,8 +107,8 @@ @font-face { font-family: '#{$fontname}'; src: url('#{$font-root}#{$filestub}.woff2') format('woff2'), - url('#{$font-root}#{$filestub}.woff') format('woff'), - url('#{$font-root}#{$filestub}.ttf') format('truetype'); + url('#{$font-root}#{$filestub}.woff') format('woff'), + url('#{$font-root}#{$filestub}.ttf') format('truetype'); font-weight: $weight; font-style: $style; } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_datetimepicker.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_datetimepicker.scss index 8bb6d193a..a92d79d06 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_datetimepicker.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_datetimepicker.scss @@ -191,6 +191,7 @@ overflow-y: hidden; &.xdsoft_monthselect {right: -7px;} + &.xdsoft_yearselect {right: 2px;} > div > .xdsoft_option:hover { @@ -298,7 +299,9 @@ } .xdsoft_noselect::selection { background: transparent; } + .xdsoft_noselect::-moz-selection { background: transparent; } + .xdsoft_datetimepicker.xdsoft_inline { display: inline-block; position: static; diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_dropdowns.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_dropdowns.scss index 39eb758e0..82c9a589e 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_dropdowns.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_dropdowns.scss @@ -155,7 +155,6 @@ } // Styles for dropdowns which are also buttons e.g page editor - &.dropdown-button { .dropdown-toggle { border-radius: 0 3px 3px 0; @@ -235,7 +234,6 @@ // .c-dropdown { // } - .o-icon { display: inline-block; vertical-align: middle; @@ -300,7 +298,6 @@ // ============================================================================= // Arrows // ============================================================================= - .u-arrow:before { content: ''; border: solid .35rem transparent; @@ -320,7 +317,6 @@ // .t-default { // } - .t-default .u-btn-current { border-color: rgba(0, 0, 0, 0.15); color: #43b1b0; @@ -358,7 +354,6 @@ // ============================================================================= // Dark theme // ============================================================================= - .t-dark .u-link { color: #fff; } @@ -388,7 +383,6 @@ // ============================================================================= // Light theme // ============================================================================= - .t-light .u-link { color: #333; } @@ -409,7 +403,6 @@ // ============================================================================= // States // ============================================================================= - .u-toggle { display: none; } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_forms.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_forms.scss index 09015a046..592914279 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_forms.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_forms.scss @@ -1,7 +1,6 @@ // These are the generic stylings for forms of any type. // If you're styling something specific to the page editing interface, // it probably ought to go in layouts/page-editor.scss - form { ul, @@ -338,7 +337,7 @@ input[type=checkbox]:checked:before { // + input[type=reset], // + input[type=button], + .button { - // + button { + // + button { margin-left: 1em; } @@ -488,107 +487,107 @@ input[type=checkbox]:checked:before { font-size: 0.95em; } - .button-secondary { - color: $color-button; - background-color: transparent; +.button-secondary { + color: $color-button; + background-color: transparent; +} + +// Buttons which are only an icon +.button.icon.text-replace { + font-size: 0; // unavoidable duplication of setting in icons.scss + width: 1.8rem; + height: 1.8rem; + + &:before { + line-height: 1.7em; } +} - // Buttons which are only an icon - .button.icon.text-replace { - font-size: 0; // unavoidable duplication of setting in icons.scss - width: 1.8rem; - height: 1.8rem; +.button-neutral { + color: $color-grey-2; - &:before { - line-height: 1.7em; - } + &:hover { + color: $color-teal; } +} - .button-neutral { - color: $color-grey-2; +.yes { + background-color: $color-button-yes; + border: 1px solid $color-button-yes; - &:hover { - color: $color-teal; - } - } - - .yes { - background-color: $color-button-yes; + &.button-secondary { border: 1px solid $color-button-yes; - - &.button-secondary { - border: 1px solid $color-button-yes; - color: $color-button-yes; - background-color: transparent; - } - - &:hover { - color: $color-white; - border-color: transparent; - background-color: $color-button-yes-hover; - } - - &.button-nobg:hover { - color: $color-button-yes; - background-color: transparent; - } - } - - .no, - .serious { - background-color: $color-button-no; - border: 1px solid $color-button-no; - - &.button-secondary { - border: 1px solid $color-button-no; - color: $color-button-no; - background-color: transparent; - } - - &:hover { - color: $color-white; - border-color: transparent; - background-color: $color-button-no-hover; - } - - &.button-nobg:hover { - color: $color-button-no; - background-color: transparent; - } - } - - .button-nobg { - border: 0; + color: $color-button-yes; background-color: transparent; } - .bicolor { - border: 0; - padding-left: 3.5em; - - &:before { - font-size: 1rem; - position: absolute; - left: 0; - top: 0; - width: 2em; - line-height: 1.85em; - height: 100%; - text-align: center; - background-color: rgba(0, 0, 0, 0.2); - display: block; - } + &:hover { + color: $color-white; + border-color: transparent; + background-color: $color-button-yes-hover; } - .button-small.bicolor { - padding-left: 3.5em; - - &:before { - width: 2em; - font-size: 0.8rem; - line-height: 1.65em; - } + &.button-nobg:hover { + color: $color-button-yes; + background-color: transparent; } +} + +.no, +.serious { + background-color: $color-button-no; + border: 1px solid $color-button-no; + + &.button-secondary { + border: 1px solid $color-button-no; + color: $color-button-no; + background-color: transparent; + } + + &:hover { + color: $color-white; + border-color: transparent; + background-color: $color-button-no-hover; + } + + &.button-nobg:hover { + color: $color-button-no; + background-color: transparent; + } +} + +.button-nobg { + border: 0; + background-color: transparent; +} + +.bicolor { + border: 0; + padding-left: 3.5em; + + &:before { + font-size: 1rem; + position: absolute; + left: 0; + top: 0; + width: 2em; + line-height: 1.85em; + height: 100%; + text-align: center; + background-color: rgba(0, 0, 0, 0.2); + display: block; + } +} + +.button-small.bicolor { + padding-left: 3.5em; + + &:before { + width: 2em; + font-size: 0.8rem; + line-height: 1.65em; + } +} a.button { @@ -776,7 +775,6 @@ li.focused > .help { // This is expected to go on the parent of the input/select/textarea // so in most cases .input - .iconfield, // generic .date_field, .time_field, @@ -889,7 +887,6 @@ li.focused > .help { } // field sizing and alignment - .field-small { input, textarea, @@ -944,7 +941,6 @@ li.inline:first-child { // all the design for a UI in a single place, but should that be a series of overrides to // the css provided from an app? If so, perhaps those two previous less files should be // re-instated and then overriden here? hmm. - .chooser { // We show the 'chosen' state... @include clearfix(); @@ -994,6 +990,7 @@ li.inline:first-child { // ...unless the .page-chooser has the 'blank' class set &.blank { .chosen { display: none; } + .unchosen { display: block; } } } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_header.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_header.scss index b0a6923ca..179a5c67f 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_header.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_header.scss @@ -29,7 +29,7 @@ header { .col { float: left; margin-right: 2em; - } + } .left { float: left; diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_icons.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_icons.scss index f548b671f..263338246 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_icons.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_icons.scss @@ -51,7 +51,6 @@ // ============================================================================= // Custom config for various icons // ============================================================================= - .icon-download { // Credit: Icon made by Freepik from Flaticon.com } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_indicator.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_indicator.scss index dcc8ecd3a..44cf4b281 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_indicator.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_indicator.scss @@ -23,8 +23,6 @@ $c-indicator-margin: .25rem; // ============================================================================= // States // ============================================================================= - - .is-absent .c-indicator { background: $color-state-absent; } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_listing.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_listing.scss index e655b188a..8ff112ec2 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_listing.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_listing.scss @@ -1,5 +1,4 @@ // General listings, like for pages, images or snippets - ul.listing { @include unlist(); } @@ -524,7 +523,6 @@ table.listing { // listing filters - .listing-filter { @include clearfix(); background-color: $color-grey-5; diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_main-nav.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_main-nav.scss index cea0357c8..6057fef57 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_main-nav.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_main-nav.scss @@ -438,7 +438,7 @@ body.explorer-open { // Media query hacks to detect IE10+ which doesn't support 3d transform of static elements and needs a fallback @media all and (-ms-high-contrast: none), - all and (-ms-high-contrast: active) { + all and (-ms-high-contrast: active) { .wrapper { @include transition(left 0.2s ease); left: 0; @@ -465,7 +465,7 @@ body.explorer-open { } @media all and (min-width: $breakpoint-mobile) and (-ms-high-contrast: none), - all and (min-width: $breakpoint-mobile) and (-ms-high-contrast: active) { + all and (min-width: $breakpoint-mobile) and (-ms-high-contrast: active) { body.explorer-open { .wrapper { left: 0; diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_messages.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_messages.scss index f46f7fe80..f264ce45a 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_messages.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_messages.scss @@ -2,7 +2,6 @@ // for display on the next page visited. These appear as an animated banner at the top of the page. // // For inline help text, see typography.scss - .messages { position: relative; z-index: 5; @@ -21,10 +20,7 @@ > ul > li { // @include nice-padding; - padding-top: 1.6em; - padding-right: 3em; - padding-bottom: 1.6em; - padding-left: 1.6em; + padding: 1.6em 3em 1.6em 1.6em; color: $color-white; } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_modals.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_modals.scss index ef6005830..5616e01f0 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_modals.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_modals.scss @@ -79,6 +79,7 @@ $zindex-modal-background: 500; // Fade for backdrop &.fade { opacity: 0; } + &.in { opacity: 0.5; } } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_tooltips.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_tooltips.scss index 57e597af2..9c9eef055 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_tooltips.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_tooltips.scss @@ -1,5 +1,4 @@ // From Bootstrap v3.0.0 - .tooltip { position: absolute; z-index: 1030; diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_typography.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_typography.scss index 2222a6520..1991c4c16 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_typography.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/components/_typography.scss @@ -95,7 +95,6 @@ dd { } // Help text formatters - .help-block { padding: 1em; margin: 1em 0; @@ -115,48 +114,48 @@ dd { } } - .help-info, - .help-warning, - .help-critical { - border-radius: 3px; - padding-left: 3.5em; - position: relative; +.help-info, +.help-warning, +.help-critical { + border-radius: 3px; + padding-left: 3.5em; + position: relative; - &:before { - font-family: wagtail; - position: absolute; - left: 1em; - top: 0.7em; - content: '?'; - font-size: 1.4em; - } + &:before { + font-family: wagtail; + position: absolute; + left: 1em; + top: 0.7em; + content: '?'; + font-size: 1.4em; } +} - .help-info { - background-color: lighten($color-blue, 30%); +.help-info { + background-color: lighten($color-blue, 30%); - &:before { - color: $color-blue; - } + &:before { + color: $color-blue; } +} - .help-warning { - background-color: lighten($color-orange, 30%); +.help-warning { + background-color: lighten($color-orange, 30%); - &:before { - color: $color-orange; - content: '!'; - } + &:before { + color: $color-orange; + content: '!'; } +} - .help-critical { - background-color: lighten($color-red, 40%); +.help-critical { + background-color: lighten($color-red, 40%); - &:before { - color: $color-red; - content: '!'; - } + &:before { + color: $color-red; + content: '!'; } +} .u-para { margin-bottom: 1rem; diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/core.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/core.scss index 24acc0994..126b43ea8 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/core.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/core.scss @@ -105,7 +105,6 @@ body { } .page-locked { - .tab-content { cursor: not-allowed; user-select: none; @@ -300,9 +299,8 @@ footer { // the z-index shouldn't be required. // .content-wrapper { - // z-index: 3; +// z-index: 3; // } - .nav-submenu { z-index: 6; } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/layouts/login.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/layouts/login.scss index a5cf74ae7..8028fcbec 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/layouts/login.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/layouts/login.scss @@ -49,82 +49,79 @@ form { } } - label { - width: auto; - color: $color-white; - } +label { + width: auto; + color: $color-white; +} - .button { - font-size: 1.5em; - padding: 1.1em 2.4em; - height: 3.5em; - } +.button { + font-size: 1.5em; + padding: 1.1em 2.4em; + height: 3.5em; +} - input[type=checkbox]:before { - background-color: #333; - color: #555; - border: 1px solid #555; - } +input[type=checkbox]:before { + background-color: #333; + color: #555; + border: 1px solid #555; +} - .fields { - max-width: none; - } +.fields { + max-width: none; +} - .fields li { - padding: 1em 0; +.fields li { + padding: 1em 0; - &.full { - position: relative; - padding: 0; + &.full { + position: relative; + padding: 0; - label { - display: none; - } - - input { - border-top: 1px dashed $color-input-border; - } - } - - &:first-child input { - border: 0; - } - } - - .fields .checkbox { - padding-top: 2em; - padding-bottom: 2em; - } - - .field { - padding: 0; - } - - .iconfield .input:before { + label { display: none; } - // Special full-width, one-off fields i.e a single text or textarea input - .full input { - border-radius: 0; - padding-left: $mobile-nice-padding; - padding-right: $mobile-nice-padding; - font-weight: 300; - border: 0; - padding-top: 1.5em; - padding-bottom: 1.5em; - font-size: 1.6em; - line-height: 1.6em; + input { + border-top: 1px dashed $color-input-border; + } } - .help { - opacity: 1; - position: absolute; - font-size: 1.3em; - top: 50%; - margin-top: -0.5em; - right: 5%; + &:first-child input { + border: 0; } +} + +.fields .checkbox { + padding-top: 2em; + padding-bottom: 2em; +} + +.field { + padding: 0; +} + +.iconfield .input:before { + display: none; +} + +// Special full-width, one-off fields i.e a single text or textarea input +.full input { + border-radius: 0; + font-weight: 300; + border: 0; + padding: 1.5em $mobile-nice-padding 1.5em $mobile-nice-padding; + font-size: 1.6em; + line-height: 1.6em; +} + +.help { + opacity: 1; + position: absolute; + font-size: 1.3em; + top: 50%; + margin-top: -0.5em; + right: 5%; +} .messages { margin: 1em 0; diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/panels/rich-text.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/panels/rich-text.scss index c62c8e641..e3bf96b7c 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/panels/rich-text.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/panels/rich-text.scss @@ -108,7 +108,6 @@ // Set some reasonable default heading styles. These can be overridden in site-specific custom CSS // to make them better reflect their appearance on the front-end (however, it's arguably better for editors // NOT to be thinking about a specific visual appearance when they choose heading levels...) - h1, h2, h3, @@ -154,11 +153,8 @@ // Wagtail installations that define their own image formats (in a myapp.image_formats module) // should ideally use the insert_editor_css hook to pass in their own custom CSS to have those // images render within the rich text area in the same styles that would appear on the front-end. - - .richtext-image { margin-top: 3px; // close as possible to match line-height space above p - img { width: 100%; } diff --git a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/userbar.scss b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/userbar.scss index 87d086e4c..4edcec4ab 100644 --- a/wagtail/wagtailadmin/static_src/wagtailadmin/scss/userbar.scss +++ b/wagtail/wagtailadmin/static_src/wagtailadmin/scss/userbar.scss @@ -80,7 +80,6 @@ $positions: ( // ============================================================================= // Wagtail userbar proper // ============================================================================= - .#{$namespace}-userbar-reset { all: initial; } @@ -107,163 +106,163 @@ $positions: ( } - .#{$namespace}-userbar-trigger { - display: flex; - align-items: center; - justify-content: center; - width: $size-home-button; - height: $size-home-button; - margin: 0 !important; - overflow: hidden; - background-color: $color-white; - border-radius: 50%; - color: $color-black; - padding: 0 !important; - cursor: pointer; - box-shadow: $box-shadow-props, 0 1px 10px 0 rgba(107, 214, 230, .7); - transition: all 0.2s ease-in-out; - font-size: 16px; +.#{$namespace}-userbar-trigger { + display: flex; + align-items: center; + justify-content: center; + width: $size-home-button; + height: $size-home-button; + margin: 0 !important; + overflow: hidden; + background-color: $color-white; + border-radius: 50%; + color: $color-black; + padding: 0 !important; + cursor: pointer; + box-shadow: $box-shadow-props, 0 1px 10px 0 rgba(107, 214, 230, .7); + transition: all 0.2s ease-in-out; + font-size: 16px; + text-decoration: none !important; + position: relative; + + .#{$namespace}-userbar.touch.is-active &, + .#{$namespace}-userbar.no-touch &:hover { + box-shadow: $box-shadow-props, 0 3px 15px 0 rgba(107, 214, 230, .95); + } + + .#{$namespace}-userbar-help-text { + position: absolute; + top: 100%; + left: 0; + } + + &.#{$namespace}-icon:before { + transition: color .2s ease; + font-size: 32px; + width: auto; + margin: 0; + } +} + +.#{$namespace}-userbar-items { + display: block; + list-style: none; + position: absolute; + margin: 0; + min-width: 210px; + visibility: hidden; + font-family: 'Open Sans', sans-serif; + font-size: 14px; + box-sizing: border-box; + padding-left: 0; + text-decoration: none; + + .#{$namespace}-userbar.is-active & { + visibility: visible; + } +} + +// Arrow +.#{$namespace}-userbar-items:after { + content: ''; + position: absolute; + width: 0; + height: 0; + opacity: 0; + border: solid $width-arrow transparent; + transition-duration: .15s; + transition-timing-function: cubic-bezier(.55, 0, .1, 1); + + .#{$namespace}-userbar.is-active & { + opacity: 1; + transform: translateY(0); + transition-delay: .3s; + } +} + + +.#{$namespace}-userbar-nav { + background: transparent !important; + padding: 0; + margin: 0 !important; + display: block !important; + + .#{$namespace}-action { + + background: transparent; + } +} + + + +.#{$namespace}-userbar__item { + margin: 0; + background-color: $color-grey-1; + opacity: 0; + overflow: hidden; + transition-duration: .125s; + transition-timing-function: cubic-bezier(.55, 0, .1, 1); + font-family: 'Open Sans', sans-serif; + font-size: 16px !important; + text-decoration: none !important; + + &:first-child { + border-top-left-radius: $userbar-radius; + border-top-right-radius: $userbar-radius; + } + + &:last-child { + border-bottom-right-radius: $userbar-radius; + border-bottom-left-radius: $userbar-radius; + } + + & + & { + border-top: 1px solid darken($color-grey-1, 3%); + } + + + a, + .#{$namespace}-action { + color: #aaa; + display: block; text-decoration: none !important; + transform: none !important; + transition: none !important; + margin: 0 !important; + font-size: 14px !important; + + &:hover, + &:focus { + outline: none; + color: $color-white; + background-color: rgba(100, 100, 100, 0.15); + } + } + + .#{$namespace}-icon { position: relative; - .#{$namespace}-userbar.touch.is-active &, - .#{$namespace}-userbar.no-touch &:hover { - box-shadow: $box-shadow-props, 0 3px 15px 0 rgba(107, 214, 230, .95); - } - - .#{$namespace}-userbar-help-text { + &:before { position: absolute; - top: 100%; - left: 0; - } - - &.#{$namespace}-icon:before { - transition: color .2s ease; - font-size: 32px; - width: auto; - margin: 0; + top: 50%; + transform: translateY(-50%); + left: 14px; } } - .#{$namespace}-userbar-items { - display: block; - list-style: none; - position: absolute; - margin: 0; - min-width: 210px; - visibility: hidden; - font-family: 'Open Sans', sans-serif; - font-size: 14px; - box-sizing: border-box; - padding-left: 0; - text-decoration: none; - - .#{$namespace}-userbar.is-active & { - visibility: visible; - } + a, + input { + font-size: 14px !important; + text-align: left; + padding: 0.8em 1.7em 0.8em 2.7em; } - // Arrow - .#{$namespace}-userbar-items:after { - content: ''; - position: absolute; - width: 0; - height: 0; - opacity: 0; - border: solid $width-arrow transparent; - transition-duration: .15s; - transition-timing-function: cubic-bezier(.55, 0, .1, 1); - - .#{$namespace}-userbar.is-active & { - opacity: 1; - transform: translateY(0); - transition-delay: .3s; - } - } - - - .#{$namespace}-userbar-nav { - background: transparent !important; - padding: 0; - margin: 0 !important; - display: block !important; - - .#{$namespace}-action { - - background: transparent; - } - } - - - - .#{$namespace}-userbar__item { - margin: 0; - background-color: $color-grey-1; - opacity: 0; - overflow: hidden; - transition-duration: .125s; - transition-timing-function: cubic-bezier(.55, 0, .1, 1); - font-family: 'Open Sans', sans-serif; - font-size: 16px !important; - text-decoration: none !important; - - &:first-child { - border-top-left-radius: $userbar-radius; - border-top-right-radius: $userbar-radius; - } - - &:last-child { - border-bottom-right-radius: $userbar-radius; - border-bottom-left-radius: $userbar-radius; - } - - & + & { - border-top: 1px solid darken($color-grey-1, 3%); - } - - - a, - .#{$namespace}-action { - color: #aaa; - display: block; - text-decoration: none !important; - transform: none !important; - transition: none !important; - margin: 0 !important; - font-size: 14px !important; - - &:hover, - &:focus { - outline: none; - color: $color-white; - background-color: rgba(100, 100, 100, 0.15); - } - } - - .#{$namespace}-icon { - position: relative; - - &:before { - position: absolute; - top: 50%; - transform: translateY(-50%); - left: 14px; - } - } - - a, - input { - font-size: 14px !important; - text-align: left; - padding: 0.8em 1.7em 0.8em 2.7em; - } - - input { - border: 0; - background: none; - width: 100%; - } + input { + border: 0; + background: none; + width: 100%; } +} @@ -288,12 +287,9 @@ $positions: ( } .#{$namespace}-userbar-nav .#{$namespace}-userbar__item { - // Yes, we could use an @else, but there's a bug in scss-lint. @if $vertical == 'bottom' { transform: translateY(1em); - } - - @if $vertical == 'top' { + } @else { transform: translateY(-1em); } } @@ -336,7 +332,6 @@ $positions: ( // ============================================================================= // Active state for the list items comes last. - .#{$namespace}-userbar.is-active .#{$namespace}-userbar__item { transform: translateY(0); opacity: 1;