diff --git a/.circleci/config.yml b/.circleci/config.yml index 0386a6b514..e494d8d4b6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -61,7 +61,7 @@ jobs: key: *js_deps_cache_key build_v3: docker: - - image: circleci/ruby:latest-node + - image: circleci/ruby:2-node steps: - checkout - restore_cache: diff --git a/.github/release.sh b/.github/release.sh new file mode 100755 index 0000000000..74a2480cc2 --- /dev/null +++ b/.github/release.sh @@ -0,0 +1,42 @@ +#!/bin/bash +GIT_USERNAME="patternfly-build" +GH_REPO=${GITHUB_REPOSITORY} +REPO="github.com:${GH_REPO}.git" +echo "Preparing release environment..." +git config user.email "patternfly-build@redhat.com" +git config user.name ${GIT_USERNAME} +git config credential.helper store +echo "https://${GIT_USERNAME}:${GH_TOKEN}@${REPO}" > ~/.git-credentials +echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc + +echo "Doing a release..." +# Lerna is complicated. Commands: https://github.com/lerna/lerna/tree/master/commands +# Identify packages that have been updated since the previous tagged release +# Update their versions and changelogs according to angular commit guidelines +# https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit + +# Grab the log before lerna makes a commit +LOG=$(git log --format="%s" -1 | grep -Poe "#\d+") +PR_NUM=${LOG:1} + +yarn run lerna publish --conventional-commits --create-release=github --yes 2>&1 | tee lerna-output.txt + +if grep -i "Successfully published" lerna-output.txt; # Leave a Github comment +then + if [ -n "${PR_NUM}" ] + then + # Use Issues api instead of PR api because + # PR api requires comments be made on specific files of specific commits + GH_PR_COMMENTS="https://api.github.com/repos/${GH_REPO}/issues/${PR_NUM}/comments" + COMMENT=$(git log --author="patternfly-build" -1 --pretty=%B | tail -n +2 | python -c 'import json,sys; print(json.dumps(sys.stdin.read()))' | cut -d '"' -f 2) + JSON="{\"body\":\"Your changes have been released in: ${COMMENT}Thanks for your contribution! :tada:\"}" + echo "Adding github PR comment ${GH_PR_COMMENTS} ${JSON}" + curl -H "Authorization: token ${GH_PR_TOKEN}" --request POST "${GITHUB_PR_COMMENTS}" --data "${JSON}" + fi +elif grep -i "No changed packages to publish" lerna-output.txt; +then + echo "No changed packages to publish" +else + echo "Failed lerna publish" + exit 1 +fi diff --git a/.github/upload-preview.js b/.github/upload-preview.js new file mode 100644 index 0000000000..3da115e5a5 --- /dev/null +++ b/.github/upload-preview.js @@ -0,0 +1,88 @@ +const path = require('path'); +const { Octokit } = require('@octokit/rest') +const octokit = new Octokit({ auth: process.env.GH_PR_TOKEN }); +const surge = require('surge'); +const publishFn = surge().publish(); + +// From github actions +const ghrepo = process.env.GITHUB_REPOSITORY || ''; +const ghref = process.env.GITHUB_REF || ''; + +// From CircleCI +const owner = process.env.CIRCLE_PROJECT_USERNAME || ghrepo.split('/')[0]; // patternfly +const repo = process.env.CIRCLE_PROJECT_REPONAME || ghrepo.split('/')[1]; +const prnum = process.env.CIRCLE_PR_NUMBER || (ghref.match(/pull\/(\d+)/) || [])[1]; +// Can contain special characters but surge replaces them +const branch = process.env.CIRCLE_BRANCH || ghref.replace('refs/heads/', ''); + +const uploadFolder = process.argv[2]; +const uploadName = process.argv[3] || uploadFolder; +if (!uploadFolder) { + console.log('Usage: upload-preview uploadFolder'); + process.exit(1); +} + +const uploadFolderName = path.basename(uploadFolder); +let uploadURL = `${repo}-${prnum ? `pr-${prnum}` : branch}`.replace(/[\/|\.]/g, '-'); + +uploadURL += `-${uploadName}`; +uploadURL += '.surge.sh'; + +publishFn({ + project: uploadFolder, + p: uploadFolder, + domain: uploadURL, + d: uploadURL, + e: 'https://surge.surge.sh', + endpoint: 'https://surge.surge.sh' +}); + +function tryAddComment(comment, commentBody) { + if (!commentBody.includes(comment)) { + return comment; + } + return ''; +} + +if (prnum) { + octokit.issues.listComments({ + owner, + repo, + issue_number: prnum + }) + .then(res => res.data) + .then(comments => { + let commentBody = ''; + const existingComment = comments.find(comment => comment.user.login === 'patternfly-build'); + if (existingComment) { + commentBody += existingComment.body.trim(); + commentBody += '\n'; + } + + if (uploadName === 'v3') { + commentBody += tryAddComment(`PF3 preview: https://${uploadURL}/v3`, commentBody); + } + else if (uploadName === 'v4') { + commentBody += tryAddComment(`PF4 preview: https://${uploadURL}/v4`, commentBody); + } + else if (uploadFolderName === 'coverage') { + commentBody += tryAddComment(`A11y report: https://${uploadURL}`, commentBody); + } + + if (existingComment) { + octokit.issues.updateComment({ + owner, + repo, + comment_id: existingComment.id, + body: commentBody + }).then(() => console.log('Updated comment!')); + } else { + octokit.issues.createComment({ + owner, + repo, + issue_number: prnum, + body: commentBody + }).then(() => console.log('Created comment!')); + } + }); +} diff --git a/.github/upload-staging.sh b/.github/upload-staging.sh new file mode 100755 index 0000000000..6610c47102 --- /dev/null +++ b/.github/upload-staging.sh @@ -0,0 +1,17 @@ +aws s3 rm --recursive s3://patternfly-org-staging +# TODO: Proper S3 meta tags for redirects +aws s3 sync build/patternfly-org s3://patternfly-org-staging --exclude "*" \ + --include "*.html" \ + --include "*.json" \ + --exclude "static/**/*.json" \ + --include "sw.js" \ + --cache-control "public, max-age=0, must-revalidate" + +aws s3 sync build/patternfly-org s3://patternfly-org-staging --include "*" \ + --exclude "*.html" \ + --exclude "*.json" \ + --include "static/**/*.json" \ + --exclude "sw.js" \ + --cache-control "public, max-age=31536000, immutable" + +aws cloudfront create-invalidation --distribution-id EQE4NPRH0CQXJ --paths "/*" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..2e76f08f0e --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,88 @@ +name: build-deploy +on: + push: + pull_request: + branches: + # Branches from forks have the form 'user:branch-name' so we only run + # this job on pull_request events for branches that look like fork + # branches. Without this we would end up running this job twice for non + # forked PRs, once for the push and then once for opening the PR. + - '**:**'jobs: + build-deploy: + runs-on: ubuntu-latest + env: + SURGE_LOGIN: ${{ secrets.SURGE_LOGIN }} + SURGE_TOKEN: ${{ secrets.SURGE_TOKEN }} + GH_PR_TOKEN: ${{ secrets.GH_PR_TOKEN }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: '12' + - uses: actions/cache@v2 + id: yarn-cache + name: Load v3 and v4 npm deps from cache + with: + path: '**/node_modules' + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + - run: yarn install --frozen-lockfile + if: steps.yarn-cache.outputs.cache-hit != 'true' + # v4 build + - uses: actions/cache@v2 + id: v4-cache + name: Load webpack cache + with: + path: 'packages/v4/.cache' + key: ${{ runner.os }}-v4-${{ hashFiles('yarn.lock') }} + - run: yarn build:v4 + name: Build docs + - run: node .github/upload-preview.js build/patternfly-org v4 + name: Upload docs + # v3 build + - uses: actions/cache@v2 + id: v3-artifact-cache + name: Load v3 artifact from cache + with: + path: 'build/patternfly-org/v3' + key: ${{ runner.os }}-build-${{ hashFiles('packages/v3/*', 'packages/v3/**') }} + - uses: actions/setup-ruby@v1 + with: + ruby-version: '2.6' + if: steps.v3-artifact-cache.outputs.cache-hit != 'true' + - run: cd packages/v3 && bundle install --jobs 4 --retry 3 + name: Install v3 ruby deps + if: steps.v3-artifact-cache.outputs.cache-hit != 'true' + - run: yarn build:v3 + name: Build v3 docs + if: steps.v3-artifact-cache.outputs.cache-hit != 'true' + # temporarily move v4 out of the way + - run: mv build/patternfly-org/v4 build + name: Prep upload v3 docs + - run: node .github/upload-preview.js build/patternfly-org v3 + name: Upload v3 docs + # only take the time to upload v3 if there's a change + if: steps.v3-artifact-cache.outputs.cache-hit != 'true' + # deploy + #- run: mv build/v4 build/patternfly-org + # name: Undo prep upload v3 docs + #- run: .github/release.sh + # env: + # GH_TOKEN: ${{ secrets.GH_TOKEN }} + # if: github.ref == 'refs/heads/master' + #- name: Configure AWS Credentials + # uses: aws-actions/configure-aws-credentials@v1 + # with: + # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY}} + # aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }} + # aws-region: ${{ secrets.AWS_REGION }} + # if: github.ref == 'refs/heads/master' + #- run: node scripts/writeV3Redirects.js + # if: github.ref == 'refs/heads/master' + #- run: node scripts/writeVersionPrefix.js + # if: github.ref == 'refs/heads/master' + #- run: du -sh build/patternfly-org/* + # name: Check size of docs + # if: github.ref == 'refs/heads/master' + #- run: .github/upload-staging.sh + # name: Upload docs to staging + diff --git a/package.json b/package.json index 1a8332621a..851937c951 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,10 @@ "develop:v4": "yarn workspace patternfly-org-4 develop", "build": "yarn build:v4", "build:analyze": "yarn workspace patternfly-org-4 build:analyze && yarn copy:v4", + "build:v4": "yarn workspace patternfly-org-4 build && yarn copy:v4", "build:v3": "yarn workspace patternfly-org-3 build && yarn copy:v3", - "build:v4": "yarn workspace patternfly-org-4 build && sleep 1 && yarn copy:v4", "copy:v3": "rm -rf build/patternfly-org/v3 && mkdir -p build/patternfly-org && cp -r packages/v3/_site build/patternfly-org/v3", - "copy:v4": "rm -rf build/patternfly-org/v4 && mkdir -p build/patternfly-org && cp -r packages/v4/public/ build/patternfly-org/v4 && cp -r build/patternfly-org/v4/assets build/patternfly-org/assets", + "copy:v4": "rm -rf build/patternfly-org/v4 && mkdir -p build/patternfly-org && cp -r packages/v4/public build/patternfly-org/v4 && cp -r build/patternfly-org/v4/assets build/patternfly-org/assets", "clean": "lerna run clean && rm -rf build", "serve": "serve build/patternfly-org", "test:v4": "yarn workspace patternfly-org-4 test:a11y:ci", @@ -31,6 +31,7 @@ ] }, "devDependencies": { + "@octokit/rest": "^16.43.2", "glob": "^7.1.6", "lerna": "^3.19.0", "surge": "^0.21.3" diff --git a/packages/theme-patternfly-org/CHANGELOG.md b/packages/theme-patternfly-org/CHANGELOG.md index 878cbda479..32ee279335 100644 --- a/packages/theme-patternfly-org/CHANGELOG.md +++ b/packages/theme-patternfly-org/CHANGELOG.md @@ -3,6 +3,49 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.3.0](https://github.com/patternfly/patternfly-org/compare/theme-patternfly-org@0.2.15...theme-patternfly-org@0.3.0) (2021-01-04) + + +### Features + +* **docgen:** add [@prop](https://github.com/prop)Type and fix [@hide](https://github.com/hide) ([#2334](https://github.com/patternfly/patternfly-org/issues/2334)) ([e418ac6](https://github.com/patternfly/patternfly-org/commit/e418ac67f31017a6489dbeea5e964a42e6c97cbc)) + + + + + +## [0.2.15](https://github.com/patternfly/patternfly-org/compare/theme-patternfly-org@0.2.14...theme-patternfly-org@0.2.15) (2020-12-15) + +**Note:** Version bump only for package theme-patternfly-org + + + + + +## [0.2.14](https://github.com/patternfly/patternfly-org/compare/theme-patternfly-org@0.2.13...theme-patternfly-org@0.2.14) (2020-12-14) + +**Note:** Version bump only for package theme-patternfly-org + + + + + +## [0.2.13](https://github.com/patternfly/patternfly-org/compare/theme-patternfly-org@0.2.12...theme-patternfly-org@0.2.13) (2020-12-08) + +**Note:** Version bump only for package theme-patternfly-org + + + + + +## [0.2.12](https://github.com/patternfly/patternfly-org/compare/theme-patternfly-org@0.2.11...theme-patternfly-org@0.2.12) (2020-12-03) + +**Note:** Version bump only for package theme-patternfly-org + + + + + ## [0.2.11](https://github.com/patternfly/patternfly-org/compare/theme-patternfly-org@0.2.10...theme-patternfly-org@0.2.11) (2020-11-30) **Note:** Version bump only for package theme-patternfly-org diff --git a/packages/theme-patternfly-org/app.js b/packages/theme-patternfly-org/app.js index f9d0dcc572..b70273f61d 100644 --- a/packages/theme-patternfly-org/app.js +++ b/packages/theme-patternfly-org/app.js @@ -29,14 +29,25 @@ const SideNavRouter = () => { {Object.entries(routes) .map(([path, { Component, title, sources, katacodaLayout }]) => Component - ? } katacodaLayout={katacodaLayout} /> - : - } katacodaLayout={katacodaLayout} /> + ? } + katacodaLayout={katacodaLayout} + /> + : + } + katacodaLayout={katacodaLayout} + /> ) } diff --git a/packages/theme-patternfly-org/package.json b/packages/theme-patternfly-org/package.json index 3f1c5899af..7bc9347ba0 100644 --- a/packages/theme-patternfly-org/package.json +++ b/packages/theme-patternfly-org/package.json @@ -1,7 +1,7 @@ { "name": "theme-patternfly-org", "description": "A unified PatternFly and PatternFly-React theme.", - "version": "0.2.11", + "version": "0.3.0", "author": "Red Hat", "license": "MIT", "bin": { diff --git a/packages/theme-patternfly-org/scripts/tsDocgen.js b/packages/theme-patternfly-org/scripts/tsDocgen.js index f47e47a694..11316f5b7e 100644 --- a/packages/theme-patternfly-org/scripts/tsDocgen.js +++ b/packages/theme-patternfly-org/scripts/tsDocgen.js @@ -17,6 +17,11 @@ const annotations = [ regex: /@beta/, name: 'beta', type: 'Boolean' + }, + { + regex: /@propType\s+(.*)/, + name: 'type', + type: 'String' } ]; @@ -26,7 +31,9 @@ function addAnnotations(prop) { const match = prop.description.match(regex); if (match) { prop.description = prop.description.replace(regex, '').trim(); - prop[name] = match[2] || match[1] || true; + if (name) { + prop[name] = match[2] || match[1] || true; + } } }) } @@ -136,6 +143,7 @@ function tsDocgen(file) { props: Object.entries(parsed.props || {}) .map(normalizeProp) .map(addAnnotations) + .filter(prop => !prop.hide) .sort((p1, p2) => p1.name.localeCompare(p2.name)) })); } @@ -143,3 +151,4 @@ function tsDocgen(file) { module.exports = { tsDocgen }; + diff --git a/packages/theme-patternfly-org/scripts/webpack/getHtmlWebpackPlugins.js b/packages/theme-patternfly-org/scripts/webpack/getHtmlWebpackPlugins.js index 27ee07663d..33d0de04ed 100644 --- a/packages/theme-patternfly-org/scripts/webpack/getHtmlWebpackPlugins.js +++ b/packages/theme-patternfly-org/scripts/webpack/getHtmlWebpackPlugins.js @@ -41,7 +41,7 @@ async function getHtmlWebpackPlugins(options) { filename: 'sitemap.xml', templateParameters: { urls: Object.entries(routes) - .map(([path, { sources }]) => sources ? sources.map(source => source.slug) : path) + .map(([path, { sources }]) => [path, ...(sources || []).slice(1).map(source => source.slug)]) .flat() }, inject: false, @@ -60,7 +60,7 @@ async function getHtmlWebpackPlugins(options) { .map(([url, { sources = [], title, isFullscreen }]) => [ [url, { title, isFullscreen }], // Add pages for sources - ...sources.map(source => [source.slug, source]) + ...sources.slice(1).map(source => [source.slug, source]) ]) .flat() .sort(); diff --git a/packages/theme-patternfly-org/templates/mdx.js b/packages/theme-patternfly-org/templates/mdx.js index ead685c5c1..1f399b3c60 100644 --- a/packages/theme-patternfly-org/templates/mdx.js +++ b/packages/theme-patternfly-org/templates/mdx.js @@ -138,7 +138,7 @@ export const MDXTemplate = ({ {!isSinglePage && (
diff --git a/packages/v4/CHANGELOG.md b/packages/v4/CHANGELOG.md index 126d770a32..f24e4ba2c0 100644 --- a/packages/v4/CHANGELOG.md +++ b/packages/v4/CHANGELOG.md @@ -3,6 +3,134 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.2.104](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.103...patternfly-org-4@4.2.104) (2021-01-04) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.103](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.102...patternfly-org-4@4.2.103) (2020-12-21) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.102](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.101...patternfly-org-4@4.2.102) (2020-12-18) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.101](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.100...patternfly-org-4@4.2.101) (2020-12-16) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.100](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.99...patternfly-org-4@4.2.100) (2020-12-16) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.99](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.98...patternfly-org-4@4.2.99) (2020-12-16) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.98](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.97...patternfly-org-4@4.2.98) (2020-12-15) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.97](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.96...patternfly-org-4@4.2.97) (2020-12-15) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.96](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.95...patternfly-org-4@4.2.96) (2020-12-14) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.95](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.94...patternfly-org-4@4.2.95) (2020-12-14) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.94](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.93...patternfly-org-4@4.2.94) (2020-12-14) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.93](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.92...patternfly-org-4@4.2.93) (2020-12-09) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.92](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.91...patternfly-org-4@4.2.92) (2020-12-08) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.91](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.90...patternfly-org-4@4.2.91) (2020-12-08) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.90](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.89...patternfly-org-4@4.2.90) (2020-12-08) + +**Note:** Version bump only for package patternfly-org-4 + + + + + +## [4.2.89](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.88...patternfly-org-4@4.2.89) (2020-12-03) + +**Note:** Version bump only for package patternfly-org-4 + + + + + ## [4.2.88](https://github.com/patternfly/patternfly-org/compare/patternfly-org-4@4.2.87...patternfly-org-4@4.2.88) (2020-11-30) **Note:** Version bump only for package patternfly-org-4 diff --git a/packages/v4/package.json b/packages/v4/package.json index 4f8cc1e12c..a3da438511 100644 --- a/packages/v4/package.json +++ b/packages/v4/package.json @@ -2,7 +2,7 @@ "name": "patternfly-org-4", "description": "Documentation for PatternFly 4.", "private": true, - "version": "4.2.88", + "version": "4.2.104", "author": "Red Hat", "license": "MIT", "scripts": { @@ -17,10 +17,10 @@ "screenshots": "theme-patternfly-org screenshots" }, "dependencies": { - "@patternfly/react-docs": "5.10.72", + "@patternfly/react-docs": "5.12.20", "react": "^16.8.0", "react-dom": "^16.8.0", - "theme-patternfly-org": "^0.2.11" + "theme-patternfly-org": "^0.3.0" }, "devDependencies": { "fs-extra": "^9.0.0", diff --git a/packages/v4/patternfly-docs.source.js b/packages/v4/patternfly-docs.source.js index 6687472712..ff0ec1c8a1 100644 --- a/packages/v4/patternfly-docs.source.js +++ b/packages/v4/patternfly-docs.source.js @@ -33,14 +33,10 @@ module.exports = (sourceMD, sourceProps) => { const reactChartsPath = require .resolve('@patternfly/react-charts/package.json') .replace('package.json', 'src'); - const reactDatetimePath = require - .resolve('@patternfly/react-datetime/package.json') - .replace('package.json', 'src'); const reactPropsIgnore = '**/*.test.tsx'; sourceProps(path.join(reactCorePath, '/**/*.tsx'), reactPropsIgnore); sourceProps(path.join(reactTablePath, '/**/*.tsx'), reactPropsIgnore); sourceProps(path.join(reactChartsPath, '/**/*.tsx'),reactPropsIgnore); - sourceProps(path.join(reactDatetimePath, '/**/*.tsx'),reactPropsIgnore); // React MD sourceMD(path.join(reactCorePath, '/**/examples/*.md'), 'react'); @@ -53,9 +49,6 @@ module.exports = (sourceMD, sourceProps) => { // Charts MD (no demos yet) sourceMD(path.join(reactChartsPath, '/**/examples/*.md'), 'react'); - // Datetime MD (no demos yet) - sourceMD(path.join(reactDatetimePath, '/**/examples/*.md'), 'react'); - // Release notes sourceMD(require.resolve('@patternfly/patternfly/RELEASE-NOTES.md'), 'html'); sourceMD(require.resolve('@patternfly/react-docs/RELEASE-NOTES.md'), 'react'); diff --git a/packages/v4/src/content/contribute/about/about-flowchart.png b/packages/v4/src/content/contribute/about/about-flowchart.png index 67ac03a453..82b303a0a0 100644 Binary files a/packages/v4/src/content/contribute/about/about-flowchart.png and b/packages/v4/src/content/contribute/about/about-flowchart.png differ diff --git a/packages/v4/src/content/contribute/about/about.md b/packages/v4/src/content/contribute/about/about.md index ee646cd497..2d9372802d 100644 --- a/packages/v4/src/content/contribute/about/about.md +++ b/packages/v4/src/content/contribute/about/about.md @@ -5,40 +5,22 @@ section: contribute The PatternFly open source community depends on contributions to help our design system grow and evolve. We encourage everyone, regardless of background, to make suggestions for enhancements, contribute new design patterns and ideas, help identify bugs in code, and more. With your help, we can stay on top of the latest and greatest implementation solutions. -PatternFly has a few repos you can contribute to: -- [patternfly](https://github.com/patternfly/patternfly) and [patternfly-react](https://github.com/patternfly/patternfly-react): Main repos for code contributions -- [patternfly-design](https://github.com/patternfly/patternfly-design): Main repo for design contributions -- [patternfly.org](https://github.com/patternfly/patternfly-org): Main repo for PatternFly website content and documentation contributions - -## Process -The following is an overview of the contribution process. As a contributor, you are not expected to complete all of these stages. We appreciate your contribution at whichever step you decide to begin with. - -__1. Discover__ - - Create an issue that includes: - - Requirements - - Use cases - - Wireframes - - Documentation - - The PF team will review and prioritize your issue, taking into account scope and technical constraints - - If accepted, your feature request will be placed on the PatternFly roadmap and moved to design - - -__2. Design__ - - Propose a design that includes - - Visual mockups - - Interaction documentation - - The PF team will review and prioritize the design and move it to implementation - - -__3. Implement__ - - Introduce any new styles to Core and follow up with PatternFly-React to define the behavior - - The PF team will review the implementation ensuring it satisfies the requirements - - -__4. Document__ - - Add the description of the component to the PF site - - Add the design guidelines of the component to the PF site - - The PF team will review the PR and make it available for consumption +## PatternFly on GitHub +PatternFly has a few repos you can contribute to: +- [patternfly](https://github.com/patternfly/patternfly): For core HTML and CSS contributions. All component contributions should start in Core. +- [patternfly-react](https://github.com/patternfly/patternfly-react): For React contributions. +- [patternfly-org](https://github.com/patternfly/patternfly-org): For PatternFly website content and design documentation contributions. + +## Requesting new features and enhancements +PatternFly is built on the needs of our community of stakeholders. To request a new feature or an enhancement to an existing feature, the first step is to open a new issue in the [patternfly-design repo](https://github.com/patternfly/patternfly-design/issues). Your issue should include the following: +* Requirements +* Use cases +* Preliminary designs (if available) +* Project timelines (dates needed, etc.) + +The PatternFly team will review and prioritize your issue, taking into account scope and technical constraints. If accepted, your feature request will be placed on the [PatternFly feature roadmap](https://github.com/orgs/patternfly/projects/4?fullscreen=true) and queued to the PatternFly design backlog. After this, the PatternFly design team will work with you to create a design proposal and facilitate reviews. + +### PatternFly feature lifecycle ![Contribution guide](./about-flowchart.png) diff --git a/packages/v4/src/content/contribute/design-guidelines/design-guidelines.md b/packages/v4/src/content/contribute/design-guidelines/design-guidelines.md index d1e188a4dc..f6ce2fe2d0 100644 --- a/packages/v4/src/content/contribute/design-guidelines/design-guidelines.md +++ b/packages/v4/src/content/contribute/design-guidelines/design-guidelines.md @@ -62,7 +62,7 @@ If you’re creating a new PR: If you’re editing an existing PR: -1. Type git fetch upstream and press **Enter**. +1. Type `git fetch upstream` and press **Enter**. 2. Type `git checkout [name of your existing branch]` and press **Enter**. For example, if your existing branch name is iss2020, you would type `git checkout iss2020`. 3. If GitHub shows merge conflicts, type `git pull upstream master` and press **Enter**. 4. Edit files by typing `code .` and pressing **Enter**. This will open your Visual Studio Code (if this doesn’t work, you can manually open the VIsual Studio Code app). @@ -149,7 +149,7 @@ To ensure high-quality images in the final documentation, export sketch images a Exporting as PNG x2 ensures better image quality, but it also doubles physical size (WxL). To maintain good image quality while restricting image width to the original artboard width, add images to Markdown using the following HTML tag: -`accessibility text describing the image` +`accessibility text describing the image` The image should display in the visual designer of the Markdown tool you’re using. If the example does not display, there might be a problem with your code. Check that the element is correct and did not turn into normal quotations while copy/pasting. @@ -165,7 +165,7 @@ Once you’re finished making changes, stage them in Visual Studio Code: stage changes option in Microsoft Visual Studio Code -3. Return to your Terminal application to commit the changes: +3. Return to your terminal application to commit the changes: a. Type `git status` and press **Enter**. This should list the same files that were listed in your “changes” tab in VS. If there aren’t any errors, continue to the next step. @@ -190,7 +190,7 @@ On GitHub, create a pull request to submit your changes: 5. Tag [mmenestr](https://github.com/mmenestr) to initiate a final review. 6. Submit the PR. -If your PR has merge conflicts in Github: +If your PR has merge conflicts in GitHub: 1. Return to your terminal and `type git fetch upstream` and press **Enter**. 2. Type `git rebase upstream/master` and ress **Enter**. diff --git a/packages/v4/src/content/contribute/design/design.md b/packages/v4/src/content/contribute/design/design.md index be77552b81..0ada0a4932 100644 --- a/packages/v4/src/content/contribute/design/design.md +++ b/packages/v4/src/content/contribute/design/design.md @@ -4,23 +4,16 @@ section: contribute --- ## Ways to contribute -Whether you have an existing design or requirements for a new feature, the first step is to open a New Feature Request issue. Your request will be reviewed and placed on the PatternFly roadmap. After this, the PatternFly design team will work with you to complete your design proposal and facilitate reviews. As a designer, here are some of the contributions you can make: -### New feature -Work with PatternFly to design a new feature for your product and contribute it back to the system simultaneously. +### New feature or enhancement +Work with the PatternFly design team to design a new feature to be implemented in the PatternFly library. __Example__ *I want to design and contribute a new design pattern that allows a user to favorite or like an item in a data list.* -### Enhancement -Improve or update an existing PatternFly component or design pattern. - -__Example__ -*I want to add a compact/expand toggle to the list view.* - -You may also open an issue to propose a new design guideline page or update an existing guideline, and work with the PatternFly team and stakeholders to author and publish your new content. +The PatternFly design team is comprised of a small number of visual and interaction designers who define the visual look and feel of the PatternFly library and provide direction to developers when implementing new features and enhancements. The team works following an agile process. All work is tracked and managed via a [Zenhub project board](https://app.zenhub.com/workspaces/pf4-design-workspace-5b2142ff9499cb7cdaf1e632/board?repos=61041252&showPRs=false&showClosed=false&showLabels=false&showEstimates=false&showMilestones=false&showEpics=false). You can look at the Design Backlog column on the project board to see issues needing design help or [open a new issue](https://github.com/patternfly/patternfly-design/issues) to propose a design. ### Design guideline Design guidelines appear on the website and help designers to apply PatternFly components in their designs. They are use case and solutions driven. @@ -28,22 +21,14 @@ Design guidelines appear on the website and help designers to apply PatternFly c __Example__ *I want to add guidelines for how to apply labels and tags to organize objects.* -## Lifecycle +You may open an issue in our [patternfly-org repo](https://github.com/patternfly/patternfly-org) to propose a new design guideline page or update an existing guideline, and work with the PatternFly team and stakeholders to author and publish your new content. Visit the [Design guidelines page](https://www.patternfly.org/v4/contribute/design-guidelines) for detailed instructions about how to author and contribute design guideline content. -Before you begin the contribution process, follow [these guidelines](/get-started/design) to get your environment setup. +### PatternFly design kit +The [PatternFly design kit](https://www.patternfly.org/v4/get-started/design) is a [Sketch](https://www.sketch.com) library that makes it easy for designers to create high-fidelity mockups using PatternFly components. -Follow these steps and this [template format](https://documentcloud.adobe.com/link/track?uri=urn%3Aaaid%3Ascds%3AUS%3A28fd970d-8b77-4008-b598-b2f629bda589) to submit your designs: - -__1. Create an issue__ - - Navigate to the [PatternFly page](https://github.com/patternfly) on Github and go to the [feature board](https://github.com/orgs/patternfly/projects/3) - - Open an issue for a new feature or comment on an existing issue for an enhancement - -__2. Propose a design__ - - Create a proposal for the new pattern or enhancements (be sure to re-use existing components in the design when applicable) - - Attach any design assets such as wireframes or mockups to help clarify the design intent and behavior - - Document all interactions within the desing clearly (you can leverage the Sketch library in addition to prototyping tools like InVision, Marvel, etc.) +__Example__ +*I want to implement a new component in the PatternFly Sketch symbol library.* -__3. Submit your designs__ - - The PatternFly team will help you throughout this process. If accepted, you will be assigned a buddy to assist you throughout the rest of the process +To open an issue or browse existing issues, visit the [patternfly-design-kit repo](https://github.com/patternfly/patternfly-design-kit/) on GitHub. -![Design contribution lifecycle flowchart](./design-flowchart.png) +**If you are interested in contributing to any of the projects above, feel free to reach out to us on the patternfly-design channel on [Slack](https://slack.patternfly.org/).** diff --git a/packages/v4/src/content/contribute/develop/develop.md b/packages/v4/src/content/contribute/develop/develop.md index 04444e6048..664c2f227b 100644 --- a/packages/v4/src/content/contribute/develop/develop.md +++ b/packages/v4/src/content/contribute/develop/develop.md @@ -4,16 +4,25 @@ section: contribute --- ## Ways to contribute -1. Pick an open issue in the [patternfly repo](https://github.com/patternfly/patternfly/issues) and make a comment that you would like to contribute -2. Pick up open issue in [patternfly-react](https://github.com/patternfly/patternfly-react/issues) backlog -3. File a bug: + +As a developer, here are some of the contributions you can make: + +### Pick up an existing HTML/CSS issue +Pick an open issue in the [patternfly repo](https://github.com/patternfly/patternfly/issues) and make a comment that you would like to contribute + +### Pick up an existing React issue +Pick an open issue in the [patternfly-react repo](https://github.com/patternfly/patternfly-react/issues) and make a comment that you would like to contribute + +### File a bug - View the documentation for the component - - Search open issues in CSS & React to see if exists already - - If the bug is present in only the React implementation, create a bug on that repo - - If the bug can be seen on both the React and CSS side, it should be created on the CSS repo. + - Search open issues in the [patternfly](https://github.com/patternfly/patternfly/issues) and [patternfly-react](https://github.com/patternfly/patternfly-react/issues) repos to see if a related issue exists already + - If the bug is present in only the React implementation, create a bug in the [patternfly-react repo](https://github.com/patternfly/patternfly-react/issues) + - If the bug can be seen on both the React and HTML/CSS side, it should be created on the [patternfly repo](https://github.com/patternfly/patternfly/issues) - Mention which project the bug was noticed in and if there is a deadline that the fix is needed for -[Core contribution guidelines](https://github.com/patternfly/patternfly#guidelines-for-css-development) & [React contribution guidelines](https://github.com/patternfly/patternfly-react/blob/master/CONTRIBUTING.md#contribution-process) +## Detailed contribution instructions +- [Core contribution guidelines](https://github.com/patternfly/patternfly#guidelines-for-css-development) +- [React contribution guidelines](https://github.com/patternfly/patternfly-react/blob/master/CONTRIBUTING.md#contribution-process) ## Lifecycle ![Development contribution lifecycle flowchart](./developer-flowchart.png) diff --git a/packages/v4/src/content/contribute/develop/developer-flowchart.png b/packages/v4/src/content/contribute/develop/developer-flowchart.png index 97ecea6a4e..249790f60b 100644 Binary files a/packages/v4/src/content/contribute/develop/developer-flowchart.png and b/packages/v4/src/content/contribute/develop/developer-flowchart.png differ diff --git a/packages/v4/src/content/design-guidelines/components/clipboard-copy/clipboard-copy.md b/packages/v4/src/content/design-guidelines/components/clipboard-copy/clipboard-copy.md index 9eb695279b..2ccbe93bc4 100644 --- a/packages/v4/src/content/design-guidelines/components/clipboard-copy/clipboard-copy.md +++ b/packages/v4/src/content/design-guidelines/components/clipboard-copy/clipboard-copy.md @@ -2,4 +2,50 @@ id: Clipboard copy section: components --- -A **clipboard copy** component is used when you want to copy a line or a block of text to the clipboard to paste it into another location. This is useful for copying system generated key values, for example, to both reduce user effort and the occurrence of entry errors. +The **clipboard copy** component allows users to quickly and easily copy content to their clipboard. + +## Elements +Clipboard copy has three main components. + +Elements of the clipboard copy component + +1. **Copy content:** the content that will be copied to the user’s clipboard. +2. **Clipboard button:** completes the copy action when clicked. +3. **Tooltip:** informs users that clicking the button will copy the content to their clipboard, or that the content has successfully been copied. + +## Usage +Use clipboard copy to allow users to quickly and easily copy content to their clipboard to paste it in another location. Copy content can vary but is usually a line or block of text or code. This is useful for copying system generated key values, to both reduce user effort and the occurrence of entry errors, for example. The clipboard copy has a few features that can be used to customize the component to fit different use cases. + + +### Features +The clipboard copy component can be editable or read-only and both types can optionally be expandable. + +**Editable** + +An editable clipboard copy allows users to copy an editable text input box. + +Example of an editable clipboard copy component + +**Read-only** + +A read-only clipboard copy only allows the user to copy a predefined line of text that is not editable by the user. + +Example of a read-only clipboard copy component + +**Expandable** + +An expandable clipboard copy allows for long lines of text to be stored in an expansion panel. Expanding the clipboard copy allows the user to view the full string that they can copy. + +Example of an expandable clipboard copy component + + +### Clipboard copy in context +Clipboard copy can be used almost anywhere in a UI. It is commonly used in forms and definition lists. + +**Clipboard copy in a form** + +Example of clipboard copy in a form + +**Clipboard copy in a description list** + +Example of clipboard copy in a description list diff --git a/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/clipboard-copy-elements.png b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/clipboard-copy-elements.png new file mode 100644 index 0000000000..09c11ea362 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/clipboard-copy-elements.png differ diff --git a/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/description-list.png b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/description-list.png new file mode 100644 index 0000000000..cad1005266 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/description-list.png differ diff --git a/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/editable.png b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/editable.png new file mode 100644 index 0000000000..387d1ebfff Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/editable.png differ diff --git a/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/expandable.png b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/expandable.png new file mode 100644 index 0000000000..3104656415 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/expandable.png differ diff --git a/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/form.png b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/form.png new file mode 100644 index 0000000000..78c49fe660 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/form.png differ diff --git a/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/read-only.png b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/read-only.png new file mode 100644 index 0000000000..f1c92a2811 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/clipboard-copy/img/read-only.png differ diff --git a/packages/v4/src/content/design-guidelines/components/drawer/drawer.md b/packages/v4/src/content/design-guidelines/components/drawer/drawer.md index 27f441f7c5..4228db8f8c 100644 --- a/packages/v4/src/content/design-guidelines/components/drawer/drawer.md +++ b/packages/v4/src/content/design-guidelines/components/drawer/drawer.md @@ -2,6 +2,7 @@ id: Drawer section: components --- + A **drawer** is a sliding panel that enters from the right edge of the viewport. It can be configured to either overlay content on a page or create a sidebar by pushing that content to the left. ## Usage @@ -12,4 +13,11 @@ Drawers appear as a sliding panel that can be attached to the bottom or right ed In addition to primary-details, the drawer component is frequently used in [notification drawers](/components/notification-drawer) or terminal windows. +### Splitter in a drawer + +A **splitter** allows you to create a layout with resizable panes. The orientation of a splitter can be set to **vertical** or **horizontal**. + +### Usage +Add a splitter to a drawer if you need to resize the width or height of a panel to give content more space. If data shown in a drawer has enough space, then you don’t need to use a splitter. + \ No newline at end of file diff --git a/packages/v4/src/content/design-guidelines/components/drawer/img/splitter-drawer.png b/packages/v4/src/content/design-guidelines/components/drawer/img/splitter-drawer.png new file mode 100644 index 0000000000..fcd16328e4 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/drawer/img/splitter-drawer.png differ diff --git a/packages/v4/src/content/design-guidelines/components/hint/hint.md b/packages/v4/src/content/design-guidelines/components/hint/hint.md index 6050f81c4b..4929b21e60 100644 --- a/packages/v4/src/content/design-guidelines/components/hint/hint.md +++ b/packages/v4/src/content/design-guidelines/components/hint/hint.md @@ -3,15 +3,16 @@ id: Hint section: components --- -A **hint** provides a one-step reminder, explanation, or call to action for a page or modal. +A **hint** is in-app messaging that provides a one-step reminder, explanation, or call to action for a page or modal. -## Usage +For information on other forms of on-screen help, see [Tooltip](/components/tooltip/design-guidelines) and [Popover](/components/popover/design-guidelines). -Example of a hint in a full-page +## Usage -Use hints to help the user get more out of the interface. Hints can provide information about an interaction or prerequisite step that might not be obvious otherwise. +Use hints to share information about an interaction or prerequisite step that might not be immediately obvious to the user. -### Other forms of on-screen help +blue hint at the top of an application page -1. [Popovers](/components/popover/design-guidelines) -2. [Tooltips](/components/tooltip/design-guidelines) +## Content +Use full sentences with punctuation. +Include relevant links to documentation when necessary. diff --git a/packages/v4/src/content/design-guidelines/components/hint/img/hint-layout.png b/packages/v4/src/content/design-guidelines/components/hint/img/hint-layout.png new file mode 100644 index 0000000000..2046c00587 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/hint/img/hint-layout.png differ diff --git a/packages/v4/src/content/design-guidelines/components/login-page/login-page.md b/packages/v4/src/content/design-guidelines/components/login-page/login-page.md index 226f868434..6649d98853 100644 --- a/packages/v4/src/content/design-guidelines/components/login-page/login-page.md +++ b/packages/v4/src/content/design-guidelines/components/login-page/login-page.md @@ -83,7 +83,7 @@ Please refer to branding guidelines when using logos for social login page. Exam * [Facebook brand guidelines](https://en.facebookbrand.com/guidelines/brand) * [Twitter brand guidelines](https://about.twitter.com/en_us/company/brand-resources.html) -* [Github brand guidelines](https://github.com/logos) +* [GitHub brand guidelines](https://github.com/logos) * [Stack Exchange brand guidelines](https://stackexchange.com/legal/trademark-guidance) * [Google brand guidelines](https://developers.google.com/identity/branding-guidelines) * [LinkedIn brand guidelines](https://brand.linkedin.com/) diff --git a/packages/v4/src/content/design-guidelines/components/page/img/masthead.png b/packages/v4/src/content/design-guidelines/components/page/img/masthead.png new file mode 100644 index 0000000000..2ab1d956c4 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/page/img/masthead.png differ diff --git a/packages/v4/src/content/design-guidelines/components/page/img/page-horizontal-nav.png b/packages/v4/src/content/design-guidelines/components/page/img/page-horizontal-nav.png new file mode 100644 index 0000000000..a8c34bb482 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/page/img/page-horizontal-nav.png differ diff --git a/packages/v4/src/content/design-guidelines/components/page/img/page-sections.png b/packages/v4/src/content/design-guidelines/components/page/img/page-sections.png new file mode 100644 index 0000000000..8802048758 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/page/img/page-sections.png differ diff --git a/packages/v4/src/content/design-guidelines/components/page/img/page-vertical-nav.png b/packages/v4/src/content/design-guidelines/components/page/img/page-vertical-nav.png new file mode 100644 index 0000000000..f56ffe16ab Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/page/img/page-vertical-nav.png differ diff --git a/packages/v4/src/content/design-guidelines/components/page/page.md b/packages/v4/src/content/design-guidelines/components/page/page.md index 579e9e7004..4abab5ec12 100644 --- a/packages/v4/src/content/design-guidelines/components/page/page.md +++ b/packages/v4/src/content/design-guidelines/components/page/page.md @@ -2,4 +2,58 @@ id: Page section: components --- -A **page** component is used to create the basic structure of a page with either vertical or horizontal navigation. + +The **page** component is used to define the basic layout of a page with either vertical or horizontal navigation. + +## Basic layouts +PatternFly includes a flexible layout system for defining pages. Page layouts are defined using page sections as explained below. While the layout system is flexible, you should adhere to the guidelines for common elements like the masthead and page header to maintain consistency across applications. + +### Page sections +Page sections allow you to define areas on a page to group content. The header, body, and footer on a page are examples of page sections. Page sections have 24px padding on left and right edges or no padding to allow the contents to extend to the edge of a page. At screen sizes smaller than 1200px, the left/right padding is reduced to 16px to create a tighter layout. Page sections can also be made sticky such that they will remain visible at the top or bottom of the viewport when the page scrolls. This is useful for creating sticky headers, footers, or other elements. + +The basic layout of a page differs depending on whether your application uses vertical or horizontal primary navigation as illustrated below. + +### Page with vertical navigation + +page with vertical navigation + +**1. Masthead:** The masthead provides a consistent header for every page in your application. + +**2. Navigation:** This is your primary navigation. It should be consistent across pages. See the [Navigation design guidelines](/components/navigation/design-guidelines) for more information about navigation options and usage. + +**3. Breadcrumb (optional):** When breadcrumbs are included, they should be the topmost element in the header section. When breadcrumbs are included on a page, the top padding is reduced from 24px to 16px. See the [Breadcrumb design guidelines](/components/breadcrumb/design-guidelines) for more information about breadcrumb usage. + +**4. Page header:** All pages should have a header section. The height of the header will vary to fit the content. We recommend keeping information in the header area brief to consume as little space as possible. The page header should contain the page title to help orient the user and an optional description to describe the contents of the page. You may optionally apply the `pf-m-sticky-top` modifier to the header section to create a sticky page header and prevent its content from scrolling off the page. + +**5. Body section:** Your main page content goes here. The body section can have a light gray `--pf-global--BackgroundColor--200` or white background depending on the content it will contain. The default padding all around the page body should be 24px in all directions. + +**6. Footer section (optional):** You can optionally define a footer section for a page. You may optionally apply the `pf-m-sticky-bottom` modifier to the footer section to create a sticky page footer and prevent its content from scrolling off the page. + +### Page with horizontal navigation + +page with horizontal navigation + +When using a horizontal primary navigation, the left-hand sidebar is removed and the navigation is placed inline with other masthead elements. All other page elements remain the same. + +## Masthead +The masthead contains global properties such as logotype, navigation and settings in an organized fashion and it is accessible from all parts of the application. All pages should share a common masthead. + +masthead + +**1. Show/hide menu:** The `fa-bars` icon at the left of the masthead provides a way for users to show or hide the vertical navigation. It is not included when horizontal navigation is being used. At large viewport (desktop) sizes, navigation is shown, by default, and the user can click this icon to hide it and expand the content area. Once hidden, the user can click the icon again to reveal it. At small viewport (tablet and phone) sizes, the vertical navigation will be hidden by default and the user must use this control to open the menu. + +**2. Logotype:** The logotype area should clearly display the application name and the application logo if applicable. It is common to link the logotype to the application’s homepage. It is recommended to have the application name in .svg format for better performance. + +**3. Utility items:** Place any items in the utility area that you want to have accessible from all pages in the application. Utility items are right aligned and placed to the left of the user menu. The following are common items ordered from left to right. All items are optional depending on the needs of your application. + +* **Notification badge:** Display a [notification badge](/components/notification-badge) to alert the user to incoming notifications. Clicking on the badge should open a [notification drawer](/components/notification-drawer), if used, or take the user to another view where they can review recent notifications. If used, the notification badge should always be the leftmost item in the utility area. + +* **Application specific item(s):** Applications may include additional utility items in the masthead. These items should expose tasks or information that are meaningful to users at a global level. + +* **Application launcher:** When switching between applications is supported, an [application launcher](/components/application-launcher) component can be inserted in the masthead to provide that capability. + +* **Settings:** The settings menu contains ways to configure and customize an application. Interacting with settings either takes users to a settings area or reveals a dropdown menu with more options. The settings menu is represented by the `fa-cog` icon. + +* **Help:** The help item reveals a dropdown menu. The menu items may include documentation links available to users, links to customer support resources, and/or instructions on how to get support. If the application has an [about modal](/components/about-modal), it should also be accessed here. The help menu is represented by the `pficon-pf-help` icon. + +**4. User menu:** The user menu is always the right-most item in the masthead. It includes an [avatar](/components/avatar) and the username of the currently logged in user. The dropdown items may vary based on user settings and permissions available. Common items to include are: User name, Account ID or Account management. This section should always include a Log out option at the bottom of the dropdown list. If there is a need to allow users to change application display language, it should appear in this dropdown menu as well. diff --git a/packages/v4/src/content/design-guidelines/components/pagination/pagination.md b/packages/v4/src/content/design-guidelines/components/pagination/pagination.md index 6583d9bd4b..8e3a1c8503 100644 --- a/packages/v4/src/content/design-guidelines/components/pagination/pagination.md +++ b/packages/v4/src/content/design-guidelines/components/pagination/pagination.md @@ -10,11 +10,11 @@ Add pagination above and below content views so that users can easily navigate a **1. Top pagination:** Always right-align pagination in the top toolbar, above content views. -**2. Bottom pagination:** Right-align pagination below content views, too. +**2. Bottom pagination:** Right-align pagination below content views, too. If you want the bottom pagination to be sticky so it does not scroll off the page when the content is taller that the viewport, place the pagination in a footer page section and apply the `pf-m-sticky-bottom` modifier section to create a sticky page footer. ## Full pagination -Use full pagination unless you're restricted to a narrow workspace, then use compact pagination. Full pagination occupies more toolbar territory, so you'll have limited room for other items like bulk selectors, buttons, filters, or input fields. +Use full pagination unless you're restricted to a narrow workspace, then use compact pagination. Full pagination occupies more toolbar territory, so you'll have limited room for other items like bulk selectors, buttons, filters, or input fields. [Overflow menus](/components/toolbar/design-guidelines#overflow-menu) allow you to incorporate these toolbar actions using less horizontal space. Toolbar actions automatically form into an overflow menu at specific breaking points. Learn how to customize these breakpoints in our [Toolbar](/components/toolbar/design-guidelines) documentation. @@ -32,7 +32,7 @@ Mobile full pagination in toolbar Example of pagination on mobile table view -**1. Items in view:** At this screen size, the top toolbar only shows the item count to indicate items currently in view. It hides all other pagination controls. +**1. Items in view:** At this screen size, the top toolbar only shows the item count to indicate items currently in view. It hides all other pagination controls. **2. Full pager:** Supplies the same pagination options as the desktop full pager, but in the bottom toolbar. @@ -46,4 +46,4 @@ Desktop compact pagination in toolbar **1. Items in view:** Allows the user to select the item count (number of listed items) per page, as seen in full pagination. -**2. Compact pager:** Supplies the user with page-back and page-next controls only. \ No newline at end of file +**2. Compact pager:** Supplies the user with page-back and page-next controls only. diff --git a/packages/v4/src/content/design-guidelines/components/popover/img/Popover-form.png b/packages/v4/src/content/design-guidelines/components/popover/img/Popover-form.png new file mode 100644 index 0000000000..d42f141c5b Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/popover/img/Popover-form.png differ diff --git a/packages/v4/src/content/design-guidelines/components/popover/img/popover-email.png b/packages/v4/src/content/design-guidelines/components/popover/img/popover-email.png new file mode 100644 index 0000000000..c7f027c268 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/popover/img/popover-email.png differ diff --git a/packages/v4/src/content/design-guidelines/components/popover/img/popover-example.png b/packages/v4/src/content/design-guidelines/components/popover/img/popover-example.png new file mode 100644 index 0000000000..965bb9f272 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/popover/img/popover-example.png differ diff --git a/packages/v4/src/content/design-guidelines/components/popover/popover.md b/packages/v4/src/content/design-guidelines/components/popover/popover.md index 0cba10a41a..9e0f89bf40 100644 --- a/packages/v4/src/content/design-guidelines/components/popover/popover.md +++ b/packages/v4/src/content/design-guidelines/components/popover/popover.md @@ -8,63 +8,44 @@ related: [ ] --- -A **popover** displays content in a new window that overlays the current page. Unlike a modal, a popover does not block the current page. By default, clicking anywhere outside of the popover will dismiss it. - -## Usage - -Popovers provide helpful contextual information at the moment users need it. - -Example of popover in a form - -Use popovers to anticipate and answer questions for the user, help explain unfamiliar terms, or provide context around a task. You may also link to further information inside a popover. - -Always use a question-circle icon when using the popover pattern to define a term or explain a concept. When in the UI, the default icon color is grey. Once the user hovers or clicks over the icon to open the popover, the icon turns black. - -Popover icon colors depending on state - -You may also use popovers with link text. For example, when there is no obvious UI element to add a popover to, you may pose a question, preceded with a question-circle icon to alert the user that they can find more information by clicking on it. - -Popover text should adopt link button styling and always be preceded by a question-circle icon, which should be blue, following the link button styling. Clicking on the link text should trigger a popover that provides an answer to the question posed in the hint text. - -Popover link text in UI - +A **popover** is in-app messaging that provides more information on specific product areas. Popovers display content in a new window that overlays the current page. Unlike modals, popovers don’t block the current page. Popovers are triggered by a click and dismissed in one of the following ways: +- The user clicks the exit icon. +- The user clicks anywhere on the screen outside the popover. +- The user clicks an action button inside the popover. (Note: This won't always close the popover; it depends on the action button.) -* The user clicks the exit icon -* The user clicks an action button inside the popover -* The user clicks anywhere on the screen outside the popover +popover example with placeholder text for the title and informational text -Never hide critical information in a popover. Critical information is any information the user *must have and will always need* in order to complete a task. +For information on other forms of on-screen help, see [Tooltip](/components/tooltip/design-guidelines) and [Hint](/components/hint/design-guidelines). -**Common use cases** -* On form field labels -* On titles, headers, other kinds of labels -* In a table column header - -### When to use a tooltip versus a popover +## Usage +Popovers are commonly used on form field labels, page titles or headings, or table column headings. Use popovers to: +- Anticipate and answer questions for the user. +- Help explain unfamiliar terms. +- Provide context around a task. -Both tooltips and popovers allow users to get more information in context. However, they differ in two ways: - - 1. Tooltips are used for identification purposes, while popovers are used for added description or information in context. - 2. Tooltips appear on hover, while popovers appear on click +popover for an email address form field explaining what the email address is used for -**Use tooltips for:** -* Short descriptions of an item or to identify an item, like an icon button -* Content that is no longer than 1 or 2 lines +When using a popover to define a term or explain a concept, use a gray question-circle icon. Upon hover or click, the icon turns black. -Examples of tooltip use +Popover icon colors depending on state -**Use popovers for:** +To provide more information to a user without an accompanying UI element, you can add a popover to a linked question. -* Longer descriptions -* Formatted text -* When you would like your in-context help to include pictures, actions, or links +popover for a linked question -Examples of popover use +Use link button styling for the linked question, and add a blue question-circle icon before it. Clicking the link text triggers a popover, which answers the linked question. +## Tooltips versus popovers +Both [tooltips](/components/tooltip/design-guidelines) and popovers provide more information in context for users. However, they’re different in a few ways: -### Other forms of on-screen help +- Tooltips are used for identification purposes, while popovers are used for added description or information in context. +- Tooltips contain short descriptions or labels, while popovers contain longer descriptions, formatted text, and optional images or links. +- Tooltips appear on hover, while popovers appear on click. -1. [Hints](/components/hint/design-guidelines) -2. [Tooltips](/components/tooltip/design-guidelines) +## Content +- Popover copy is longer than tooltip copy, but it should still be concise. Aim for 1–3 sentences. +- Write in full sentences with punctuation. +- Include relevant links to documentation when necessary. +- Use popovers for additional information. Don’t use popovers for information critical to a user completing a task, such as password character requirements. diff --git a/packages/v4/src/content/design-guidelines/components/switch/img/switch.png b/packages/v4/src/content/design-guidelines/components/switch/img/switch.png index 4239f033ba..6649ba21ea 100644 Binary files a/packages/v4/src/content/design-guidelines/components/switch/img/switch.png and b/packages/v4/src/content/design-guidelines/components/switch/img/switch.png differ diff --git a/packages/v4/src/content/design-guidelines/components/switch/switch.md b/packages/v4/src/content/design-guidelines/components/switch/switch.md index 8218132bd2..0525a019b8 100644 --- a/packages/v4/src/content/design-guidelines/components/switch/switch.md +++ b/packages/v4/src/content/design-guidelines/components/switch/switch.md @@ -6,31 +6,39 @@ A **switch** toggles the state of a setting (between on and off). Switches and [ ## Usage -It is assumed that when a user toggles a switch, the change will save automatically without the need for additional action (like clicking a “Save” button). +It is assumed that when a user toggles a switch, the change will save automatically without the need for additional action (like clicking a "Save" button). -Examples of switch buttons +A side-by-side comparison of a basic switch and a switch without a label. The basic switch uses both a form label and a switch label, while the switch without a label uses a form label and replaces the switch label with a checkmark inside the switch itself + +1. **Form label:** Indicates what the switch turns on or off +2. **Switch label:** Indicates whether the switch itself is turned on or off +3. **Switch without label:** Indicates the state of a switch with a checkmark inside the switch itself, used in place of a switch label + +Both switch types display their state (on or off) through different methods and locations. A basic switch communicates its state with an exterior switch label added to its right, while a switch without a label uses a checkmark to communicate its state from inside the switch itself. **General guidelines** -* Add a label in front of your switch to specify what is being switched on or off (for example, wi-fi or bluetooth). -* Don’t use a switch if the options you’re presenting to the user are anything other than “on” or “off.” Instead, use radio buttons. -* Depending on your use case, you may want to add labels to your switches for added clarity, like “on” and “off” to indicate to the user what setting they’ve switched to. +* Use a basic switch by default unless space is limited, then use a [switch without a label](/components/switch/react#without-label). +* Add a form label in front of your switch to specify what setting a switch turns on or off, such as *Wi-fi* or *Bluetooth*. +* If you're using a basic switch, add switch labels to clarify between toggled settings, such as *On* and *Off*. +* Don’t use a switch if the options you’re presenting to the user are anything other than “on” or “off.” Instead, use [radio buttons](/components/radio/design-guidelines). + ### When to use switches versus checkboxes -The main difference between a switch and a checkbox is that a switch changes an option and saves it simultaneously, while checkboxes require a separate action such as pressing a “Submit” or “Save” button to save the selection. +A switch changes an option and saves it simultaneously, while checkboxes require a separate action to save the selection, such as pressing a “Submit” or “Save” button. -**Here are some guidelines for when to use a switch versus a checkbox:** +**Follow these guidelines for when to use a switch versus a checkbox:** -* Use checkboxes when the options do not save automatically and require the user to perform an additional action to save changes (in this case, pressing the “Save changes” button). +* Use checkboxes when options do not save automatically and require the user to perform an additional action to save changes (in this case, pressing the “Save changes” button). - Example 1 of do and don'ts for checkbox vs switch usee + Example 1 of do's and don'ts for using a checkbox vs. a switch * Use a switch for situations where you are turning a series of one or more independent options on or off. - Example 2 of do and don'ts for checkbox vs switch usee + Example 2 of do's and don'ts for using a checkbox vs. a switch * Use checkboxes when you may have an intermediate state where you can select all, none, or some actions. - Example 3 of do and don'ts for checkbox vs switch usee \ No newline at end of file + Example 3 of do's and don'ts for using a checkbox vs. a switch diff --git a/packages/v4/src/content/design-guidelines/components/toggle-group/img/elements-items.png b/packages/v4/src/content/design-guidelines/components/toggle-group/img/elements-items.png new file mode 100644 index 0000000000..6350a964d4 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/toggle-group/img/elements-items.png differ diff --git a/packages/v4/src/content/design-guidelines/components/toggle-group/img/form-view.png b/packages/v4/src/content/design-guidelines/components/toggle-group/img/form-view.png new file mode 100644 index 0000000000..304ef7bd63 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/toggle-group/img/form-view.png differ diff --git a/packages/v4/src/content/design-guidelines/components/toggle-group/img/multi-select.png b/packages/v4/src/content/design-guidelines/components/toggle-group/img/multi-select.png new file mode 100644 index 0000000000..39835ee53b Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/toggle-group/img/multi-select.png differ diff --git a/packages/v4/src/content/design-guidelines/components/toggle-group/img/topology-actions-2.png b/packages/v4/src/content/design-guidelines/components/toggle-group/img/topology-actions-2.png new file mode 100644 index 0000000000..2505e1c8d7 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/toggle-group/img/topology-actions-2.png differ diff --git a/packages/v4/src/content/design-guidelines/components/toggle-group/img/topology-actions.png b/packages/v4/src/content/design-guidelines/components/toggle-group/img/topology-actions.png new file mode 100644 index 0000000000..9e6139cc22 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/toggle-group/img/topology-actions.png differ diff --git a/packages/v4/src/content/design-guidelines/components/toggle-group/toggle-group.md b/packages/v4/src/content/design-guidelines/components/toggle-group/toggle-group.md index e1f263eb5b..3277784b06 100644 --- a/packages/v4/src/content/design-guidelines/components/toggle-group/toggle-group.md +++ b/packages/v4/src/content/design-guidelines/components/toggle-group/toggle-group.md @@ -3,5 +3,62 @@ id: Toggle group section: components --- -We’re working on some guidelines for this component. -If you have any questions in the meantime, feel free to [get in touch with us.](/community#get-in-touch) +A **toggle group** is a group of controls that can be used to quickly switch between actions or states. + +## Elements +Toggle items can consist of icons, text, or both. Styling of toggles is dependent on the background color. + +Toggle group elements + +## Toggle group types + +1. [Single select toggle group](#single-select-toggle-group): Use to toggle between multiple items +2. [Multi select toggle group](#multi-select-toggle-group): Use to select multiple attributes +3. [Toggle items](#toggle-items): Use to select a single action + +### Single select toggle group + +#### Usage +Use single select toggle groups when you want to toggle between multiple items. There are many use cases where this can apply, such as: + - Selecting a single action within a group of actions + - Toggling between multiple views + - Filtering by a specific value within a filter group + +No matter the use case, toggle groups with or without icons can be used. + +#### Examples +Single select toggle groups are commonly used to switch between views including: + - a form view and a YAML view + - a card view and a table view + +Single select toggle group ex + +Another common use case is to select one action from a group of actions. This could be useful for topology or similar canvas views. + +Single select toggle group ex2 + +1. **Zoom in**: By selecting this action, the view would zoom in by one increment. +2. **Fit to screen**: This action will fit the topology view to screen. After selection, the item will return to its default state, with a white background. + +### Multi select toggle group + +#### Usage +Use single multi select toggle groups when you want to select multiple attributes from a group. This is most commonly used for filtering a content view when there is a lot of space available. + +#### Examples +Selecting an attribute will apply that filter to the table. In this case, only nodes that are “ready” are shown. + +Multi select toggle group ex + +### Toggle items + +#### Usage +Use toggle items when you want to select a single action from a group. We recommend using toggle items when you want to switch the user into a specific “mode”. They look and act similarly to [buttons](/components/button). + +#### Examples +Toggle items are most commonly used in canvas views, such as topology. Selecting a toggle item will switch the user into that “mode” or allow them to take that action. + +Toggle items ex + +1. **Zoom in**: This item changes the cursor into a zoom icon and allows the user to zoom, as long as that toggle is selected. +2. **Zoom cursor**: The cursor changes into a zoom icon and the user may exit that mode by selecting the “move” hand toggle item. \ No newline at end of file diff --git a/packages/v4/src/content/design-guidelines/components/toolbar/toolbar.md b/packages/v4/src/content/design-guidelines/components/toolbar/toolbar.md index d42d1dd6f3..4de143b2ea 100644 --- a/packages/v4/src/content/design-guidelines/components/toolbar/toolbar.md +++ b/packages/v4/src/content/design-guidelines/components/toolbar/toolbar.md @@ -98,15 +98,15 @@ The Toolbar component is extremely flexible and you can create custom toolbar la ### Placement in a page -The toolbar should live as close to possible to the content it controls. For a card view, the toolbar should be placed inside of the page header, above the card grid. This arrangement is also recommended if the user may switch between views (e.g. view as cards or as a list). +The toolbar should live as close to possible to the content it controls. For a card view or similar views, the toolbar should be placed inside of the page header. This arrangement is also recommended if the user may switch between views (e.g. view as cards or as a list). You may optionally apply the `pf-m-sticky-top` modifier to the header section to create a sticky toolbar and prevent it from scrolling off the page. ![toolbar in page header](./img/toolbar-layout-cardview.png) -For simple list and table views that are placed inside of an enclosing card, the toolbar should always appear above the data set to which it applies. Toolbars should stretch to the width of the data view to which it applies, with the elements aligned in a horizontal row. +For list and table views that are placed inside of an enclosing card, the toolbar should always be placed inside the card and above the data set to which it applies. ![layout](./img/toolbar-layout.png) -Note that there should be no spacers on the left and right edges of the toolbar as the toolbar provides its own padding. +Toolbars should stretch to the width of the enclosing container, with the elements aligned in a horizontal row. There should be no spacers on the left and right edges of the toolbar as the toolbar provides its own padding. ## The toolbar on mobile @@ -119,4 +119,4 @@ The following is an example of a complex toolbar optimized for mobile. toolbar with filters and actions hidden on mobile -Here, the search filter and filter group containing three drop-down filters are placed in a toggle group that collapsed when the screen shrinks to mobile size. The two action buttons are part of an overflow menu that collapses to a single kabob menu. The bulk selector and sort icon button are implemented as toolbar items that remain visible at all breakpoints. \ No newline at end of file +Here, the search filter and filter group containing three drop-down filters are placed in a toggle group that collapsed when the screen shrinks to mobile size. The two action buttons are part of an overflow menu that collapses to a single kabob menu. The bulk selector and sort icon button are implemented as toolbar items that remain visible at all breakpoints. diff --git a/packages/v4/src/content/design-guidelines/components/tooltip/img/bar-chart.png b/packages/v4/src/content/design-guidelines/components/tooltip/img/bar-chart.png new file mode 100644 index 0000000000..2d2cd2d418 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/tooltip/img/bar-chart.png differ diff --git a/packages/v4/src/content/design-guidelines/components/tooltip/img/disabled-edit-button.png b/packages/v4/src/content/design-guidelines/components/tooltip/img/disabled-edit-button.png new file mode 100644 index 0000000000..c78e8f12f8 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/tooltip/img/disabled-edit-button.png differ diff --git a/packages/v4/src/content/design-guidelines/components/tooltip/img/tooltip-disabled-button.png b/packages/v4/src/content/design-guidelines/components/tooltip/img/tooltip-disabled-button.png new file mode 100644 index 0000000000..ea4a6865b0 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/tooltip/img/tooltip-disabled-button.png differ diff --git a/packages/v4/src/content/design-guidelines/components/tooltip/img/tooltip-kebab-icon.png b/packages/v4/src/content/design-guidelines/components/tooltip/img/tooltip-kebab-icon.png new file mode 100644 index 0000000000..f9a1c34aac Binary files /dev/null and b/packages/v4/src/content/design-guidelines/components/tooltip/img/tooltip-kebab-icon.png differ diff --git a/packages/v4/src/content/design-guidelines/components/tooltip/tooltip.md b/packages/v4/src/content/design-guidelines/components/tooltip/tooltip.md index 0ca2bc433c..8f455f5037 100644 --- a/packages/v4/src/content/design-guidelines/components/tooltip/tooltip.md +++ b/packages/v4/src/content/design-guidelines/components/tooltip/tooltip.md @@ -2,51 +2,44 @@ id: Tooltip section: components --- -A **tooltip** provides short, clarifying descriptions of elements on a page. They are typically used to clarify the meaning of icons. +A **tooltip** is in-app messaging used to identify elements on a page with short, clarifying text. -## Usage +For information on other forms of on-screen help, see [Popover](/components/popover/design-guidelines) and [Hint](/components/hint/design-guidelines). -Example of tooltip in a table +## Usage +Use tooltips to: +- Provide labels for unlabeled icons. -Use tooltips to define new or unfamiliar UI elements that aren’t described directly in the user interface, or to get additional data from a data point or element in a chart or table. +kebab icon with a “More options” tooltip label -**Guidelines** -* Keep your tooltips clear and concise. Use the fewest number of words you can without sacrificing meaning. -* If the tooltip is a full sentence, end it with a period. -* If information is needed for a user to complete a task (like a password character requirement), don’t hide it in a tooltip. Display it on the page instead. -* Tooltips should provide new and valuable information. Never use a tooltip to repeat information already available in the UI. -* Don’t use tooltips with question-circle icons to present contextual information in forms and other areas. Instead, use a popover. +- Provide additional information on a data point or element in a chart or table. -**Common use cases** -* On icons -* In charts +bar chart with a tooltip for Asia Pacific -**Accessibility** +- Define new or unfamiliar UI elements that aren’t described directly in the user interface. For example, you can use a tooltip on a disabled button. -Every time a user with a screen reader tabs into a field with a tooltip, the tooltip will be read out to them. +disabled edit button with a tooltip about access -### When to use a tooltip versus a popover +## Tooltips versus popovers +Both tooltips and [popovers](/components/popover/design-guidelines) provide more information in context for users. However, they’re different in a few ways: -Both tooltips and popovers allow users to get more information in context. However, they differ in two ways: - - 1. Tooltips are used for identification purposes, while popovers are used for added description or information in context. - 2. Tooltips appear on hover, while popovers appear on click +- Tooltips are used for identification purposes, while popovers are used for added description or information in context. +- Tooltips contain short descriptions or labels, while popovers contain longer descriptions, formatted text, and optional images or links. +- Tooltips appear on hover, while popovers appear on click. + +## Content +- Keep your tooltips clear and concise. Use the fewest number of words without sacrificing meaning. +- If the tooltip is a full sentence, include a period at the end. If the tooltip is a fragment, do not include a period at the end. +- Use tooltips for additional information. Don’t use tooltips for information critical to a user completing a task, such as password character requirements. +- Tooltips should provide new and valuable information. Never use a tooltip to repeat information already available in the UI. +- Don’t use tooltips with question-circle icons to present contextual information in forms and other areas. Instead, use a [popover](/components/popover/design-guidelines). + +## Accessibility +Every time a user with a screen reader tabs into a field with a tooltip, the screen reader reads the tooltip aloud. -**Use tooltips for:** -* Short descriptions of an item or to identify an item, like an icon button -* Content that is no longer than 1 or 2 lines -Examples of tooltip use -**Use popovers for:** -* Longer descriptions -* Formatted text -* When you would like your in-context help to include pictures, actions, or links -Examples of popover use -## Other forms of on-screen help -1. [Hints](/components/hint/design-guidelines) -2. [Popovers](/components/popover/design-guidelines) \ No newline at end of file diff --git a/packages/v4/src/content/design-guidelines/content/numerics.md b/packages/v4/src/content/design-guidelines/content/numerics.md index 1acae48e7b..336e45b697 100644 --- a/packages/v4/src/content/design-guidelines/content/numerics.md +++ b/packages/v4/src/content/design-guidelines/content/numerics.md @@ -3,55 +3,32 @@ id: Numerics section: UX writing --- -## Date and time +## Date and time formats All date and time formats should be localizable, not hard-coded. When building localizable date and time formats, development teams should share the same library by using resources like [date-fns](https://date-fns.org/) or [Day.js](https://day.js.org/). -These date and time standards are based in American English, but date and time formats will vary once they're localized. +PatternFly date and time formats follow the American standard. When localizing, use the appropriate format for the language locale and follow ISO standards. -For applications or websites that are accessed globally, use DD Month YYYY. - -Examples: -- Tuesday, 07 January 2020 -- 07 January 2020 - -When you represent the date as a numeric value or label, use the [ISO Standard 8601](https://www.iso.org/iso-8601-date-and-time-format.html): YYYY-MM-DD. - -Example: Write January 7, 2020 as 2020-01-07. - -Whenever possible, write out the full name of the month. If space is limited, use the month’s three-letter abbreviation: - -- Jan -- Feb -- Mar -- Apr -- May -- Jun -- Jul -- Aug -- Sep -- Oct -- Nov -- Dec - -When adding a date/time in your copy, display it in UTC or the user's time zone. - -UTC is recommended for cases where people may be collaborating across time zones (for instance, tracking incidents on a server). If you use UTC, show the user's estimate time zone in parentheses. - -Example: Maintenance begins today at 14:00 UTC (2 PM EST). - -When representing date and time, include the timestamp after the date and separate with a comma. +
-Examples: -- Tuesday, 07 January 2020, 9:38:11 PM EST -- 07 Jan 2020, 23:33 UTC -- 9:38:11 PM -- 9:38 PM +| **Element** | **Description** | **Example** | +|-------------|-------------|-------------| +| Date | Use Month DD, YYYY | September 17, 2020

