From 8db64e42411070d8e22fa1d182997e7c2023e09a Mon Sep 17 00:00:00 2001 From: Drew Powers Date: Fri, 15 May 2020 12:20:00 -0600 Subject: [PATCH] Add Storybook VRT (#207) --- .github/workflows/merge.yml | 12 +- .github/workflows/pull_request.yml | 9 +- .happo.js | 19 - .node-version | 1 - .storybook/config.js | 7 +- .storybook/styles.css | 3 + CHANGELOG.md | 13 +- happo.setup.js | 6 - package-lock.json | 1171 +++++++---------- package.json | 15 +- src/components.d.ts | 38 + .../manifold-plan-table-happo.ts | 28 - .../manifold-plan-table.tsx | 62 +- .../manifold-plan-table/mock-jawsdbmysql.ts | 1 + .../manifold-plan-table/skeleton.tsx | 5 +- src/styles/elements/_button.scss | 3 + src/styles/elements/_cell.scss | 2 +- src/styles/elements/_input.scss | 2 + stories/pricing.stories.js | 37 +- 19 files changed, 625 insertions(+), 809 deletions(-) delete mode 100644 .happo.js delete mode 100644 .node-version create mode 100644 .storybook/styles.css delete mode 100644 happo.setup.js delete mode 100644 src/components/manifold-plan-table/manifold-plan-table-happo.ts create mode 100644 src/components/manifold-plan-table/mock-jawsdbmysql.ts diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index d108a11..5ab724c 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -8,18 +8,10 @@ on: jobs: vrt: env: - CURRENT_SHA: ${{ github.sha }} - PREVIOUS_SHA: ${{ github.event.before }} - CHANGE_URL: ${{ github.event.compare }} - HAPPO_API_KEY: ${{ secrets.HAPPO_API_KEY }} - HAPPO_API_SECRET: ${{ secrets.HAPPO_API_SECRET }} + PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 - with: - node-version: '13.x' - run: npm install - - run: npm run build - - run: npm run generate:gql - - run: node_modules/.bin/happo-ci + - run: npm run vrt diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 58de9aa..41f026a 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -39,15 +39,10 @@ jobs: vrt: needs: [build, lint, test, typecheck] env: - PREVIOUS_SHA: ${{ github.event.pull_request.base.sha }} - CURRENT_SHA: ${{ github.sha }} - CHANGE_URL: ${{ github.event.pull_request.html_url }} - HAPPO_API_KEY: ${{ secrets.HAPPO_API_KEY }} - HAPPO_API_SECRET: ${{ secrets.HAPPO_API_SECRET }} + PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 - run: npm install - - run: npm run build - - run: node_modules/.bin/happo-ci + - run: npm run vrt diff --git a/.happo.js b/.happo.js deleted file mode 100644 index 49d275e..0000000 --- a/.happo.js +++ /dev/null @@ -1,19 +0,0 @@ -const { RemoteBrowserTarget } = require('happo.io'); -const happoPluginTypeScript = require('happo-plugin-typescript'); -const path = require('path'); - -module.exports = { - project: 'manifoldco/manifold-plan-table', - apiKey: process.env.HAPPO_API_KEY, - apiSecret: process.env.HAPPO_API_SECRET, - targets: { - chrome: new RemoteBrowserTarget('chrome', { - viewport: '1440x900', - }), - }, - type: 'plain', - prerender: false, - setupScript: path.resolve(__dirname, 'happo.setup.js'), - stylesheets: [path.resolve(__dirname, 'dist', 'manifold-plan-table', 'manifold-plan-table.css')], - plugins: [happoPluginTypeScript()], -}; diff --git a/.node-version b/.node-version deleted file mode 100644 index e6ba351..0000000 --- a/.node-version +++ /dev/null @@ -1 +0,0 @@ -13.1.0 diff --git a/.storybook/config.js b/.storybook/config.js index 6989dbf..668f207 100644 --- a/.storybook/config.js +++ b/.storybook/config.js @@ -1,7 +1,8 @@ -import { addDecorator, configure } from '@storybook/html'; +import { configure } from '@storybook/html'; import { defineCustomElements as defineInit } from '@manifoldco/manifold-init/loader/index.mjs'; import '../dist/manifold-plan-table/manifold-plan-table.css'; -import { defineCustomElements as definePlanTable } from '../loader'; +import './styles.css'; +import { defineCustomElements as definePlanTable } from '../dist/esm-es5/loader.mjs'; // Init web components defineInit(); @@ -11,7 +12,7 @@ definePlanTable(); const req = require.context('../stories', true, /\.stories\.js$/); function loadStories() { - req.keys().forEach(filename => req(filename)); + req.keys().forEach((filename) => req(filename)); } configure(loadStories, module); diff --git a/.storybook/styles.css b/.storybook/styles.css new file mode 100644 index 0000000..9d23ceb --- /dev/null +++ b/.storybook/styles.css @@ -0,0 +1,3 @@ +body { + font-family: sans-serif; +} diff --git a/CHANGELOG.md b/CHANGELOG.md index b262c6c..763c427 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added +- `preview` mode for loading mocked data + +### Fixed +- `deepmerge` dependency missing which caused errors +- Default Button styling improved +- Input width made consistent +- Loading state styling improved + +## [0.4.0] - 2020-05-15 +### Added - Adds `init` and `update` event hooks for users ### Changed @@ -38,7 +48,8 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Added - Initial release -[Unreleased]: https://github.com/manifoldco/manifold-plan-table/compare/v0.3.0...HEAD +[Unreleased]: https://github.com/manifoldco/manifold-plan-table/compare/v0.4.0...HEAD +[0.4.0]: https://github.com/manifoldco/manifold-plan-table/compare/v0.3.0...v0.4.0 [0.3.0]: https://github.com/manifoldco/manifold-plan-table/compare/v0.2.0...v0.3.0 [0.2.0]: https://github.com/manifoldco/manifold-plan-table/compare/v0.0.16...v0.2.0 [0.0.16]: https://github.com/manifoldco/manifold-plan-table/compare/v0.0.1...v0.0.16 diff --git a/happo.setup.js b/happo.setup.js deleted file mode 100644 index 1e44000..0000000 --- a/happo.setup.js +++ /dev/null @@ -1,6 +0,0 @@ -import { defineCustomElements as defineCore } from '@manifoldco/manifold-init/loader'; -import { defineCustomElements } from './loader'; - -defineCore(window); -defineCustomElements(window); -window.happoRender = () => {}; diff --git a/package-lock.json b/package-lock.json index a8d7cc5..758a4a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2760,6 +2760,268 @@ "fastq": "^1.6.0" } }, + "@percy/react-percy-api-client": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@percy/react-percy-api-client/-/react-percy-api-client-0.4.6.tgz", + "integrity": "sha512-tbzw8i/iNFJpfw8m+Bgg6dGtLX5VEVyafLidw1rL+LoQ/FgiAgM9/wAzlCnPjyiF2QNaVNhkij9y6HHsNlfevQ==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "debug": "^2.6.3", + "es6-promise-pool": "^2.4.4", + "mime-types": "^2.1.14", + "percy-client": "^3.0.0", + "slugify": "^1.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "@percy/storybook": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@percy/storybook/-/storybook-3.3.0.tgz", + "integrity": "sha512-xo6wIZUhrR07K5iTjTRUK0jXWhIYsP4yjUNjqNVwsuYS+aDD+1ZGd+2ZI0IrfTcllUkA6MUgtP1qMRhpx9hZ6g==", + "dev": true, + "requires": { + "@percy/react-percy-api-client": "^0.4.6", + "babel-runtime": "^6.26.0", + "debug": "^3.1.0", + "es6-error": "^4.0.2", + "es6-promise-pool": "^2.4.4", + "puppeteer": "^1.4.0", + "walk": "^2.3.9", + "yargs": "^7.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": 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.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "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.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, "@reach/router": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.3.tgz", @@ -4083,28 +4345,12 @@ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", - "dev": true, - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - } - }, "acorn-jsx": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", - "dev": true - }, "address": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", @@ -4376,60 +4622,6 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "archiver": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", - "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^2.6.3", - "buffer-crc32": "^0.2.1", - "glob": "^7.1.4", - "readable-stream": "^3.4.0", - "tar-stream": "^2.1.0", - "zip-stream": "^2.1.2" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - } - } - }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", @@ -4467,12 +4659,6 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -4624,15 +4810,6 @@ "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", "dev": true }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", @@ -4645,15 +4822,6 @@ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "dev": true }, - "async-retry": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz", - "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==", - "dev": true, - "requires": { - "retry": "0.12.0" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4786,17 +4954,6 @@ } } }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" - } - }, "babel-helper-evaluate-path": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz", @@ -4939,9 +5096,9 @@ }, "dependencies": { "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -4974,18 +5131,18 @@ "dev": true }, "mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "schema-utils": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz", + "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==", "dev": true, "requires": { "ajv": "^6.12.0", @@ -5164,12 +5321,6 @@ "babel-helper-is-void-0": "^0.4.3" } }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", - "dev": true - }, "babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", @@ -5182,16 +5333,6 @@ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", "dev": true }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true, - "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" - } - }, "babel-plugin-transform-inline-consecutive-adds": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz", @@ -5225,46 +5366,6 @@ "esutils": "^2.0.2" } }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true, - "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, "babel-plugin-transform-regexp-constructors": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz", @@ -5304,31 +5405,6 @@ "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", "dev": true }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, "babel-preset-current-node-syntax": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz", @@ -5382,15 +5458,6 @@ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" } }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "dev": true, - "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" - } - }, "babel-preset-jest": { "version": "26.0.0", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.0.0.tgz", @@ -5432,20 +5499,6 @@ "lodash": "^4.17.11" } }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" - } - }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", @@ -5470,26 +5523,6 @@ } } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, "bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -5606,46 +5639,18 @@ "file-uri-to-path": "1.0.0" } }, - "bl": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", - "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, + "bluebird-retry": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/bluebird-retry/-/bluebird-retry-0.11.0.tgz", + "integrity": "sha1-EomrIsu8OgJYe6rTVZU1HdDBwEc=", + "dev": true + }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", @@ -6626,26 +6631,6 @@ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "compress-commons": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", - "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^3.0.1", - "normalize-path": "^3.0.0", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - } - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -6886,50 +6871,6 @@ } } }, - "crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, - "requires": { - "buffer": "^5.1.0" - }, - "dependencies": { - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - } - } - }, - "crc32-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", - "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", - "dev": true, - "requires": { - "crc": "^3.4.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -7342,21 +7283,6 @@ } } }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", - "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", - "dev": true, - "requires": { - "cssom": "0.3.x" - } - }, "csstype": { "version": "2.6.10", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", @@ -7387,30 +7313,6 @@ "assert-plus": "^1.0.0" } }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, "date-fns": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", @@ -7504,8 +7406,7 @@ "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" }, "define-properties": { "version": "1.1.3", @@ -7775,15 +7676,6 @@ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "dev": true, - "requires": { - "webidl-conversions": "^4.0.2" - } - }, "domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", @@ -8114,12 +8006,24 @@ "integrity": "sha512-7SwlpL+2JpymWTt8sNLuC2zdhhc+wrfe5cMPI2j0o6WsPdfAiPwmFy2f0AocPB4RQVBOZ9kNTgi5YF7TdhkvEg==", "dev": true }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true }, + "es6-promise-pool": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/es6-promise-pool/-/es6-promise-pool-2.5.0.tgz", + "integrity": "sha1-FHxhKza0fxBQJ/nSv1SlmKmdnMs=", + "dev": true + }, "es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", @@ -9016,6 +8920,44 @@ } } }, + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -9132,6 +9074,15 @@ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", "dev": true }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "fetch-mock": { "version": "9.9.0", "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-9.9.0.tgz", @@ -9490,6 +9441,12 @@ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=", + "dev": true + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -10321,12 +10278,6 @@ "readable-stream": "^2.0.0" } }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -10812,81 +10763,6 @@ "pify": "^4.0.1" } }, - "happo-plugin-typescript": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/happo-plugin-typescript/-/happo-plugin-typescript-1.0.0.tgz", - "integrity": "sha512-yryT5DE1fzc1asGblS4C6vlZ9o7AP9giigOJT0t94mdstKcZuLX2jr12BZgXLRin2CcCZgczNIPzMsWj9lt/DQ==", - "dev": true - }, - "happo.io": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/happo.io/-/happo.io-5.4.0.tgz", - "integrity": "sha512-O+JhXhc/I9UOawmjszVZ8Ia1K1mx28eO+sBbcfIB2CKVLg0fvk9pyD7Jj8ZCpa1BhnAwCwor8lwF3ml6LJATTw==", - "dev": true, - "requires": { - "archiver": "^3.0.0", - "async-retry": "^1.3.1", - "babel-plugin-dynamic-import-node": "^2.1.0", - "babel-polyfill": "^6.26.0", - "babel-preset-react": "^6.24.1", - "commander": "^2.15.1", - "glob": "^7.1.2", - "jsdom": "^12.0.0", - "jsonwebtoken": "^8.2.1", - "lcs-image-diff": "^2.0.0", - "mkdirp": "^0.5.1", - "parse-srcset": "^1.0.2", - "pngjs": "^3.4.0", - "request": "^2.85.0", - "request-promise-native": "^1.0.5", - "require-relative": "^0.8.7", - "rimraf": "^3.0.0", - "source-map-support": "^0.5.9", - "string.prototype.matchall": "^4.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -11131,15 +11007,6 @@ "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", "dev": true }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, "html-entities": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", @@ -11447,12 +11314,6 @@ "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", "dev": true }, - "imagetracerjs": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/imagetracerjs/-/imagetracerjs-1.2.5.tgz", - "integrity": "sha512-EQkBqvpW+36hx8ANxQ4RqqGxl6USmM3N8IiVw33lQlRW/P4eBpBxUJX36uzoyLfPc/0sBnX0ktyan/gCbJhtcw==", - "dev": true - }, "immer": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", @@ -11672,6 +11533,12 @@ "loose-envify": "^1.0.0" } }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -12065,6 +11932,12 @@ "unc-path-regex": "^0.1.2" } }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", @@ -14801,52 +14674,6 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, - "jsdom": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-12.2.0.tgz", - "integrity": "sha512-QPOggIJ8fquWPLaYYMoh+zqUmdphDtu1ju0QGTitZT1Yd8I5qenPpXM1etzUegu3MjVp8XPzgZxdn8Yj7e40ig==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^6.0.2", - "acorn-globals": "^4.3.0", - "array-equal": "^1.0.0", - "cssom": "^0.3.4", - "cssstyle": "^1.1.1", - "data-urls": "^1.0.1", - "domexception": "^1.0.1", - "escodegen": "^1.11.0", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.0.9", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.5", - "saxes": "^3.1.3", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.4.3", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0", - "ws": "^6.1.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -14962,6 +14789,12 @@ "verror": "1.10.0" } }, + "jssha": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jssha/-/jssha-2.4.2.tgz", + "integrity": "sha512-/jsi/9C0S70zfkT/4UlKQa5E1xKurDnXcQizcww9JSR/Fv+uIbWM2btG+bFcL3iNoK9jIGS0ls9HWLr1iw0kFg==", + "dev": true + }, "jstransform": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz", @@ -15082,22 +14915,13 @@ "dotenv-expand": "^5.1.0" } }, - "lazystream": { + "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcs-image-diff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/lcs-image-diff/-/lcs-image-diff-2.0.1.tgz", - "integrity": "sha512-ahY+sUAThUnL4J5eGBOjA4QaPCN+n55rOzUz2/uY1y6VJA1tQTkhJqUSlvsDm3YrMcRmoUbD1l/asMa77YSXzw==", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "imagetracerjs": "^1.2.5" + "invert-kv": "^1.0.0" } }, "leven": { @@ -15390,24 +15214,6 @@ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -15493,12 +15299,6 @@ "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", "dev": true }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true - }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -16671,6 +16471,15 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -16812,18 +16621,6 @@ "json-parse-better-errors": "^1.0.1" } }, - "parse-srcset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", - "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=", - "dev": true - }, - "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", - "dev": true - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -16922,6 +16719,29 @@ "sha.js": "^2.4.8" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "percy-client": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/percy-client/-/percy-client-3.7.0.tgz", + "integrity": "sha512-5levWR/nfVuSDL9YPN9Sn1M41I2/FmC/FndhD84s6W+mrVC4mB0cc9cT9F58hLuh7/133I/YvyI9Vc6NN41+2g==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "bluebird-retry": "^0.11.0", + "dotenv": "^8.1.0", + "es6-promise-pool": "^2.5.0", + "jssha": "^2.1.0", + "regenerator-runtime": "^0.13.1", + "request": "^2.87.0", + "request-promise": "^4.2.2", + "walk": "^2.3.14" + } + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -16940,6 +16760,21 @@ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, "pirates": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", @@ -17012,18 +16847,6 @@ } } }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true - }, - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "dev": true - }, "pnp-webpack-plugin": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz", @@ -18622,6 +18445,12 @@ "ipaddr.js": "1.9.1" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -18687,6 +18516,30 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "puppeteer": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.20.0.tgz", + "integrity": "sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^2.2.1", + "mime": "^2.0.3", + "progress": "^2.0.1", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^6.1.0" + }, + "dependencies": { + "mime": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz", + "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==", + "dev": true + } + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -20226,6 +20079,18 @@ } } }, + "request-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.5.tgz", + "integrity": "sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, "request-promise-core": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", @@ -20258,12 +20123,6 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "require-relative": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", - "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", - "dev": true - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -20322,12 +20181,6 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -20580,15 +20433,6 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "saxes": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", - "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", - "dev": true, - "requires": { - "xmlchars": "^2.1.1" - } - }, "scheduler": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", @@ -20945,6 +20789,12 @@ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", "dev": true }, + "slugify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.0.tgz", + "integrity": "sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ==", + "dev": true + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -22639,32 +22489,6 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, - "tar-stream": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz", - "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", - "dev": true, - "requires": { - "bl": "^4.0.1", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "telejson": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/telejson/-/telejson-3.3.0.tgz", @@ -23052,38 +22876,6 @@ "tslib": "^1.9.3" } }, - "ts-loader": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-7.0.4.tgz", - "integrity": "sha512-5du6OQHl+4ZjO4crEyoYUyWSrmmo7bAO+inkaILZ68mvahqrfoa4nn0DRmpQ4ruT4l+cuJCgF0xD7SBIyLeeow==", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^1.0.2", - "micromatch": "^4.0.0", - "semver": "^6.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "ts-log": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.1.4.tgz", @@ -23819,6 +23611,15 @@ } } }, + "walk": { + "version": "2.3.14", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", + "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", + "dev": true, + "requires": { + "foreachasync": "^3.0.0" + } + }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", @@ -25252,6 +25053,16 @@ "decamelize": "^1.2.0" } }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "zen-observable": { "version": "0.8.15", "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", @@ -25267,30 +25078,6 @@ "tslib": "^1.9.3", "zen-observable": "^0.8.0" } - }, - "zip-stream": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", - "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^2.1.1", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } } } } diff --git a/package.json b/package.json index ade693e..1dadf6f 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "license": "BSD 3-Clause", "scripts": { "build": "stencil build", + "build-storybook": "npm run build && build-storybook", "build:watch": "stencil build --watch", "changelog:format": "changelog", "changelog:release": "node scripts/update-changelog", @@ -32,9 +33,12 @@ "test:watch": "stencil test --spec --watchAll", "test:debug": "node --inspect-brk node_modules/.bin/stencil test --spec --runInBand", "typecheck": "npm run generate:gql && tsc --noEmit", - "version": "node scripts/bump-version" + "version": "node scripts/bump-version", + "vrt": "npm run build-storybook && percy-storybook" + }, + "dependencies": { + "deepmerge": "^4.2.2" }, - "dependencies": {}, "devDependencies": { "@graphql-codegen/cli": "^1.13.1", "@graphql-codegen/typescript": "^1.13.1", @@ -43,6 +47,7 @@ "@manifoldco/manifold-init": "^0.7.5", "@manifoldco/manifold-init-types": "^0.7.5", "@manifoldco/mercury": "^0.2.2", + "@percy/storybook": "^3.3.0", "@rollup/plugin-replace": "^2.3.1", "@stencil/core": "^1.13.0", "@stencil/postcss": "^1.0.1", @@ -54,9 +59,8 @@ "@types/jest": "^25.2.2", "@typescript-eslint/eslint-plugin": "^2.20.0", "@typescript-eslint/parser": "^2.20.0", - "babel-loader": "^8.0.6", + "babel-loader": "^8.1.0", "cssnano": "^4.1.10", - "deepmerge": "^4.2.2", "eslint": "^6.8.0", "eslint-config-airbnb-base": "^14.0.0", "eslint-config-prettier": "^6.10.0", @@ -65,8 +69,6 @@ "eslint-plugin-prettier": "^3.1.2", "fetch-mock": "^9.1.1", "graphql": "^14.6.0", - "happo-plugin-typescript": "^1.0.0", - "happo.io": "^5.1.5", "jest": "^26.0.1", "jest-cli": "^26.0.1", "keep-a-changelog": "^0.10.1", @@ -77,7 +79,6 @@ "stylelint-config-prettier": "^8.0.1", "stylelint-config-rational-order": "^0.1.2", "stylelint-config-standard": "^20.0.0", - "ts-loader": "^7.0.0", "wait-on": "^5.0.0" }, "peerDependencies": { diff --git a/src/components.d.ts b/src/components.d.ts index fff85e3..b54d572 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -7,12 +7,31 @@ import { HTMLStencilElement, JSXBase } from "@stencil/core/internal"; export namespace Components { interface ManifoldPlanTable { + /** + * Base url for buttons + */ "baseUrl"?: string; + /** + * Passed client ID header to the graphql calls + */ "clientId"?: string; + /** + * CTA Text for buttons + */ "ctaText"?: string; "env"?: "stage" | "local" | "prod"; "gatewayUrl"?: string; + /** + * Preview mode + */ + "preview"?: boolean; + /** + * Passed product ID to the graphql endpoint + */ "productId"?: string; + /** + * Version label for specifiying which verison of product to display. + */ "version"?: string; } } @@ -29,15 +48,34 @@ declare global { } declare namespace LocalJSX { interface ManifoldPlanTable { + /** + * Base url for buttons + */ "baseUrl"?: string; + /** + * Passed client ID header to the graphql calls + */ "clientId"?: string; + /** + * CTA Text for buttons + */ "ctaText"?: string; "env"?: "stage" | "local" | "prod"; "gatewayUrl"?: string; "onCtaClick"?: (event: CustomEvent) => void; "onInit"?: (event: CustomEvent) => void; "onUpdate"?: (event: CustomEvent) => void; + /** + * Preview mode + */ + "preview"?: boolean; + /** + * Passed product ID to the graphql endpoint + */ "productId"?: string; + /** + * Version label for specifiying which verison of product to display. + */ "version"?: string; } interface IntrinsicElements { diff --git a/src/components/manifold-plan-table/manifold-plan-table-happo.ts b/src/components/manifold-plan-table/manifold-plan-table-happo.ts deleted file mode 100644 index 473b4db..0000000 --- a/src/components/manifold-plan-table/manifold-plan-table-happo.ts +++ /dev/null @@ -1,28 +0,0 @@ -const AIVEN_CASSANDRA = '234qqazjcy9xm55tf0xner1nrb2tj'; -const GENERIC_TAGGING = '234hyjj2qbkpyw4z0g0bwgjgtydnj'; -const JAWSDB_MYSQL = '234w1jyaum5j0aqe3g3bmbqjgf20p'; -const PREFAB = '234j199gnaggg2qj6fvey2m3gw1nc'; -const ZIGGEO = '234yycr3mf5f2hrw045vuxeatnd50'; - -function renderProduct(productID: string) { - const planTable = document.createElement('manifold-plan-table'); - const core = document.createElement('manifold-init'); - planTable.productId = productID; - document.body.appendChild(core); - document.body.appendChild(planTable); - return planTable.componentOnReady(); -} - -export const skeleton = () => { - const planTable = document.createElement('manifold-plan-table'); - const core = document.createElement('manifold-init'); - document.body.appendChild(core); - document.body.appendChild(planTable); - return planTable; -}; - -export const aivenCassandra = () => renderProduct(AIVEN_CASSANDRA); -export const genericTagging = () => renderProduct(GENERIC_TAGGING); -export const jawsDbMysql = () => renderProduct(JAWSDB_MYSQL); -export const prefab = () => renderProduct(PREFAB); -export const ziggeo = () => renderProduct(ZIGGEO); diff --git a/src/components/manifold-plan-table/manifold-plan-table.tsx b/src/components/manifold-plan-table/manifold-plan-table.tsx index 592f68f..53d336a 100644 --- a/src/components/manifold-plan-table/manifold-plan-table.tsx +++ b/src/components/manifold-plan-table/manifold-plan-table.tsx @@ -70,31 +70,34 @@ export class ManifoldPlanTable { @Event({ bubbles: false }) ctaClick: EventEmitter; @Event({ bubbles: false }) init: EventEmitter; @Event({ bubbles: false }) update: EventEmitter; - // Passed product ID to the graphql endpoint + /** Passed product ID to the graphql endpoint */ @Prop() productId?: string; - // Passed client ID header to the graphql calls + /** Passed client ID header to the graphql calls */ @Prop() clientId?: string = ''; - // Base url for buttons + /** Base url for buttons */ @Prop() baseUrl?: string; @Prop() gatewayUrl?: string; - // CTA Text for buttons + /** CTA Text for buttons */ @Prop() ctaText?: string = 'Get Started'; @Prop() env?: 'stage' | 'local' | 'prod' = 'stage'; - // Version label for specifiying which verison of product to display. + /** Preview mode */ + @Prop() preview?: boolean; + /** Version label for specifiying which verison of product to display. */ @Prop() version?: string; - // Product data + /** Product data */ @State() product?: ProductQuery['product']; - // Product features + /** Product features */ @State() productFeatures: ProductFeatures = { fixed: {}, metered: {}, configurable: {} }; - // Plan costs + /** Plan costs */ @State() planCosts: { [planID: string]: number }; - // Plan features + /** Plan features */ @State() planFeatures: PlanFeatures = {}; - // User selection + /** User selection */ @State() userSelection: UserSelection = {}; - @Watch('productId') refetchProduct(newVal?: string) { - if (newVal) { - this.setupProduct(newVal); + + @Watch('productId') refetchProduct(newVal?: string, oldVal?: string) { + if (newVal && newVal !== oldVal) { + this.fetchProduct(newVal); } } @@ -107,6 +110,16 @@ export class ManifoldPlanTable { @loadMark() async componentWillLoad() { + // preview mode + if (this.preview) { + // async import mock data so that we don’t load 7KB unnecessarily + const mockProduct = await import('./mock-jawsdbmysql'); + if (mockProduct) { + this.setupProduct(JSON.parse(mockProduct.default)); + } + return; + } + await customElements.whenDefined('manifold-init'); const core = document.querySelector('manifold-init') as HTMLManifoldInitElement; this.connection = await core.initialize({ @@ -119,12 +132,11 @@ export class ManifoldPlanTable { } if (this.productId) { // Note: we could warn here if product-id is missing, but let’s not. In some front-end frameworks it may be set a half-second after it loads - this.setupProduct(this.productId); + this.fetchProduct(this.productId); } } - // trying to move fetch out for testing. - async setupProduct(productID: string) { + async fetchProduct(productID: string): Promise { const variables: ProductQueryVariables = { id: productID, latest: this.version === LATEST_VERSION_FLAG, @@ -132,23 +144,29 @@ export class ManifoldPlanTable { const res = await this.connection.graphqlFetch({ query, variables }); const { data } = res; - if (!data || !data.product) { + if (data && data.product) { + this.setupProduct(data.product); + } + } + + setupProduct(product: ProductQuery['product'] | undefined) { + if (!product) { return; } // save result to state - this.product = data.product; + this.product = product; // create map of all product features in fixed / metered / configurable order - const fixed = data.product.fixedFeatures.edges.reduce( + const fixed = product.fixedFeatures.edges.reduce( (features, { node }) => ({ ...features, [node.label]: node }), {} ); - const metered = data.product.meteredFeatures.edges.reduce( + const metered = product.meteredFeatures.edges.reduce( (features, { node }) => ({ ...features, [node.label]: node }), {} ); - const configurable = data.product.configurableFeatures.edges.reduce( + const configurable = product.configurableFeatures.edges.reduce( (features, { node }) => ({ ...features, [node.label]: node }), {} ); @@ -161,7 +179,7 @@ export class ManifoldPlanTable { const userSelection: UserSelection = {}; // iterate through plans to gather costs, features, and configurable feature defaults - data.product.plans.edges.forEach(({ node: plan }) => { + product.plans.edges.forEach(({ node: plan }) => { // add cost to map planCosts[plan.id] = plan.cost; // add features to map diff --git a/src/components/manifold-plan-table/mock-jawsdbmysql.ts b/src/components/manifold-plan-table/mock-jawsdbmysql.ts new file mode 100644 index 0000000..0c4b361 --- /dev/null +++ b/src/components/manifold-plan-table/mock-jawsdbmysql.ts @@ -0,0 +1 @@ +export default '{"id":"234w1jyaum5j0aqe3g3bmbqjgf20p","displayName":"JawsDB MySQL","fixedFeatures":{"edges":[{"node":{"label":"static-connections","displayName":"Connections","featureOptions":[{"value":"connections-generated-2","displayName":"10"},{"value":"connections-generated-7","displayName":"15"},{"value":"connections-generated-9","displayName":"30"},{"value":"connections-generated-12","displayName":"66"},{"value":"connections-generated-16","displayName":"150"},{"value":"connections-generated-19","displayName":"300"},{"value":"connections-generated-23","displayName":"600"}]}},{"node":{"label":"static-high-availability","displayName":"High Availability","featureOptions":[{"value":"true","displayName":"true"},{"value":"false","displayName":"false"}]}},{"node":{"label":"static-ram","displayName":"RAM","featureOptions":[{"value":"ram-generated-0","displayName":"Shared"},{"value":"ram-generated-10","displayName":"1 GB"},{"value":"ram-generated-14","displayName":"2 GB"},{"value":"ram-generated-17","displayName":"4 GB"},{"value":"ram-generated-21","displayName":"8 GB"}]}},{"node":{"label":"static-rollback","displayName":"Rollback","featureOptions":[{"value":"rollback-generated-4","displayName":"0 Days"},{"value":"rollback-generated-13","displayName":"1 Day"},{"value":"rollback-generated-20","displayName":"2 Days"}]}},{"node":{"label":"static-single-tenant","displayName":"Single Tenant","featureOptions":[{"value":"true","displayName":"true"},{"value":"false","displayName":"false"}]}},{"node":{"label":"static-storage","displayName":"Storage","featureOptions":[{"value":"storage-generated-1","displayName":"250 MB"},{"value":"storage-generated-6","displayName":"1 GB"},{"value":"storage-generated-8","displayName":"2.5 GB"},{"value":"storage-generated-11","displayName":"5 GB"},{"value":"storage-generated-15","displayName":"50 GB"},{"value":"storage-generated-18","displayName":"100 GB"},{"value":"storage-generated-22","displayName":"250 GB"}]}}]},"meteredFeatures":{"edges":[]},"configurableFeatures":{"edges":[{"node":{"label":"backups","displayName":"Backups","numericOptions":[{"label":"backups","displayName":"Backups","numericDetails":{"increment":1,"max":35,"min":1,"unit":"Days","costTiers":[{"cost":0,"limit":35}]}}]}},{"node":{"label":"redundancy","displayName":"High Availability","featureOptions":[{"cost":0,"displayName":"Yes","value":"true"},{"cost":0,"displayName":"No","value":"false"}]}},{"node":{"label":"instance_class","displayName":"RAM","featureOptions":[{"cost":0,"displayName":"1 GB","value":"db.t2.micro"},{"cost":5400,"displayName":"2 GB","value":"db.t2.small"},{"cost":13400,"displayName":"4 GB","value":"db.m3.medium"},{"cost":31800,"displayName":"8 GB","value":"db.m4.large"},{"cost":54400,"displayName":"15 GB","value":"db.r4.large"},{"cost":89000,"displayName":"31 GB","value":"db.r4.xlarge"},{"cost":121000,"displayName":"61 GB","value":"db.r4.2xlarge"},{"cost":239000,"displayName":"122 GB","value":"db.r4.4xlarge"},{"cost":428000,"displayName":"244 GB","value":"db.r4.8xlarge"},{"cost":910000,"displayName":"488 GB","value":"db.r4.16xlarge"}]}},{"node":{"label":"storage","displayName":"Storage","numericOptions":[{"label":"storage","displayName":"Storage","numericDetails":{"increment":1,"max":16000,"min":5,"unit":"GB","costTiers":[{"cost":200000000,"limit":16000}]}}]}}]},"plans":{"edges":[{"node":{"cost":500,"displayName":"Kitefin","id":"235abe2ba8b39e941u2h70ayw5m9j","fixedFeatures":{"edges":[{"node":{"label":"static-connections","displayName":"Connections","displayValue":"10"}},{"node":{"label":"static-high-availability","displayName":"High Availability","displayValue":"false"}},{"node":{"label":"static-ram","displayName":"RAM","displayValue":"Shared"}},{"node":{"label":"static-rollback","displayName":"Rollback","displayValue":"0 Days"}},{"node":{"label":"static-single-tenant","displayName":"Single Tenant","displayValue":"false"}},{"node":{"label":"static-storage","displayName":"Storage","displayValue":"250 MB"}}]},"meteredFeatures":{"edges":[]},"configurableFeatures":{"edges":[]}}},{"node":{"cost":80000,"displayName":"Hammerhead Alpha","id":"2354cmvu65xccvw974kfjh616b2x0","fixedFeatures":{"edges":[{"node":{"label":"static-connections","displayName":"Connections","displayValue":"600"}},{"node":{"label":"static-high-availability","displayName":"High Availability","displayValue":"true"}},{"node":{"label":"static-ram","displayName":"RAM","displayValue":"8 GB"}},{"node":{"label":"static-rollback","displayName":"Rollback","displayValue":"2 Days"}},{"node":{"label":"static-single-tenant","displayName":"Single Tenant","displayValue":"true"}},{"node":{"label":"static-storage","displayName":"Storage","displayValue":"250 GB"}}]},"meteredFeatures":{"edges":[]},"configurableFeatures":{"edges":[]}}},{"node":{"cost":3300,"displayName":"Custom","id":"235exy25wvzpxj52p87bh87gbnj4y","fixedFeatures":{"edges":[{"node":{"label":"static-single-tenant","displayName":"Single Tenant","displayValue":"true"}}]},"meteredFeatures":{"edges":[]},"configurableFeatures":{"edges":[{"node":{"label":"backups","displayName":"Backups","type":"NUMBER","upgradable":true,"downgradable":true,"featureOptions":[{"displayName":"Backups","cost":0,"value":"backups"}],"numericDetails":{"increment":1,"min":1,"max":35,"unit":"Days","costTiers":[{"limit":35,"cost":0}]}}},{"node":{"label":"instance_class","displayName":"RAM","type":"STRING","upgradable":true,"downgradable":true,"featureOptions":[{"displayName":"1 GB","cost":0,"value":"db.t2.micro"},{"displayName":"2 GB","cost":5400,"value":"db.t2.small"},{"displayName":"4 GB","cost":13400,"value":"db.m3.medium"},{"displayName":"8 GB","cost":31800,"value":"db.m4.large"},{"displayName":"15 GB","cost":54400,"value":"db.r4.large"},{"displayName":"31 GB","cost":89000,"value":"db.r4.xlarge"},{"displayName":"61 GB","cost":121000,"value":"db.r4.2xlarge"},{"displayName":"122 GB","cost":239000,"value":"db.r4.4xlarge"},{"displayName":"244 GB","cost":428000,"value":"db.r4.8xlarge"},{"displayName":"488 GB","cost":910000,"value":"db.r4.16xlarge"}],"numericDetails":null}},{"node":{"label":"redundancy","displayName":"High Availability","type":"BOOLEAN","upgradable":true,"downgradable":true,"featureOptions":[{"displayName":"Yes","cost":0,"value":"true"},{"displayName":"No","cost":0,"value":"false"}],"numericDetails":null}},{"node":{"label":"storage","displayName":"Storage","type":"NUMBER","upgradable":true,"downgradable":false,"featureOptions":[{"displayName":"Storage","cost":0,"value":"storage"}],"numericDetails":{"increment":1,"min":5,"max":16000,"unit":"GB","costTiers":[{"limit":16000,"cost":200000000}]}}}]}}}]}}'; diff --git a/src/components/manifold-plan-table/skeleton.tsx b/src/components/manifold-plan-table/skeleton.tsx index 2fd73da..bc1c7d1 100644 --- a/src/components/manifold-plan-table/skeleton.tsx +++ b/src/components/manifold-plan-table/skeleton.tsx @@ -19,7 +19,10 @@ const SkeletonLoader: FunctionalComponent = () => ( data-row-first > {Array.from(new Array(DEFAULT_FEATURES)).map(() => ( -
+
                                              
diff --git a/src/styles/elements/_button.scss b/src/styles/elements/_button.scss index a827ce0..55fd6b1 100644 --- a/src/styles/elements/_button.scss +++ b/src/styles/elements/_button.scss @@ -17,8 +17,11 @@ $name: '' !default; font-style: normal; text-decoration: none; background: mercury.$color-blue; + border: none; border-radius: 4px; + cursor: pointer; transition: background-color 0.3s ease; + appearance: none; &:visited { color: mercury.$color-white; diff --git a/src/styles/elements/_cell.scss b/src/styles/elements/_cell.scss index c9037a1..58aecce 100644 --- a/src/styles/elements/_cell.scss +++ b/src/styles/elements/_cell.scss @@ -16,7 +16,7 @@ $table-dashed-border: 1px dashed mercury.$color-grayLighter; justify-content: center; box-sizing: border-box; width: 100%; - min-height: 2rem; + min-height: 3rem; padding: 0.5rem 1rem; text-align: center; word-wrap: break-word; diff --git a/src/styles/elements/_input.scss b/src/styles/elements/_input.scss index 193cd93..b50b97f 100644 --- a/src/styles/elements/_input.scss +++ b/src/styles/elements/_input.scss @@ -15,6 +15,8 @@ $name: '' !default; // ---------- input { + box-sizing: border-box; + width: 100%; -moz-appearance: textfield; &::-webkit-inner-spin-button, diff --git a/stories/pricing.stories.js b/stories/pricing.stories.js index 4ab99de..87edacb 100644 --- a/stories/pricing.stories.js +++ b/stories/pricing.stories.js @@ -51,17 +51,32 @@ const products = { Ziggeo: '234yycr3mf5f2hrw045vuxeatnd50', }; -storiesOf('Manifold Pricing', module) +storiesOf('', module) .addDecorator(withKnobs) .addDecorator(withA11y) - .add('manifold-plan-table', () => { - const catalogProduct = select('Select from Catalog', products, products['JawsDB MySQL']); - const productId = text('Custom Product ID', ''); // Jaws DB - const clientId = text('Client ID', '234a33rd2pxfzq9qfk0v5qdrykhcp'); // ziggeo provider id - const cta = text('cta-text', 'Get Started'); - const baseUrl = text('base-url', '/signup'); + .add( + 'loading', + () => + `` + ) + .add( + 'mocked', + () => + `` + ) + .add( + 'live', + () => { + const catalogProduct = select('Select from Catalog', products, products['JawsDB MySQL']); + const productId = text('Custom Product ID', ''); // Jaws DB + const clientId = text('Client ID', '234a33rd2pxfzq9qfk0v5qdrykhcp'); // ziggeo provider id + const cta = text('cta-text', 'Get Started'); + const baseUrl = text('base-url', '/signup'); - return ` - `; - }); + return ` + `; + }, + { percy: { skip: true } } // skip from Percy screenshots + );