diff --git a/.changeset/long-jars-collect.md b/.changeset/long-jars-collect.md new file mode 100644 index 000000000..e7274d984 --- /dev/null +++ b/.changeset/long-jars-collect.md @@ -0,0 +1,15 @@ +--- +'@verdaccio/ui-theme': minor +'@verdaccio/ui-components': minor +--- + +feat: ui improvements + +Some UI improvements + +- download progress indicator: https://github.com/verdaccio/verdaccio/discussions/4068 +- fix dark mode and readme css support https://github.com/verdaccio/verdaccio/discussions/3942 https://github.com/verdaccio/verdaccio/discussions/3467 +- fix global for yarn packages and add version to the packages on copy +- feat: hide deprecated versions option +- fix: improve deprecated package style +- feat: display deprecated versions diff --git a/packages/core/types/src/configuration.ts b/packages/core/types/src/configuration.ts index d2425f2ed..94d4dacc5 100644 --- a/packages/core/types/src/configuration.ts +++ b/packages/core/types/src/configuration.ts @@ -98,6 +98,7 @@ export type CommonWebConf = { showFooter?: boolean; showThemeSwitch?: boolean; showDownloadTarball?: boolean; + hideDeprecatedVersions?: boolean; primaryColor: string; showRaw?: boolean; }; diff --git a/packages/middleware/src/middlewares/web/utils/renderHTML.ts b/packages/middleware/src/middlewares/web/utils/renderHTML.ts index 93fdf8601..a2f96c46a 100644 --- a/packages/middleware/src/middlewares/web/utils/renderHTML.ts +++ b/packages/middleware/src/middlewares/web/utils/renderHTML.ts @@ -42,6 +42,7 @@ export default function renderHTML(config: ConfigYaml, manifest, manifestFiles, const base = getPublicUrl(config?.url_prefix, req); const basename = new URL(base).pathname; const language = config?.i18n?.web ?? DEFAULT_LANGUAGE; + const hideDeprecatedVersions = config?.web?.hideDeprecatedVersions ?? false; // @ts-ignore const needHtmlCache = [undefined, null].includes(config?.web?.html_cache) ? true @@ -99,6 +100,7 @@ export default function renderHTML(config: ConfigYaml, manifest, manifestFiles, title, scope, language, + hideDeprecatedVersions, }; let webPage; diff --git a/packages/plugins/ui-theme/package.json b/packages/plugins/ui-theme/package.json index d01ea8219..e9def2d41 100644 --- a/packages/plugins/ui-theme/package.json +++ b/packages/plugins/ui-theme/package.json @@ -33,7 +33,7 @@ "babel-loader": "8.3.0", "babel-plugin-dynamic-import-node": "2.3.3", "country-flag-icons": "1.5.5", - "css-loader": "6.7.3", + "css-loader": "6.8.1", "dayjs": "1.11.7", "dompurify": "2.4.5", "friendly-errors-webpack-plugin": "1.7.0", diff --git a/packages/plugins/ui-theme/src/i18n/crowdin/ui.json b/packages/plugins/ui-theme/src/i18n/crowdin/ui.json index 4fa7430c5..0738ac394 100644 --- a/packages/plugins/ui-theme/src/i18n/crowdin/ui.json +++ b/packages/plugins/ui-theme/src/i18n/crowdin/ui.json @@ -53,7 +53,9 @@ "versions": { "current-tags": "Current Tags", "version-history": "Version History", - "not-available": "Not available" + "not-available": "Not available", + "deprecated": "Deprecated", + "hide-deprecated": "All deprecated versions are hidden by global configuration" }, "package": { "published-on": "Published on {{time}} •", @@ -101,13 +103,8 @@ }, "installation": { "title": "Installation", - "install-using-yarn": "Install using yarn", - "install-using-yarn-command": "yarn add {{packageName}}", - "install-using-npm": "Install using npm", - "install-using-npm-command": "npm install {{packageName}}", - "install-using-pnpm": "Install using pnpm", - "install-using-pnpm-command": "pnpm install {{packageName}}", - "global": "View as global" + "global": "global package", + "yarnModern": "yarn modern syntax" }, "repository": { "title": "Repository" diff --git a/packages/plugins/ui-theme/tools/_verdaccio.config.yaml b/packages/plugins/ui-theme/tools/_verdaccio.config.yaml index e3cfde334..85f2534b0 100644 --- a/packages/plugins/ui-theme/tools/_verdaccio.config.yaml +++ b/packages/plugins/ui-theme/tools/_verdaccio.config.yaml @@ -4,6 +4,7 @@ web: primary_color: #CCC # showRaw: true # darkMode: true + hideDeprecatedVersions: false pkgManagers: - npm - yarn diff --git a/packages/plugins/ui-theme/tools/webpack.config.js b/packages/plugins/ui-theme/tools/webpack.config.js index b9c7f777e..72f4e2dd1 100644 --- a/packages/plugins/ui-theme/tools/webpack.config.js +++ b/packages/plugins/ui-theme/tools/webpack.config.js @@ -59,7 +59,16 @@ module.exports = { }, { test: /\.css$/i, - use: ['style-loader', 'css-loader'], + use: [ + 'style-loader', + { + loader: 'css-loader', + options: { + importLoaders: 1, + modules: true, + }, + }, + ], }, { test: /\.md$/, diff --git a/packages/ui-components/jest/jest.config.js b/packages/ui-components/jest/jest.config.js index d4c8ed423..843d1e0a8 100644 --- a/packages/ui-components/jest/jest.config.js +++ b/packages/ui-components/jest/jest.config.js @@ -28,7 +28,6 @@ module.exports = Object.assign({}, config, { '\\.(svg)$': '/jest/unit/empty.ts', '\\.(jpg)$': '/jest/unit/empty.ts', '\\.(md)$': '/jest/unit/empty-string.ts', - 'github-markdown-css': '/jest/identity.js', 'react-markdown': '/src/__mocks__/react-markdown.tsx', 'remark-*': '/src/__mocks__/remark-plugin.ts', }, diff --git a/packages/ui-components/package.json b/packages/ui-components/package.json index a1b73e8c6..8faef430a 100644 --- a/packages/ui-components/package.json +++ b/packages/ui-components/package.json @@ -14,6 +14,7 @@ "type-check": "tsc --noEmit -p tsconfig.build.json", "build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json", "build:js": "babel src/ --out-dir build/ --copy-files --no-copy-ignored --extensions \".ts,.tsx\" --source-maps --ignore \"src/**/*.stories.tsx\" --ignore \"src/**/*.test.tsx\" --ignore \"src/**/*.test.ts\"", + "watch": "babel src/ --out-dir build/ --watch --copy-files --no-copy-ignored --extensions \".ts,.tsx\" --source-maps --ignore \"src/**/*.stories.tsx\" --ignore \"src/**/*.test.tsx\" --ignore \"src/**/*.test.ts\"", "build": "pnpm run build:js && pnpm run build:types", "start": "start-storybook -p 6006 -s ./public", "build-storybook": "build-storybook" @@ -33,9 +34,9 @@ "country-flag-icons": "1.5.5", "dayjs": "1.11.7", "dompurify": "2.4.5", - "github-markdown-css": "5.2.0", "highlight.js": "11.7.0", "history": "4.10.1", + "classnames": "2.3.2", "i18next": "20.6.1", "js-base64": "3.7.5", "localstorage-memory": "1.0.3", diff --git a/packages/ui-components/src/components/ActionBar/ActionBar.stories.tsx b/packages/ui-components/src/components/ActionBar/ActionBar.stories.tsx index 1dec898d6..f497d0426 100644 --- a/packages/ui-components/src/components/ActionBar/ActionBar.stories.tsx +++ b/packages/ui-components/src/components/ActionBar/ActionBar.stories.tsx @@ -20,7 +20,7 @@ const packageMeta = { dist: { fileCount: 0, unpackedSize: 0, - tarball: 'https://registry.verdaccio.org/storybook/-/storybook-0.2.0.tgz', + tarball: 'https://registry.npmjs.org/verdaccio/-/verdaccio-5.26.0.tgz', }, homepage: 'https://verdaccio.org', bugs: { diff --git a/packages/ui-components/src/components/ActionBar/ActionBar.test.tsx b/packages/ui-components/src/components/ActionBar/ActionBar.test.tsx index ac48c3e9c..8103e0bba 100644 --- a/packages/ui-components/src/components/ActionBar/ActionBar.test.tsx +++ b/packages/ui-components/src/components/ActionBar/ActionBar.test.tsx @@ -1,7 +1,13 @@ import React from 'react'; import { store } from '../../store/store'; -import { cleanup, fireEvent, renderWithStore, screen } from '../../test/test-react-testing-library'; +import { + cleanup, + fireEvent, + renderWithStore, + screen, + waitFor, +} from '../../test/test-react-testing-library'; import ActionBar from './ActionBar'; const defaultPackageMeta = { @@ -27,8 +33,10 @@ describe(' component', () => { }); test('should render the component in default state', () => { - const { container } = renderWithStore(, store); - expect(container.firstChild).toMatchSnapshot(); + renderWithStore(, store); + expect(screen.getByTestId('download-tarball-btn')).toBeInTheDocument(); + expect(screen.getByTestId('BugReportIcon')).toBeInTheDocument(); + expect(screen.getByTestId('HomeIcon')).toBeInTheDocument(); }); test('when there is no action bar data', () => { @@ -45,8 +53,10 @@ describe(' component', () => { }, }; - const { container } = renderWithStore(, store); - expect(container.firstChild).toMatchSnapshot(); + renderWithStore(, store); + expect(screen.queryByTestId('download-tarball-btn')).not.toBeInTheDocument(); + expect(screen.queryByTestId('BugReportIcon')).not.toBeInTheDocument(); + expect(screen.queryByTestId('HomeIcon')).not.toBeInTheDocument(); }); test('when there is a button to download a tarball', () => { @@ -59,11 +69,10 @@ describe(' component', () => { expect(screen.getByLabelText('action-bar-action.raw')).toBeTruthy(); }); - test('when click button to raw manifest open a dialog with viewver', () => { + test('when click button to raw manifest open a dialog with viewer', async () => { renderWithStore(, store); fireEvent.click(screen.getByLabelText('action-bar-action.raw')); - // TODO: fix this part - // expect(screen.getByTestId('raw-viewver-dialog')).toBeInTheDocument(); + await waitFor(() => expect(screen.getByTestId('rawViewer--dialog')).toBeInTheDocument()); }); test('should not display download tarball button', () => { @@ -78,8 +87,6 @@ describe(' component', () => { test('when there is a button to open an issue', () => { renderWithStore(, store); - // TODO: should be visible by text - // expect(screen.getByLabelText('action-bar-action.open-an-issue')).toBeTruthy(); expect(screen.getByTestId('BugReportIcon')).toBeInTheDocument(); }); }); diff --git a/packages/ui-components/src/components/ActionBar/ActionBar.tsx b/packages/ui-components/src/components/ActionBar/ActionBar.tsx index 41a16700b..6669f18a9 100644 --- a/packages/ui-components/src/components/ActionBar/ActionBar.tsx +++ b/packages/ui-components/src/components/ActionBar/ActionBar.tsx @@ -1,4 +1,6 @@ +/* eslint-disable verdaccio/jsx-spread */ import Box from '@mui/material/Box'; +import Stack from '@mui/material/Stack'; import React, { useState } from 'react'; import { url } from '../../utils'; @@ -40,18 +42,20 @@ const ActionBar: React.FC = ({ showRaw, showDownloadTarball = true, packa return ( - {actions.map((action) => ( - - ))} - {isRawViewerOpen && ( - { - setIsRawViewerOpen(false); - }} - packageMeta={packageMeta} - /> - )} + + {actions.map((action) => ( + + ))} + {isRawViewerOpen && ( + { + setIsRawViewerOpen(false); + }} + packageMeta={packageMeta} + /> + )} + ); }; diff --git a/packages/ui-components/src/components/ActionBar/ActionBarAction.tsx b/packages/ui-components/src/components/ActionBar/ActionBarAction.tsx index 4e9029cd0..f22eec6a2 100644 --- a/packages/ui-components/src/components/ActionBar/ActionBarAction.tsx +++ b/packages/ui-components/src/components/ActionBar/ActionBarAction.tsx @@ -3,25 +3,21 @@ import BugReportIcon from '@mui/icons-material/BugReport'; import DownloadIcon from '@mui/icons-material/CloudDownload'; import HomeIcon from '@mui/icons-material/Home'; import RawOnIcon from '@mui/icons-material/RawOn'; +import CircularProgress from '@mui/material/CircularProgress'; import FabMUI from '@mui/material/Fab'; import Tooltip from '@mui/material/Tooltip'; import React, { useCallback } from 'react'; import { useTranslation } from 'react-i18next'; -import { useDispatch } from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; import { Theme } from '../../Theme'; -import { Dispatch } from '../../store/store'; +import { Dispatch, RootState } from '../../store/store'; import { Link } from '../Link'; export const Fab = styled(FabMUI)<{ theme?: Theme }>(({ theme }) => ({ backgroundColor: theme?.palette.mode === 'light' ? theme?.palette.primary.main : theme?.palette.cyanBlue, color: theme?.palette.white, - marginRight: 10, - ':hover': { - color: theme?.palette.mode === 'light' ? theme?.palette.primary.main : theme?.palette.cyanBlue, - background: theme?.palette.white, - }, })); type ActionType = 'VISIT_HOMEPAGE' | 'OPEN_AN_ISSUE' | 'DOWNLOAD_TARBALL' | 'RAW_DATA'; @@ -36,6 +32,7 @@ export interface ActionBarActionProps { const ActionBarAction: React.FC = ({ type, link, action }) => { const { t } = useTranslation(); const dispatch = useDispatch(); + const isLoading = useSelector((state: RootState) => state?.loading?.models.download); const handleDownload = useCallback(async () => { dispatch.download.getTarball({ link }); @@ -65,9 +62,17 @@ const ActionBarAction: React.FC = ({ type, link, action }) case 'DOWNLOAD_TARBALL': return ( - - - + {isLoading ? ( + + + + + + ) : ( + + + + )} ); case 'RAW_DATA': diff --git a/packages/ui-components/src/components/ActionBar/__snapshots__/ActionBar.test.tsx.snap b/packages/ui-components/src/components/ActionBar/__snapshots__/ActionBar.test.tsx.snap deleted file mode 100644 index 0b76a99b4..000000000 --- a/packages/ui-components/src/components/ActionBar/__snapshots__/ActionBar.test.tsx.snap +++ /dev/null @@ -1,263 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[` component should render the component in default state 1`] = ` -.emotion-0 { - -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - margin-bottom: 14px; -} - -.emotion-1 { - margin: 0; - font-family: -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif; - font-weight: 500; - font-size: 0.875rem; - line-height: 1.75; - text-transform: uppercase; -} - -.emotion-3 { - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - position: relative; - box-sizing: border-box; - -webkit-tap-highlight-color: transparent; - background-color: transparent; - outline: 0; - border: 0; - margin: 0; - border-radius: 0; - padding: 0; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - vertical-align: middle; - -moz-appearance: none; - -webkit-appearance: none; - -webkit-text-decoration: none; - text-decoration: none; - color: inherit; - font-family: -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif; - font-weight: 500; - font-size: 0.875rem; - line-height: 1.75; - text-transform: uppercase; - min-height: 36px; - -webkit-transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - border-radius: 50%; - padding: 0; - min-width: 0; - width: 40px; - height: 40px; - z-index: 1050; - box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12); - color: rgba(0, 0, 0, 0.87); - background-color: #e0e0e0; - background-color: #4b5e40; - color: #fff; - margin-right: 10px; -} - -.emotion-3::-moz-focus-inner { - border-style: none; -} - -.emotion-3.Mui-disabled { - pointer-events: none; - cursor: default; -} - -@media print { - .emotion-3 { - -webkit-print-color-adjust: exact; - color-adjust: exact; - } -} - -.emotion-3:active { - box-shadow: 0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12); -} - -.emotion-3:hover { - background-color: #f5f5f5; - -webkit-text-decoration: none; - text-decoration: none; -} - -@media (hover: none) { - .emotion-3:hover { - background-color: #e0e0e0; - } -} - -.emotion-3.Mui-focusVisible { - box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12); -} - -.emotion-3.Mui-disabled { - color: rgba(0, 0, 0, 0.26); - box-shadow: none; - background-color: rgba(0, 0, 0, 0.12); -} - -.emotion-3:hover { - color: #4b5e40; - background: #fff; -} - -.emotion-4 { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - width: 1em; - height: 1em; - display: inline-block; - fill: currentColor; - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - font-size: 1.5rem; -} - -.emotion-5 { - overflow: hidden; - pointer-events: none; - position: absolute; - z-index: 0; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - - -`; - -exports[` component when there is no action bar data 1`] = ` -.emotion-0 { - -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - margin-bottom: 14px; -} - -
-`; diff --git a/packages/ui-components/src/components/Author/Author.tsx b/packages/ui-components/src/components/Author/Author.tsx index 372b9de63..ab0fbeab8 100644 --- a/packages/ui-components/src/components/Author/Author.tsx +++ b/packages/ui-components/src/components/Author/Author.tsx @@ -1,11 +1,13 @@ +import { Typography } from '@mui/material'; import Avatar from '@mui/material/Avatar'; import List from '@mui/material/List'; +import { useTheme } from '@mui/styles'; import i18next from 'i18next'; import React, { FC } from 'react'; import { useTranslation } from 'react-i18next'; import { url } from '../../utils'; -import { AuthorListItem, AuthorListItemText, StyledText } from './styles'; +import { AuthorListItem, StyledText } from './styles'; export function getAuthorName(authorName?: string): string { if (!authorName) { @@ -26,6 +28,8 @@ export function getAuthorName(authorName?: string): string { const Author: FC<{ packageMeta }> = ({ packageMeta }) => { const { t } = useTranslation(); + const theme = useTheme(); + if (!packageMeta) { return null; } @@ -37,8 +41,13 @@ const Author: FC<{ packageMeta }> = ({ packageMeta }) => { } const { email, name } = author; - - const avatarComponent = ; + const avatarComponent = ( + + ); return ( {t('sidebar.author.title')}}> @@ -50,7 +59,7 @@ const Author: FC<{ packageMeta }> = ({ packageMeta }) => { {avatarComponent} )} - {name && } + {name && {getAuthorName(name)}} ); diff --git a/packages/ui-components/src/components/Author/__snapshots__/Author.test.tsx.snap b/packages/ui-components/src/components/Author/__snapshots__/Author.test.tsx.snap index dfefbce01..55cdbe5e4 100644 --- a/packages/ui-components/src/components/Author/__snapshots__/Author.test.tsx.snap +++ b/packages/ui-components/src/components/Author/__snapshots__/Author.test.tsx.snap @@ -95,6 +95,9 @@ exports[` component should render the component in default state 1`] = -moz-user-select: none; -ms-user-select: none; user-select: none; + width: 40px; + height: 40px; + margin-right: 8px; } .emotion-6 { @@ -106,24 +109,12 @@ exports[` component should render the component in default state 1`] = text-indent: 10000px; } -.emotion-8 { - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-width: 0; - margin-top: 4px; - margin-bottom: 4px; - padding: 0 10px; - margin: 0; -} - -.emotion-9 { +.emotion-7 { margin: 0; font-family: -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif; - font-weight: 400; - font-size: 1rem; - line-height: 1.5; - display: block; + font-weight: 500; + font-size: 0.875rem; + line-height: 1.57; } @@ -153,15 +144,11 @@ exports[` component should render the component in default state 1`] = />
-
- - verdaccio user - -
+ verdaccio user + @@ -258,6 +245,9 @@ exports[` component should render the component in default state 1`] = -moz-user-select: none; -ms-user-select: none; user-select: none; + width: 40px; + height: 40px; + margin-right: 8px; } .emotion-6 { @@ -269,24 +259,12 @@ exports[` component should render the component in default state 1`] = text-indent: 10000px; } -.emotion-8 { - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-width: 0; - margin-top: 4px; - margin-bottom: 4px; - padding: 0 10px; - margin: 0; -} - -.emotion-9 { +.emotion-7 { margin: 0; font-family: -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif; - font-weight: 400; - font-size: 1rem; - line-height: 1.5; - display: block; + font-weight: 500; + font-size: 0.875rem; + line-height: 1.57; }
@@ -315,15 +293,11 @@ exports[` component should render the component in default state 1`] = />
-
- - verdaccio user - -
+ verdaccio user + , @@ -476,6 +450,9 @@ exports[` component should render the component when there is no autho -moz-user-select: none; -ms-user-select: none; user-select: none; + width: 40px; + height: 40px; + margin-right: 8px; } .emotion-6 { @@ -487,24 +464,12 @@ exports[` component should render the component when there is no autho text-indent: 10000px; } -.emotion-8 { - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-width: 0; - margin-top: 4px; - margin-bottom: 4px; - padding: 0 10px; - margin: 0; -} - -.emotion-9 { +.emotion-7 { margin: 0; font-family: -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif; - font-weight: 400; - font-size: 1rem; - line-height: 1.5; - display: block; + font-weight: 500; + font-size: 0.875rem; + line-height: 1.57; } @@ -529,15 +494,11 @@ exports[` component should render the component when there is no autho src="https://www.gravatar.com/avatar/000000" /> -
- - verdaccio user - -
+ verdaccio user + @@ -634,6 +595,9 @@ exports[` component should render the component when there is no autho -moz-user-select: none; -ms-user-select: none; user-select: none; + width: 40px; + height: 40px; + margin-right: 8px; } .emotion-6 { @@ -645,24 +609,12 @@ exports[` component should render the component when there is no autho text-indent: 10000px; } -.emotion-8 { - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-width: 0; - margin-top: 4px; - margin-bottom: 4px; - padding: 0 10px; - margin: 0; -} - -.emotion-9 { +.emotion-7 { margin: 0; font-family: -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif; - font-weight: 400; - font-size: 1rem; - line-height: 1.5; - display: block; + font-weight: 500; + font-size: 0.875rem; + line-height: 1.57; }
@@ -686,15 +638,11 @@ exports[` component should render the component when there is no autho src="https://www.gravatar.com/avatar/000000" />
-
- - verdaccio user - -
+ verdaccio user + , diff --git a/packages/ui-components/src/components/Author/styles.ts b/packages/ui-components/src/components/Author/styles.ts index 8485c68ed..e43e0e57e 100644 --- a/packages/ui-components/src/components/Author/styles.ts +++ b/packages/ui-components/src/components/Author/styles.ts @@ -1,7 +1,6 @@ import styled from '@emotion/styled'; import { Typography } from '@mui/material'; import ListItem from '@mui/material/ListItem'; -import ListItemText from '@mui/material/ListItemText'; import { Theme } from '../../Theme'; @@ -15,8 +14,3 @@ export const AuthorListItem = styled(ListItem)({ backgroundColor: 'transparent', }, }); - -export const AuthorListItemText = styled(ListItemText)({ - padding: '0 10px', - margin: 0, -}); diff --git a/packages/ui-components/src/components/CopyClipboard/CopyToClipBoard.tsx b/packages/ui-components/src/components/CopyClipboard/CopyToClipBoard.tsx index 2c53548d3..b4e7fe3e4 100644 --- a/packages/ui-components/src/components/CopyClipboard/CopyToClipBoard.tsx +++ b/packages/ui-components/src/components/CopyClipboard/CopyToClipBoard.tsx @@ -4,6 +4,7 @@ import IconButton from '@mui/material/IconButton'; import Tooltip from '@mui/material/Tooltip'; import React from 'react'; +import { Theme } from '../../Theme'; import { copyToClipBoardUtility } from './utils'; interface Props { @@ -19,14 +20,14 @@ const Wrapper = styled('div')({ justifyContent: 'space-between', }); -const Content = styled('span')({ +const Content = styled('span')<{ theme?: Theme }>(({ theme }) => ({ display: 'inline-block', overflow: 'hidden', textOverflow: 'ellipsis', height: 'auto', whiteSpace: 'break-spaces', - fontSize: '1rem', -}); + fontSize: theme?.fontSize.sm, +})); function CopyToClipBoard({ text, children, dataTestId, title, ...props }: Props) { return ( diff --git a/packages/ui-components/src/components/Deprecated/Deprecated.tsx b/packages/ui-components/src/components/Deprecated/Deprecated.tsx index e77f6e6f5..31943ea9d 100644 --- a/packages/ui-components/src/components/Deprecated/Deprecated.tsx +++ b/packages/ui-components/src/components/Deprecated/Deprecated.tsx @@ -1,30 +1,17 @@ -import Card from '@mui/material/Card'; -import CardContent from '@mui/material/CardContent'; -import { styled } from '@mui/system'; +import Alert from '@mui/material/Alert'; +import { useTheme } from '@mui/styles'; import React from 'react'; -import { Theme } from '../../Theme'; - -export const CardStyled = styled(Card)<{ theme?: Theme }>(({ theme }) => { - return { - marginTop: theme?.spacing(1), - marginBottom: theme?.spacing(0.5), - backgroundColor: theme?.palette?.error.light, - opacity: '0.9', - color: theme?.palette?.error.contrastText, - fontWeight: 'bold', - }; -}); - export type Props = { message: string; }; const Deprecated: React.FC = ({ message }) => { + const theme = useTheme(); return ( - - {message} - + + {message} + ); }; diff --git a/packages/ui-components/src/components/Engines/Engines.tsx b/packages/ui-components/src/components/Engines/Engines.tsx index 8700faa3f..dcf46d0d0 100644 --- a/packages/ui-components/src/components/Engines/Engines.tsx +++ b/packages/ui-components/src/components/Engines/Engines.tsx @@ -1,7 +1,7 @@ +import { Typography } from '@mui/material'; import Avatar from '@mui/material/Avatar'; import Grid from '@mui/material/Grid'; import List from '@mui/material/List'; -import ListItemText from '@mui/material/ListItemText'; import React, { FC } from 'react'; import { useTranslation } from 'react-i18next'; @@ -24,7 +24,7 @@ const EngineItem: FC = ({ title, element, engineText }) => ( {title}}> {element} - + {engineText} diff --git a/packages/ui-components/src/components/Help/__snapshots__/Help.test.tsx.snap b/packages/ui-components/src/components/Help/__snapshots__/Help.test.tsx.snap index aeeeab29d..9bdeed79a 100644 --- a/packages/ui-components/src/components/Help/__snapshots__/Help.test.tsx.snap +++ b/packages/ui-components/src/components/Help/__snapshots__/Help.test.tsx.snap @@ -69,7 +69,7 @@ exports[` component should load the component in default state 1`] = ` text-overflow: ellipsis; height: auto; white-space: break-spaces; - font-size: 1rem; + font-size: 14px; } .emotion-10 { diff --git a/packages/ui-components/src/components/Install/Install.test.tsx b/packages/ui-components/src/components/Install/Install.test.tsx index 11a7fbef0..4e1747ff1 100644 --- a/packages/ui-components/src/components/Install/Install.test.tsx +++ b/packages/ui-components/src/components/Install/Install.test.tsx @@ -5,6 +5,7 @@ import { PackageManagers } from '@verdaccio/types'; import { useConfig } from '../../providers'; import { render, screen } from '../../test/test-react-testing-library'; import Install from './Install'; +import { getGlobalInstall } from './InstallListItem'; import data from './__partials__/data.json'; const ComponentToBeRendered: React.FC<{ pkgManagers?: PackageManagers[] }> = () => { @@ -16,12 +17,9 @@ const ComponentToBeRendered: React.FC<{ pkgManagers?: PackageManagers[] }> = () describe('', () => { test('renders correctly', () => { render(); - expect(screen.getByText('sidebar.installation.install-using-pnpm')).toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-yarn')).toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-npm')).toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-npm-command')).toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-yarn-command')).toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-pnpm-command')).toBeInTheDocument(); + expect(screen.getByText('yarn add foo@8.0.0')).toBeInTheDocument(); + expect(screen.getByText('pnpm install foo@8.0.0')).toBeInTheDocument(); + expect(screen.getByText('npm install foo@8.0.0')).toBeInTheDocument(); }); test('should have 3 children', () => { @@ -38,47 +36,41 @@ describe('', () => { render(); expect(screen.getByText('sidebar.installation.title')).toBeTruthy(); - expect(screen.queryByText('sidebar.installation.install-using-pnpm')).not.toBeInTheDocument(); - expect(screen.queryByText('sidebar.installation.install-using-yarn')).not.toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-npm')).toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-npm-command')).toBeInTheDocument(); - expect( - screen.queryByText('sidebar.installation.install-using-yarn-command') - ).not.toBeInTheDocument(); - expect( - screen.queryByText('sidebar.installation.install-using-pnpm-command') - ).not.toBeInTheDocument(); + expect(screen.queryByText('pnpm')).not.toBeInTheDocument(); + expect(screen.queryByText('yarn')).not.toBeInTheDocument(); + expect(screen.getByText('npm install foo@8.0.0')).toBeInTheDocument(); }); test('should have the element YARN', () => { window.__VERDACCIO_BASENAME_UI_OPTIONS.pkgManagers = ['yarn']; render(); expect(screen.getByText('sidebar.installation.title')).toBeTruthy(); - expect(screen.queryByText('sidebar.installation.install-using-pnpm')).not.toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-yarn')).toBeInTheDocument(); - expect(screen.queryByText('sidebar.installation.install-using-npm')).not.toBeInTheDocument(); - expect( - screen.queryByText('sidebar.installation.install-using-npm-command') - ).not.toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-yarn-command')).toBeInTheDocument(); - expect( - screen.queryByText('sidebar.installation.install-using-pnpm-command') - ).not.toBeInTheDocument(); + expect(screen.queryByText('pnpm')).not.toBeInTheDocument(); + expect(screen.queryByText('npm')).not.toBeInTheDocument(); + expect(screen.getByText('yarn add foo@8.0.0')).toBeInTheDocument(); }); test('should have the element PNPM', () => { window.__VERDACCIO_BASENAME_UI_OPTIONS.pkgManagers = ['pnpm']; render(); - expect(screen.getByText('sidebar.installation.title')).toBeTruthy(); - expect(screen.getByText('sidebar.installation.install-using-pnpm')).toBeInTheDocument(); - expect(screen.queryByText('sidebar.installation.install-using-yarn')).not.toBeInTheDocument(); - expect(screen.queryByText('sidebar.installation.install-using-npm')).not.toBeInTheDocument(); - expect( - screen.queryByText('sidebar.installation.install-using-npm-command') - ).not.toBeInTheDocument(); - expect( - screen.queryByText('sidebar.installation.install-using-yarn-command') - ).not.toBeInTheDocument(); - expect(screen.getByText('sidebar.installation.install-using-pnpm-command')).toBeInTheDocument(); + expect(screen.queryByText('pnpm')).not.toBeInTheDocument(); + expect(screen.queryByText('yarn')).not.toBeInTheDocument(); + expect(screen.getByText('pnpm install foo@8.0.0')).toBeInTheDocument(); + }); +}); + +describe('getGlobalInstall', () => { + test('no global', () => { + expect(getGlobalInstall(false, 'foo', '1.0.0')).toEqual('1.0.0@foo'); + }); + test('global', () => { + expect(getGlobalInstall(true, 'foo', '1.0.0')).toEqual('-g 1.0.0@foo'); + }); + + test('yarn no global', () => { + expect(getGlobalInstall(false, 'foo', '1.0.0', true)).toEqual('1.0.0@foo'); + }); + test('yarn global', () => { + expect(getGlobalInstall(true, 'foo', '1.0.0', true)).toEqual('1.0.0@foo'); }); }); diff --git a/packages/ui-components/src/components/Install/Install.tsx b/packages/ui-components/src/components/Install/Install.tsx index 519b95edd..7e97d3f10 100644 --- a/packages/ui-components/src/components/Install/Install.tsx +++ b/packages/ui-components/src/components/Install/Install.tsx @@ -27,7 +27,6 @@ export type Props = { const Install: React.FC = ({ packageMeta, packageName, configOptions }) => { const { t } = useTranslation(); const theme = useTheme(); - if (!packageMeta || !packageName) { return null; } @@ -51,13 +50,25 @@ const Install: React.FC = ({ packageMeta, packageName, configOptions }) = subheader={{t('sidebar.installation.title')}} > {hasNpm && ( - + )} {hasYarn && ( - + )} {hasPnpm && ( - + )} diff --git a/packages/ui-components/src/components/Install/InstallListItem.tsx b/packages/ui-components/src/components/Install/InstallListItem.tsx index 042d4e0cc..c2ae41b56 100644 --- a/packages/ui-components/src/components/Install/InstallListItem.tsx +++ b/packages/ui-components/src/components/Install/InstallListItem.tsx @@ -2,8 +2,8 @@ import styled from '@emotion/styled'; import Avatar from '@mui/material/Avatar'; import ListItem from '@mui/material/ListItem'; import ListItemText from '@mui/material/ListItemText'; +import { useTheme } from '@mui/styles'; import React from 'react'; -import { useTranslation } from 'react-i18next'; import { useSettings } from '../../providers/PersistenceSettingProvider'; import CopyToClipBoard from '../CopyClipboard'; @@ -35,78 +35,94 @@ export enum DependencyManager { interface Interface { packageName: string; dependencyManager: DependencyManager; + packageVersion?: string; } -const InstallListItem: React.FC = ({ packageName, dependencyManager }) => { - const { t } = useTranslation(); - const { localSettings } = useSettings(); - const isGlobal = localSettings[packageName]?.global ?? false; - const pkgName = isGlobal ? `-g ${packageName}` : packageName; +export function getGlobalInstall(isGlobal, packageVersion, packageName, isYarn = false) { + const name = isGlobal + ? `${isYarn ? '' : '-g'} ${packageVersion ? `${packageName}@${packageVersion}` : packageName}` + : packageVersion + ? `${packageName}@${packageVersion}` + : packageName; + return name.trim(); +} + +const InstallListItem: React.FC = ({ + packageName, + dependencyManager, + packageVersion, +}) => { + const { localSettings } = useSettings(); + const theme = useTheme(); + const isGlobal = localSettings[packageName]?.global ?? false; switch (dependencyManager) { case DependencyManager.NPM: return ( - + } - secondary={t('sidebar.installation.install-using-npm')} /> ); case DependencyManager.YARN: return ( - + } - secondary={t('sidebar.installation.install-using-yarn')} /> ); case DependencyManager.PNPM: return ( - + } - secondary={t('sidebar.installation.install-using-pnpm')} /> ); diff --git a/packages/ui-components/src/components/Package/Package.tsx b/packages/ui-components/src/components/Package/Package.tsx index a22840af8..9c51506f3 100644 --- a/packages/ui-components/src/components/Package/Package.tsx +++ b/packages/ui-components/src/components/Package/Package.tsx @@ -4,6 +4,7 @@ import BugReport from '@mui/icons-material/BugReport'; import DownloadIcon from '@mui/icons-material/CloudDownload'; import HomeIcon from '@mui/icons-material/Home'; import { useTheme } from '@mui/material'; +import CircularProgress from '@mui/material/CircularProgress'; import Grid from '@mui/material/Grid'; import ListItem from '@mui/material/ListItem'; import Tooltip from '@mui/material/Tooltip'; @@ -71,6 +72,7 @@ const Package: React.FC = ({ const dispatch = useDispatch(); const { t } = useTranslation(); const theme = useTheme(); + const isLoading = useSelector((state: RootState) => state?.loading?.models.download); const handleDownload = useCallback( async (tarballDist: string) => { @@ -173,7 +175,13 @@ const Package: React.FC = ({ title={t('package.tarball')} > - + {isLoading ? ( + + + + ) : ( + + )} @@ -194,6 +202,7 @@ const Package: React.FC = ({ container={true} item={true} justify="flex-end" + spacing={3} xs={true} > {renderHomePageLink()} diff --git a/packages/ui-components/src/components/RawViewer/RawViewer.tsx b/packages/ui-components/src/components/RawViewer/RawViewer.tsx index fc2b7057e..3c2bb355b 100644 --- a/packages/ui-components/src/components/RawViewer/RawViewer.tsx +++ b/packages/ui-components/src/components/RawViewer/RawViewer.tsx @@ -47,12 +47,7 @@ type Props = { const RawViewer: React.FC = ({ isOpen = false, onClose, packageMeta }) => { const { t } = useTranslation(); return ( - + {t('action-bar-action.raw')} diff --git a/packages/ui-components/src/components/Readme/Readme.tsx b/packages/ui-components/src/components/Readme/Readme.tsx index 5992ba86a..b7173df6d 100644 --- a/packages/ui-components/src/components/Readme/Readme.tsx +++ b/packages/ui-components/src/components/Readme/Readme.tsx @@ -1,30 +1,19 @@ -import styled from '@emotion/styled'; -import 'github-markdown-css'; import 'highlight.js/styles/default.css'; import React from 'react'; -import { Theme } from '../../Theme'; +import { useCustomTheme } from '../../'; +import ReadmeDark from './ReadmeDark'; +import ReadmeLight from './ReadmeLight'; import { Props } from './types'; -import { parseReadme } from './utils'; const Readme: React.FC = ({ description }) => { - return ( - + // @ts-ignore + const { isDarkMode } = useCustomTheme(); + + return isDarkMode ? ( + + ) : ( + ); }; export default Readme; - -const Wrapper = styled('div')<{ theme?: Theme }>(({ theme }) => ({ - background: theme?.palette.white, - color: theme?.palette.black, - padding: theme?.spacing(2, 3), - ul: { - listStyle: 'disc', - }, - img: { - maxWidth: '100%', - }, -})); diff --git a/packages/ui-components/src/components/Readme/ReadmeDark.tsx b/packages/ui-components/src/components/Readme/ReadmeDark.tsx new file mode 100644 index 000000000..0076fb6a9 --- /dev/null +++ b/packages/ui-components/src/components/Readme/ReadmeDark.tsx @@ -0,0 +1,32 @@ +import styled from '@emotion/styled'; +import cx from 'classnames'; +import 'highlight.js/styles/default.css'; +import React from 'react'; + +import { Theme } from '../../Theme'; +// @ts-ignore +import styles from './github-markdown-dark.css'; +import { Props } from './types'; +import { parseReadme } from './utils'; + +const Readme: React.FC = ({ description }) => { + return ( + + ); +}; +export default Readme; + +const Wrapper = styled('div')<{ theme?: Theme }>(({ theme }) => ({ + background: theme?.palette.white, + color: theme?.palette.black, + padding: theme?.spacing(2, 3), + ul: { + listStyle: 'disc', + }, + img: { + maxWidth: '100%', + }, +})); diff --git a/packages/ui-components/src/components/Readme/ReadmeLight.tsx b/packages/ui-components/src/components/Readme/ReadmeLight.tsx new file mode 100644 index 000000000..fe983666f --- /dev/null +++ b/packages/ui-components/src/components/Readme/ReadmeLight.tsx @@ -0,0 +1,32 @@ +import styled from '@emotion/styled'; +import cx from 'classnames'; +import 'highlight.js/styles/default.css'; +import React from 'react'; + +import { Theme } from '../../Theme'; +// @ts-ignore +import styles from './github-markdown-light.css'; +import { Props } from './types'; +import { parseReadme } from './utils'; + +const Readme: React.FC = ({ description }) => { + return ( + + ); +}; +export default Readme; + +const Wrapper = styled('div')<{ theme?: Theme }>(({ theme }) => ({ + background: theme?.palette.white, + color: theme?.palette.black, + padding: theme?.spacing(2, 3), + ul: { + listStyle: 'disc', + }, + img: { + maxWidth: '100%', + }, +})); diff --git a/packages/ui-components/src/components/Readme/__snapshots__/Readme.spec.tsx.snap b/packages/ui-components/src/components/Readme/__snapshots__/Readme.spec.tsx.snap index 88e7f9d49..e5543ae27 100644 --- a/packages/ui-components/src/components/Readme/__snapshots__/Readme.spec.tsx.snap +++ b/packages/ui-components/src/components/Readme/__snapshots__/Readme.spec.tsx.snap @@ -20,7 +20,7 @@ exports[` component should load the component in default state 1`] = `

test @@ -46,7 +46,7 @@ exports[` component should load the component in default state 1`] = `

test diff --git a/packages/ui-components/src/components/Readme/github-markdown-dark.css b/packages/ui-components/src/components/Readme/github-markdown-dark.css new file mode 100644 index 000000000..529b678cd --- /dev/null +++ b/packages/ui-components/src/components/Readme/github-markdown-dark.css @@ -0,0 +1,1015 @@ +/*dark*/ + +.markdown-body { + color-scheme: dark; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + margin: 0; + color: #e6edf3; + background-color: #0d1117; + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .octicon { + display: inline-block; + fill: currentColor; + vertical-align: text-bottom; +} + +.markdown-body h1:hover .anchor .octicon-link:before, +.markdown-body h2:hover .anchor .octicon-link:before, +.markdown-body h3:hover .anchor .octicon-link:before, +.markdown-body h4:hover .anchor .octicon-link:before, +.markdown-body h5:hover .anchor .octicon-link:before, +.markdown-body h6:hover .anchor .octicon-link:before { + width: 16px; + height: 16px; + content: ' '; + display: inline-block; + background-color: currentColor; + -webkit-mask-image: url("data:image/svg+xml,"); + mask-image: url("data:image/svg+xml,"); +} + +.markdown-body details, +.markdown-body figcaption, +.markdown-body figure { + display: block; +} + +.markdown-body summary { + display: list-item; +} + +.markdown-body [hidden] { + display: none !important; +} + +.markdown-body a { + background-color: transparent; + color: #2f81f7; + text-decoration: none; +} + +.markdown-body abbr[title] { + border-bottom: none; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +.markdown-body b, +.markdown-body strong { + font-weight: 600; +} + +.markdown-body dfn { + font-style: italic; +} + +.markdown-body h1 { + margin: .67em 0; + font-weight: 600; + padding-bottom: .3em; + font-size: 2em; + border-bottom: 1px solid #21262d; +} + +.markdown-body mark { + background-color: rgba(187,128,9,0.15); + color: #e6edf3; +} + +.markdown-body small { + font-size: 90%; +} + +.markdown-body sub, +.markdown-body sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +.markdown-body sub { + bottom: -0.25em; +} + +.markdown-body sup { + top: -0.5em; +} + +.markdown-body img { + border-style: none; + max-width: 100%; + box-sizing: content-box; + background-color: #0d1117; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre, +.markdown-body samp { + font-family: monospace; + font-size: 1em; +} + +.markdown-body figure { + margin: 1em 40px; +} + +.markdown-body hr { + box-sizing: content-box; + overflow: hidden; + background: transparent; + border-bottom: 1px solid #21262d; + height: .25em; + padding: 0; + margin: 24px 0; + background-color: #30363d; + border: 0; +} + +.markdown-body input { + font: inherit; + margin: 0; + overflow: visible; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body [type=button], +.markdown-body [type=reset], +.markdown-body [type=submit] { + -webkit-appearance: button; +} + +.markdown-body [type=checkbox], +.markdown-body [type=radio] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body [type=number]::-webkit-inner-spin-button, +.markdown-body [type=number]::-webkit-outer-spin-button { + height: auto; +} + +.markdown-body [type=search]::-webkit-search-cancel-button, +.markdown-body [type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +.markdown-body ::-webkit-input-placeholder { + color: inherit; + opacity: .54; +} + +.markdown-body ::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body ::placeholder { + color: #6e7681; + opacity: 1; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; + display: block; + width: max-content; + max-width: 100%; + overflow: auto; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body details summary { + cursor: pointer; +} + +.markdown-body details:not([open])>*:not(summary) { + display: none !important; +} + +.markdown-body a:focus, +.markdown-body [role=button]:focus, +.markdown-body input[type=radio]:focus, +.markdown-body input[type=checkbox]:focus { + outline: 2px solid #2f81f7; + outline-offset: -2px; + box-shadow: none; +} + +.markdown-body a:focus:not(:focus-visible), +.markdown-body [role=button]:focus:not(:focus-visible), +.markdown-body input[type=radio]:focus:not(:focus-visible), +.markdown-body input[type=checkbox]:focus:not(:focus-visible) { + outline: solid 1px transparent; +} + +.markdown-body a:focus-visible, +.markdown-body [role=button]:focus-visible, +.markdown-body input[type=radio]:focus-visible, +.markdown-body input[type=checkbox]:focus-visible { + outline: 2px solid #2f81f7; + outline-offset: -2px; + box-shadow: none; +} + +.markdown-body a:not([class]):focus, +.markdown-body a:not([class]):focus-visible, +.markdown-body input[type=radio]:focus, +.markdown-body input[type=radio]:focus-visible, +.markdown-body input[type=checkbox]:focus, +.markdown-body input[type=checkbox]:focus-visible { + outline-offset: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + line-height: 10px; + color: #e6edf3; + vertical-align: middle; + background-color: #161b22; + border: solid 1px rgba(110,118,129,0.4); + border-bottom-color: rgba(110,118,129,0.4); + border-radius: 6px; + box-shadow: inset 0 -1px 0 rgba(110,118,129,0.4); +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h2 { + font-weight: 600; + padding-bottom: .3em; + font-size: 1.5em; + border-bottom: 1px solid #21262d; +} + +.markdown-body h3 { + font-weight: 600; + font-size: 1.25em; +} + +.markdown-body h4 { + font-weight: 600; + font-size: 1em; +} + +.markdown-body h5 { + font-weight: 600; + font-size: .875em; +} + +.markdown-body h6 { + font-weight: 600; + font-size: .85em; + color: #7d8590; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; + padding: 0 1em; + color: #7d8590; + border-left: .25em solid #30363d; +} + +.markdown-body ul, +.markdown-body ol { + margin-top: 0; + margin-bottom: 0; + padding-left: 2em; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body tt, +.markdown-body code, +.markdown-body samp { + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + font-size: 12px; + word-wrap: normal; +} + +.markdown-body .octicon { + display: inline-block; + overflow: visible !important; + vertical-align: text-bottom; + fill: currentColor; +} + +.markdown-body input::-webkit-outer-spin-button, +.markdown-body input::-webkit-inner-spin-button { + margin: 0; + -webkit-appearance: none; + appearance: none; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .absent { + color: #f85149; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre, +.markdown-body details { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #e6edf3; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 tt, +.markdown-body h1 code, +.markdown-body h2 tt, +.markdown-body h2 code, +.markdown-body h3 tt, +.markdown-body h3 code, +.markdown-body h4 tt, +.markdown-body h4 code, +.markdown-body h5 tt, +.markdown-body h5 code, +.markdown-body h6 tt, +.markdown-body h6 code { + padding: 0 .2em; + font-size: inherit; +} + +.markdown-body summary h1, +.markdown-body summary h2, +.markdown-body summary h3, +.markdown-body summary h4, +.markdown-body summary h5, +.markdown-body summary h6 { + display: inline-block; +} + +.markdown-body summary h1 .anchor, +.markdown-body summary h2 .anchor, +.markdown-body summary h3 .anchor, +.markdown-body summary h4 .anchor, +.markdown-body summary h5 .anchor, +.markdown-body summary h6 .anchor { + margin-left: -40px; +} + +.markdown-body summary h1, +.markdown-body summary h2 { + padding-bottom: 0; + border-bottom: 0; +} + +.markdown-body ul.no-list, +.markdown-body ol.no-list { + padding: 0; + list-style-type: none; +} + +.markdown-body ol[type="a s"] { + list-style-type: lower-alpha; +} + +.markdown-body ol[type="A s"] { + list-style-type: upper-alpha; +} + +.markdown-body ol[type="i s"] { + list-style-type: lower-roman; +} + +.markdown-body ol[type="I s"] { + list-style-type: upper-roman; +} + +.markdown-body ol[type="1"] { + list-style-type: decimal; +} + +.markdown-body div>ol:not([type]) { + list-style-type: decimal; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: .25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #30363d; +} + +.markdown-body table td>:last-child { + margin-bottom: 0; +} + +.markdown-body table tr { + background-color: #0d1117; + border-top: 1px solid #21262d; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #161b22; +} + +.markdown-body table img { + background-color: transparent; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body .emoji { + max-width: none; + vertical-align: text-top; + background-color: transparent; +} + +.markdown-body span.frame { + display: block; + overflow: hidden; +} + +.markdown-body span.frame>span { + display: block; + float: left; + width: auto; + padding: 7px; + margin: 13px 0 0; + overflow: hidden; + border: 1px solid #30363d; +} + +.markdown-body span.frame span img { + display: block; + float: left; +} + +.markdown-body span.frame span span { + display: block; + padding: 5px 0 0; + clear: both; + color: #e6edf3; +} + +.markdown-body span.align-center { + display: block; + overflow: hidden; + clear: both; +} + +.markdown-body span.align-center>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: center; +} + +.markdown-body span.align-center span img { + margin: 0 auto; + text-align: center; +} + +.markdown-body span.align-right { + display: block; + overflow: hidden; + clear: both; +} + +.markdown-body span.align-right>span { + display: block; + margin: 13px 0 0; + overflow: hidden; + text-align: right; +} + +.markdown-body span.align-right span img { + margin: 0; + text-align: right; +} + +.markdown-body span.float-left { + display: block; + float: left; + margin-right: 13px; + overflow: hidden; +} + +.markdown-body span.float-left span { + margin: 13px 0 0; +} + +.markdown-body span.float-right { + display: block; + float: right; + margin-left: 13px; + overflow: hidden; +} + +.markdown-body span.float-right>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: right; +} + +.markdown-body code, +.markdown-body tt { + padding: .2em .4em; + margin: 0; + font-size: 85%; + white-space: break-spaces; + background-color: rgba(110,118,129,0.4); + border-radius: 6px; +} + +.markdown-body code br, +.markdown-body tt br { + display: none; +} + +.markdown-body del code { + text-decoration: inherit; +} + +.markdown-body samp { + font-size: 85%; +} + +.markdown-body pre code { + font-size: 100%; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + color: #e6edf3; + background-color: #161b22; + border-radius: 6px; +} + +.markdown-body pre code, +.markdown-body pre tt { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .csv-data td, +.markdown-body .csv-data th { + padding: 5px; + overflow: hidden; + font-size: 12px; + line-height: 1; + text-align: left; + white-space: nowrap; +} + +.markdown-body .csv-data .blob-num { + padding: 10px 8px 9px; + text-align: right; + background: #0d1117; + border: 0; +} + +.markdown-body .csv-data tr { + border-top: 0; +} + +.markdown-body .csv-data th { + font-weight: 600; + background: #161b22; + border-top: 0; +} + +.markdown-body [data-footnote-ref]::before { + content: "["; +} + +.markdown-body [data-footnote-ref]::after { + content: "]"; +} + +.markdown-body .footnotes { + font-size: 12px; + color: #7d8590; + border-top: 1px solid #30363d; +} + +.markdown-body .footnotes ol { + padding-left: 16px; +} + +.markdown-body .footnotes ol ul { + display: inline-block; + padding-left: 16px; + margin-top: 16px; +} + +.markdown-body .footnotes li { + position: relative; +} + +.markdown-body .footnotes li:target::before { + position: absolute; + top: -8px; + right: -8px; + bottom: -8px; + left: -24px; + pointer-events: none; + content: ""; + border: 2px solid #1f6feb; + border-radius: 6px; +} + +.markdown-body .footnotes li:target { + color: #e6edf3; +} + +.markdown-body .footnotes .data-footnote-backref g-emoji { + font-family: monospace; +} + +.markdown-body .pl-c { + color: #8b949e; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #79c0ff; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #d2a8ff; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #c9d1d9; +} + +.markdown-body .pl-ent { + color: #7ee787; +} + +.markdown-body .pl-k { + color: #ff7b72; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #a5d6ff; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #ffa657; +} + +.markdown-body .pl-bu { + color: #f85149; +} + +.markdown-body .pl-ii { + color: #f0f6fc; + background-color: #8e1519; +} + +.markdown-body .pl-c2 { + color: #f0f6fc; + background-color: #b62324; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #7ee787; +} + +.markdown-body .pl-ml { + color: #f2cc60; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #1f6feb; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #c9d1d9; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #c9d1d9; +} + +.markdown-body .pl-md { + color: #ffdcd7; + background-color: #67060c; +} + +.markdown-body .pl-mi1 { + color: #aff5b4; + background-color: #033a16; +} + +.markdown-body .pl-mc { + color: #ffdfb6; + background-color: #5a1e02; +} + +.markdown-body .pl-mi2 { + color: #c9d1d9; + background-color: #1158c7; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #d2a8ff; +} + +.markdown-body .pl-ba { + color: #8b949e; +} + +.markdown-body .pl-sg { + color: #484f58; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #a5d6ff; +} + +.markdown-body g-emoji { + display: inline-block; + min-width: 1ch; + font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; + font-size: 1em; + font-style: normal !important; + font-weight: 400; + line-height: 1; + vertical-align: -0.075em; +} + +.markdown-body g-emoji img { + width: 1em; + height: 1em; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item label { + font-weight: 400; +} + +.markdown-body .task-list-item.enabled label { + cursor: pointer; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 4px; +} + +.markdown-body .task-list-item .handle { + display: none; +} + +.markdown-body .task-list-item-checkbox { + margin: 0 .2em .25em -1.4em; + vertical-align: middle; +} + +.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox { + margin: 0 -1.6em .25em .2em; +} + +.markdown-body .contains-task-list { + position: relative; +} + +.markdown-body .contains-task-list:hover .task-list-item-convert-container, +.markdown-body .contains-task-list:focus-within .task-list-item-convert-container { + display: block; + width: auto; + height: 24px; + overflow: visible; + clip: auto; +} + +.markdown-body ::-webkit-calendar-picker-indicator { + filter: invert(50%); +} diff --git a/packages/ui-components/src/components/Readme/github-markdown-light.css b/packages/ui-components/src/components/Readme/github-markdown-light.css new file mode 100644 index 000000000..5fe7d9e45 --- /dev/null +++ b/packages/ui-components/src/components/Readme/github-markdown-light.css @@ -0,0 +1,1014 @@ +/*light*/ + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + margin: 0; + color: #1F2328; + background-color: #ffffff; + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .octicon { + display: inline-block; + fill: currentColor; + vertical-align: text-bottom; +} + +.markdown-body h1:hover .anchor .octicon-link:before, +.markdown-body h2:hover .anchor .octicon-link:before, +.markdown-body h3:hover .anchor .octicon-link:before, +.markdown-body h4:hover .anchor .octicon-link:before, +.markdown-body h5:hover .anchor .octicon-link:before, +.markdown-body h6:hover .anchor .octicon-link:before { + width: 16px; + height: 16px; + content: ' '; + display: inline-block; + background-color: currentColor; + -webkit-mask-image: url("data:image/svg+xml,"); + mask-image: url("data:image/svg+xml,"); +} + +.markdown-body details, +.markdown-body figcaption, +.markdown-body figure { + display: block; +} + +.markdown-body summary { + display: list-item; +} + +.markdown-body [hidden] { + display: none !important; +} + +.markdown-body a { + background-color: transparent; + color: #0969da; + text-decoration: none; +} + +.markdown-body abbr[title] { + border-bottom: none; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +.markdown-body b, +.markdown-body strong { + font-weight: 600; +} + +.markdown-body dfn { + font-style: italic; +} + +.markdown-body h1 { + margin: .67em 0; + font-weight: 600; + padding-bottom: .3em; + font-size: 2em; + border-bottom: 1px solid hsla(210,18%,87%,1); +} + +.markdown-body mark { + background-color: #fff8c5; + color: #1F2328; +} + +.markdown-body small { + font-size: 90%; +} + +.markdown-body sub, +.markdown-body sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +.markdown-body sub { + bottom: -0.25em; +} + +.markdown-body sup { + top: -0.5em; +} + +.markdown-body img { + border-style: none; + max-width: 100%; + box-sizing: content-box; + background-color: #ffffff; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre, +.markdown-body samp { + font-family: monospace; + font-size: 1em; +} + +.markdown-body figure { + margin: 1em 40px; +} + +.markdown-body hr { + box-sizing: content-box; + overflow: hidden; + background: transparent; + border-bottom: 1px solid hsla(210,18%,87%,1); + height: .25em; + padding: 0; + margin: 24px 0; + background-color: #d0d7de; + border: 0; +} + +.markdown-body input { + font: inherit; + margin: 0; + overflow: visible; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +.markdown-body [type=button], +.markdown-body [type=reset], +.markdown-body [type=submit] { + -webkit-appearance: button; +} + +.markdown-body [type=checkbox], +.markdown-body [type=radio] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body [type=number]::-webkit-inner-spin-button, +.markdown-body [type=number]::-webkit-outer-spin-button { + height: auto; +} + +.markdown-body [type=search]::-webkit-search-cancel-button, +.markdown-body [type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +.markdown-body ::-webkit-input-placeholder { + color: inherit; + opacity: .54; +} + +.markdown-body ::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body ::placeholder { + color: #6e7781; + opacity: 1; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; + display: block; + width: max-content; + max-width: 100%; + overflow: auto; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body details summary { + cursor: pointer; +} + +.markdown-body details:not([open])>*:not(summary) { + display: none !important; +} + +.markdown-body a:focus, +.markdown-body [role=button]:focus, +.markdown-body input[type=radio]:focus, +.markdown-body input[type=checkbox]:focus { + outline: 2px solid #0969da; + outline-offset: -2px; + box-shadow: none; +} + +.markdown-body a:focus:not(:focus-visible), +.markdown-body [role=button]:focus:not(:focus-visible), +.markdown-body input[type=radio]:focus:not(:focus-visible), +.markdown-body input[type=checkbox]:focus:not(:focus-visible) { + outline: solid 1px transparent; +} + +.markdown-body a:focus-visible, +.markdown-body [role=button]:focus-visible, +.markdown-body input[type=radio]:focus-visible, +.markdown-body input[type=checkbox]:focus-visible { + outline: 2px solid #0969da; + outline-offset: -2px; + box-shadow: none; +} + +.markdown-body a:not([class]):focus, +.markdown-body a:not([class]):focus-visible, +.markdown-body input[type=radio]:focus, +.markdown-body input[type=radio]:focus-visible, +.markdown-body input[type=checkbox]:focus, +.markdown-body input[type=checkbox]:focus-visible { + outline-offset: 0; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + line-height: 10px; + color: #1F2328; + vertical-align: middle; + background-color: #f6f8fa; + border: solid 1px rgba(175,184,193,0.2); + border-bottom-color: rgba(175,184,193,0.2); + border-radius: 6px; + box-shadow: inset 0 -1px 0 rgba(175,184,193,0.2); +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h2 { + font-weight: 600; + padding-bottom: .3em; + font-size: 1.5em; + border-bottom: 1px solid hsla(210,18%,87%,1); +} + +.markdown-body h3 { + font-weight: 600; + font-size: 1.25em; +} + +.markdown-body h4 { + font-weight: 600; + font-size: 1em; +} + +.markdown-body h5 { + font-weight: 600; + font-size: .875em; +} + +.markdown-body h6 { + font-weight: 600; + font-size: .85em; + color: #656d76; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; + padding: 0 1em; + color: #656d76; + border-left: .25em solid #d0d7de; +} + +.markdown-body ul, +.markdown-body ol { + margin-top: 0; + margin-bottom: 0; + padding-left: 2em; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body tt, +.markdown-body code, +.markdown-body samp { + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + font-size: 12px; + word-wrap: normal; +} + +.markdown-body .octicon { + display: inline-block; + overflow: visible !important; + vertical-align: text-bottom; + fill: currentColor; +} + +.markdown-body input::-webkit-outer-spin-button, +.markdown-body input::-webkit-inner-spin-button { + margin: 0; + -webkit-appearance: none; + appearance: none; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .absent { + color: #d1242f; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre, +.markdown-body details { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1F2328; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 tt, +.markdown-body h1 code, +.markdown-body h2 tt, +.markdown-body h2 code, +.markdown-body h3 tt, +.markdown-body h3 code, +.markdown-body h4 tt, +.markdown-body h4 code, +.markdown-body h5 tt, +.markdown-body h5 code, +.markdown-body h6 tt, +.markdown-body h6 code { + padding: 0 .2em; + font-size: inherit; +} + +.markdown-body summary h1, +.markdown-body summary h2, +.markdown-body summary h3, +.markdown-body summary h4, +.markdown-body summary h5, +.markdown-body summary h6 { + display: inline-block; +} + +.markdown-body summary h1 .anchor, +.markdown-body summary h2 .anchor, +.markdown-body summary h3 .anchor, +.markdown-body summary h4 .anchor, +.markdown-body summary h5 .anchor, +.markdown-body summary h6 .anchor { + margin-left: -40px; +} + +.markdown-body summary h1, +.markdown-body summary h2 { + padding-bottom: 0; + border-bottom: 0; +} + +.markdown-body ul.no-list, +.markdown-body ol.no-list { + padding: 0; + list-style-type: none; +} + +.markdown-body ol[type="a s"] { + list-style-type: lower-alpha; +} + +.markdown-body ol[type="A s"] { + list-style-type: upper-alpha; +} + +.markdown-body ol[type="i s"] { + list-style-type: lower-roman; +} + +.markdown-body ol[type="I s"] { + list-style-type: upper-roman; +} + +.markdown-body ol[type="1"] { + list-style-type: decimal; +} + +.markdown-body div>ol:not([type]) { + list-style-type: decimal; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: .25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #d0d7de; +} + +.markdown-body table td>:last-child { + margin-bottom: 0; +} + +.markdown-body table tr { + background-color: #ffffff; + border-top: 1px solid hsla(210,18%,87%,1); +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body table img { + background-color: transparent; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body .emoji { + max-width: none; + vertical-align: text-top; + background-color: transparent; +} + +.markdown-body span.frame { + display: block; + overflow: hidden; +} + +.markdown-body span.frame>span { + display: block; + float: left; + width: auto; + padding: 7px; + margin: 13px 0 0; + overflow: hidden; + border: 1px solid #d0d7de; +} + +.markdown-body span.frame span img { + display: block; + float: left; +} + +.markdown-body span.frame span span { + display: block; + padding: 5px 0 0; + clear: both; + color: #1F2328; +} + +.markdown-body span.align-center { + display: block; + overflow: hidden; + clear: both; +} + +.markdown-body span.align-center>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: center; +} + +.markdown-body span.align-center span img { + margin: 0 auto; + text-align: center; +} + +.markdown-body span.align-right { + display: block; + overflow: hidden; + clear: both; +} + +.markdown-body span.align-right>span { + display: block; + margin: 13px 0 0; + overflow: hidden; + text-align: right; +} + +.markdown-body span.align-right span img { + margin: 0; + text-align: right; +} + +.markdown-body span.float-left { + display: block; + float: left; + margin-right: 13px; + overflow: hidden; +} + +.markdown-body span.float-left span { + margin: 13px 0 0; +} + +.markdown-body span.float-right { + display: block; + float: right; + margin-left: 13px; + overflow: hidden; +} + +.markdown-body span.float-right>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: right; +} + +.markdown-body code, +.markdown-body tt { + padding: .2em .4em; + margin: 0; + font-size: 85%; + white-space: break-spaces; + background-color: rgba(175,184,193,0.2); + border-radius: 6px; +} + +.markdown-body code br, +.markdown-body tt br { + display: none; +} + +.markdown-body del code { + text-decoration: inherit; +} + +.markdown-body samp { + font-size: 85%; +} + +.markdown-body pre code { + font-size: 100%; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + color: #1F2328; + background-color: #f6f8fa; + border-radius: 6px; +} + +.markdown-body pre code, +.markdown-body pre tt { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .csv-data td, +.markdown-body .csv-data th { + padding: 5px; + overflow: hidden; + font-size: 12px; + line-height: 1; + text-align: left; + white-space: nowrap; +} + +.markdown-body .csv-data .blob-num { + padding: 10px 8px 9px; + text-align: right; + background: #ffffff; + border: 0; +} + +.markdown-body .csv-data tr { + border-top: 0; +} + +.markdown-body .csv-data th { + font-weight: 600; + background: #f6f8fa; + border-top: 0; +} + +.markdown-body [data-footnote-ref]::before { + content: "["; +} + +.markdown-body [data-footnote-ref]::after { + content: "]"; +} + +.markdown-body .footnotes { + font-size: 12px; + color: #656d76; + border-top: 1px solid #d0d7de; +} + +.markdown-body .footnotes ol { + padding-left: 16px; +} + +.markdown-body .footnotes ol ul { + display: inline-block; + padding-left: 16px; + margin-top: 16px; +} + +.markdown-body .footnotes li { + position: relative; +} + +.markdown-body .footnotes li:target::before { + position: absolute; + top: -8px; + right: -8px; + bottom: -8px; + left: -24px; + pointer-events: none; + content: ""; + border: 2px solid #0969da; + border-radius: 6px; +} + +.markdown-body .footnotes li:target { + color: #1F2328; +} + +.markdown-body .footnotes .data-footnote-backref g-emoji { + font-family: monospace; +} + +.markdown-body .pl-c { + color: #6e7781; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #0550ae; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6639ba; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292f; +} + +.markdown-body .pl-ent { + color: #116329; +} + +.markdown-body .pl-k { + color: #cf222e; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #0a3069; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #953800; +} + +.markdown-body .pl-bu { + color: #82071e; +} + +.markdown-body .pl-ii { + color: #f6f8fa; + background-color: #82071e; +} + +.markdown-body .pl-c2 { + color: #f6f8fa; + background-color: #cf222e; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #116329; +} + +.markdown-body .pl-ml { + color: #3b2300; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #0550ae; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292f; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292f; +} + +.markdown-body .pl-md { + color: #82071e; + background-color: #ffebe9; +} + +.markdown-body .pl-mi1 { + color: #116329; + background-color: #dafbe1; +} + +.markdown-body .pl-mc { + color: #953800; + background-color: #ffd8b5; +} + +.markdown-body .pl-mi2 { + color: #eaeef2; + background-color: #0550ae; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #8250df; +} + +.markdown-body .pl-ba { + color: #57606a; +} + +.markdown-body .pl-sg { + color: #8c959f; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #0a3069; +} + +.markdown-body g-emoji { + display: inline-block; + min-width: 1ch; + font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; + font-size: 1em; + font-style: normal !important; + font-weight: 400; + line-height: 1; + vertical-align: -0.075em; +} + +.markdown-body g-emoji img { + width: 1em; + height: 1em; +} + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item label { + font-weight: 400; +} + +.markdown-body .task-list-item.enabled label { + cursor: pointer; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 4px; +} + +.markdown-body .task-list-item .handle { + display: none; +} + +.markdown-body .task-list-item-checkbox { + margin: 0 .2em .25em -1.4em; + vertical-align: middle; +} + +.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox { + margin: 0 -1.6em .25em .2em; +} + +.markdown-body .contains-task-list { + position: relative; +} + +.markdown-body .contains-task-list:hover .task-list-item-convert-container, +.markdown-body .contains-task-list:focus-within .task-list-item-convert-container { + display: block; + width: auto; + height: 24px; + overflow: visible; + clip: auto; +} + +.markdown-body ::-webkit-calendar-picker-indicator { + filter: invert(50%); +} diff --git a/packages/ui-components/src/components/SettingsMenu/SettingsMenu.tsx b/packages/ui-components/src/components/SettingsMenu/SettingsMenu.tsx index 47c248504..68a01a167 100644 --- a/packages/ui-components/src/components/SettingsMenu/SettingsMenu.tsx +++ b/packages/ui-components/src/components/SettingsMenu/SettingsMenu.tsx @@ -21,14 +21,24 @@ const InstallListItem: React.FC = ({ packageName }) => { const handleOpenMenu = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; - const handleClick = () => { + + const handleGlobalSelect = () => { const statusGlobal = !localSettings[packageName]?.global; - updateSettings({ [packageName]: { global: statusGlobal } }); + updateSettings({ ...localSettings, [packageName]: { global: statusGlobal } }); setAnchorEl(null); }; + + const handleGlobalYarnModern = () => { + const statusYarnModern = !localSettings?.yarnModern; + updateSettings({ ...localSettings, yarnModern: statusYarnModern }); + setAnchorEl(null); + }; + const handleClose = () => { setAnchorEl(null); }; + + const statusGlobal = localSettings[packageName]?.global; return ( <> = ({ packageName }) => { onClose={handleClose} open={open} > - + {' '} - {localSettings?.global ? ( + {statusGlobal === true ? ( ) : null} {t('sidebar.installation.global')} + + {' '} + {localSettings?.yarnModern ? ( + + + + ) : null} + {t('sidebar.installation.yarnModern')} + ); diff --git a/packages/ui-components/src/components/SideBarTittle/SideBarTittle.tsx b/packages/ui-components/src/components/SideBarTittle/SideBarTittle.tsx index fe8b0972b..dee55354b 100644 --- a/packages/ui-components/src/components/SideBarTittle/SideBarTittle.tsx +++ b/packages/ui-components/src/components/SideBarTittle/SideBarTittle.tsx @@ -78,4 +78,5 @@ const StyledHeading = styled(Heading)({ const StyledBoxVersion = styled(Box)<{ theme?: Theme }>(({ theme }) => ({ color: theme?.palette.text.secondary, + fontSize: theme?.fontSize.sm, })); diff --git a/packages/ui-components/src/components/Versions/HistoryList.tsx b/packages/ui-components/src/components/Versions/HistoryList.tsx index 461000206..25f3005f5 100644 --- a/packages/ui-components/src/components/Versions/HistoryList.tsx +++ b/packages/ui-components/src/components/Versions/HistoryList.tsx @@ -1,8 +1,11 @@ +import Chip from '@mui/material/Chip'; import List from '@mui/material/List'; import ListItem from '@mui/material/ListItem'; +import { useTheme } from '@mui/styles'; import React from 'react'; import { useTranslation } from 'react-i18next'; +import { useConfig } from '../../providers'; import { Time, Versions } from '../../types/packageMeta'; import { utils } from '../../utils'; import { Link } from '../Link'; @@ -14,18 +17,43 @@ interface Props { time: Time; } +export function filterDeprecated(versions: Versions) { + const versionsIds = Object.keys(versions); + return versionsIds.reduce((prev, current) => { + if (!versions[current].deprecated) { + prev[current] = versions[current]; + } + + return prev; + }, {}); +} + const VersionsHistoryList: React.FC = ({ versions, packageName, time }) => { const { t } = useTranslation(); + const { configOptions } = useConfig(); + const theme = useTheme(); + const hideDeprecatedVersions = configOptions.hideDeprecatedVersions; + const listVersions = hideDeprecatedVersions ? filterDeprecated(versions) : versions; return ( - {Object.keys(versions) + {Object.keys(listVersions) .reverse() .map((version) => ( + {typeof versions[version].deprecated === 'string' ? ( + + ) : null} {time[version] diff --git a/packages/ui-components/src/components/Versions/Versions.test.tsx b/packages/ui-components/src/components/Versions/Versions.test.tsx index d3e9a403f..e85dff922 100644 --- a/packages/ui-components/src/components/Versions/Versions.test.tsx +++ b/packages/ui-components/src/components/Versions/Versions.test.tsx @@ -2,9 +2,10 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; -import { cleanup, render } from '../../test/test-react-testing-library'; +import { cleanup, render, screen } from '../../test/test-react-testing-library'; import Versions, { Props } from './Versions'; import data from './__partials__/data.json'; +import dataDeprecated from './__partials__/deprecated-versions.json'; const ComponentToBeRendered: React.FC = (props) => ( @@ -26,6 +27,8 @@ describe(' component', () => { // pick some versions expect(getByText('2.3.0')).toBeTruthy(); expect(getByText('canary')).toBeTruthy(); + // there is one deprecated version deprecated + expect(screen.queryByTestId('deprecated-badge')).toBeInTheDocument(); }); test('should not render versions', () => { @@ -35,5 +38,17 @@ describe(' component', () => { expect(queryByText('versions.current-tags')).toBeFalsy(); }); + test('should render versions deprecated settings', () => { + window.__VERDACCIO_BASENAME_UI_OPTIONS.hideDeprecatedVersions = true; + const { getByText } = render( + + ); + expect(getByText('versions.hide-deprecated')).toBeTruthy(); + + // pick some versions + expect(screen.queryByText('0.0.2')).not.toBeInTheDocument(); + expect(screen.getByText('0.0.1')).toBeInTheDocument(); + }); + test.todo('should click on version link'); }); diff --git a/packages/ui-components/src/components/Versions/Versions.tsx b/packages/ui-components/src/components/Versions/Versions.tsx index e9a3c42bc..eae4dfa24 100644 --- a/packages/ui-components/src/components/Versions/Versions.tsx +++ b/packages/ui-components/src/components/Versions/Versions.tsx @@ -1,7 +1,10 @@ +import Alert from '@mui/material/Alert'; import Typography from '@mui/material/Typography'; +import { useTheme } from '@mui/styles'; import React from 'react'; import { useTranslation } from 'react-i18next'; +import { useConfig } from '../../providers'; import VersionsHistoryList from './HistoryList'; import VersionsTagList from './TagList'; @@ -9,6 +12,8 @@ export type Props = { packageMeta: any; packageName: string }; const Versions: React.FC = ({ packageMeta, packageName }) => { const { t } = useTranslation(); + const { configOptions } = useConfig(); + const theme = useTheme(); if (!packageMeta) { return null; @@ -18,6 +23,7 @@ const Versions: React.FC = ({ packageMeta, packageName }) => { const hasDistTags = distTags && Object.keys(distTags).length > 0 && packageName; const hasVersionHistory = versions && Object.keys(versions).length > 0 && packageName; + const hideDeprecatedVersions = configOptions.hideDeprecatedVersions; return ( <> @@ -30,7 +36,17 @@ const Versions: React.FC = ({ packageMeta, packageName }) => { {hasVersionHistory ? ( <> {t('versions.version-history')} - + <> + {hideDeprecatedVersions && ( + + {t('versions.hide-deprecated')} + + )} + + ) : null} diff --git a/packages/ui-components/src/components/Versions/__partials__/data.json b/packages/ui-components/src/components/Versions/__partials__/data.json index 608c1f805..a209dfc08 100644 --- a/packages/ui-components/src/components/Versions/__partials__/data.json +++ b/packages/ui-components/src/components/Versions/__partials__/data.json @@ -3,6 +3,7 @@ "0.0.1": { "name": "@verdaccio/local-storage", "version": "0.0.1", + "deprecated": "this is deprecated", "description": "local storage implementation", "main": "lib/index.js", "scripts": { diff --git a/packages/ui-components/src/components/Versions/__partials__/deprecated-versions.json b/packages/ui-components/src/components/Versions/__partials__/deprecated-versions.json new file mode 100644 index 000000000..4e482c9cd --- /dev/null +++ b/packages/ui-components/src/components/Versions/__partials__/deprecated-versions.json @@ -0,0 +1,175 @@ +{ + "versions": { + "0.0.1": { + "name": "@verdaccio/local-storage", + "version": "0.0.1", + "description": "local storage implementation", + "main": "lib/index.js", + "scripts": { + "test": "npm run lint && mocha --require babel-polyfill --compilers js:babel-core/register ./test/**/*.spec.js", + "lint": "eslint .", + "flow": "flow", + "build": "babel src/ --out-dir lib/ --copy-files", + "cover": "cross-env NODE_ENV=test nyc npm t" + }, + "dependencies": { + "@verdaccio/file-locking": "^0.0.3", + "@verdaccio/streams": "^0.0.2", + "async": "2.5.0", + "http-errors": "1.4.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1" + }, + "devDependencies": { + "@verdaccio/types": "0.0.2", + "babel-cli": "6.24.1", + "babel-core": "6.25.0", + "babel-eslint": "^7.2.3", + "babel-plugin-istanbul": "4.1.4", + "babel-polyfill": "6.23.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-es2015-node4": "2.1.0", + "babel-preset-flow": "6.23.0", + "babel-plugin-transform-inline-imports-commonjs": "1.0.0", + "babel-plugin-array-includes": "2.0.3", + "babel-plugin-transform-runtime": "6.4.3", + "cross-env": "5.0.5", + "eslint": "4.4.1", + "eslint-config-google": "0.9.1", + "eslint-plugin-flowtype": "2.35.0", + "flow-bin": "0.52.0", + "mocha": "3.5.0", + "nyc": "11.1.0" + }, + "nyc": { + "include": ["src/**/*.js"], + "all": true, + "cache": true, + "sourceMap": false, + "instrument": false, + "report-dir": "./tests-report", + "reporter": ["text", "html"] + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "keywords": ["streams"], + "author": { + "name": "Juan Picado", + "email": "juanpicado19@gmail.com" + }, + "private": false, + "license": "MIT", + "gitHead": "e7e4ea74f20331dfde0a7133a02b5b95d68696a9", + "_id": "@verdaccio/local-storage@0.0.1", + "_npmVersion": "5.3.0", + "_nodeVersion": "8.2.1", + "_npmUser": { + "name": "jotadeveloper", + "email": "juanpicado19@gmail.com" + }, + "dist": { + "integrity": "sha512-J7qeK3r6jbaMOf4mBIqL1bAdb7Iwb+mC4ZaE9PUE2TctzXSkRRnk2M33zWGhZV0ziEPGAF40wC76wWex2GvXeA==", + "shasum": "9c71cbeeb922b35efc1b31949d0afa6aac97e9b6", + "tarball": "http://localhost:4872/@verdaccio%2flocal-storage/-/local-storage-0.0.1.tgz" + }, + "maintainers": [ + { + "name": "jotadeveloper", + "email": "juanpicado19@gmail.com" + } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/local-storage-0.0.1.tgz_1502536792670_0.3513342353980988" + }, + "directories": {} + }, + "0.0.2": { + "deprecated": "this package is deprecated", + "name": "@verdaccio/local-storage", + "version": "0.0.2", + "description": "local storage implementation", + "main": "lib/index.js", + "scripts": { + "test": "npm run lint && mocha --require babel-polyfill --compilers js:babel-core/register ./test/**/*.spec.js", + "lint": "eslint .", + "flow": "flow", + "build": "babel src/ --out-dir lib/ --copy-files", + "cover": "cross-env NODE_ENV=test nyc npm t" + }, + "dependencies": { + "@verdaccio/file-locking": "^0.0.3", + "@verdaccio/streams": "^0.0.2", + "async": "2.5.0", + "http-errors": "1.4.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1" + }, + "devDependencies": { + "@verdaccio/types": "0.0.2", + "babel-cli": "6.24.1", + "babel-core": "6.25.0", + "babel-eslint": "^7.2.3", + "babel-plugin-istanbul": "4.1.4", + "babel-polyfill": "6.23.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-es2015-node4": "2.1.0", + "babel-preset-flow": "6.23.0", + "babel-plugin-transform-inline-imports-commonjs": "1.0.0", + "babel-plugin-array-includes": "2.0.3", + "babel-plugin-transform-runtime": "6.4.3", + "cross-env": "5.0.5", + "eslint": "4.4.1", + "eslint-config-google": "0.9.1", + "eslint-plugin-flowtype": "2.35.0", + "flow-bin": "0.52.0", + "mocha": "3.5.0", + "nyc": "11.1.0" + }, + "nyc": { + "include": ["src/**/*.js"], + "all": true, + "cache": true, + "sourceMap": false, + "instrument": false, + "report-dir": "./tests-report", + "reporter": ["text", "html"] + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "keywords": ["streams"], + "author": { + "name": "Juan Picado", + "email": "juanpicado19@gmail.com" + }, + "private": false, + "license": "MIT", + "gitHead": "626ea013ee810da9115550e0a60f44aa3d08e9a0", + "_id": "@verdaccio/local-storage@0.0.2", + "_npmVersion": "5.3.0", + "_nodeVersion": "8.2.1", + "_npmUser": { + "name": "jotadeveloper", + "email": "juanpicado19@gmail.com" + }, + "dist": { + "integrity": "sha512-Su0cQpLAaBab3qekpcHO+J/JCfoznTuU0P7e5q9T7R2trGVobYXvsTiIB/usQNmDr2e+1N6iBhMst7Uy+231ag==", + "shasum": "fe79ad6f9ceb631857618038486f729098e7b31b", + "tarball": "http://localhost:4872/@verdaccio%2flocal-storage/-/local-storage-0.0.2.tgz" + }, + "maintainers": [ + { + "name": "jotadeveloper", + "email": "juanpicado19@gmail.com" + } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/local-storage-0.0.2.tgz_1502611253150_0.21545960218645632" + }, + "directories": {} + } + } +} diff --git a/packages/ui-components/src/providers/AppConfigurationProvider/AppConfigurationProvider.tsx b/packages/ui-components/src/providers/AppConfigurationProvider/AppConfigurationProvider.tsx index 28c004ea7..a591c0740 100644 --- a/packages/ui-components/src/providers/AppConfigurationProvider/AppConfigurationProvider.tsx +++ b/packages/ui-components/src/providers/AppConfigurationProvider/AppConfigurationProvider.tsx @@ -28,6 +28,7 @@ const defaultValues: ConfigProviderProps = { showSearch: true, showRaw: true, showDownloadTarball: true, + hideDeprecatedVersions: false, title: 'Verdaccio', }, }; diff --git a/packages/ui-components/src/providers/PersistenceSettingProvider/PersistenceSettingProvider.tsx b/packages/ui-components/src/providers/PersistenceSettingProvider/PersistenceSettingProvider.tsx index 3676dc5fa..d3243022d 100644 --- a/packages/ui-components/src/providers/PersistenceSettingProvider/PersistenceSettingProvider.tsx +++ b/packages/ui-components/src/providers/PersistenceSettingProvider/PersistenceSettingProvider.tsx @@ -11,10 +11,12 @@ import useLocalStorage from '../../hooks/useLocalStorage'; type PersistenceSettingsProps = { isGlobal?: boolean; + yarnModern: boolean; }; const defaultValues: PersistenceSettingsProps = { isGlobal: false, + yarnModern: false, }; const PersistenceSettingContext = createContext(defaultValues); diff --git a/packages/ui-components/src/store/models/download.ts b/packages/ui-components/src/store/models/download.ts index a94249297..55ff1a678 100644 --- a/packages/ui-components/src/store/models/download.ts +++ b/packages/ui-components/src/store/models/download.ts @@ -13,7 +13,6 @@ export const download = createModel()({ reducers: {}, effects: () => ({ async getTarball({ link }) { - // const basePath = state.configuration.config.base; try { const fileStream: Blob = await API.request(link, 'GET', { headers: { diff --git a/packages/ui-components/src/types/packageMeta.ts b/packages/ui-components/src/types/packageMeta.ts index 1966731f6..576a64643 100644 --- a/packages/ui-components/src/types/packageMeta.ts +++ b/packages/ui-components/src/types/packageMeta.ts @@ -78,6 +78,7 @@ export interface Version { license?: string; main?: string; keywords?: string[]; + deprecated?: string; } export interface Author { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43ba0b88f..8553b3b1b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1234,8 +1234,8 @@ importers: specifier: 1.5.5 version: 1.5.5 css-loader: - specifier: 6.7.3 - version: 6.7.3(webpack@5.82.1) + specifier: 6.8.1 + version: 6.8.1(webpack@5.82.1) dayjs: specifier: 1.11.7 version: 1.11.7 @@ -1842,6 +1842,9 @@ importers: '@rematch/persist': specifier: 2.1.2 version: 2.1.2(@rematch/core@2.2.0)(react@18.2.0)(redux@4.2.1) + classnames: + specifier: 2.3.2 + version: 2.3.2 country-flag-icons: specifier: 1.5.5 version: 1.5.5 @@ -1851,9 +1854,6 @@ importers: dompurify: specifier: 2.4.5 version: 2.4.5 - github-markdown-css: - specifier: 5.2.0 - version: 5.2.0 highlight.js: specifier: 11.7.0 version: 11.7.0 @@ -7012,7 +7012,7 @@ packages: '@docusaurus/utils-validation': 2.0.0-beta.3(esbuild@0.14.10) '@slorber/static-site-generator-webpack-plugin': 4.0.7 '@svgr/webpack': 5.5.0 - autoprefixer: 10.4.14(postcss@8.4.24) + autoprefixer: 10.4.14(postcss@8.4.31) babel-loader: 8.3.0(@babel/core@7.22.20)(webpack@5.82.1) babel-plugin-dynamic-import-node: 2.3.0 boxen: 5.1.2 @@ -7024,7 +7024,7 @@ packages: core-js: 3.30.2 css-loader: 5.2.7(webpack@5.82.1) css-minimizer-webpack-plugin: 3.4.1(clean-css@5.3.2)(esbuild@0.14.10)(webpack@5.82.1) - cssnano: 5.1.15(postcss@8.4.24) + cssnano: 5.1.15(postcss@8.4.31) del: 6.1.1 detect-port: 1.5.1 escape-html: 1.0.3 @@ -7044,8 +7044,8 @@ packages: mini-css-extract-plugin: 1.6.2(webpack@5.82.1) module-alias: 2.2.2 nprogress: 0.2.0 - postcss: 8.4.24 - postcss-loader: 5.3.0(postcss@8.4.24)(webpack@5.82.1) + postcss: 8.4.31 + postcss-loader: 5.3.0(postcss@8.4.31)(webpack@5.82.1) prompts: 2.4.2 react: 17.0.2 react-dev-utils: 11.0.4(eslint@8.51.0)(typescript@4.9.4)(webpack@5.82.1) @@ -7129,7 +7129,7 @@ packages: commander: 5.1.0 copy-webpack-plugin: 11.0.0(webpack@5.82.1) core-js: 3.30.2 - css-loader: 6.7.3(webpack@5.82.1) + css-loader: 6.8.1(webpack@5.82.1) css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.2)(esbuild@0.14.10)(webpack@5.82.1) cssnano: 5.1.15(postcss@8.4.21) del: 6.1.1 @@ -7194,18 +7194,18 @@ packages: /@docusaurus/cssnano-preset@2.0.0-beta.3: resolution: {integrity: sha512-k7EkNPluB+TV++oZB8Je4EQ6Xs6cR0SvgIU9vdXm00qyPCu38MMfRwSY4HnsVUV797T/fQUD91zkuwhyXCUGLA==} dependencies: - cssnano-preset-advanced: 5.3.10(postcss@8.4.28) - postcss: 8.4.28 - postcss-sort-media-queries: 3.12.13(postcss@8.4.28) + cssnano-preset-advanced: 5.3.10(postcss@8.4.31) + postcss: 8.4.31 + postcss-sort-media-queries: 3.12.13(postcss@8.4.31) dev: false /@docusaurus/cssnano-preset@2.4.1: resolution: {integrity: sha512-ka+vqXwtcW1NbXxWsh6yA1Ckii1klY9E53cJ4O9J09nkMBgrNX3iEFED1fWdv8wf4mJjvGi5RLZ2p9hJNjsLyQ==} engines: {node: '>=16.14'} dependencies: - cssnano-preset-advanced: 5.3.10(postcss@8.4.28) - postcss: 8.4.28 - postcss-sort-media-queries: 4.3.0(postcss@8.4.28) + cssnano-preset-advanced: 5.3.10(postcss@8.4.31) + postcss: 8.4.31 + postcss-sort-media-queries: 4.3.0(postcss@8.4.31) tslib: 2.5.0 /@docusaurus/logger@2.4.1: @@ -7669,7 +7669,7 @@ packages: infima: 0.2.0-alpha.43 lodash: 4.17.21 nprogress: 0.2.0 - postcss: 8.4.28 + postcss: 8.4.31 prism-react-renderer: 1.3.5(react@17.0.2) prismjs: 1.29.0 react: 17.0.2 @@ -13562,7 +13562,7 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /autoprefixer@10.4.14(postcss@8.4.24): + /autoprefixer@10.4.14(postcss@8.4.31): resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -13574,23 +13574,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /autoprefixer@10.4.14(postcss@8.4.28): - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.21.10 - caniuse-lite: 1.0.30001522 - fraction.js: 4.2.0 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /autoprefixer@9.8.8: @@ -15455,22 +15439,13 @@ packages: dependencies: postcss: 8.4.21 - /css-declaration-sorter@6.4.0(postcss@8.4.24): + /css-declaration-sorter@6.4.0(postcss@8.4.31): resolution: {integrity: sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.24 - dev: false - - /css-declaration-sorter@6.4.0(postcss@8.4.28): - resolution: {integrity: sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 /css-functions-list@3.2.0: resolution: {integrity: sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==} @@ -15505,30 +15480,30 @@ packages: peerDependencies: webpack: ^4.27.0 || ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.28) + icss-utils: 5.1.0(postcss@8.4.31) loader-utils: 2.0.4 - postcss: 8.4.28 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.28) - postcss-modules-local-by-default: 4.0.0(postcss@8.4.28) - postcss-modules-scope: 3.0.0(postcss@8.4.28) - postcss-modules-values: 4.0.0(postcss@8.4.28) + postcss: 8.4.31 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: 4.0.0(postcss@8.4.31) + postcss-modules-scope: 3.0.0(postcss@8.4.31) + postcss-modules-values: 4.0.0(postcss@8.4.31) postcss-value-parser: 4.2.0 schema-utils: 3.1.2 semver: 7.5.4 webpack: 5.82.1 - /css-loader@6.7.3(webpack@5.82.1): - resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} + /css-loader@6.8.1(webpack@5.82.1): + resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.21) - postcss-modules-local-by-default: 4.0.0(postcss@8.4.21) - postcss-modules-scope: 3.0.0(postcss@8.4.21) - postcss-modules-values: 4.0.0(postcss@8.4.21) + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) + postcss-modules-scope: 3.0.0(postcss@8.4.31) + postcss-modules-values: 4.0.0(postcss@8.4.31) postcss-value-parser: 4.2.0 semver: 7.5.4 webpack: 5.82.1(webpack-cli@4.10.0) @@ -15553,10 +15528,10 @@ packages: optional: true dependencies: clean-css: 5.3.2 - cssnano: 5.1.15(postcss@8.4.28) + cssnano: 5.1.15(postcss@8.4.31) esbuild: 0.14.10 jest-worker: 27.5.1 - postcss: 8.4.28 + postcss: 8.4.31 schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 @@ -15589,10 +15564,10 @@ packages: optional: true dependencies: clean-css: 5.3.2 - cssnano: 5.1.15(postcss@8.4.28) + cssnano: 5.1.15(postcss@8.4.31) esbuild: 0.14.10 jest-worker: 29.5.0 - postcss: 8.4.28 + postcss: 8.4.31 schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 @@ -15677,19 +15652,19 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-advanced@5.3.10(postcss@8.4.28): + /cssnano-preset-advanced@5.3.10(postcss@8.4.31): resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - autoprefixer: 10.4.14(postcss@8.4.28) - cssnano-preset-default: 5.2.14(postcss@8.4.28) - postcss: 8.4.28 - postcss-discard-unused: 5.1.0(postcss@8.4.28) - postcss-merge-idents: 5.1.1(postcss@8.4.28) - postcss-reduce-idents: 5.2.0(postcss@8.4.28) - postcss-zindex: 5.1.0(postcss@8.4.28) + autoprefixer: 10.4.14(postcss@8.4.31) + cssnano-preset-default: 5.2.14(postcss@8.4.31) + postcss: 8.4.31 + postcss-discard-unused: 5.1.0(postcss@8.4.31) + postcss-merge-idents: 5.1.1(postcss@8.4.31) + postcss-reduce-idents: 5.2.0(postcss@8.4.31) + postcss-zindex: 5.1.0(postcss@8.4.31) /cssnano-preset-default@5.2.14(postcss@8.4.21): resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} @@ -15728,80 +15703,42 @@ packages: postcss-svgo: 5.1.0(postcss@8.4.21) postcss-unique-selectors: 5.1.1(postcss@8.4.21) - /cssnano-preset-default@5.2.14(postcss@8.4.24): + /cssnano-preset-default@5.2.14(postcss@8.4.31): resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.4.0(postcss@8.4.24) - cssnano-utils: 3.1.0(postcss@8.4.24) - postcss: 8.4.24 - postcss-calc: 8.2.4(postcss@8.4.24) - postcss-colormin: 5.3.1(postcss@8.4.24) - postcss-convert-values: 5.1.3(postcss@8.4.24) - postcss-discard-comments: 5.1.2(postcss@8.4.24) - postcss-discard-duplicates: 5.1.0(postcss@8.4.24) - postcss-discard-empty: 5.1.1(postcss@8.4.24) - postcss-discard-overridden: 5.1.0(postcss@8.4.24) - postcss-merge-longhand: 5.1.7(postcss@8.4.24) - postcss-merge-rules: 5.1.4(postcss@8.4.24) - postcss-minify-font-values: 5.1.0(postcss@8.4.24) - postcss-minify-gradients: 5.1.1(postcss@8.4.24) - postcss-minify-params: 5.1.4(postcss@8.4.24) - postcss-minify-selectors: 5.2.1(postcss@8.4.24) - postcss-normalize-charset: 5.1.0(postcss@8.4.24) - postcss-normalize-display-values: 5.1.0(postcss@8.4.24) - postcss-normalize-positions: 5.1.1(postcss@8.4.24) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.24) - postcss-normalize-string: 5.1.0(postcss@8.4.24) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.24) - postcss-normalize-unicode: 5.1.1(postcss@8.4.24) - postcss-normalize-url: 5.1.0(postcss@8.4.24) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.24) - postcss-ordered-values: 5.1.3(postcss@8.4.24) - postcss-reduce-initial: 5.1.2(postcss@8.4.24) - postcss-reduce-transforms: 5.1.0(postcss@8.4.24) - postcss-svgo: 5.1.0(postcss@8.4.24) - postcss-unique-selectors: 5.1.1(postcss@8.4.24) - dev: false - - /cssnano-preset-default@5.2.14(postcss@8.4.28): - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - css-declaration-sorter: 6.4.0(postcss@8.4.28) - cssnano-utils: 3.1.0(postcss@8.4.28) - postcss: 8.4.28 - postcss-calc: 8.2.4(postcss@8.4.28) - postcss-colormin: 5.3.1(postcss@8.4.28) - postcss-convert-values: 5.1.3(postcss@8.4.28) - postcss-discard-comments: 5.1.2(postcss@8.4.28) - postcss-discard-duplicates: 5.1.0(postcss@8.4.28) - postcss-discard-empty: 5.1.1(postcss@8.4.28) - postcss-discard-overridden: 5.1.0(postcss@8.4.28) - postcss-merge-longhand: 5.1.7(postcss@8.4.28) - postcss-merge-rules: 5.1.4(postcss@8.4.28) - postcss-minify-font-values: 5.1.0(postcss@8.4.28) - postcss-minify-gradients: 5.1.1(postcss@8.4.28) - postcss-minify-params: 5.1.4(postcss@8.4.28) - postcss-minify-selectors: 5.2.1(postcss@8.4.28) - postcss-normalize-charset: 5.1.0(postcss@8.4.28) - postcss-normalize-display-values: 5.1.0(postcss@8.4.28) - postcss-normalize-positions: 5.1.1(postcss@8.4.28) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.28) - postcss-normalize-string: 5.1.0(postcss@8.4.28) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.28) - postcss-normalize-unicode: 5.1.1(postcss@8.4.28) - postcss-normalize-url: 5.1.0(postcss@8.4.28) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.28) - postcss-ordered-values: 5.1.3(postcss@8.4.28) - postcss-reduce-initial: 5.1.2(postcss@8.4.28) - postcss-reduce-transforms: 5.1.0(postcss@8.4.28) - postcss-svgo: 5.1.0(postcss@8.4.28) - postcss-unique-selectors: 5.1.1(postcss@8.4.28) + css-declaration-sorter: 6.4.0(postcss@8.4.31) + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-calc: 8.2.4(postcss@8.4.31) + postcss-colormin: 5.3.1(postcss@8.4.31) + postcss-convert-values: 5.1.3(postcss@8.4.31) + postcss-discard-comments: 5.1.2(postcss@8.4.31) + postcss-discard-duplicates: 5.1.0(postcss@8.4.31) + postcss-discard-empty: 5.1.1(postcss@8.4.31) + postcss-discard-overridden: 5.1.0(postcss@8.4.31) + postcss-merge-longhand: 5.1.7(postcss@8.4.31) + postcss-merge-rules: 5.1.4(postcss@8.4.31) + postcss-minify-font-values: 5.1.0(postcss@8.4.31) + postcss-minify-gradients: 5.1.1(postcss@8.4.31) + postcss-minify-params: 5.1.4(postcss@8.4.31) + postcss-minify-selectors: 5.2.1(postcss@8.4.31) + postcss-normalize-charset: 5.1.0(postcss@8.4.31) + postcss-normalize-display-values: 5.1.0(postcss@8.4.31) + postcss-normalize-positions: 5.1.1(postcss@8.4.31) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.31) + postcss-normalize-string: 5.1.0(postcss@8.4.31) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.31) + postcss-normalize-unicode: 5.1.1(postcss@8.4.31) + postcss-normalize-url: 5.1.0(postcss@8.4.31) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.31) + postcss-ordered-values: 5.1.3(postcss@8.4.31) + postcss-reduce-initial: 5.1.2(postcss@8.4.31) + postcss-reduce-transforms: 5.1.0(postcss@8.4.31) + postcss-svgo: 5.1.0(postcss@8.4.31) + postcss-unique-selectors: 5.1.1(postcss@8.4.31) /cssnano-utils@3.1.0(postcss@8.4.21): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} @@ -15811,22 +15748,13 @@ packages: dependencies: postcss: 8.4.21 - /cssnano-utils@3.1.0(postcss@8.4.24): + /cssnano-utils@3.1.0(postcss@8.4.31): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - dev: false - - /cssnano-utils@3.1.0(postcss@8.4.28): - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 /cssnano@5.1.15(postcss@8.4.21): resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} @@ -15839,27 +15767,15 @@ packages: postcss: 8.4.21 yaml: 1.10.2 - /cssnano@5.1.15(postcss@8.4.24): + /cssnano@5.1.15(postcss@8.4.31): resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.24) + cssnano-preset-default: 5.2.14(postcss@8.4.31) lilconfig: 2.1.0 - postcss: 8.4.24 - yaml: 1.10.2 - dev: false - - /cssnano@5.1.15(postcss@8.4.28): - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.28) - lilconfig: 2.1.0 - postcss: 8.4.28 + postcss: 8.4.31 yaml: 1.10.2 /csso@4.2.0: @@ -19022,6 +18938,7 @@ packages: /github-markdown-css@5.2.0: resolution: {integrity: sha512-hq5RaCInSUZ48bImOZpkppW2/MT44StRgsbsZ8YA4vJFwLKB/Vo3k7R2t+pUGqO+ThG0QDMi96TewV/B3vyItg==} + dev: true /github-slugger@1.5.0: resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} @@ -19796,21 +19713,13 @@ packages: postcss: 7.0.39 dev: true - /icss-utils@5.1.0(postcss@8.4.21): + /icss-utils@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 - - /icss-utils@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -24084,22 +23993,12 @@ packages: postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 - /postcss-calc@8.2.4(postcss@8.4.24): + /postcss-calc@8.2.4(postcss@8.4.31): resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.24 - postcss-selector-parser: 6.0.13 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-calc@8.2.4(postcss@8.4.28): - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 @@ -24115,7 +24014,7 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-colormin@5.3.1(postcss@8.4.24): + /postcss-colormin@5.3.1(postcss@8.4.31): resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -24124,20 +24023,7 @@ packages: browserslist: 4.21.10 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-colormin@5.3.1(postcss@8.4.28): - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.10 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-convert-values@5.1.3(postcss@8.4.21): @@ -24150,25 +24036,14 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-convert-values@5.1.3(postcss@8.4.24): + /postcss-convert-values@5.1.3(postcss@8.4.31): resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-convert-values@5.1.3(postcss@8.4.28): - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.10 - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-discard-comments@5.1.2(postcss@8.4.21): @@ -24179,22 +24054,13 @@ packages: dependencies: postcss: 8.4.21 - /postcss-discard-comments@5.1.2(postcss@8.4.24): + /postcss-discard-comments@5.1.2(postcss@8.4.31): resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - dev: false - - /postcss-discard-comments@5.1.2(postcss@8.4.28): - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 /postcss-discard-duplicates@5.1.0(postcss@8.4.21): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} @@ -24204,22 +24070,13 @@ packages: dependencies: postcss: 8.4.21 - /postcss-discard-duplicates@5.1.0(postcss@8.4.24): + /postcss-discard-duplicates@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - dev: false - - /postcss-discard-duplicates@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 /postcss-discard-empty@5.1.1(postcss@8.4.21): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} @@ -24229,22 +24086,13 @@ packages: dependencies: postcss: 8.4.21 - /postcss-discard-empty@5.1.1(postcss@8.4.24): + /postcss-discard-empty@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - dev: false - - /postcss-discard-empty@5.1.1(postcss@8.4.28): - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 /postcss-discard-overridden@5.1.0(postcss@8.4.21): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} @@ -24254,30 +24102,21 @@ packages: dependencies: postcss: 8.4.21 - /postcss-discard-overridden@5.1.0(postcss@8.4.24): + /postcss-discard-overridden@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - dev: false + postcss: 8.4.31 - /postcss-discard-overridden@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 - - /postcss-discard-unused@5.1.0(postcss@8.4.28): + /postcss-discard-unused@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 /postcss-flexbugs-fixes@4.2.1: @@ -24302,7 +24141,7 @@ packages: webpack: 4.46.0 dev: true - /postcss-loader@5.3.0(postcss@8.4.24)(webpack@5.82.1): + /postcss-loader@5.3.0(postcss@8.4.31)(webpack@5.82.1): resolution: {integrity: sha512-/+Z1RAmssdiSLgIZwnJHwBMnlABPgF7giYzTN2NOfr9D21IJZ4mQC1R2miwp80zno9M4zMD/umGI8cR+2EL5zw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -24311,7 +24150,7 @@ packages: dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 - postcss: 8.4.24 + postcss: 8.4.31 semver: 7.5.4 webpack: 5.82.1(esbuild@0.14.10) dev: false @@ -24341,14 +24180,14 @@ packages: transitivePeerDependencies: - '@types/node' - /postcss-merge-idents@5.1.1(postcss@8.4.28): + /postcss-merge-idents@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.28) - postcss: 8.4.28 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-merge-longhand@5.1.7(postcss@8.4.21): @@ -24361,26 +24200,15 @@ packages: postcss-value-parser: 4.2.0 stylehacks: 5.1.1(postcss@8.4.21) - /postcss-merge-longhand@5.1.7(postcss@8.4.24): + /postcss-merge-longhand@5.1.7(postcss@8.4.31): resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.31 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.24) - dev: false - - /postcss-merge-longhand@5.1.7(postcss@8.4.28): - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 - postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.28) + stylehacks: 5.1.1(postcss@8.4.31) /postcss-merge-rules@5.1.4(postcss@8.4.21): resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} @@ -24394,7 +24222,7 @@ packages: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - /postcss-merge-rules@5.1.4(postcss@8.4.24): + /postcss-merge-rules@5.1.4(postcss@8.4.31): resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -24402,21 +24230,8 @@ packages: dependencies: browserslist: 4.21.10 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.24) - postcss: 8.4.24 - postcss-selector-parser: 6.0.13 - dev: false - - /postcss-merge-rules@5.1.4(postcss@8.4.28): - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.10 - caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.28) - postcss: 8.4.28 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-selector-parser: 6.0.13 /postcss-minify-font-values@5.1.0(postcss@8.4.21): @@ -24428,23 +24243,13 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-minify-font-values@5.1.0(postcss@8.4.24): + /postcss-minify-font-values@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-minify-font-values@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-minify-gradients@5.1.1(postcss@8.4.21): @@ -24458,27 +24263,15 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-minify-gradients@5.1.1(postcss@8.4.24): + /postcss-minify-gradients@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.24) - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-minify-gradients@5.1.1(postcss@8.4.28): - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.28) - postcss: 8.4.28 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-minify-params@5.1.4(postcss@8.4.21): @@ -24492,27 +24285,15 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-minify-params@5.1.4(postcss@8.4.24): + /postcss-minify-params@5.1.4(postcss@8.4.31): resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - cssnano-utils: 3.1.0(postcss@8.4.24) - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-minify-params@5.1.4(postcss@8.4.28): - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.10 - cssnano-utils: 3.1.0(postcss@8.4.28) - postcss: 8.4.28 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-minify-selectors@5.2.1(postcss@8.4.21): @@ -24524,23 +24305,13 @@ packages: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - /postcss-minify-selectors@5.2.1(postcss@8.4.24): + /postcss-minify-selectors@5.2.1(postcss@8.4.31): resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-selector-parser: 6.0.13 - dev: false - - /postcss-minify-selectors@5.2.1(postcss@8.4.28): - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 /postcss-modules-extract-imports@2.0.0: @@ -24550,21 +24321,13 @@ packages: postcss: 7.0.39 dev: true - /postcss-modules-extract-imports@3.0.0(postcss@8.4.21): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 - - /postcss-modules-extract-imports@3.0.0(postcss@8.4.28): - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 /postcss-modules-local-by-default@3.0.3: resolution: {integrity: sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==} @@ -24576,26 +24339,26 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-modules-local-by-default@4.0.0(postcss@8.4.21): + /postcss-modules-local-by-default@4.0.0(postcss@8.4.31): resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 - /postcss-modules-local-by-default@4.0.0(postcss@8.4.28): - resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} + /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): + resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.28) - postcss: 8.4.28 - postcss-selector-parser: 6.0.11 + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 /postcss-modules-scope@2.2.0: @@ -24606,23 +24369,14 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-scope@3.0.0(postcss@8.4.21): + /postcss-modules-scope@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 - - /postcss-modules-scope@3.0.0(postcss@8.4.28): - resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.28 - postcss-selector-parser: 6.0.11 + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 /postcss-modules-values@3.0.0: resolution: {integrity: sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==} @@ -24631,23 +24385,14 @@ packages: postcss: 7.0.39 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.21): + /postcss-modules-values@4.0.0(postcss@8.4.31): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 - - /postcss-modules-values@4.0.0(postcss@8.4.28): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: 5.1.0(postcss@8.4.28) - postcss: 8.4.28 + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 /postcss-normalize-charset@5.1.0(postcss@8.4.21): resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} @@ -24657,22 +24402,13 @@ packages: dependencies: postcss: 8.4.21 - /postcss-normalize-charset@5.1.0(postcss@8.4.24): + /postcss-normalize-charset@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - dev: false - - /postcss-normalize-charset@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 /postcss-normalize-display-values@5.1.0(postcss@8.4.21): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} @@ -24683,23 +24419,13 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-normalize-display-values@5.1.0(postcss@8.4.24): + /postcss-normalize-display-values@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-display-values@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-normalize-positions@5.1.1(postcss@8.4.21): @@ -24711,23 +24437,13 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-normalize-positions@5.1.1(postcss@8.4.24): + /postcss-normalize-positions@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-positions@5.1.1(postcss@8.4.28): - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-normalize-repeat-style@5.1.1(postcss@8.4.21): @@ -24739,23 +24455,13 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.24): + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.28): - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-normalize-string@5.1.0(postcss@8.4.21): @@ -24767,23 +24473,13 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-normalize-string@5.1.0(postcss@8.4.24): + /postcss-normalize-string@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-string@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-normalize-timing-functions@5.1.0(postcss@8.4.21): @@ -24795,23 +24491,13 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.24): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-normalize-unicode@5.1.1(postcss@8.4.21): @@ -24824,25 +24510,14 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-normalize-unicode@5.1.1(postcss@8.4.24): + /postcss-normalize-unicode@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-unicode@5.1.1(postcss@8.4.28): - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.10 - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-normalize-url@5.1.0(postcss@8.4.21): @@ -24855,25 +24530,14 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-normalize-url@5.1.0(postcss@8.4.24): + /postcss-normalize-url@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-url@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - normalize-url: 6.1.0 - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-normalize-whitespace@5.1.1(postcss@8.4.21): @@ -24885,23 +24549,13 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-normalize-whitespace@5.1.1(postcss@8.4.24): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-normalize-whitespace@5.1.1(postcss@8.4.28): - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-ordered-values@5.1.3(postcss@8.4.21): @@ -24914,34 +24568,23 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-ordered-values@5.1.3(postcss@8.4.24): + /postcss-ordered-values@5.1.3(postcss@8.4.31): resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.24) - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-ordered-values@5.1.3(postcss@8.4.28): - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-utils: 3.1.0(postcss@8.4.28) - postcss: 8.4.28 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 - /postcss-reduce-idents@5.2.0(postcss@8.4.28): + /postcss-reduce-idents@5.2.0(postcss@8.4.31): resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-reduce-initial@5.1.2(postcss@8.4.21): @@ -24954,7 +24597,7 @@ packages: caniuse-api: 3.0.0 postcss: 8.4.21 - /postcss-reduce-initial@5.1.2(postcss@8.4.24): + /postcss-reduce-initial@5.1.2(postcss@8.4.31): resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -24962,18 +24605,7 @@ packages: dependencies: browserslist: 4.21.10 caniuse-api: 3.0.0 - postcss: 8.4.24 - dev: false - - /postcss-reduce-initial@5.1.2(postcss@8.4.28): - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.10 - caniuse-api: 3.0.0 - postcss: 8.4.28 + postcss: 8.4.31 /postcss-reduce-transforms@5.1.0(postcss@8.4.21): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} @@ -24984,23 +24616,13 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 - /postcss-reduce-transforms@5.1.0(postcss@8.4.24): + /postcss-reduce-transforms@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - dev: false - - /postcss-reduce-transforms@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 /postcss-resolve-nested-selector@0.1.1: @@ -25016,13 +24638,6 @@ packages: postcss: 8.4.28 dev: true - /postcss-selector-parser@6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - /postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} @@ -25030,23 +24645,23 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-sort-media-queries@3.12.13(postcss@8.4.28): + /postcss-sort-media-queries@3.12.13(postcss@8.4.31): resolution: {integrity: sha512-bFbR1+P6HhZWXcT5DVV2pBH5Y2U5daKbFd0j+kcwKdzrxkbmgFu0GhI2JfFUyy5KQIeW+YJGP+vwNDOS5hIn2g==} engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.3.6 dependencies: - postcss: 8.4.28 + postcss: 8.4.31 sort-css-media-queries: 2.0.4 dev: false - /postcss-sort-media-queries@4.3.0(postcss@8.4.28): + /postcss-sort-media-queries@4.3.0(postcss@8.4.31): resolution: {integrity: sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==} engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.4.16 dependencies: - postcss: 8.4.28 + postcss: 8.4.31 sort-css-media-queries: 2.1.0 /postcss-svgo@5.1.0(postcss@8.4.21): @@ -25059,24 +24674,13 @@ packages: postcss-value-parser: 4.2.0 svgo: 2.8.0 - /postcss-svgo@5.1.0(postcss@8.4.24): + /postcss-svgo@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-value-parser: 4.2.0 - svgo: 2.8.0 - dev: false - - /postcss-svgo@5.1.0(postcss@8.4.28): - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-value-parser: 4.2.0 svgo: 2.8.0 @@ -25089,35 +24693,25 @@ packages: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - /postcss-unique-selectors@5.1.1(postcss@8.4.24): + /postcss-unique-selectors@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 - postcss-selector-parser: 6.0.13 - dev: false - - /postcss-unique-selectors@5.1.1(postcss@8.4.28): - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.28 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss-zindex@5.1.0(postcss@8.4.28): + /postcss-zindex@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.31 /postcss@7.0.39: resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} @@ -25135,15 +24729,6 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 - /postcss@8.4.24: - resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false - /postcss@8.4.28: resolution: {integrity: sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==} engines: {node: ^10 || ^12 || >=14} @@ -25151,6 +24736,7 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true /postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} @@ -25159,7 +24745,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /preferred-pm@3.0.3: resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} @@ -26730,7 +26315,7 @@ packages: dependencies: find-up: 5.0.0 picocolors: 1.0.0 - postcss: 8.4.28 + postcss: 8.4.31 strip-json-comments: 3.1.1 dev: false @@ -27927,25 +27512,14 @@ packages: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - /stylehacks@5.1.1(postcss@8.4.24): + /stylehacks@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - postcss: 8.4.24 - postcss-selector-parser: 6.0.13 - dev: false - - /stylehacks@5.1.1(postcss@8.4.28): - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.21.10 - postcss: 8.4.28 + postcss: 8.4.31 postcss-selector-parser: 6.0.13 /stylelint-config-recommended@10.0.1(stylelint@15.10.3): @@ -29643,7 +29217,7 @@ packages: dependencies: '@types/node': 20.8.3 esbuild: 0.18.20 - postcss: 8.4.28 + postcss: 8.4.31 rollup: 3.28.1 optionalDependencies: fsevents: 2.3.3