Sep 17, 2020 | +| Date numeric value | When you represent the date as a numeric value or label, use MM-DD-YYYY. | 09-17-2020 | +| Time | Display time in either 12-hour or 24-hour (UTC) time. | 12-hour: 3:00PM

With seconds: 3:30:11 PM

24-hour: 15:00 | +| 12-hour time notation | This time convention divides the 24-hours of the day into 2 periods of 12 hours, AM and PM.

12-hour time notation is the American standard. | 3:00PM | +| 24-hour time notation | This time convention divides the day by 24 hours and runs from midnight to midnight. The hours are represented from 0 to 23. | 14:00 | +| Date and time | Include the timestamp after the date and separate with a comma. | Thursday, 21 January 2019, 9:38:11 PM EST

07 Jan 2019, 23:33 UTC | +| Time zone | Display time in the user's time zone or in UTC.

Use UTC when spanning multiple time zones. | Maintenance begins today at 14:00 UTC (2 PM EST). | +| Day |Write out the full name of the day. If space is limited, use the day’s 3-letter abbreviation: | Monday, 17 September 2020

Mon, 17 Sep 2020 | +| Month | Write out the full name of the month. If space is limited, use the month’s 3-letter abbreviation. | September 17, 2020

Sep 17, 2020 | +| Duration | HH:MM:SS or HH:MM | 03:15:30

