diff --git a/package-lock.json b/package-lock.json index 57b954b..47ff6ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -153,6 +153,12 @@ "repeat-string": "1.6.1" } }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, "ansi": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", @@ -330,6 +336,32 @@ "resolved": "https://registry.npmjs.org/attempt-x/-/attempt-x-1.1.1.tgz", "integrity": "sha512-hIp37ojJRRW8ExWSxxLpkDHUufk/DFfsb7/cUC1cVbBg7JV4gJTkCTRa44dlL9e5jx1P3VNrjL7QOQfi4MyltA==" }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000770", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000770", + "electron-to-chromium": "1.3.27" + } + } + } + }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -1716,6 +1748,36 @@ } } }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000770", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000770", + "electron-to-chromium": "1.3.27" + } + } + } + }, + "caniuse-db": { + "version": "1.0.30000770", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000770.tgz", + "integrity": "sha1-z2iuHLioL208Nd9Bxi3Glz5HAkQ=", + "dev": true + }, "caniuse-lite": { "version": "1.0.30000764", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000764.tgz", @@ -1780,6 +1842,15 @@ "safe-buffer": "5.1.1" } }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, "classnames": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", @@ -1806,6 +1877,12 @@ "wordwrap": "0.0.2" } }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, "clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", @@ -1816,12 +1893,73 @@ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "requires": { + "q": "1.5.1" + } + }, "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 }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "requires": { + "clone": "1.0.3", + "color-convert": "1.9.1", + "color-string": "0.3.0" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "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 + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, + "requires": { + "color": "0.11.4", + "css-color-names": "0.0.4", + "has": "1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", @@ -2016,6 +2154,34 @@ "randomfill": "1.0.3" } }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-loader": { + "version": "0.28.7", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz", + "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "css-selector-tokenizer": "0.7.0", + "cssnano": "3.10.0", + "icss-utils": "2.1.0", + "loader-utils": "1.1.0", + "lodash.camelcase": "4.3.0", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0", + "postcss-value-parser": "3.3.0", + "source-list-map": "2.0.0" + } + }, "css-select": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", @@ -2028,6 +2194,30 @@ "nth-check": "1.0.1" } }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + } + } + }, "css-vendor": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", @@ -2042,6 +2232,62 @@ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", "dev": true }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "requires": { + "autoprefixer": "6.7.7", + "decamelize": "1.2.0", + "defined": "1.0.0", + "has": "1.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-calc": "5.3.1", + "postcss-colormin": "2.2.2", + "postcss-convert-values": "2.6.1", + "postcss-discard-comments": "2.0.4", + "postcss-discard-duplicates": "2.1.0", + "postcss-discard-empty": "2.1.0", + "postcss-discard-overridden": "0.1.1", + "postcss-discard-unused": "2.2.3", + "postcss-filter-plugins": "2.0.2", + "postcss-merge-idents": "2.1.7", + "postcss-merge-longhand": "2.0.2", + "postcss-merge-rules": "2.1.2", + "postcss-minify-font-values": "1.0.5", + "postcss-minify-gradients": "1.0.5", + "postcss-minify-params": "1.2.2", + "postcss-minify-selectors": "2.1.1", + "postcss-normalize-charset": "1.1.1", + "postcss-normalize-url": "3.0.8", + "postcss-ordered-values": "2.2.3", + "postcss-reduce-idents": "2.4.0", + "postcss-reduce-initial": "1.0.1", + "postcss-reduce-transforms": "1.0.4", + "postcss-svgo": "2.1.6", + "postcss-unique-selectors": "2.0.2", + "postcss-value-parser": "3.3.0", + "postcss-zindex": "2.2.0" + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "requires": { + "clap": "1.2.3", + "source-map": "0.5.7" + } + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -2128,6 +2374,12 @@ "object-keys": "1.0.11" } }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, "del": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", @@ -2864,8 +3116,7 @@ "fast-deep-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", - "dev": true + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" }, "fast-future": { "version": "1.0.2", @@ -2875,7 +3126,12 @@ "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", "dev": true }, "faye-websocket": { @@ -2978,6 +3234,12 @@ "resolved": "https://registry.npmjs.org/fit-curve/-/fit-curve-0.1.6.tgz", "integrity": "sha1-w72+b1oqO+j4Aerr2kBpGRJWqVs=" }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -4357,6 +4619,12 @@ "wbuf": "1.7.2" } }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, "html-entities": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", @@ -4611,6 +4879,69 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "6.0.14" + }, + "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.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, "ieee754": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", @@ -4670,6 +5001,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 + }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -4741,6 +5078,12 @@ "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", "dev": true }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, "is-array-buffer-x": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/is-array-buffer-x/-/is-array-buffer-x-1.7.0.tgz", @@ -4958,6 +5301,12 @@ "path-is-inside": "1.0.2" } }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -5008,6 +5357,15 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=" }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "requires": { + "html-comment-regex": "1.1.1" + } + }, "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", @@ -5063,6 +5421,12 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "js-base64": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz", + "integrity": "sha512-Y2/+DnfJJXT1/FCwUebUhLWb3QihxiSC42+ctHLGogmW2jPY6LCapMdFZXRvVP2z6qyKW7s6qncE/9gSqZiArw==", + "dev": true + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -5104,8 +5468,7 @@ "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "json-stable-stringify": { "version": "1.0.1", @@ -5396,11 +5759,23 @@ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz", "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc=" }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, "lodash.isnull": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash.isnull/-/lodash.isnull-3.0.0.tgz", "integrity": "sha1-+vvlnqHcon7teGU0A53YTC4HxW4=" }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.pad": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", @@ -5416,6 +5791,12 @@ "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, "loglevel": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.0.tgz", @@ -5475,6 +5856,12 @@ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.0.tgz", "integrity": "sha1-tlul/LNJopkkyOMz98alVi8uSEI=" }, + "macaddress": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "dev": true + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -5489,6 +5876,12 @@ "to-number-x": "2.0.0" } }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, "math-sign-x": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/math-sign-x/-/math-sign-x-3.0.0.tgz", @@ -5943,6 +6336,12 @@ "remove-trailing-separator": "1.1.0" } }, + "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-space-x": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-space-x/-/normalize-space-x-3.0.0.tgz", @@ -5953,6 +6352,18 @@ "white-space-x": "3.0.0" } }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -5981,6 +6392,12 @@ "boolbase": "1.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", @@ -6353,6 +6770,562 @@ "mkdirp": "0.5.1" } }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + }, + "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 + }, + "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-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "requires": { + "colormin": "1.1.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "uniqs": "2.0.0" + } + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "uniqid": "4.1.1" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-api": "1.6.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3", + "vendors": "1.0.1" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000770", + "electron-to-chromium": "1.3.27" + } + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "uniqs": "2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3" + } + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "requires": { + "postcss": "6.0.14" + }, + "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.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.14" + }, + "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.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.14" + }, + "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.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.14" + }, + "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.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "requires": { + "is-absolute-url": "2.1.0", + "normalize-url": "1.9.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "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-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "requires": { + "is-svg": "2.1.0", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "svgo": "0.7.2" + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "uniqs": "2.0.0" + } + }, + "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 + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "uniqs": "2.0.0" + } + }, "pouchdb": { "version": "6.3.4", "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-6.3.4.tgz", @@ -6447,6 +7420,12 @@ } } }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -6559,11 +7538,27 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, "qs": { "version": "6.3.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -6970,6 +7965,42 @@ "strip-indent": "1.0.1" } }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + }, + "dependencies": { + "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 + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "0.4.2" + }, + "dependencies": { + "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 + } + } + }, "redux": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", @@ -7275,11 +8306,16 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, "schema-utils": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, "requires": { "ajv": "5.3.0" }, @@ -7288,7 +8324,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", - "dev": true, "requires": { "co": "4.6.0", "fast-deep-equal": "1.0.0", @@ -7497,6 +8532,15 @@ } } }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "1.1.0" + } + }, "source-list-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", @@ -7629,6 +8673,12 @@ "xtend": "4.0.1" } }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -7709,11 +8759,53 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, + "style-loader": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.0.tgz", + "integrity": "sha512-9mx9sC9nX1dgP96MZOODpGC6l1RzQBITI2D5WJhu+wnbrSYVKLGuy14XJSLVQih/0GFrPpjelt+s//VcZQ2Evw==", + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "requires": { + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + } + } + } + }, "symbol-observable": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", @@ -8053,6 +9145,27 @@ "webpack-sources": "1.0.2" } }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "dev": true, + "requires": { + "macaddress": "0.2.8" + } + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -8196,6 +9309,12 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, + "vendors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -8562,6 +9681,12 @@ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", diff --git a/package.json b/package.json index cab9402..6ec438d 100755 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-react": "^6.24.1", "babel-preset-stage-0": "^6.24.1", + "css-loader": "^0.28.7", "file-loader": "^1.1.5", "html-webpack-plugin": "^2.30.1", "html-webpack-template": "^6.0.2", @@ -75,6 +76,7 @@ "redux-logger": "^3.0.6", "redux-promise-middleware": "^4.4.2", "redux-thunk": "^2.2.0", + "style-loader": "^0.19.0", "webpack": "^3.8.1", "webpack-dev-server": "^2.9.4", "worker-loader": "^1.1.0", diff --git a/src/components/SketcherToolbars.js b/src/components/SketcherToolbars.js index d03936d..c660bfc 100644 --- a/src/components/SketcherToolbars.js +++ b/src/components/SketcherToolbars.js @@ -9,6 +9,8 @@ import * as contextTools from '../constants/contextTools.js'; import * as d2Tools from '../constants/d2Tools.js'; import { createSelector } from 'reselect'; import injectSheet from 'react-jss'; +// TODO move this to jss instead of css +import '../../styles/styles.css'; // import createDebug from 'debug'; // const debug = createDebug('d3d:sketchertoolbars'); @@ -221,610 +223,4 @@ const getMenus = createSelector([ context: filterMenus(activeTool, numSelectedObjects, numFilledObjects, numSolidObjects, nestChildren(menus, menus[CONTEXT])) })); -const style = document.createElement('style'); -style.innerHTML = ` -.button { - cursor: pointer; -} -#toolbar3d-container { - position: absolute; - right: 0; - bottom: 0; - width: 50%; -} -#toolbar3d { - background-image: url('../img/toolbar3d/toolbar3d.png'); - background-size: 493px auto; - background-repeat: no-repeat; - background-position: center -4px; - height: 77px; - - width: 493px; -} - -#toolbar3d>.menuitem>.button, -#toolbar3d>.submenu>.button { - /* positioning buttons with padding to increase hit area */ - padding: 10px 52px 0 52px; -} - -/* 3D toolbar tools */ -#toolbar3d #height-tool { - background-image: url('../img/toolbar3d/btnExtrude.png'); - background-size: 21px auto; - width: 21px; - height: 42px; -} -#toolbar3d #sculpt-tool { - background-image: url('../img/toolbar3d/btnSculpt.png'); - background-size: 39px auto; - width: 39px; - height: 42px; -} -#toolbar3d #twist-tool { - background-image: url('../img/toolbar3d/btnTwist.png'); - background-size: 40px auto; - width: 40px; - height: 42px; -} -#toolbar3d #cut-tool { - background-image: url('../img/toolbar3d/btnCut.png'); - background-size: 43px auto; - width: 43px; - height: 41px; -} -#toolbar3d #stamp-tool { - background-image: url('../img/toolbar3d/btnStamp.png'); - background-size: 43px auto; - width: 40px; - height: 42px; -} - -/* 3D toolbar tools SELECTED */ -#toolbar3d #height-tool.selected { - background-image: url('../img/toolbar3d/btnExtrudeSelect.png'); -} -#toolbar3d #sculpt-tool.selected { - background-image: url('../img/toolbar3d/btnSculptSelect.png'); -} -#toolbar3d #twist-tool.selected { - background-image: url('../img/toolbar3d/btnTwistSelect.png'); -} -#toolbar3d #cut-tool.selected { - background-image: url('../img/toolbar3d/btnCutSelect.png'); -} -#toolbar3d #stamp-tool.selected { - background-image: url('../img/toolbar3d/btnStampSelect.png'); -} - -@media (max-width: 900px) { - #toolbar3d { - background-image: none; - background-color: white; - height: 60px; - } - - #toolbar3d>.menuitem>.button, - #toolbar3d>.submenu>.button { - padding: 10px 25px 0 25px; - } -} - -@media (max-width: 720px) { - #toolbar3d>.menuitem>.button, - #toolbar3d>.submenu>.button { - padding: 10px 25px 0 25px; - } -} -@media (max-width: 620px) { - #toolbar3d>.menuitem>.button, - #toolbar3d>.submenu>.button { - padding: 10px 10px 0 10px; - } -} -#context { - background: #fff; - border: 4px solid #000; - border-radius: 1rem; -} -#context .submenu { - position: relative; -} -#context .menu { - z-index: 1; - position: absolute; - top: 50px; - /* Using transform to center submenu - Needed because some browser don't support flex-box's changed behaivior: - https://developers.google.com/web/updates/2016/06/absolute-positioned-children - Can't use the bottom toolbar's positioning system - because this submenu needs to be in line with the flex direction */ - left: 50%; - transform: translateX(-50%); -} -#context .button { - padding: 0.5rem 0.5rem 0.5rem 0.5rem; - - background-repeat: no-repeat; - background-position: center; -} -#context #duplicate-tool { - background-image: url('../img/contextmenu/btnDuplicate.png'); - background-size: 33px auto; - height: 41px; -} -#context #delete-tool { - background-image: url('../img/contextmenu/btnDelete.png'); - background-size: 33px auto; - height: 41px; -} -#context #union-tool { - background-image: url('../img/contextmenu/btnGroup.png'); - background-size: 33px auto; - height: 41px; - width: 30px; -} -#context #intersect-tool { - background-image: url('../img/contextmenu/btnCutOut.png'); - background-size: 33px auto; - height: 41px; - width: 30px; -} -#union-tool-menu, #intersect-tool-menu { - background-image: url('../img/contextmenu/btnMore.png'); - background-size: 33px auto; - height: 41px; - width: 30px; -} -#brush-size-small, #brush-size-small-menu, -#eraser-size-small, #eraser-size-small-menu { - background-image: url('../img/contextmenu/btnOutline1.png'); - background-size: 33px auto; - width: 33px; - height: 41px; -} -#brush-size-medium, #brush-size-medium-menu, -#eraser-size-medium, #eraser-size-medium-menu { - background-image: url('../img/contextmenu/btnOutline2.png'); - background-size: 33px auto; - width: 33px; - height: 41px; -} -#brush-size-large, #brush-size-large-menu, -#eraser-size-large, #eraser-size-large-menu { - background-image: url('../img/contextmenu/btnOutline3.png'); - background-size: 33px auto; - width: 33px; - height: 41px; -} -#fill-toggle-fill, #fill-toggle-fill-menu { - background-image: url('../img/contextmenu/btnShapeFill.png'); - background-size: 33px auto; - width: 33px; - height: 41px; -} -#fill-toggle-outline, #fill-toggle-outline-menu { - background-image: url('../img/contextmenu/btnShapeOutline.png'); - background-size: 33px auto; - width: 33px; - height: 41px; -} -#hole-toggle-solid, #hole-toggle-solid-menu { - background-image: url('../img/contextmenu/btnSolid.png'); - background-size: 33px auto; - width: 33px; - height: 41px; -} -#hole-toggle-hole, #hole-toggle-hole-menu { - background-image: url('../img/contextmenu/btnHole.png'); - background-size: 33px auto; - width: 33px; - height: 41px; -} -#align-right-menu, #align-horizontal-menu, #align-left-menu, -#align-top-menu, #align-vertical-menu, #align-bottom-menu { - background-image: url('../img/contextmenu/btnAlignHorizontal.png'); - background-size: 40px auto; - width: 40px; - height: 40px; -} -#align-left { - background-image: url('../img/contextmenu/btnAlignLeft.png'); - background-size: 40px auto; - width: 40px; - height: 40px; -} -#align-horizontal { - background-image: url('../img/contextmenu/btnAlignHorizontal.png'); - background-size: 40px auto; - width: 40px; - height: 40px; -} -#align-right { - background-image: url('../img/contextmenu/btnAlignRight.png'); - background-size: 40px auto; - width: 40px; - height: 40px; -} -#align-top { - background-image: url('../img/contextmenu/btnAlignTop.png'); - background-size: 40px auto; - width: 40px; - height: 40px; -} -#align-vertical { - background-image: url('../img/contextmenu/btnAlignVertical.png'); - background-size: 40px auto; - width: 40px; - height: 40px; -} -#align-bottom { - background-image: url('../img/contextmenu/btnAlignBottom.png'); - background-size: 40px auto; - width: 40px; - height: 40px; -} -#color-picker-tool .button { - margin: 0.5rem 0.5rem 0.5rem 0.5rem; - padding: 0; - width: 33px; - height: 41px; - overflow: hidden; -} - -#color-picker-tool .menu .button { - width: 30px; - height: 30px; -} - -#color-picker-tool .menu { - width: 185px; - flex-wrap: wrap; -} - -#align-tool .menu { - width: 170px; - flex-wrap: wrap; -} - -#color-light-blue, #color-light-blue-menu { - fill: #c8e4f7; -} -#color-light-green, #color-light-green-menu { - fill: #cbe6c0; -} -#color-light-pink, #color-light-pink-menu { - fill: #f8c4d8; -} -#color-light-yellow, #color-light-yellow-menu { - fill: #f5f5c0; -} -#color-blue, #color-blue-menu { - fill: #92c8ef; -} -#color-green, #color-green-menu { - fill: #99cc81; -} -#color-pink, #color-pink-menu { - fill: #f28bb1; -} -#color-yellow, #color-yellow-menu { - fill: #ebea7f; -} -#color-dark-blue, #color-dark-blue-menu { - fill: #50a8e4; -} -#color-dark-green, #color-dark-green-menu { - fill: #5aae31; -} -#color-dark-pink, #color-dark-pink-menu { - fill: #e94481; -} -#color-dark-yellow, #color-dark-yellow-menu { - fill: #dfde24; -} -/* menu's */ -.menu { - list-style: none; - margin: 0; - padding: 0; - border: none; -} - -.menu .menuitem { - display: block; -} - -.menu .submenu { - display: flex; - /* put menu above button */ - flex-direction: column-reverse; - /* center menu above button */ - align-items: center; - /* overriding width making the submenu's menu doesn't take up space */ - width: 64px; -} - -.menu .submenu .menu { - background-color: #fff; - border: 4px solid #000; - border-radius: 1rem; - display: none; - margin: 0 0 -0.5rem 0; -} -.menu .submenu.open .menu { - display: flex; -} -.menu .submenu .button { - padding: 0.2rem 0.6rem 0.4rem 0.6rem; -} -/* Toolbars */ -.toolbar .button { - background-repeat: no-repeat; - background-position: center; -} -.toolbar .button.disabled { - opacity: 0.5; - cursor: auto; -} - -#sketcher-toolbars .toolbar { - max-width: 100%; - margin-left: auto; - margin-right: auto; - - display: flex; - justify-content: center; - align-items: flex-end; -} -@media (max-width: 930px) { - .menu .submenu { - width: 54px; - } -} -@media (max-width: 790px) { - .menu .submenu { - width: 40px; - } -} -/* 2D toolbar */ -#toolbar2d-container { - position: absolute; - left: 0; - bottom: 0; - width: 50%; -} - -#toolbar2d { - background-image: url('../img/toolbar2d/toolbar2d.png'); - background-size: 493px auto; - background-repeat: no-repeat; - background-position: center; - height: 77px; - width: 493px; -} - -#toolbar2d>.menuitem>.button, -#toolbar2d>.submenu>.button { - /* positioning buttons with padding to increase hit area */ - padding: 25px 15px 0 15px; -} - -#toolbar2d #shape-tools .menu{ - width: 160px; - flex-wrap: wrap; -} -#toolbar2d #bucket-tools .menu{ - width: 220px; - flex-wrap: wrap; -} -/*#toolbar2d #pen-tools { - align-items: flex-start; -}*/ -#toolbar2d #pen-tools .menu { - margin: 0 0 -0.7rem 0; -} - -/* 2D toolbar tools */ -#toolbar2d #transform-tool { - background-image: url('../img/toolbar2d/btnSelect.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #freehand-tool-menu, #toolbar2d #freehand-tool { - background-image: url('../img/toolbar2d/btnDraw.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #polygon-tool-menu, #toolbar2d #polygon-tool { - background-image: url('../img/toolbar2d/btnPolygon.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #brush-tool-menu, #toolbar2d #brush-tool { - background-image: url('../img/toolbar2d/btnBrush.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #eraser-tool { - background-image: url('../img/toolbar2d/btnEraser.png'); - background-size: 45px auto; - width: 44px; - height: 45px; -} -#toolbar2d #text-tool { - background-image: url('../img/toolbar2d/btnText.png'); - background-size: 35px auto; - width: 37px; - height: 35px; -} -#toolbar2d #photo-guide-tool { - background-size: 45px auto; - width: 50px; - height: 34px; - background-image: url('../img/toolbar2d/btnPhoto.png'); -} -/* 2D toolbar shape submenu tools */ -#toolbar2d #star-tool-menu, #toolbar2d #star-tool { - background-image: url('../img/toolbar2d/shapes/btnShapeStar.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #circle-tool-menu, #toolbar2d #circle-tool { - background-image: url('../img/toolbar2d/shapes/btnShapeCircle.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #poly-point-tool-menu, #toolbar2d #poly-point-tool { - background-image: url('../img/toolbar2d/shapes/btnShapeHex.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #heart-tool-menu, #toolbar2d #heart-tool { - background-image: url('../img/toolbar2d/shapes/btnShapeHeart.png'); - background-size: 42px auto; - width: 42px; - height: 41px; -} -#toolbar2d #circle-segment-tool-menu, #toolbar2d #circle-segment-tool { - background-image: url('../img/toolbar2d/shapes/btnShapeCircleSegment.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #rect-tool-menu, #toolbar2d #rect-tool { - background-image: url('../img/toolbar2d/shapes/btnShapeRect.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #triangle-tool-menu, #toolbar2d #triangle-tool { - background-image: url('../img/toolbar2d/shapes/btnShapeTriangle.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} -#toolbar2d #bucket-tool-menu, #toolbar2d #bucket-tool { - background-image: url('../img/toolbar2d/btnBucket.png'); - background-size: 34px auto; - width: 34px; - height: 41px; -} - -/* 2D toolbar tools SELECTED */ -#toolbar2d #transform-tool.selected { - background-image: url('../img/toolbar2d/btnSelectSelect.png'); -} -#toolbar2d #freehand-tool-menu.selected, #toolbar2d #freehand-tool.selected { - background-image: url('../img/toolbar2d/btnDrawSelect.png'); -} -#toolbar2d #polygon-tool-menu.selected, #toolbar2d #polygon-tool.selected { - background-image: url('../img/toolbar2d/btnPolygonSelect.png'); -} -#toolbar2d #brush-tool-menu.selected, #toolbar2d #brush-tool.selected { - background-image: url('../img/toolbar2d/btnBrushSelect.png'); -} -#toolbar2d #eraser-tool.selected { - background-image: url('../img/toolbar2d/btnEraserSelect.png'); -} -#toolbar2d #text-tool.selected { - background-image: url('../img/toolbar2d/btnTextSelect.png'); -} -#toolbar2d #photo-guide-tool.selected { - background-image: url('../img/toolbar2d/btnPhotoSelect.png'); -} -/* 2D toolbar shape submenu tools SELECTED */ -#toolbar2d #star-tool-menu.selected, #toolbar2d #star-tool.selected { - background-image: url('../img/toolbar2d/shapes/btnShapeStarSelect.png'); -} -#toolbar2d #circle-tool-menu.selected, #toolbar2d #circle-tool.selected { - background-image: url('../img/toolbar2d/shapes/btnShapeCircleSelect.png'); -} -#toolbar2d #circle-segment-tool-menu.selected, #toolbar2d #circle-segment-tool.selected { - background-image: url('../img/toolbar2d/shapes/btnShapeCircleSegmentSelect.png'); -} -#toolbar2d #rect-tool-menu.selected, #toolbar2d #rect-tool.selected { - background-image: url('../img/toolbar2d/shapes/btnShapeRectSelect.png'); -} -#toolbar2d #triangle-tool-menu.selected, #toolbar2d #triangle-tool.selected { - background-image: url('../img/toolbar2d/shapes/btnShapeTriangleSelect.png'); -} -#toolbar2d #poly-point-tool-menu.selected, #toolbar2d #poly-point-tool.selected { - background-image: url('../img/toolbar2d/shapes/btnShapeHexSelect.png'); -} -#toolbar2d #heart-tool-menu.selected, #toolbar2d #heart-tool.selected { - background-image: url('../img/toolbar2d/shapes/btnShapeHeartSelect.png'); -} -#toolbar2d #bucket-tool-menu.selected, #toolbar2d #bucket-tool.selected { - background-image: url('../img/toolbar2d/btnBucketSelect.png'); -} - -@media (max-width: 930px) { - #toolbar2d>.menuitem>.button, - #toolbar2d>.submenu>.button { - padding: 25px 10px 0 10px; - } -} -@media (max-width: 900px) { - #toolbar2d { - background-image: none; - background-color: white; - height: 60px; - } - - #toolbar2d>.menuitem>.button, - #toolbar2d>.submenu>.button { - padding: 25px 0px 0 0px; - } -} - -/*#submenu-shape { - display: none; - position: absolute; - bottom: 55px; - width: 181px; - height: 200px; - padding-left: 18px; - padding-top: 25px; - /*border: 1px solid red;*/ - /*background-color: white; - background-image: url('../img/toolbar2d/shapeMenuBackground.png'); - background-repeat: no-repeat; - background-position: center; - background-size: 181px auto;*/ -/*}*/ - -/*#submenu-shape div { - display: inline-block; -} - -#submenu-shape img { - width: 45px; - height: 45px; -} - -#btnShapeMenuMini { - position: absolute; - margin-left: -310px; - display: inline-block; -} - -#btnShapeMenuMini img { - width: 67px; - height: 33px; -} - -#submenu-shape #skewed-rect-tool { - display: none; -}*/ -`; -document.body.append(style); - export default injectSheet(styles)(connect(getMenus)(SketcherToolbars)); diff --git a/styles/styles.css b/styles/styles.css new file mode 100644 index 0000000..91bd081 --- /dev/null +++ b/styles/styles.css @@ -0,0 +1,601 @@ +.button { + cursor: pointer; +} +#toolbar3d-container { + position: absolute; + right: 0; + bottom: 0; + width: 50%; +} +#toolbar3d { + background-image: url('../img/toolbar3d/toolbar3d.png'); + background-size: 493px auto; + background-repeat: no-repeat; + background-position: center -4px; + height: 77px; + + width: 493px; +} + +#toolbar3d>.menuitem>.button, +#toolbar3d>.submenu>.button { + /* positioning buttons with padding to increase hit area */ + padding: 10px 52px 0 52px; +} + +/* 3D toolbar tools */ +#toolbar3d #height-tool { + background-image: url('../img/toolbar3d/btnExtrude.png'); + background-size: 21px auto; + width: 21px; + height: 42px; +} +#toolbar3d #sculpt-tool { + background-image: url('../img/toolbar3d/btnSculpt.png'); + background-size: 39px auto; + width: 39px; + height: 42px; +} +#toolbar3d #twist-tool { + background-image: url('../img/toolbar3d/btnTwist.png'); + background-size: 40px auto; + width: 40px; + height: 42px; +} +#toolbar3d #cut-tool { + background-image: url('../img/toolbar3d/btnCut.png'); + background-size: 43px auto; + width: 43px; + height: 41px; +} +#toolbar3d #stamp-tool { + background-image: url('../img/toolbar3d/btnStamp.png'); + background-size: 43px auto; + width: 40px; + height: 42px; +} + +/* 3D toolbar tools SELECTED */ +#toolbar3d #height-tool.selected { + background-image: url('../img/toolbar3d/btnExtrudeSelect.png'); +} +#toolbar3d #sculpt-tool.selected { + background-image: url('../img/toolbar3d/btnSculptSelect.png'); +} +#toolbar3d #twist-tool.selected { + background-image: url('../img/toolbar3d/btnTwistSelect.png'); +} +#toolbar3d #cut-tool.selected { + background-image: url('../img/toolbar3d/btnCutSelect.png'); +} +#toolbar3d #stamp-tool.selected { + background-image: url('../img/toolbar3d/btnStampSelect.png'); +} + +@media (max-width: 900px) { + #toolbar3d { + background-image: none; + background-color: white; + height: 60px; + } + + #toolbar3d>.menuitem>.button, + #toolbar3d>.submenu>.button { + padding: 10px 25px 0 25px; + } +} + +@media (max-width: 720px) { + #toolbar3d>.menuitem>.button, + #toolbar3d>.submenu>.button { + padding: 10px 25px 0 25px; + } +} +@media (max-width: 620px) { + #toolbar3d>.menuitem>.button, + #toolbar3d>.submenu>.button { + padding: 10px 10px 0 10px; + } +} +#context { + background: #fff; + border: 4px solid #000; + border-radius: 1rem; +} +#context .submenu { + position: relative; +} +#context .menu { + z-index: 1; + position: absolute; + top: 50px; + /* Using transform to center submenu + Needed because some browser don't support flex-box's changed behaivior: + https://developers.google.com/web/updates/2016/06/absolute-positioned-children + Can't use the bottom toolbar's positioning system + because this submenu needs to be in line with the flex direction */ + left: 50%; + transform: translateX(-50%); +} +#context .button { + padding: 0.5rem 0.5rem 0.5rem 0.5rem; + + background-repeat: no-repeat; + background-position: center; +} +#context #duplicate-tool { + background-image: url('../img/contextmenu/btnDuplicate.png'); + background-size: 33px auto; + height: 41px; +} +#context #delete-tool { + background-image: url('../img/contextmenu/btnDelete.png'); + background-size: 33px auto; + height: 41px; +} +#context #union-tool { + background-image: url('../img/contextmenu/btnGroup.png'); + background-size: 33px auto; + height: 41px; + width: 30px; +} +#context #intersect-tool { + background-image: url('../img/contextmenu/btnCutOut.png'); + background-size: 33px auto; + height: 41px; + width: 30px; +} +#union-tool-menu, #intersect-tool-menu { + background-image: url('../img/contextmenu/btnMore.png'); + background-size: 33px auto; + height: 41px; + width: 30px; +} +#brush-size-small, #brush-size-small-menu, +#eraser-size-small, #eraser-size-small-menu { + background-image: url('../img/contextmenu/btnOutline1.png'); + background-size: 33px auto; + width: 33px; + height: 41px; +} +#brush-size-medium, #brush-size-medium-menu, +#eraser-size-medium, #eraser-size-medium-menu { + background-image: url('../img/contextmenu/btnOutline2.png'); + background-size: 33px auto; + width: 33px; + height: 41px; +} +#brush-size-large, #brush-size-large-menu, +#eraser-size-large, #eraser-size-large-menu { + background-image: url('../img/contextmenu/btnOutline3.png'); + background-size: 33px auto; + width: 33px; + height: 41px; +} +#fill-toggle-fill, #fill-toggle-fill-menu { + background-image: url('../img/contextmenu/btnShapeFill.png'); + background-size: 33px auto; + width: 33px; + height: 41px; +} +#fill-toggle-outline, #fill-toggle-outline-menu { + background-image: url('../img/contextmenu/btnShapeOutline.png'); + background-size: 33px auto; + width: 33px; + height: 41px; +} +#hole-toggle-solid, #hole-toggle-solid-menu { + background-image: url('../img/contextmenu/btnSolid.png'); + background-size: 33px auto; + width: 33px; + height: 41px; +} +#hole-toggle-hole, #hole-toggle-hole-menu { + background-image: url('../img/contextmenu/btnHole.png'); + background-size: 33px auto; + width: 33px; + height: 41px; +} +#align-right-menu, #align-horizontal-menu, #align-left-menu, +#align-top-menu, #align-vertical-menu, #align-bottom-menu { + background-image: url('../img/contextmenu/btnAlignHorizontal.png'); + background-size: 40px auto; + width: 40px; + height: 40px; +} +#align-left { + background-image: url('../img/contextmenu/btnAlignLeft.png'); + background-size: 40px auto; + width: 40px; + height: 40px; +} +#align-horizontal { + background-image: url('../img/contextmenu/btnAlignHorizontal.png'); + background-size: 40px auto; + width: 40px; + height: 40px; +} +#align-right { + background-image: url('../img/contextmenu/btnAlignRight.png'); + background-size: 40px auto; + width: 40px; + height: 40px; +} +#align-top { + background-image: url('../img/contextmenu/btnAlignTop.png'); + background-size: 40px auto; + width: 40px; + height: 40px; +} +#align-vertical { + background-image: url('../img/contextmenu/btnAlignVertical.png'); + background-size: 40px auto; + width: 40px; + height: 40px; +} +#align-bottom { + background-image: url('../img/contextmenu/btnAlignBottom.png'); + background-size: 40px auto; + width: 40px; + height: 40px; +} +#color-picker-tool .button { + margin: 0.5rem 0.5rem 0.5rem 0.5rem; + padding: 0; + width: 33px; + height: 41px; + overflow: hidden; +} + +#color-picker-tool .menu .button { + width: 30px; + height: 30px; +} + +#color-picker-tool .menu { + width: 185px; + flex-wrap: wrap; +} + +#align-tool .menu { + width: 170px; + flex-wrap: wrap; +} + +#color-light-blue, #color-light-blue-menu { + fill: #c8e4f7; +} +#color-light-green, #color-light-green-menu { + fill: #cbe6c0; +} +#color-light-pink, #color-light-pink-menu { + fill: #f8c4d8; +} +#color-light-yellow, #color-light-yellow-menu { + fill: #f5f5c0; +} +#color-blue, #color-blue-menu { + fill: #92c8ef; +} +#color-green, #color-green-menu { + fill: #99cc81; +} +#color-pink, #color-pink-menu { + fill: #f28bb1; +} +#color-yellow, #color-yellow-menu { + fill: #ebea7f; +} +#color-dark-blue, #color-dark-blue-menu { + fill: #50a8e4; +} +#color-dark-green, #color-dark-green-menu { + fill: #5aae31; +} +#color-dark-pink, #color-dark-pink-menu { + fill: #e94481; +} +#color-dark-yellow, #color-dark-yellow-menu { + fill: #dfde24; +} +/* menu's */ +.menu { + list-style: none; + margin: 0; + padding: 0; + border: none; +} + +.menu .menuitem { + display: block; +} + +.menu .submenu { + display: flex; + /* put menu above button */ + flex-direction: column-reverse; + /* center menu above button */ + align-items: center; + /* overriding width making the submenu's menu doesn't take up space */ + width: 64px; +} + +.menu .submenu .menu { + background-color: #fff; + border: 4px solid #000; + border-radius: 1rem; + display: none; + margin: 0 0 -0.5rem 0; +} +.menu .submenu.open .menu { + display: flex; +} +.menu .submenu .button { + padding: 0.2rem 0.6rem 0.4rem 0.6rem; +} +/* Toolbars */ +.toolbar .button { + background-repeat: no-repeat; + background-position: center; +} +.toolbar .button.disabled { + opacity: 0.5; + cursor: auto; +} + +#sketcher-toolbars .toolbar { + max-width: 100%; + margin-left: auto; + margin-right: auto; + + display: flex; + justify-content: center; + align-items: flex-end; +} +@media (max-width: 930px) { + .menu .submenu { + width: 54px; + } +} +@media (max-width: 790px) { + .menu .submenu { + width: 40px; + } +} +/* 2D toolbar */ +#toolbar2d-container { + position: absolute; + left: 0; + bottom: 0; + width: 50%; +} + +#toolbar2d { + background-image: url('../img/toolbar2d/toolbar2d.png'); + background-size: 493px auto; + background-repeat: no-repeat; + background-position: center; + height: 77px; + width: 493px; +} + +#toolbar2d>.menuitem>.button, +#toolbar2d>.submenu>.button { + /* positioning buttons with padding to increase hit area */ + padding: 25px 15px 0 15px; +} + +#toolbar2d #shape-tools .menu{ + width: 160px; + flex-wrap: wrap; +} +#toolbar2d #bucket-tools .menu{ + width: 220px; + flex-wrap: wrap; +} +/*#toolbar2d #pen-tools { + align-items: flex-start; +}*/ +#toolbar2d #pen-tools .menu { + margin: 0 0 -0.7rem 0; +} + +/* 2D toolbar tools */ +#toolbar2d #transform-tool { + background-image: url('../img/toolbar2d/btnSelect.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #freehand-tool-menu, #toolbar2d #freehand-tool { + background-image: url('../img/toolbar2d/btnDraw.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #polygon-tool-menu, #toolbar2d #polygon-tool { + background-image: url('../img/toolbar2d/btnPolygon.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #brush-tool-menu, #toolbar2d #brush-tool { + background-image: url('../img/toolbar2d/btnBrush.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #eraser-tool { + background-image: url('../img/toolbar2d/btnEraser.png'); + background-size: 45px auto; + width: 44px; + height: 45px; +} +#toolbar2d #text-tool { + background-image: url('../img/toolbar2d/btnText.png'); + background-size: 35px auto; + width: 37px; + height: 35px; +} +#toolbar2d #photo-guide-tool { + background-size: 45px auto; + width: 50px; + height: 34px; + background-image: url('../img/toolbar2d/btnPhoto.png'); +} +/* 2D toolbar shape submenu tools */ +#toolbar2d #star-tool-menu, #toolbar2d #star-tool { + background-image: url('../img/toolbar2d/shapes/btnShapeStar.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #circle-tool-menu, #toolbar2d #circle-tool { + background-image: url('../img/toolbar2d/shapes/btnShapeCircle.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #poly-point-tool-menu, #toolbar2d #poly-point-tool { + background-image: url('../img/toolbar2d/shapes/btnShapeHex.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #heart-tool-menu, #toolbar2d #heart-tool { + background-image: url('../img/toolbar2d/shapes/btnShapeHeart.png'); + background-size: 42px auto; + width: 42px; + height: 41px; +} +#toolbar2d #circle-segment-tool-menu, #toolbar2d #circle-segment-tool { + background-image: url('../img/toolbar2d/shapes/btnShapeCircleSegment.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #rect-tool-menu, #toolbar2d #rect-tool { + background-image: url('../img/toolbar2d/shapes/btnShapeRect.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #triangle-tool-menu, #toolbar2d #triangle-tool { + background-image: url('../img/toolbar2d/shapes/btnShapeTriangle.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} +#toolbar2d #bucket-tool-menu, #toolbar2d #bucket-tool { + background-image: url('../img/toolbar2d/btnBucket.png'); + background-size: 34px auto; + width: 34px; + height: 41px; +} + +/* 2D toolbar tools SELECTED */ +#toolbar2d #transform-tool.selected { + background-image: url('../img/toolbar2d/btnSelectSelect.png'); +} +#toolbar2d #freehand-tool-menu.selected, #toolbar2d #freehand-tool.selected { + background-image: url('../img/toolbar2d/btnDrawSelect.png'); +} +#toolbar2d #polygon-tool-menu.selected, #toolbar2d #polygon-tool.selected { + background-image: url('../img/toolbar2d/btnPolygonSelect.png'); +} +#toolbar2d #brush-tool-menu.selected, #toolbar2d #brush-tool.selected { + background-image: url('../img/toolbar2d/btnBrushSelect.png'); +} +#toolbar2d #eraser-tool.selected { + background-image: url('../img/toolbar2d/btnEraserSelect.png'); +} +#toolbar2d #text-tool.selected { + background-image: url('../img/toolbar2d/btnTextSelect.png'); +} +#toolbar2d #photo-guide-tool.selected { + background-image: url('../img/toolbar2d/btnPhotoSelect.png'); +} +/* 2D toolbar shape submenu tools SELECTED */ +#toolbar2d #star-tool-menu.selected, #toolbar2d #star-tool.selected { + background-image: url('../img/toolbar2d/shapes/btnShapeStarSelect.png'); +} +#toolbar2d #circle-tool-menu.selected, #toolbar2d #circle-tool.selected { + background-image: url('../img/toolbar2d/shapes/btnShapeCircleSelect.png'); +} +#toolbar2d #circle-segment-tool-menu.selected, #toolbar2d #circle-segment-tool.selected { + background-image: url('../img/toolbar2d/shapes/btnShapeCircleSegmentSelect.png'); +} +#toolbar2d #rect-tool-menu.selected, #toolbar2d #rect-tool.selected { + background-image: url('../img/toolbar2d/shapes/btnShapeRectSelect.png'); +} +#toolbar2d #triangle-tool-menu.selected, #toolbar2d #triangle-tool.selected { + background-image: url('../img/toolbar2d/shapes/btnShapeTriangleSelect.png'); +} +#toolbar2d #poly-point-tool-menu.selected, #toolbar2d #poly-point-tool.selected { + background-image: url('../img/toolbar2d/shapes/btnShapeHexSelect.png'); +} +#toolbar2d #heart-tool-menu.selected, #toolbar2d #heart-tool.selected { + background-image: url('../img/toolbar2d/shapes/btnShapeHeartSelect.png'); +} +#toolbar2d #bucket-tool-menu.selected, #toolbar2d #bucket-tool.selected { + background-image: url('../img/toolbar2d/btnBucketSelect.png'); +} + +@media (max-width: 930px) { + #toolbar2d>.menuitem>.button, + #toolbar2d>.submenu>.button { + padding: 25px 10px 0 10px; + } +} +@media (max-width: 900px) { + #toolbar2d { + background-image: none; + background-color: white; + height: 60px; + } + + #toolbar2d>.menuitem>.button, + #toolbar2d>.submenu>.button { + padding: 25px 0px 0 0px; + } +} + +/*#submenu-shape { + display: none; + position: absolute; + bottom: 55px; + width: 181px; + height: 200px; + padding-left: 18px; + padding-top: 25px; + /*border: 1px solid red;*/ + /*background-color: white; + background-image: url('../img/toolbar2d/shapeMenuBackground.png'); + background-repeat: no-repeat; + background-position: center; + background-size: 181px auto;*/ +/*}*/ + +/*#submenu-shape div { + display: inline-block; +} + +#submenu-shape img { + width: 45px; + height: 45px; +} + +#btnShapeMenuMini { + position: absolute; + margin-left: -310px; + display: inline-block; +} + +#btnShapeMenuMini img { + width: 67px; + height: 33px; +} + +#submenu-shape #skewed-rect-tool { + display: none; +}*/ diff --git a/webpack.config.js b/webpack.config.js index 5b697b0..6edc764 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -67,6 +67,9 @@ module.exports = { use: { loader: 'raw-loader' } + }, { + test: /\.css$/, + use: [ 'style-loader', 'css-loader' ] } ] },