03:15

00:15 | +
-Using **absolute** or **relative** timestamps will depend on the context. If your user is primarily interested in understanding the exact date and time that an event occurred, use an absolute timestamp. +## Absolute or relative time -If users are interested in duration, the amount of time it takes for an event to occur, or the amount of time between events, use an absolute timestamp formatted as HH:MM:SS. +Using **absolute** or **relative** timestamps depends on the context. To represent the exact date and time that an event occurred, use an absolute timestamp following examples provided in the previous [table of date and time formats](#date-and-time-formats). -If users are interested in how long ago an event occurred, use a relative timestamp. When reporting relative time, follow these examples: +To represent how long ago an event occurred, use a relative timestamp. When reporting relative time, follow these examples:
@@ -69,26 +46,28 @@ If users are interested in how long ago an event occurred, use a relative timest
## Numbers and currency -In a UI, use numerals instead of written numbers. +Use numerals instead of written numbers.
| **Before** | **After** | |---------------------|------------------------| -| Your transaction will be complete in three business days. | Your transaction will be complete in 3 business days. | - -Never hard-code number formatting. Currency symbols, comma placements, and decimal placements vary by locale. +| Your transaction will be complete in three business days. | Your transaction will be complete in 3 business days. | +| You have a credit of two dollars. | You have a credit of US$2.00. |
-For larger numbers, American English uses the comma as the thousand separator, added every 3 digits from the right. For consistency, write your text with this formatting. The number will look different after localization. +### Digit grouping + +Use the American notation standard. Use a decimal comma to separate thousands. -Examples: +Examples:
+1,000,000.00
+1,000,000,000 -- United States: 1,000 -- Brazil: 1.000 +### Currency -For currencies that use the symbol "$" alone, modify with the first two letters of their [three-letter ISO code](https://www.iso.org/iso-4217-currency-codes.html): +For currencies that use the symbol "$" alone, add the first two letters of the ISO currency code. - US$1,500 (United States) - AU$1,500 (Australia) @@ -110,6 +89,4 @@ Use a currency's ISO three-digit numeric code when writing for computerized syst | European Union | Euro | EUR | 978 | | United Kingdom | Pound | GBP | 826 | -Generally, we don't provide currency conversions. - -(Taken from the Red Hat Corporate Style Guide) +Generally, we don't provide currency conversions. \ No newline at end of file diff --git a/packages/v4/src/content/design-guidelines/demos/primary-detail/img/splitter-primary-detail.png b/packages/v4/src/content/design-guidelines/demos/primary-detail/img/splitter-primary-detail.png new file mode 100644 index 0000000000..3551712fe3 Binary files /dev/null and b/packages/v4/src/content/design-guidelines/demos/primary-detail/img/splitter-primary-detail.png differ diff --git a/packages/v4/src/content/design-guidelines/demos/primary-detail/primary-detail.md b/packages/v4/src/content/design-guidelines/demos/primary-detail/primary-detail.md index 9ba77c2753..9921c74ec8 100644 --- a/packages/v4/src/content/design-guidelines/demos/primary-detail/primary-detail.md +++ b/packages/v4/src/content/design-guidelines/demos/primary-detail/primary-detail.md @@ -67,4 +67,12 @@ Here are some other best practices to keep in mind: - If the details pane can be toggled close, there needs to be a close icon in the top-right of the details pane. Users may also toggle open/close in a toolbar. For [empty states](/components/empty-state), if the details pane is automatically expanded on default but a primary item is not selected by default, then there should be an empty state in the details pane directing users to make a selection in the primary. In cases where there is bulk select capability in the primary component, an expanded details drawer should display an empty state informing users that multiple items have been selected. To view details of a single primary item, the user must clear their selection. - + +## Splitter in a primary-detail + +A **splitter** allows you to create a layout with resizable panes. The orientation of a splitter can be set to **vertical** or **horizontal**. + +### Usage +Add a splitter to a primary-detail if you need to resize the width or height of a panel to give content more space. It helps to prioritize the content you’re focusing on. If data shown in a primary-detail has enough space, then you don’t need to use a splitter. + + \ No newline at end of file diff --git a/packages/v4/src/content/design-guidelines/styles/icons/icons.js b/packages/v4/src/content/design-guidelines/styles/icons/icons.js index ab9eaccb04..68827f5d77 100644 --- a/packages/v4/src/content/design-guidelines/styles/icons/icons.js +++ b/packages/v4/src/content/design-guidelines/styles/icons/icons.js @@ -705,6 +705,13 @@ export const iconsData = [ "Type": "Action", "Contextual_usage": "Indicates the ability to delete" }, + { + "Style": "fas", + "Name": "fa-upload", + "React_name": "UploadIcon", + "Type": "Action", + "Contextual_usage": "Indicates an upload function is available" + }, [ { "Style": "fas", diff --git a/packages/v4/src/pages/home.js b/packages/v4/src/pages/home.js index d54aba6043..d03aef0e2d 100644 --- a/packages/v4/src/pages/home.js +++ b/packages/v4/src/pages/home.js @@ -48,7 +48,7 @@ const HomePage = () => ( Get started - Github + GitHub diff --git a/release-highlights/release-highlights-2020.16/img/custom-alert-icons.png b/release-highlights/release-highlights-2020.16/img/custom-alert-icons.png new file mode 100644 index 0000000000..cf5c2349c7 Binary files /dev/null and b/release-highlights/release-highlights-2020.16/img/custom-alert-icons.png differ diff --git a/release-highlights/release-highlights-2020.16/img/date-range.png b/release-highlights/release-highlights-2020.16/img/date-range.png new file mode 100644 index 0000000000..ac88748ad0 Binary files /dev/null and b/release-highlights/release-highlights-2020.16/img/date-range.png differ diff --git a/release-highlights/release-highlights-2020.16/img/drawer-with-splitter.png b/release-highlights/release-highlights-2020.16/img/drawer-with-splitter.png new file mode 100644 index 0000000000..54e786c826 Binary files /dev/null and b/release-highlights/release-highlights-2020.16/img/drawer-with-splitter.png differ diff --git a/release-highlights/release-highlights-2020.16/img/table-favorites.png b/release-highlights/release-highlights-2020.16/img/table-favorites.png new file mode 100644 index 0000000000..c8706efd70 Binary files /dev/null and b/release-highlights/release-highlights-2020.16/img/table-favorites.png differ diff --git a/release-highlights/release-highlights-2020.16/img/time-picker.png b/release-highlights/release-highlights-2020.16/img/time-picker.png new file mode 100644 index 0000000000..586bdade38 Binary files /dev/null and b/release-highlights/release-highlights-2020.16/img/time-picker.png differ diff --git a/release-highlights/release-highlights-2020.16/release-highlights.md b/release-highlights/release-highlights-2020.16/release-highlights.md new file mode 100644 index 0000000000..058089db48 --- /dev/null +++ b/release-highlights/release-highlights-2020.16/release-highlights.md @@ -0,0 +1,61 @@ +# PatternFly Release Highlights +## Release 2020.16 +### New features and enhancements + +#### [Basic time picker](https://www.patternfly.org/v4/components/time-picker) + +![time picker image](./img/time-picker.png) + +The time picker allows the user to enter a time in either 12 or 24 hour format using the keyboard or by picking from a list. + +#### [Date Range picker demo](https://www.patternfly.org/v4/components/date-picker/react-demos) + +![date range on calendar](./img/date-range.png) + +Shows how to use two date pickers together for selecting a date range on the calendar that can be used for filtering or similar use cases. + +#### [Table favorities](https://www.patternfly.org/v4/components/table#favoritable) + +![table with favorities](./img/table-favorites.png) + +Adds the ability to favorite rows in the Table component. + +#### [Resizable drawer with splitter](https://www.patternfly.org/v4/components/drawer#resizable-on-right) + +![drawer with splitter](./img/drawer-with-splitter.png) + +The resizable drawer provides a flexible, resizable container that can be attached to the right or bottom edge of the viewport. + +#### [Custom alerts](https://www.patternfly.org/v4/components/alert#custom-icons) + +![custom alerts](./img/custom-alert-icons.png) + +Alerts can now be customized by substituting a custom icon. + +See the [latest release notes](https://www.patternfly.org/v4/developer-resources/release-notes) for a more detailed list of changes. + + +### What we’re working on... + +#### 2021.01 (January 29) +* [Horizontal/collapsible card](https://github.com/patternfly/patternfly/issues/3555) - introduce new card variants and demos to support horizontal card layouts. + +* [Code editor](https://github.com/patternfly/patternfly-design/issues/836) - Edit blocks of code using the Monaco code editor. Can optionally be used as a read-only display with language appropriate syntax highlighting. + +* [Expandable form sections](https://github.com/patternfly/patternfly/issues/3557) - these will be expandable nested sections useful for organizing information on long, complex forms. + +* [Multi-level drill down menu](https://github.com/patternfly/patternfly-react/issues/5024) - introduces a drill-down menu component for displaying hierarchical data. + +* [Slider component](https://github.com/patternfly/patternfly/issues/296) - provide basic slider capability for entering numeric data. + +#### 2021.02 (February 19) + +* [Jump links demo](https://github.com/patternfly/patternfly/issues/3560) - illustrate how jump links can be used in a sticky sidebar. + +* [List component variants](https://github.com/patternfly/patternfly/issues/3743) - Introduce new list `
  • ` variants with plain styling, horizontal separators, and icons. + +* [Large/Marketing card variant](https://github.com/patternfly/patternfly/issues/3670) - introduce a card with larger spacing for marketing applications. + +* [Attribute-value search input](https://github.com/patternfly/patternfly-design/issues/771) - add a new search input variant to support advanced searching or filtering use cases that require an attribute-value pair. + +For a complete roadmap showing all items planned in future releases, see our [PatternFly Feature Roadmap](https://github.com/orgs/patternfly/projects/4?fullscreen=true) project board. diff --git a/yarn.lock b/yarn.lock index 36d2a59eea..f2488dc16d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -967,6 +967,55 @@ unique-filename "^1.1.1" which "^1.3.1" +"@hapi/b64@4.x.x": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@hapi/b64/-/b64-4.2.1.tgz#bf8418d7907c5e73463f2e3b5c6fca7e9f2a1357" + integrity sha512-zqHpQuH5CBMw6hADzKfU/IGNrxq1Q+/wTYV+OiZRQN9F3tMyk+9BUMeBvFRMamduuqL8iSp62QAnJ+7ATiYLWA== + dependencies: + "@hapi/hoek" "8.x.x" + +"@hapi/boom@7.x.x": + version "7.4.11" + resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-7.4.11.tgz#37af8417eb9416aef3367aa60fa04a1a9f1fc262" + integrity sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A== + dependencies: + "@hapi/hoek" "8.x.x" + +"@hapi/bounce@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bounce/-/bounce-1.3.2.tgz#3b096bb02f67de6115e6e4f0debc390be5a86bad" + integrity sha512-3bnb1AlcEByFZnpDIidxQyw1Gds81z/1rSqlx4bIEE+wUN0ATj0D49B5cE1wGocy90Rp/de4tv7GjsKd5RQeew== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/hoek" "^8.3.1" + +"@hapi/cryptiles@4.x.x": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@hapi/cryptiles/-/cryptiles-4.2.1.tgz#ff0f18d79074659838caedbb911851313ad1ffbc" + integrity sha512-XoqgKsHK0l/VpqPs+tr6j6vE+VQ3+2bkF2stvttmc7xAOf1oSAwHcJ0tlp/6MxMysktt1IEY0Csy3khKaP9/uQ== + dependencies: + "@hapi/boom" "7.x.x" + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.1": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/sntp@3.x.x": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@hapi/sntp/-/sntp-3.1.2.tgz#e7d8d64e50625a43f2cb712f8fa6aa40fa955c78" + integrity sha512-i2UehKbFPKtKVXhp4v7wV3qJxkGV2TAPlZ5YSpmsqv/2eygXYYI+etBJ5r4T8kbyslhxgqQyHNS6xstL92Vmrg== + dependencies: + "@hapi/boom" "7.x.x" + "@hapi/bounce" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/teamwork" "3.x.x" + +"@hapi/teamwork@3.x.x": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@hapi/teamwork/-/teamwork-3.3.1.tgz#b52d0ec48682dc793926bd432e22ceb19c915d3f" + integrity sha512-61tiqWCYvMKP7fCTXy0M4VE6uNIwA0qvgFoiDubgfj7uqJ0fdHJFQNnVPGrxhLWlwz0uBPWrQlBH7r8y9vFITQ== + "@jimp/bmp@^0.10.3": version "0.10.3" resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.10.3.tgz#79a23678e8389865c62e77b0dccc3e069dfc27f0" @@ -2096,7 +2145,7 @@ once "^1.4.0" universal-user-agent "^6.0.0" -"@octokit/rest@^16.28.4": +"@octokit/rest@^16.28.4", "@octokit/rest@^16.43.2": version "16.43.2" resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.2.tgz#c53426f1e1d1044dee967023e3279c50993dd91b" integrity sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ== @@ -2132,140 +2181,126 @@ dependencies: "@types/node" ">= 8" -"@patternfly/patternfly@4.65.5": - version "4.65.5" - resolved "https://registry.yarnpkg.com/@patternfly/patternfly/-/patternfly-4.65.5.tgz#22917237ea8b9cbfe52be1dfd00a258a6bfdb324" - integrity sha512-10dXyBt4fo55Wtm7v+Vmn9eVp4rD25fR296uif0nxGX3ZXhEuyyPOfo2DgNmCFHu42Exo6N8DP7W472Pp9VkJw== +"@patternfly/patternfly@4.70.2": + version "4.70.2" + resolved "https://registry.yarnpkg.com/@patternfly/patternfly/-/patternfly-4.70.2.tgz#94b733f68f4f63040ab142eb2fa3c3ac5d08f2ae" + integrity sha512-XKCHnOjx1JThY3s98AJhsApSsGHPvEdlY7r+b18OecqUnmThVGw3nslzYYrwfCGlJ/xQtV5so29SduH2/uhHzA== -"@patternfly/react-catalog-view-extension@^4.8.105": - version "4.8.105" - resolved "https://registry.yarnpkg.com/@patternfly/react-catalog-view-extension/-/react-catalog-view-extension-4.8.105.tgz#2319913ead7e697cba803a0c91fe2613f00be578" - integrity sha512-JAP565Kdyy72PwDwED/M9MfNJIw24PrT5bGrb1Cp8TjX57Rjay0zduA8SvA+63SNYAA//YCegcpEUPI8yD2Guw== +"@patternfly/react-catalog-view-extension@^4.8.126": + version "4.8.126" + resolved "https://registry.yarnpkg.com/@patternfly/react-catalog-view-extension/-/react-catalog-view-extension-4.8.126.tgz#0ac60f7bdd2cc40d17b7dda0702eb5e1d7fa6474" + integrity sha512-ajmhqDHM/lteQHU3vQEOr2g8uvxvSxQUQvSpnMi8s4ar7aVh7W9afQs6lCNpnHxIPzqecfJt2gM5z4TPmylKaQ== dependencies: - "@patternfly/patternfly" "4.65.5" - "@patternfly/react-core" "^4.79.2" - "@patternfly/react-styles" "^4.7.16" + "@patternfly/patternfly" "4.70.2" + "@patternfly/react-core" "^4.84.4" + "@patternfly/react-styles" "^4.7.22" classnames "^2.2.5" patternfly "^3.59.4" -"@patternfly/react-charts@^6.12.2": - version "6.12.2" - resolved "https://registry.yarnpkg.com/@patternfly/react-charts/-/react-charts-6.12.2.tgz#69652ddde7321c60bd3a61fb593372fe8a0e0cd8" - integrity sha512-fvRTZfJBYrVUtr2zQEKCqlHz6zn2GLnwKJ1bg+vqbzza160KVhe63Lklul85/1nfAgmMlBYq8PCjOt32kVCDew== +"@patternfly/react-charts@^6.12.12": + version "6.12.12" + resolved "https://registry.yarnpkg.com/@patternfly/react-charts/-/react-charts-6.12.12.tgz#15afe292724a06f11a4cfd979059957b5ac42234" + integrity sha512-2tCCR2FvbwObw9uw3sHIvIu7IeP1s+R0ANHyRTHmakie7GcfzAiVv3KbDgrOn7iKtEpIOdee3EH4PWhLlLkxtQ== dependencies: - "@patternfly/patternfly" "4.65.5" - "@patternfly/react-styles" "^4.7.16" - "@patternfly/react-tokens" "^4.9.18" + "@patternfly/patternfly" "4.70.2" + "@patternfly/react-styles" "^4.7.22" + "@patternfly/react-tokens" "^4.9.22" hoist-non-react-statics "^3.3.0" lodash "^4.17.19" tslib "1.13.0" - victory "^35.3.5" - victory-area "^35.2.0" - victory-axis "^35.2.0" - victory-bar "^35.2.0" - victory-chart "^35.2.0" - victory-core "^35.2.0" - victory-create-container "^35.2.0" - victory-group "^35.2.0" - victory-legend "^35.2.0" - victory-line "^35.2.0" - victory-pie "^35.2.0" - victory-scatter "^35.2.0" - victory-stack "^35.2.0" - victory-tooltip "^35.2.0" - victory-voronoi-container "^35.2.0" - victory-zoom-container "^35.2.0" - -"@patternfly/react-core@^4.79.2": - version "4.79.2" - resolved "https://registry.yarnpkg.com/@patternfly/react-core/-/react-core-4.79.2.tgz#058ebea5a2749294dd69ad9fe8d3e43088100ada" - integrity sha512-TCWi5Hu8+gpqFVAL4ZMXCRLbRfayM7wJ8+/Ob4rfhC61qm36CZNAcqWOmuV8bghOzB29INUMNShggtuiUa5mkg== - dependencies: - "@patternfly/react-icons" "^4.7.18" - "@patternfly/react-styles" "^4.7.16" - "@patternfly/react-tokens" "^4.9.18" - focus-trap "4.0.2" + victory-area "^35.3.5" + victory-axis "^35.3.5" + victory-bar "^35.3.5" + victory-chart "^35.3.5" + victory-core "^35.3.5" + victory-create-container "^35.3.5" + victory-group "^35.3.5" + victory-legend "^35.3.5" + victory-line "^35.3.5" + victory-pie "^35.3.5" + victory-scatter "^35.3.5" + victory-stack "^35.3.5" + victory-tooltip "^35.3.5" + victory-voronoi-container "^35.3.5" + victory-zoom-container "^35.3.5" + +"@patternfly/react-core@^4.84.4": + version "4.84.4" + resolved "https://registry.yarnpkg.com/@patternfly/react-core/-/react-core-4.84.4.tgz#e3061596f0ac02c5cb181f41201293ba073013a1" + integrity sha512-GIv6zJl+NGYIrSm2pATQFggRt4ZFYUKVNbLSsna2x8+eYeZscqIUFSPmBM+eNpQkGaoJk254Lu09pgm4hM/b4g== + dependencies: + "@patternfly/react-icons" "^4.7.22" + "@patternfly/react-styles" "^4.7.22" + "@patternfly/react-tokens" "^4.9.22" + focus-trap "6.2.2" react-dropzone "9.0.0" tippy.js "5.1.2" tslib "1.13.0" -"@patternfly/react-datetime@^4.2.50": - version "4.2.50" - resolved "https://registry.yarnpkg.com/@patternfly/react-datetime/-/react-datetime-4.2.50.tgz#102870b17a0d7273ecd1e95fe3335d992c90d3a6" - integrity sha512-dmf2OdeGw3GtiRuvdkVJNF8jWq5ddvjGwyAXun6x4rseJXvrQvhOIXuTqgBOU3taO8sfqHc6bzI4Np8B4E6e/A== - dependencies: - "@patternfly/patternfly" "4.65.5" - "@patternfly/react-core" "^4.79.2" - "@patternfly/react-icons" "^4.7.18" - "@patternfly/react-styles" "^4.7.16" - "@patternfly/react-tokens" "^4.9.18" - date-fns "^2.16.1" - -"@patternfly/react-docs@5.10.72": - version "5.10.72" - resolved "https://registry.yarnpkg.com/@patternfly/react-docs/-/react-docs-5.10.72.tgz#8ba03aeb76ae23c01b048a345ad39267879b1cfd" - integrity sha512-E48jD5wU+agQaBqD2yYBfzUWdRE3/UHnLl22GxtOYwFI5WXViDnLuvyWNObSjus6DCQ/ME7Elm6cLZhPs7sVBg== - dependencies: - "@patternfly/patternfly" "4.65.5" - "@patternfly/react-catalog-view-extension" "^4.8.105" - "@patternfly/react-charts" "^6.12.2" - "@patternfly/react-core" "^4.79.2" - "@patternfly/react-datetime" "^4.2.50" - "@patternfly/react-icons" "^4.7.18" - "@patternfly/react-inline-edit-extension" "^4.5.166" - "@patternfly/react-styles" "^4.7.16" - "@patternfly/react-table" "^4.19.24" - "@patternfly/react-tokens" "^4.9.18" - "@patternfly/react-topology" "^4.6.69" - "@patternfly/react-virtualized-extension" "^4.5.150" - -"@patternfly/react-icons@^4.7.18": - version "4.7.18" - resolved "https://registry.yarnpkg.com/@patternfly/react-icons/-/react-icons-4.7.18.tgz#c188f1f460f62bd9ee262f1da580caaefbf8fdf9" - integrity sha512-Kd0JjeVCESpMJGb5ZkLXvAdCuklV9dYGUkcTO18WMyXQ57s9+xXjVA77wojmp6Ru1ZCWOP5bLXZOKmwVnOfUpQ== - -"@patternfly/react-inline-edit-extension@^4.5.166": - version "4.5.166" - resolved "https://registry.yarnpkg.com/@patternfly/react-inline-edit-extension/-/react-inline-edit-extension-4.5.166.tgz#ea26d4656c73407c74f6d0790cd32cb08fd7fc2f" - integrity sha512-TjGUngKH07f9Ce20RbTCbUiUMpOSUECc35/58a44h0sP4dqbapvhDJo/iBJBU+G6lDwMkeKQBIE886qR0Y7UAA== - dependencies: - "@patternfly/react-core" "^4.79.2" - "@patternfly/react-icons" "^4.7.18" - "@patternfly/react-styles" "^4.7.16" - "@patternfly/react-table" "^4.19.24" +"@patternfly/react-docs@5.12.20": + version "5.12.20" + resolved "https://registry.yarnpkg.com/@patternfly/react-docs/-/react-docs-5.12.20.tgz#b3b62c0a2aa9689cfe352bb51a1a02b4b5550354" + integrity sha512-2BHY3pu3faMFXHmoLK4uyLaXKvsNYzZE6XK427jm9j9Pr7myLDGmd4dD8ngVHkoBl8rQhTtNN5HuCIJgOnaxuw== + dependencies: + "@patternfly/patternfly" "4.70.2" + "@patternfly/react-catalog-view-extension" "^4.8.126" + "@patternfly/react-charts" "^6.12.12" + "@patternfly/react-core" "^4.84.4" + "@patternfly/react-icons" "^4.7.22" + "@patternfly/react-inline-edit-extension" "^4.5.187" + "@patternfly/react-styles" "^4.7.22" + "@patternfly/react-table" "^4.19.45" + "@patternfly/react-tokens" "^4.9.22" + "@patternfly/react-topology" "^4.6.91" + "@patternfly/react-virtualized-extension" "^4.5.171" + +"@patternfly/react-icons@^4.7.22": + version "4.7.22" + resolved "https://registry.yarnpkg.com/@patternfly/react-icons/-/react-icons-4.7.22.tgz#ee8c4f66020abf200cbdd233fba27d004dea562f" + integrity sha512-JDsnebr9CNIyrv9yjaGFQ56OChbV6KcxMYBIpNc8/sZdU4TXHWNC7P7rlUM/BuGpbWvyaOJtscRuf5uteIKX3A== + +"@patternfly/react-inline-edit-extension@^4.5.187": + version "4.5.187" + resolved "https://registry.yarnpkg.com/@patternfly/react-inline-edit-extension/-/react-inline-edit-extension-4.5.187.tgz#124bc06ace39cfc50770b3fd238204d1fefd679a" + integrity sha512-q5VFCrpqhO/eL5JmUNdI2HCGCNyneNcuQIb7wl+0Cnvr5QipDhuHQmq+wdjlyT4p/u+lLYtAZ+Wc1ddghYSl3A== + dependencies: + "@patternfly/react-core" "^4.84.4" + "@patternfly/react-icons" "^4.7.22" + "@patternfly/react-styles" "^4.7.22" + "@patternfly/react-table" "^4.19.45" reactabular-table "^8.14.0" -"@patternfly/react-styles@^4.7.16": - version "4.7.16" - resolved "https://registry.yarnpkg.com/@patternfly/react-styles/-/react-styles-4.7.16.tgz#a6c5c1cd7efbe54423210ba9cd70a4c41660e09e" - integrity sha512-bJmRrYKXgHGPPwLHg/gy1tDb/qEV6JpFLgkelLuz38czXeBnPpAUn9yKry3wNr95VQGERT6FcLsWjXKPY1x42Q== - -"@patternfly/react-table@^4.19.24": - version "4.19.24" - resolved "https://registry.yarnpkg.com/@patternfly/react-table/-/react-table-4.19.24.tgz#5d121e60f1475af0001a64ace278b92da334614b" - integrity sha512-m7nwDnjlgbnqUHbvHzw53ln6ST42Y/n49Jpt1SUvhpzwppb/SSmY0IrT+3ukwOgLW5jeErGTxCNGNIpAaugTBA== - dependencies: - "@patternfly/patternfly" "4.65.5" - "@patternfly/react-core" "^4.79.2" - "@patternfly/react-icons" "^4.7.18" - "@patternfly/react-styles" "^4.7.16" - "@patternfly/react-tokens" "^4.9.18" +"@patternfly/react-styles@^4.7.22": + version "4.7.22" + resolved "https://registry.yarnpkg.com/@patternfly/react-styles/-/react-styles-4.7.22.tgz#fda249c5ee03db965cad648da92aa1caa7eff02f" + integrity sha512-ojNuSNJx6CkNtsSFseZ2SJEVyzPMFYh0jOs204ICzYM1+fn9acsIi3Co0bcskFRzw8F6e2/x+8uVNx6QI8elxg== + +"@patternfly/react-table@^4.19.45": + version "4.19.45" + resolved "https://registry.yarnpkg.com/@patternfly/react-table/-/react-table-4.19.45.tgz#aa635447bbc5e36aab63f6b61380165f640b7028" + integrity sha512-HFOefgyZ8SGbLflGlEqefHrdxrV+X+x7+bBRvsB+zFZAYWDVau3Z6Pkv8gY5JselBsMywZYPb5juHBoBkzuezg== + dependencies: + "@patternfly/patternfly" "4.70.2" + "@patternfly/react-core" "^4.84.4" + "@patternfly/react-icons" "^4.7.22" + "@patternfly/react-styles" "^4.7.22" + "@patternfly/react-tokens" "^4.9.22" lodash "^4.17.19" tslib "1.13.0" -"@patternfly/react-tokens@^4.9.18": - version "4.9.18" - resolved "https://registry.yarnpkg.com/@patternfly/react-tokens/-/react-tokens-4.9.18.tgz#b34afc5fd2567a50b7658aff004f31b536fd9096" - integrity sha512-zQfqwKtoz1hDngyiGnF6oHeESDtgNY6C79Db97JxMMuRBV7i+5f6uC/DrYhcqNtqHA7mxrVJg0SM1xnPSAW9lA== +"@patternfly/react-tokens@^4.9.22": + version "4.9.22" + resolved "https://registry.yarnpkg.com/@patternfly/react-tokens/-/react-tokens-4.9.22.tgz#d23488cddf19ad065ef55bd43b47336ee63bf4cc" + integrity sha512-hN/8u7mFR62naFB2hdO7nl1p/0lCXtNq+VY+BAbp4UFC2/QyjNP0IOPBR+mR9Pbj5JwxrURI7G5blLp+k9RLvQ== -"@patternfly/react-topology@^4.6.69": - version "4.6.69" - resolved "https://registry.yarnpkg.com/@patternfly/react-topology/-/react-topology-4.6.69.tgz#49f1c5d1dff34cb1598310da1a71ceb1fb115fb6" - integrity sha512-C20BdRwdUq65ZscoZthskcuhTSmjbdp1jH/yAnEcLgh/GQ20lbA58jZi3tArd0XX+lYOQepgThxokVfM+GzZwA== +"@patternfly/react-topology@^4.6.91": + version "4.6.91" + resolved "https://registry.yarnpkg.com/@patternfly/react-topology/-/react-topology-4.6.91.tgz#9a21a522f1268da2f72797e20a37603eeb9cbdde" + integrity sha512-EZHd0kEE3uBToz+d3/qOfmwHBwAEvBKzWQASyoNftEienlSapsoDdVbEInIGYscUSU/QrO4cmk+/PU8ncTQrUw== dependencies: - "@patternfly/react-core" "^4.79.2" - "@patternfly/react-icons" "^4.7.18" - "@patternfly/react-styles" "^4.7.16" + "@patternfly/react-core" "^4.84.4" + "@patternfly/react-icons" "^4.7.22" + "@patternfly/react-styles" "^4.7.22" "@types/d3" "^5.7.2" "@types/d3-force" "^1.2.1" "@types/dagre" "0.7.42" @@ -2282,14 +2317,14 @@ tslib "1.13.0" webcola "3.4.0" -"@patternfly/react-virtualized-extension@^4.5.150": - version "4.5.150" - resolved "https://registry.yarnpkg.com/@patternfly/react-virtualized-extension/-/react-virtualized-extension-4.5.150.tgz#5e46db35edbe4d3a461b8afbceaa23f0ea242bbb" - integrity sha512-19AEqjixaDnLnUZqXQ+TRW8D7sKlmXBuY4I12ATNPr7Yn9WHVuUEfPPGiC+wo4XAHIbunqhOLeaZMGClVMDOdQ== +"@patternfly/react-virtualized-extension@^4.5.171": + version "4.5.171" + resolved "https://registry.yarnpkg.com/@patternfly/react-virtualized-extension/-/react-virtualized-extension-4.5.171.tgz#aa78e3cfcc118fba140e4dcbc8cf6e9112bed755" + integrity sha512-htWYEjmUr21kzJ/jk4+GA0jMvpIXzgOZ8IttQVgV+JQhwSMmARrwJIiyKCIDXO+nku1kw4wZw/nYFJreBpJSfw== dependencies: - "@patternfly/react-core" "^4.79.2" - "@patternfly/react-icons" "^4.7.18" - "@patternfly/react-styles" "^4.7.16" + "@patternfly/react-core" "^4.84.4" + "@patternfly/react-icons" "^4.7.22" + "@patternfly/react-styles" "^4.7.22" linear-layout-vector "0.0.1" react-virtualized "^9.21.1" tslib "1.13.0" @@ -3036,9 +3071,9 @@ amdefine@>=0.0.4: integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= angular-animate@^1.7.7: - version "1.8.0" - resolved "https://registry.yarnpkg.com/angular-animate/-/angular-animate-1.8.0.tgz#fc6333a5a052129dc5fa0b02cd676304d2b99e9d" - integrity sha512-ROFK3UIn1MSVpqAlay15ZxjPmVbvwaO3Zn/2vhmQdYeqxSbUVuOckcvtDLBpHPGPtOAreu35qfV7NQ7u2EgDcA== + version "1.8.2" + resolved "https://registry.yarnpkg.com/angular-animate/-/angular-animate-1.8.2.tgz#a3045e523ffb8d7fcbebd3cb68d1fdd474665ced" + integrity sha512-Jbr9+grNMs9Kj57xuBU3Ju3NOPAjS1+g2UAwwDv7su1lt0/PLDy+9zEwDiu8C8xJceoTbmBNKiWGPJGBdCQLlA== angular-drag-and-drop-lists@2.0.0: version "2.0.0" @@ -3072,9 +3107,9 @@ angular-patternfly@^5.0.3: moment "~2.24.0" angular-sanitize@^1.7.7: - version "1.8.0" - resolved "https://registry.yarnpkg.com/angular-sanitize/-/angular-sanitize-1.8.0.tgz#9f80782d3afeec3bcc0bb92b3ca6f1f421cfbca6" - integrity sha512-j5GiOPCvfcDWK5svEOVoPb11X3UDVy/mdHPRWuy14Iyw86xaq+Bb+x/em2sAOa5MQQeY5ciLXbF3RRp8iCKcNg== + version "1.8.2" + resolved "https://registry.yarnpkg.com/angular-sanitize/-/angular-sanitize-1.8.2.tgz#ae78040f00c5e2ce1c63780bcc47fa14a1698296" + integrity sha512-OB6Goa+QN3byf5asQ7XRl7DKZejm/F/ZOqa9z1skqYVOWA2hoBxoCmt9E7+i7T/TbxZP5zYzKxNZVVJNu860Hg== angular-svg-base-fix@2.0.0: version "2.0.0" @@ -3087,9 +3122,9 @@ angular-ui-bootstrap@2.3.x: integrity sha1-v+yJTtmDreHl0/QC/BD4gpZSrJk= angular@>=1.3.0, angular@^1.7.7: - version "1.8.0" - resolved "https://registry.yarnpkg.com/angular/-/angular-1.8.0.tgz#b1ec179887869215cab6dfd0df2e42caa65b1b51" - integrity sha512-VdaMx+Qk0Skla7B5gw77a8hzlcOakwF8mjlW13DpIWIDlfqwAbSSLfd8N/qZnzEmQF4jC4iofInd3gE7vL8ZZg== + version "1.8.2" + resolved "https://registry.yarnpkg.com/angular/-/angular-1.8.2.tgz#5983bbb5a9fa63e213cb7749199e0d352de3a2f1" + integrity sha512-IauMOej2xEe7/7Ennahkbb5qd/HFADiNuLSESz9Q27inmi32zB0lnAsFeLEWcox3Gd1F6YhNd1CP7/9IukJ0Gw== angularjs-datatables@^0.5.9: version "0.5.9" @@ -3464,7 +3499,12 @@ aws-sign2@~0.6.0: resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8= -aws4@^1.2.1, aws4@^1.8.0: +aws4@^1.2.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +aws4@^1.8.0: version "1.10.1" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== @@ -3477,13 +3517,6 @@ axios@^0.18.1: follow-redirects "1.5.10" is-buffer "^2.0.2" -b64@4.x.x: - version "4.1.2" - resolved "https://registry.yarnpkg.com/b64/-/b64-4.1.2.tgz#7015372ba8101f7fb18da070717a93c28c8580d8" - integrity sha512-+GUspBxlH3CJaxMUGUE1EBoWM6RKgWiYwUDal0qdf8m3ArnXNN1KzKVo5HOnE/FSq4HHyWf3TlHLsZI8PKQgrQ== - dependencies: - hoek "6.x.x" - babel-loader@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" @@ -3683,13 +3716,6 @@ boom@2.x.x: dependencies: hoek "2.x.x" -boom@7.x.x: - version "7.3.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-7.3.0.tgz#733a6d956d33b0b1999da3fe6c12996950d017b9" - integrity sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A== - dependencies: - hoek "6.x.x" - bootstrap-combobox@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/bootstrap-combobox/-/bootstrap-combobox-1.0.2.tgz#c530a90b0a743563696c68019285dbe14c3d41fb" @@ -3745,17 +3771,9 @@ bootstrap@3.4.1, bootstrap@^3.3, bootstrap@^3.4.1, bootstrap@~3.4.1: integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA== bootstrap@>=3: - version "4.5.2" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.2.tgz#a85c4eda59155f0d71186b6e6ad9b875813779ab" - integrity sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A== - -bounce@1.x.x: - version "1.2.3" - resolved "https://registry.yarnpkg.com/bounce/-/bounce-1.2.3.tgz#2b286d36eb21d5f08fe672dd8cd37a109baad121" - integrity sha512-3G7B8CyBnip5EahCZJjnvQ1HLyArC6P5e+xcolo13BVI9ogFaDOsNMAE7FIWliHtIkYI8/nTRCvCY9tZa3Mu4g== - dependencies: - boom "7.x.x" - hoek "6.x.x" + version "4.5.3" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.3.tgz#c6a72b355aaf323920be800246a6e4ef30997fe6" + integrity sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ== boxen@1.3.0, boxen@^1.2.1: version "1.3.0" @@ -5104,13 +5122,6 @@ cryptiles@2.x.x: dependencies: boom "2.x.x" -cryptiles@4.x.x: - version "4.1.3" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-4.1.3.tgz#2461d3390ea0b82c643a6ba79f0ed491b0934c25" - integrity sha512-gT9nyTMSUC1JnziQpPbxKGBbUg8VL7Zn2NB4E1cJYvuXdElHrwxrV9bmltZGDzet45zSDGyYceueke1TjynGzw== - dependencies: - boom "7.x.x" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -5222,11 +5233,6 @@ d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== -d3-array@^2.4.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.7.1.tgz#b1f56065e9aba1ef6f0d0c8c9390b65421593352" - integrity sha512-dYWhEvg1L2+osFsSqNHpXaPQNugLT4JfyvbLE046I2PDcgYGFYc0w24GSJwbmcjjZYOPC3PNP2S782bWUM967Q== - d3-axis@1: version "1.0.12" resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" @@ -5430,7 +5436,7 @@ d3-transition@1: d3-selection "^1.1.0" d3-timer "1" -d3-voronoi@1, d3-voronoi@^1.1.2: +d3-voronoi@1: version "1.1.4" resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== @@ -5536,11 +5542,11 @@ datatables.net-colreorder@>=1.2.0, datatables.net-colreorder@^1.4.1: jquery ">=1.7" datatables.net-dt@^1.10.11: - version "1.10.21" - resolved "https://registry.yarnpkg.com/datatables.net-dt/-/datatables.net-dt-1.10.21.tgz#2a3bb65bbb39362a36e75b989da7d08bc1fb4313" - integrity sha512-P89PgkhVCB6shP0CbigmB1Z812yfdfhvAbUdg08mLuF7tuvLFPQC9F+WIV30Hj9mgMsPALWAEJEYAA3aJjuqIA== + version "1.10.23" + resolved "https://registry.yarnpkg.com/datatables.net-dt/-/datatables.net-dt-1.10.23.tgz#49f93e7eb439c2e1e89d28757cc4300597898cd3" + integrity sha512-Iky6RAKXKv/cZ4mfQRyHHGOdD1GyV9YuvGQrPCl5qqh+ENqaWphOiWVW/vqDsgDaVjvLwLfeRNMbmnf3w9sRRg== dependencies: - datatables.net "1.10.21" + datatables.net "1.10.23" jquery ">=1.7" datatables.net-select@~1.2.0: @@ -5551,13 +5557,20 @@ datatables.net-select@~1.2.0: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net@1.10.21, datatables.net@^1.10.11, datatables.net@^1.10.12, datatables.net@^1.10.15: +datatables.net@1.10.21, datatables.net@^1.10.15: version "1.10.21" resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103" integrity sha512-/bSZtxmf3GTpYcvEmwZ8q26I1yhSx8qklR2B+s1K8+/51UW/zc2zTYwJMqr/Z+iCYixAc00ildj4g2x0Qamolw== dependencies: jquery ">=1.7" +datatables.net@1.10.23, datatables.net@^1.10.11, datatables.net@^1.10.12: + version "1.10.23" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.23.tgz#59f7d7b12845183b1b379530d1385077e113ec01" + integrity sha512-we3tlNkzpxvgkKKlTxTMXPCt35untVXNg8zUYWpQyC1U5vJc+lT0+Zdc1ztK8d3lh5CfdnuFde2p8n3XwaGl3Q== + dependencies: + jquery ">=1.7" + datatables@^1.10.13: version "1.10.18" resolved "https://registry.yarnpkg.com/datatables/-/datatables-1.10.18.tgz#fee16e82aa70b17c5faf1a6954ac68f404f33a70" @@ -5574,11 +5587,6 @@ datauri@^1.1.0: mimer "^0.3.2" semver "^5.5.0" -date-fns@^2.16.1: - version "2.16.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b" - integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ== - dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -6151,7 +6159,14 @@ errlop@^2.0.0: resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b" integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw== -errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: +errno@^0.1.1: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== @@ -6891,13 +6906,12 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -focus-trap@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-4.0.2.tgz#4ee2b96547c9ea0e4252a2d4b2cca68944194663" - integrity sha512-HtLjfAK7Hp2qbBtLS6wEznID1mPT+48ZnP2nkHzgjpL4kroYHg0CdqJ5cTXk+UO5znAxF5fRUkhdyfgrhh8Lzw== +focus-trap@6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-6.2.2.tgz#0e6f391415b0697c99da932702dedd13084fa131" + integrity sha512-qWovH9+LGoKqREvJaTCzJyO0hphQYGz+ap5Hc4NqXHNhZBdxCi5uBPPcaOUw66fHmzXLVwvETLvFgpwPILqKpg== dependencies: - tabbable "^3.1.2" - xtend "^4.0.1" + tabbable "^5.1.4" follow-redirects@1.5.10: version "1.5.10" @@ -7937,15 +7951,15 @@ hast-util-to-text@^2.0.0: unist-util-find-after "^3.0.0" hawk@^7.0.7: - version "7.0.10" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-7.0.10.tgz#960f72edac9c6b9114c8387886d7278fba9119eb" - integrity sha512-3RWF4SXN9CdZ1VDAe6Pn3Rd0tC3Lw+GV+esX5oKCrXoScZK3Ri6dl5Wt986M/hlzU+GuapTGiB0rBhGeRIBQsw== + version "7.1.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-7.1.2.tgz#559c9be58be7d3c6869a62ef66c813bf17b82376" + integrity sha512-Pa8cMp2f/pFUF9B7cJuBHrF8PYPQmVXe2CfxyrgUmmfRNHMHuQOBpIFHk/eCFrHLVqLlAf2kU7BRxks7814TmA== dependencies: - b64 "4.x.x" - boom "7.x.x" - cryptiles "4.x.x" - hoek "6.x.x" - sntp "3.x.x" + "@hapi/b64" "4.x.x" + "@hapi/boom" "7.x.x" + "@hapi/cryptiles" "4.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/sntp" "3.x.x" hawk@~3.1.3: version "3.1.3" @@ -7976,11 +7990,6 @@ hoek@2.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0= -hoek@6.x.x: - version "6.1.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" - integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== - hoist-non-react-statics@^3.3.0: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" @@ -8160,9 +8169,9 @@ http-proxy@^1.17.0: requires-port "^1.0.0" http-signature@^1.2.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.4.tgz#a65b41193110b222364e776fd1ac848655a0e2f0" - integrity sha512-CbG3io8gUSIxNNSgq+XMjgpTMzAeVRipxVXjuGrDhH5M1a2kZ03w20s8FCLR1NjnnJj10KbvabvckmtQcYNb9g== + version "1.3.5" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.5.tgz#9f19496ffbf3227298d7b5f156e0e1a948678683" + integrity sha512-NwoTQYSJoFt34jSBbwzDHDofoA61NGXzu6wXh95o1Ry62EnmKjXb/nR/RknLeZ3G/uGwrlKNY2z7uPt+Cdl7Tw== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -8384,9 +8393,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.2, ini@^1.3.3, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== init-package-json@^1.10.3: version "1.10.3" @@ -8584,6 +8593,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -9876,6 +9892,11 @@ mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== +mime-db@1.45.0: + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + mime-db@~1.33.0: version "1.33.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" @@ -9888,13 +9909,20 @@ mime-types@2.1.18: dependencies: mime-db "~1.33.0" -mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.7: +mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: mime-db "1.44.0" +mime-types@~2.1.7: + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + dependencies: + mime-db "1.45.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" @@ -10268,11 +10296,16 @@ mz@^2.5.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.12.1, nan@^2.13.2: +nan@^2.12.1: version "2.14.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== +nan@^2.13.2: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + nanoid@^2.1.0: version "2.1.11" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" @@ -12599,7 +12632,15 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2: +resolve@^1.1.6, resolve@^1.1.7: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + +resolve@^1.10.0, resolve@^1.3.2: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== @@ -13145,16 +13186,6 @@ sntp@1.x.x: dependencies: hoek "2.x.x" -sntp@3.x.x: - version "3.0.2" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-3.0.2.tgz#3f0b5de6115681dce82a9478691f0e5c552de5a3" - integrity sha512-MCAPpBPFjNp1fwDVCLSRuWuH9gONtb2R+lS1esC6Mp8lP6jy60FVUtP/Qr0jBvcWAVbhzx06y1b6ptXiy32dug== - dependencies: - boom "7.x.x" - bounce "1.x.x" - hoek "6.x.x" - teamwork "3.x.x" - sockjs-client@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" @@ -13802,10 +13833,10 @@ surge@^0.21.3: tarr "1.1.0" url-parse-as-address "1.0.0" -tabbable@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-3.1.2.tgz#f2d16cccd01f400e38635c7181adfe0ad965a4a2" - integrity sha512-wjB6puVXTYO0BSFtCmWQubA/KIn7Xvajw0x0l6eJUudMG/EAiJvIUnyNX6xO4NpGrJ16lbD0eUseB9WxW0vlpQ== +tabbable@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.1.4.tgz#5278929c16d0d909c2cfcdfcfa89dd86bce5dd1a" + integrity sha512-M1thgfxQ6NGuiSv6I+392zkDcyE5f0DbZPkUQaxnFNu9n9UR/GuE0ii2Hf3l7CQHNiraYhD8W3GBRp35W/+kXg== tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" @@ -13899,11 +13930,6 @@ tarr@1.1.0: fstream ">=1.0.12" inherits "2" -teamwork@3.x.x: - version "3.2.0" - resolved "https://registry.yarnpkg.com/teamwork/-/teamwork-3.2.0.tgz#27916edab815459c1a4686252eb18fb5925f49fa" - integrity sha512-xAmJ8PIVjRZMXAHgUuOP8ITsv0SedyWAit2UWiNImXgg/F+BxrsG46ZegElNBM0Dwp+iMfbigg/Ll/M2oDRYww== - temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -14750,16 +14776,6 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" -victory-area@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-area/-/victory-area-35.3.1.tgz#94bb9fae96c0e47b81c6f79b54fed0a7d84980ce" - integrity sha512-5wZF7uesEHpgVJU2Irvx6ymCcs3XqZ5xb+Lqp4N54U23aj8LQuO+pmTXcoLMzGU/wEjh3bnpyCzkU1tsrW7BXg== - dependencies: - d3-shape "^1.2.0" - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-area@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-area/-/victory-area-35.3.5.tgz#8cc8e560cb52f478cfe3aa7743822a08722845b6" @@ -14770,15 +14786,6 @@ victory-area@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-axis@^35.2.0, victory-axis@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-axis/-/victory-axis-35.3.1.tgz#7b24d771fa8b78142b568de3349cd162277614e5" - integrity sha512-6N9gw1U0HcO3vVX3xph+FYbAEVnG6S/CTFpbJxkjJVFN4bT7YtdXm7HRC7t+fAD26ijhZnPzkBbxNkgjGKWJwg== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-axis@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-axis/-/victory-axis-35.3.5.tgz#5305b1215f844b17f2278500619d4c9b47ab2b8f" @@ -14788,16 +14795,6 @@ victory-axis@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-bar@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-bar/-/victory-bar-35.3.1.tgz#e2acd04fe85256faca433b329bca26dd08b5989e" - integrity sha512-86+iUcMndp/WnrCwJ3Hhz4rY8WvJ5z1dEMSg9mYsTuiLI4Cj/XqPopJm9XpHgbxlW3rweVX7/1Q9tl9sGdcbHg== - dependencies: - d3-shape "^1.2.0" - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-bar@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-bar/-/victory-bar-35.3.5.tgz#60ce981ef6acf2fd86519cfa31856ab5e8a80874" @@ -14808,26 +14805,6 @@ victory-bar@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-box-plot@^35.3.5: - version "35.3.5" - resolved "https://registry.yarnpkg.com/victory-box-plot/-/victory-box-plot-35.3.5.tgz#cc7d98d7ddc8c3df2faeb3798f3b87fca4c7d022" - integrity sha512-rsX7sQt1qhNVc/1+hSBsU0Rb5WvbBbE/2uQ+7NWKVF744O4/VJLYEYV0DqmrjJtlUo6KP40oL+Ns04c1kv+rzA== - dependencies: - d3-array "^1.2.0" - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.5" - -victory-brush-container@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-brush-container/-/victory-brush-container-35.3.1.tgz#2dce340bcec7f14d5c3d3882380be3fa3e2e5c85" - integrity sha512-imXPGTSa3bwEA/HAf0Jj01HR1edlJeCkOlmNw+I+63LHBFl3eS4S9XEkfISFRu62Xk+PimmBOamxyIbGCLzMvA== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - react-fast-compare "^2.0.0" - victory-core "^35.3.1" - victory-brush-container@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-brush-container/-/victory-brush-container-35.3.5.tgz#7dfa23334f0b5b29ad5eeee20c06f3b3d856a893" @@ -14838,38 +14815,6 @@ victory-brush-container@^35.3.5: react-fast-compare "^2.0.0" victory-core "^35.3.5" -victory-brush-line@^35.3.5: - version "35.3.5" - resolved "https://registry.yarnpkg.com/victory-brush-line/-/victory-brush-line-35.3.5.tgz#82f26f7010398df981fd8705696a9cfd26b8be13" - integrity sha512-YEhTLEY5ImnSBj5fMDGLGpbVPlFkd04PkACXJP4dNsgv4xwJPBbcgRY2DAvkdbpj7Zu6TenRG9AzEU9afM7chw== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - react-fast-compare "^2.0.0" - victory-core "^35.3.5" - -victory-candlestick@^35.3.5: - version "35.3.5" - resolved "https://registry.yarnpkg.com/victory-candlestick/-/victory-candlestick-35.3.5.tgz#0398c94ff369d9d624b3baa9ac5a28ac204ab54f" - integrity sha512-V+dK9tqjYMNK7MgJ+zZy1eif9l77xBgMIORVMbwauBPIkiL8Z5eulO+Y9/vq33/4JezDrJFH41WEW+Lg9PonzA== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.5" - -victory-chart@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-chart/-/victory-chart-35.3.1.tgz#a1391949cab33a4c5a9daef63763772788c7d682" - integrity sha512-afZ3d/ppczTtBrTKpX6LmARFLHP0snbt5flfa4gvs7UmstGbXAtUWRdKp13JOTYYYR7guojj/+nI85uXC6uT7g== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - react-fast-compare "^2.0.0" - victory-axis "^35.3.1" - victory-core "^35.3.1" - victory-polar-axis "^35.3.1" - victory-shared-events "^35.3.1" - victory-chart@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-chart/-/victory-chart-35.3.5.tgz#b99aea41a2fc487a58587057b3ee4e132e450246" @@ -14883,20 +14828,6 @@ victory-chart@^35.3.5: victory-polar-axis "^35.3.5" victory-shared-events "^35.3.5" -victory-core@^35.2.0, victory-core@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-core/-/victory-core-35.3.1.tgz#58b7a44c4e237def5dee9c5c947206cb2943ae72" - integrity sha512-64JY6ZJnGWbxd4ENSecKzCSNjqJ7Hjv8zwAUir9IX+x6Vg/ehRXX43V7PEdMhOZCFRxidVjP0cCizcAfPfcEPQ== - dependencies: - d3-ease "^1.0.0" - d3-interpolate "^1.1.1" - d3-scale "^1.0.0" - d3-shape "^1.2.0" - d3-timer "^1.0.0" - lodash "^4.17.19" - prop-types "^15.5.8" - react-fast-compare "^2.0.0" - victory-core@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-core/-/victory-core-35.3.5.tgz#0b89235a312ab9b430642c5593517b3cba649faa" @@ -14911,19 +14842,6 @@ victory-core@^35.3.5: prop-types "^15.5.8" react-fast-compare "^2.0.0" -victory-create-container@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-create-container/-/victory-create-container-35.3.1.tgz#ab42b6341b3ffdecbc6982664ebcb4dd63dd9f10" - integrity sha512-IlEqS/46x9FGXh1JlRGNu344nEMLRLBA4oGnowvImHxaudI4S+3qB8rCfFeZrYeRNhNOnr0eBwzEI9jhcrN/uw== - dependencies: - lodash "^4.17.19" - victory-brush-container "^35.3.1" - victory-core "^35.3.1" - victory-cursor-container "^35.3.1" - victory-selection-container "^35.3.1" - victory-voronoi-container "^35.3.1" - victory-zoom-container "^35.3.1" - victory-create-container@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-create-container/-/victory-create-container-35.3.5.tgz#d958da42979a2c641a4eaf82363d16fb8ed8fff6" @@ -14937,15 +14855,6 @@ victory-create-container@^35.3.5: victory-voronoi-container "^35.3.5" victory-zoom-container "^35.3.5" -victory-cursor-container@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-cursor-container/-/victory-cursor-container-35.3.1.tgz#53d4bd654693399b6888fd063f7b76b54ffdeba9" - integrity sha512-cCM9on44ei7vsZGyiyNXFrwoB6HyEGrG5Gy9O8ApCfbU/YZupZCg23Bt6GeMv2Iq1FzV/caLnQ7oe+RBZE/LWA== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-cursor-container@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-cursor-container/-/victory-cursor-container-35.3.5.tgz#821a15990fc33b3ca2c448ffa1d74ad6cf9b88fb" @@ -14955,26 +14864,6 @@ victory-cursor-container@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-errorbar@^35.3.5: - version "35.3.5" - resolved "https://registry.yarnpkg.com/victory-errorbar/-/victory-errorbar-35.3.5.tgz#92313a0c7948a754d25b8f772b33cddbfe71d112" - integrity sha512-JfuZSCI8lu8AQZ7eja+5eId9Vc4v7qG1Vy/aFp2j+glxINKCCf7Z/oJDKkIRp+ayzFb98T6Cz5LlXdLk9Kj4dw== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.5" - -victory-group@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-group/-/victory-group-35.3.1.tgz#f8b7167868b950197b7f27df1081223a099fea51" - integrity sha512-uRz7eVvfoQmQzGynYn5C9V74Ptmt0sr33gfD0afGIuLE+Fr11XBARqWGhh7gB6rP1TqZFXXwiAaTpLAhwGGQbw== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - react-fast-compare "^2.0.0" - victory-core "^35.3.1" - victory-shared-events "^35.3.1" - victory-group@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-group/-/victory-group-35.3.5.tgz#12bcbf6ebf65376a4990891534bc18de7c60fcec" @@ -14986,28 +14875,6 @@ victory-group@^35.3.5: victory-core "^35.3.5" victory-shared-events "^35.3.5" -victory-histogram@^35.3.5: - version "35.3.5" - resolved "https://registry.yarnpkg.com/victory-histogram/-/victory-histogram-35.3.5.tgz#95ccffc8ee08cce5b88b24da9ab1240414f4300f" - integrity sha512-eztr8KjA5AAgPLCLWvqnyETOpMhZC+VuUbcISPHJ0n+0Icxy1eawHSPX8pbhPprYg0OoVnDApNsq4gJDcHSk3Q== - dependencies: - d3-array "^2.4.0" - d3-scale "^1.0.0" - lodash "^4.17.19" - prop-types "^15.5.8" - react-fast-compare "^2.0.0" - victory-bar "^35.3.5" - victory-core "^35.3.5" - -victory-legend@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-legend/-/victory-legend-35.3.1.tgz#b2ee97e160e1bf3847978c713ba762bc45b15c5e" - integrity sha512-0gsoA+Uyp0xV+bHybZKMN7nQen9lAEpTWE1AMYJFs/vKubEbQuEE0wqN0GiPUSHLiptjptUQ2ItynfhqA7ilOw== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-legend@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-legend/-/victory-legend-35.3.5.tgz#91796f69f74a3fff66564f0754b6f19bf3d7ada8" @@ -15017,16 +14884,6 @@ victory-legend@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-line@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-line/-/victory-line-35.3.1.tgz#06f8462879a9d2932388aca14b868a842c1a170a" - integrity sha512-z+9VeQi9E0R1moT1Nt50A+J0rxz0O85m0a3ZBO+qjI/W1pwJoP4fOXuc+Vlw3RnFg8lNjOC+YK0b7aseIqqDOQ== - dependencies: - d3-shape "^1.2.0" - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-line@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-line/-/victory-line-35.3.5.tgz#4e6a955ebad3404a5c2326de979b868bd973e8b8" @@ -15037,16 +14894,6 @@ victory-line@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-pie@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-pie/-/victory-pie-35.3.1.tgz#da54611db4cb8d4ec7bca875372e0c88ca4861fb" - integrity sha512-boDFOuGIB+/ynVKp1CTFE3yf8bmVuv0IFT4xKhaqDcPaoaHKrhlMbWiPYFzlDXQzX88AppPSozB+Ol90u3QYMQ== - dependencies: - d3-shape "^1.0.0" - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-pie@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-pie/-/victory-pie-35.3.5.tgz#fe3de4251fa2c1748bc941209ce44087918cea78" @@ -15057,15 +14904,6 @@ victory-pie@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-polar-axis@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-polar-axis/-/victory-polar-axis-35.3.1.tgz#056a7b91a2f39c59cf0cf31786a479dfa943321c" - integrity sha512-MgJENIXUab5ZLY8o8uGIhXlDQ8cHXDJT8wi64RpIX3lyJVochJUBZLFsmmd5qTNsrHoarHssST6WLxfvjhbn+Q== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-polar-axis@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-polar-axis/-/victory-polar-axis-35.3.5.tgz#f89ebbbe9b3d7f0d4153271fd2a92284987cf786" @@ -15075,15 +14913,6 @@ victory-polar-axis@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-scatter@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-scatter/-/victory-scatter-35.3.1.tgz#77f71f0576e0c55137891878a54e957b4a69dcc6" - integrity sha512-NfAfdKSATCaVL4Do3CoDY3YEP9hoa3y+/dwAKQR2JnUqeDh44f4Fp+bK6r2pvIvpy2M8kN4Tk3cckzrz/6xPGA== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-scatter@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-scatter/-/victory-scatter-35.3.5.tgz#f4651c7ebb0eb626689308f58b53bf85f01336da" @@ -15093,15 +14922,6 @@ victory-scatter@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-selection-container@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-selection-container/-/victory-selection-container-35.3.1.tgz#d81baeaad896969c06ee4f7f194b1cd2ce85b7b8" - integrity sha512-OKvA6+x7f8yi2OCp5IFw3xCylPnypXdJCkZgjKbvOhxh/QH4TjjWNY9Q6xHJPgA0NwbI5nMvUps0zty7pTcsTA== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-selection-container@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-selection-container/-/victory-selection-container-35.3.5.tgz#9bca411d8b2c6b3bc2ec33aa2a7ebceb5faeb563" @@ -15111,17 +14931,6 @@ victory-selection-container@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-shared-events@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-shared-events/-/victory-shared-events-35.3.1.tgz#5b887681a938d8c4e2ee4b1c4bf50df28bd84f05" - integrity sha512-5gBiR7iPS0ODdBapml91z3KNhj2uslVsmAJKCUSopzVB6BdcG0uFWJmb3G3Dhkn53VRgfXWYb57BNYFZTBzLAw== - dependencies: - json-stringify-safe "^5.0.1" - lodash "^4.17.19" - prop-types "^15.5.8" - react-fast-compare "^2.0.0" - victory-core "^35.3.1" - victory-shared-events@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-shared-events/-/victory-shared-events-35.3.5.tgz#e3efe1c27c85c710957a005ba6b3270e5da758a5" @@ -15133,17 +14942,6 @@ victory-shared-events@^35.3.5: react-fast-compare "^2.0.0" victory-core "^35.3.5" -victory-stack@^35.2.0: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-stack/-/victory-stack-35.3.1.tgz#9b0faffb10abf89304faaeb98e97feadd43e28f1" - integrity sha512-EBejqWehG8eCdif3FuKbbLvhfGS1Yi0W1BCl/lYBTjPPdJFC5B+75K/48NpFALdxNoQJhv/f5mqmcPyFOew4UA== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - react-fast-compare "^2.0.0" - victory-core "^35.3.1" - victory-shared-events "^35.3.1" - victory-stack@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-stack/-/victory-stack-35.3.5.tgz#aff896c3bae4c2bcfc337be8d6dbc7557ca495eb" @@ -15155,15 +14953,6 @@ victory-stack@^35.3.5: victory-core "^35.3.5" victory-shared-events "^35.3.5" -victory-tooltip@^35.2.0, victory-tooltip@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-tooltip/-/victory-tooltip-35.3.1.tgz#29406d86d89e4c0d2710bdb411996713294780d2" - integrity sha512-F7nYYJIux7/VNyKa8oXFuFT/llvieRTwGKrZYpVAZ27XBOPuoHZTi5ukhXv1z4/x+nUvfOwReHDRdGGWQ8x5mA== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-tooltip@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-tooltip/-/victory-tooltip-35.3.5.tgz#985ee8e84162d042304e90cdaf05bfbdfc5f7ca7" @@ -15173,18 +14962,6 @@ victory-tooltip@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory-voronoi-container@^35.2.0, victory-voronoi-container@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-voronoi-container/-/victory-voronoi-container-35.3.1.tgz#32f9d9f27b28947fd21e985cb29c8e8a22334218" - integrity sha512-gIFUHdV7FtH/CJX5R9LoaeZsgT2oKeS3q7xPko1ujTAY1undyi+nrO+n2zTYbuUcCEsDUQQbcqjecAgb1cZ60A== - dependencies: - delaunay-find "0.0.5" - lodash "^4.17.19" - prop-types "^15.5.8" - react-fast-compare "^2.0.0" - victory-core "^35.3.1" - victory-tooltip "^35.3.1" - victory-voronoi-container@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-voronoi-container/-/victory-voronoi-container-35.3.5.tgz#6932a71dc68d207eca30f5c540349d79c0d69678" @@ -15197,25 +14974,6 @@ victory-voronoi-container@^35.3.5: victory-core "^35.3.5" victory-tooltip "^35.3.5" -victory-voronoi@^35.3.5: - version "35.3.5" - resolved "https://registry.yarnpkg.com/victory-voronoi/-/victory-voronoi-35.3.5.tgz#ba7975b61b2414797e5385ca6d9c5b9c1581a7c6" - integrity sha512-H8W6So0hCM2l8vJEeaFaHnG0T9oh1FoNWMZXkr8kxo+/38GbvLQLtLovdccYyMNmp5BDxaZ3MZGT0QipbnCVYg== - dependencies: - d3-voronoi "^1.1.2" - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.5" - -victory-zoom-container@^35.2.0, victory-zoom-container@^35.3.1: - version "35.3.1" - resolved "https://registry.yarnpkg.com/victory-zoom-container/-/victory-zoom-container-35.3.1.tgz#fc947442056d78b10496cf62063bdc3d4d721849" - integrity sha512-5b9bDOI9MPgAxshLfd51dJ1T/w80JMzg7GAQsla4K9bGRWARo/Th4TnFvEWdaaz3AbA/vcB2A/aAZPvPCPw8lA== - dependencies: - lodash "^4.17.19" - prop-types "^15.5.8" - victory-core "^35.3.1" - victory-zoom-container@^35.3.5: version "35.3.5" resolved "https://registry.yarnpkg.com/victory-zoom-container/-/victory-zoom-container-35.3.5.tgz#474819052a2422d72f5066b5e906d8fb7b41e6a7" @@ -15225,38 +14983,6 @@ victory-zoom-container@^35.3.5: prop-types "^15.5.8" victory-core "^35.3.5" -victory@^35.3.5: - version "35.3.5" - resolved "https://registry.yarnpkg.com/victory/-/victory-35.3.5.tgz#4ddce964a9003182dac81e46b2b4a6c81b13964b" - integrity sha512-/sJCSTWVsR92kZeRHtYqgzKlAxYTAk5GgxcMLZKhv61gcan//m6FgMWRkLTeGPZAmVwa+e3iFq5gDxzqcrBw1w== - dependencies: - victory-area "^35.3.5" - victory-axis "^35.3.5" - victory-bar "^35.3.5" - victory-box-plot "^35.3.5" - victory-brush-container "^35.3.5" - victory-brush-line "^35.3.5" - victory-candlestick "^35.3.5" - victory-chart "^35.3.5" - victory-core "^35.3.5" - victory-create-container "^35.3.5" - victory-cursor-container "^35.3.5" - victory-errorbar "^35.3.5" - victory-group "^35.3.5" - victory-histogram "^35.3.5" - victory-legend "^35.3.5" - victory-line "^35.3.5" - victory-pie "^35.3.5" - victory-polar-axis "^35.3.5" - victory-scatter "^35.3.5" - victory-selection-container "^35.3.5" - victory-shared-events "^35.3.5" - victory-stack "^35.3.5" - victory-tooltip "^35.3.5" - victory-voronoi "^35.3.5" - victory-voronoi-container "^35.3.5" - victory-zoom-container "^35.3.5" - vinyl@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974"