diff --git a/jest.config.js b/jest.config.js index 4e28a21b5ff..620b84b3b63 100644 --- a/jest.config.js +++ b/jest.config.js @@ -10,7 +10,8 @@ module.exports = { ], roots: ['/packages'], transform: { - '^.+\\.[jt]sx?$': 'babel-jest' + '^.+\\.[jt]sx?$': 'babel-jest', + '^.+\\.svg$': 'jest-transform-stub' }, setupFilesAfterEnv: ['/packages/testSetup.ts'], transformIgnorePatterns: ['node_modules/(?!@patternfly|@novnc|@popperjs|lodash|monaco-editor|react-monaco-editor)'], diff --git a/package.json b/package.json index a372ea8108c..68dd2fdb3ed 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "@typescript-eslint/eslint-plugin": "^5.59.2", "@typescript-eslint/parser": "^5.59.2", "babel-jest": "^27.2.5", + "jest-transform-stub": "^2.0.0", "concurrently": "^7.6.0", "eslint": "^8.39.0", "eslint-plugin-markdown": "^3.0.0", diff --git a/packages/react-core/package.json b/packages/react-core/package.json index dff8d38e696..07796b5f655 100644 --- a/packages/react-core/package.json +++ b/packages/react-core/package.json @@ -63,6 +63,7 @@ "rimraf": "^3.0.2", "rollup": "^3.21.5", "rollup-plugin-scss": "^4.0.0", + "rollup-plugin-svg": "2.0.0", "rollup-plugin-terser": "^7.0.2", "typescript": "^4.7.4" }, diff --git a/packages/react-core/src/demos/AlertGroup.md b/packages/react-core/src/demos/AlertGroup.md index d2272693764..976be6775e5 100644 --- a/packages/react-core/src/demos/AlertGroup.md +++ b/packages/react-core/src/demos/AlertGroup.md @@ -6,8 +6,6 @@ section: components import { useEffect } from 'react'; import SearchIcon from '@patternfly/react-icons/dist/js/icons/search-icon'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; -import DashboardWrapper from './examples/DashboardWrapper'; -import DashboardHeader from './examples/DashboardHeader'; ## Demos diff --git a/packages/react-core/src/demos/BackToTop.md b/packages/react-core/src/demos/BackToTop.md index d4a0551c499..dfd5f4d39ef 100644 --- a/packages/react-core/src/demos/BackToTop.md +++ b/packages/react-core/src/demos/BackToTop.md @@ -3,8 +3,6 @@ id: Back to top section: components --- -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; - ## Demos ### Using name selector diff --git a/packages/react-core/src/demos/Banner.md b/packages/react-core/src/demos/Banner.md index 9420ee205d5..cb201b5ac0e 100644 --- a/packages/react-core/src/demos/Banner.md +++ b/packages/react-core/src/demos/Banner.md @@ -3,8 +3,6 @@ id: Banner section: components --- -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; - ## Demos ### Basic sticky banner @@ -23,7 +21,7 @@ import { TextContent, Text } from '@patternfly/react-core'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; class BannerDemo extends React.Component { render() { @@ -87,7 +85,7 @@ import { TextContent, Text } from '@patternfly/react-core'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; class BannerDemo extends React.Component { render() { diff --git a/packages/react-core/src/demos/Card/Card.md b/packages/react-core/src/demos/Card/Card.md index 5b5754f8c34..7c19eeb7aee 100644 --- a/packages/react-core/src/demos/Card/Card.md +++ b/packages/react-core/src/demos/Card/Card.md @@ -17,7 +17,6 @@ import azureIcon from '../assets/FuseConnector_Icons_AzureServices.png'; import restIcon from '../assets/FuseConnector_Icons_REST.png'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; import { data } from '@patternfly/react-core/src/demos/Card/examples/CardData.jsx'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; ## Demos diff --git a/packages/react-core/src/demos/Card/examples/CardView.tsx b/packages/react-core/src/demos/Card/examples/CardView.tsx index de4f2dd0867..79c1265076c 100644 --- a/packages/react-core/src/demos/Card/examples/CardView.tsx +++ b/packages/react-core/src/demos/Card/examples/CardView.tsx @@ -51,7 +51,7 @@ import swaggerIcon from './assets/camel-swagger-java_200x150.png'; import azureIcon from './assets/FuseConnector_Icons_AzureServices.png'; import restIcon from './assets/FuseConnector_Icons_REST.png'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; import { data } from '@patternfly/react-core/src/demos/Card/examples/CardData.jsx'; export const CardViewBasic: React.FunctionComponent = () => { diff --git a/packages/react-core/src/demos/DashboardHeader.tsx b/packages/react-core/src/demos/DashboardHeader.tsx new file mode 100644 index 00000000000..6fad90fda90 --- /dev/null +++ b/packages/react-core/src/demos/DashboardHeader.tsx @@ -0,0 +1,198 @@ +import React, { useState } from 'react'; +import { + Avatar, + Brand, + Button, + ButtonVariant, + Divider, + Dropdown, + DropdownGroup, + DropdownItem, + DropdownList, + Masthead, + MastheadToggle, + MastheadMain, + MastheadBrand, + MastheadContent, + MenuToggle, + Toolbar, + ToolbarContent, + ToolbarGroup, + ToolbarItem, + PageToggleButton +} from '../components'; +import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon'; +import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon'; +import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon'; +import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon'; +import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon'; +import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; +import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg'; +import pfLogo from '@patternfly/react-core/src/demos/assets/pf-logo.svg'; + +interface DashboardHeaderProps { + /** Render custom notification badge */ + notificationBadge?: React.ReactNode; +} + +export const DashboardHeader: React.FC = ({ notificationBadge }) => { + const [isDropdownOpen, setIsDropdownOpen] = useState(false); + const [isKebabDropdownOpen, setIsKebabDropdownOpen] = useState(false); + const [isFullKebabDropdownOpen, setIsFullKebabDropdownOpen] = useState(false); + + const kebabDropdownItems = ( + <> + + Settings + + + Help + + + ); + + const userDropdownItems = ( + <> + My profile + User management + Logout + + ); + + const onDropdownToggle = () => { + setIsDropdownOpen(!isDropdownOpen); + }; + + const onDropdownSelect = () => { + setIsDropdownOpen(false); + }; + + const onKebabDropdownToggle = () => { + setIsKebabDropdownOpen(!isKebabDropdownOpen); + }; + + const onKebabDropdownSelect = () => { + setIsKebabDropdownOpen(false); + }; + + const onFullKebabToggle = () => { + setIsFullKebabDropdownOpen(!isFullKebabDropdownOpen); + }; + + const onFullKebabSelect = () => { + setIsFullKebabDropdownOpen(false); + }; + + return ( + + + + + + + + + + + + + + + + {notificationBadge ?? ( + + + + + ); + + const selectDropdownContent = ( + + {Object.entries(firstOptions).map(([value, { type }]) => ( + + {type} + {` ${value}`} + + ))} + + ); + + const selectToggleContent = ({ showText }: { showText: boolean }) => { + if (!containerSelected) { + return 'Select'; + } + return ( + + {firstOptions[containerSelected].type} + {showText && ` ${containerSelected}`} + + ); + }; + + const LogsSearchInput = ( + } breakpoint="lg"> + + + + + ); + + const leftAlignedItemsDesktop = ( + + + + + + + + + + + + ); + + const leftAlignedItemsMobile = ( + + + Select container}> + + + + + Options}> + + + + + {isPaused ? 'Resume log' : 'Pause log'}}> + + + + + ); + + const leftAlignedItems = ( + + {leftAlignedItemsDesktop} + {leftAlignedItemsMobile} + + ); + + const rightAlignedItemsDesktop = ( + + + setExternalExpanded(isOpen)} + onSelect={onExternalSelect} + toggle={(toggleRef) => ( + + External logs + + )} + > + {externalDropdownItems} + + + + setDownloadExpanded(isOpen)} + onSelect={onDownloadSelect} + toggle={(toggleRef) => ( + + Download + + )} + > + {downloadDropdownItems} + + + + ); + + const rightAlignedItemsMobile = ( + + + External logs}> + setExternalExpandedMobile(isOpen)} + onSelect={onExternalSelectMobile} + toggle={(toggleRef) => ( + } + aria-label="External logs" + /> + )} + > + {externalDropdownItems} + + + + + Download}> + setDownloadExpandedMobile(isOpen)} + onSelect={onDownloadSelectMobile} + popperProps={{ position: 'right' }} + toggle={(toggleRef) => ( + } + aria-label="Download" + /> + )} + > + {downloadDropdownItems} + + + + + ); + + const rightAlignedItems = ( + + {LogsSearchInput} + {rightAlignedItemsDesktop} + {rightAlignedItemsMobile} + + Expand}> + + + + + ); + + const items = ( + + {leftAlignedItems} + {rightAlignedItems} + + ); + + return ( + + + + {items} + + + + ); +}; diff --git a/packages/react-core/src/demos/index.ts b/packages/react-core/src/demos/index.ts new file mode 100644 index 00000000000..e10143716db --- /dev/null +++ b/packages/react-core/src/demos/index.ts @@ -0,0 +1,2 @@ +export * from './DashboardHeader'; +export * from './DashboardWrapper'; diff --git a/packages/react-core/src/index.ts b/packages/react-core/src/index.ts index 2a53b5ecaaa..3337613e309 100644 --- a/packages/react-core/src/index.ts +++ b/packages/react-core/src/index.ts @@ -1,4 +1,5 @@ export * from './components'; +export * from './demos'; export * from './layouts'; export * from './helpers'; export { BaseSizes, DeviceSizes } from './styles/sizes'; diff --git a/packages/react-core/tsconfig.json b/packages/react-core/tsconfig.json index 3a4be05f922..0a6395a44d0 100644 --- a/packages/react-core/tsconfig.json +++ b/packages/react-core/tsconfig.json @@ -11,7 +11,10 @@ "./deprecated": ["./src/deprecated"] } }, - "include": ["./src/*", "./src/**/*"], + "include": [ + "./src/*", + "./src/**/*", + ], "references": [ { "path": "../react-styles" diff --git a/packages/react-table/src/docs/demos/Table.md b/packages/react-table/src/docs/demos/Table.md index 967d23c2f05..6aebb44de5b 100644 --- a/packages/react-table/src/docs/demos/Table.md +++ b/packages/react-table/src/docs/demos/Table.md @@ -47,7 +47,6 @@ import AngleDownIcon from '@patternfly/react-icons/dist/esm/icons/angle-down-ico import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon'; import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon'; import AttentionBellIcon from '@patternfly/react-icons/dist/esm/icons/attention-bell-icon'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; import BlueprintIcon from '@patternfly/react-icons/dist/esm/icons/blueprint-icon'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; import { rows, columns } from '@patternfly/react-table/src/docs/demos/table-demos/sampleData'; @@ -1468,7 +1467,7 @@ import { PageSection } from '@patternfly/react-core'; import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; export const TableEmptyState: React.FunctionComponent = () => ( @@ -1529,7 +1528,7 @@ import { PageSection, Spinner } from '@patternfly/react-core'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; export const LoadingStateDemo: React.FunctionComponent = () => ( @@ -1580,7 +1579,7 @@ import { } from '@patternfly/react-core'; import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon'; import globalDangerColor200 from '@patternfly/react-tokens/dist/esm/global_danger_color_200'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; export const ErrorStateDemo: React.FunctionComponent = () => ( diff --git a/packages/react-table/src/docs/demos/table-demos/BulkSelect.jsx b/packages/react-table/src/docs/demos/table-demos/BulkSelect.jsx index 660b15c3903..7625126924e 100644 --- a/packages/react-table/src/docs/demos/table-demos/BulkSelect.jsx +++ b/packages/react-table/src/docs/demos/table-demos/BulkSelect.jsx @@ -14,7 +14,7 @@ import { ToolbarItem } from '@patternfly/react-core'; import { Table, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; import { rows, columns } from '@patternfly/react-table/src/docs/demos/table-demos/sampleData'; export const BulkSelectTableDemo = () => { diff --git a/packages/react-table/src/docs/demos/table-demos/ColumnManagement.jsx b/packages/react-table/src/docs/demos/table-demos/ColumnManagement.jsx index c6281aae543..e551df541db 100644 --- a/packages/react-table/src/docs/demos/table-demos/ColumnManagement.jsx +++ b/packages/react-table/src/docs/demos/table-demos/ColumnManagement.jsx @@ -28,7 +28,7 @@ import { import { Table, TableText, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table'; import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; import SortAmountDownIcon from '@patternfly/react-icons/dist/esm/icons/sort-amount-down-icon'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper.js'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper.js'; import { capitalize } from '@patternfly/react-table/src/components/Table/utils/utils'; import { rows, columns } from '@patternfly/react-table/src/docs/demos/table-demos/sampleData'; diff --git a/packages/react-table/src/docs/demos/table-demos/Compact.jsx b/packages/react-table/src/docs/demos/table-demos/Compact.jsx index d88949489b7..381fb629729 100644 --- a/packages/react-table/src/docs/demos/table-demos/Compact.jsx +++ b/packages/react-table/src/docs/demos/table-demos/Compact.jsx @@ -17,7 +17,7 @@ import { } from '@patternfly/react-core'; import { Table, TableText, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table'; import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; import { rows, columns } from '@patternfly/react-table/src/docs/demos/table-demos/sampleData'; export const CompactTable = () => { diff --git a/packages/react-table/src/docs/demos/table-demos/CompoundExpansion.jsx b/packages/react-table/src/docs/demos/table-demos/CompoundExpansion.jsx index 8032a33c911..1e0bf2a48b4 100644 --- a/packages/react-table/src/docs/demos/table-demos/CompoundExpansion.jsx +++ b/packages/react-table/src/docs/demos/table-demos/CompoundExpansion.jsx @@ -19,7 +19,7 @@ import { import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon'; import CodeIcon from '@patternfly/react-icons/dist/esm/icons/code-icon'; import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; export const CompoundExpandable = () => { diff --git a/packages/react-table/src/docs/demos/table-demos/ExpandCollapseAll.jsx b/packages/react-table/src/docs/demos/table-demos/ExpandCollapseAll.jsx index 72f4aa4079b..f7d6d5f18fb 100644 --- a/packages/react-table/src/docs/demos/table-demos/ExpandCollapseAll.jsx +++ b/packages/react-table/src/docs/demos/table-demos/ExpandCollapseAll.jsx @@ -1,7 +1,7 @@ import React from 'react'; import { Card, Label, PageSection, TextVariants, Text, TextContent } from '@patternfly/react-core'; import { Table, Thead, Tbody, Tr, Th, Td, ExpandableRowContent } from '@patternfly/react-table'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; const expandableColumns = ['Servers', 'Threads', 'Applications', 'Workspaces', 'Status']; diff --git a/packages/react-table/src/docs/demos/table-demos/SortableResponsive.jsx b/packages/react-table/src/docs/demos/table-demos/SortableResponsive.jsx index c83212033d5..bc7978746af 100644 --- a/packages/react-table/src/docs/demos/table-demos/SortableResponsive.jsx +++ b/packages/react-table/src/docs/demos/table-demos/SortableResponsive.jsx @@ -38,7 +38,7 @@ import CodeIcon from '@patternfly/react-icons/dist/esm/icons/code-icon'; import CodeBranchIcon from '@patternfly/react-icons/dist/esm/icons/code-branch-icon'; import SortAmountDownIcon from '@patternfly/react-icons/dist/esm/icons/sort-amount-down-icon'; import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; import { rows, columns } from '@patternfly/react-table/src/docs/demos/table-demos/sampleData'; diff --git a/packages/react-table/src/docs/demos/table-demos/StaticBottomPagination.jsx b/packages/react-table/src/docs/demos/table-demos/StaticBottomPagination.jsx index 58f64349a58..0c79f940062 100644 --- a/packages/react-table/src/docs/demos/table-demos/StaticBottomPagination.jsx +++ b/packages/react-table/src/docs/demos/table-demos/StaticBottomPagination.jsx @@ -17,7 +17,7 @@ import { } from '@patternfly/react-core'; import { Table, TableText, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table'; import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; import { rows, columns } from '@patternfly/react-table/src/docs/demos/table-demos/sampleData'; export const StaticBottomPagination = () => { diff --git a/packages/react-table/src/docs/demos/table-demos/StickyFirstColumn.jsx b/packages/react-table/src/docs/demos/table-demos/StickyFirstColumn.jsx index ed4815047d1..f5dcc78e39b 100644 --- a/packages/react-table/src/docs/demos/table-demos/StickyFirstColumn.jsx +++ b/packages/react-table/src/docs/demos/table-demos/StickyFirstColumn.jsx @@ -1,7 +1,7 @@ import React from 'react'; import { Table, Thead, Tr, Th, Tbody, Td, InnerScrollContainer } from '@patternfly/react-table'; import { Card, PageSection } from '@patternfly/react-core'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; export const StickyFirstColumn = () => { const facts = Array.from( diff --git a/packages/react-table/src/docs/demos/table-demos/StickyHeader.jsx b/packages/react-table/src/docs/demos/table-demos/StickyHeader.jsx index 53888d8341f..f1cac148e51 100644 --- a/packages/react-table/src/docs/demos/table-demos/StickyHeader.jsx +++ b/packages/react-table/src/docs/demos/table-demos/StickyHeader.jsx @@ -2,7 +2,7 @@ import React from 'react'; import { Card, Label, PageSection } from '@patternfly/react-core'; import { Table, Thead, Tr, Th, Tbody, Td, TableText } from '@patternfly/react-table'; -import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper'; +import { DashboardWrapper } from '@patternfly/react-core/src/demos/DashboardWrapper'; import { rows, columns } from '@patternfly/react-table/src/docs/demos/table-demos/sampleData'; export const StickyHeader: React.FunctionComponent = () => { diff --git a/packages/rollup.base.js b/packages/rollup.base.js index df6dd17252d..67c6de55065 100644 --- a/packages/rollup.base.js +++ b/packages/rollup.base.js @@ -3,6 +3,7 @@ const commonjs = require('@rollup/plugin-commonjs'); const scss = require('rollup-plugin-scss'); const replace = require('@rollup/plugin-replace'); const { terser } = require('rollup-plugin-terser'); +const svg = require('rollup-plugin-svg'); const isProduction = process.env.IS_PRODUCTION; let exitCode = 0; @@ -38,6 +39,7 @@ module.exports = ({ packageName, name }) => ({ nodeResolve(), commonjs(), scss(), + svg(), isProduction && terser(), circularFailPlugin() ], diff --git a/yarn.lock b/yarn.lock index 889287929bf..d4adc7bb893 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9083,6 +9083,11 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-walker@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" + integrity sha512-6/I1dwNKk0N9iGOU3ydzAAurz4NPo/ttxZNCqgIVbWFvWyzWBSNonRrJ5CpjDuyBfmM7ENN7WCzUi9aT/UPXXQ== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz" @@ -12349,6 +12354,11 @@ jest-snapshot@^27.2.5: pretty-format "^27.2.5" semver "^7.3.2" +jest-transform-stub@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz#19018b0851f7568972147a5d60074b55f0225a7d" + integrity sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg== + jest-util@^27.2.5: version "27.2.5" resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.2.5.tgz" @@ -16914,6 +16924,13 @@ rollup-plugin-scss@^4.0.0: dependencies: rollup-pluginutils "^2.3.3" +rollup-plugin-svg@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/rollup-plugin-svg/-/rollup-plugin-svg-2.0.0.tgz#ce11b55e915d5b2190328c4e6632bd6b4fe12ee9" + integrity sha512-DmE7dSQHo1SC5L2uH2qul3Mjyd5oV6U1aVVkyvTLX/mUsRink7f1b1zaIm+32GEBA6EHu8H/JJi3DdWqM53ySQ== + dependencies: + rollup-pluginutils "^1.3.1" + rollup-plugin-terser@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" @@ -16924,6 +16941,14 @@ rollup-plugin-terser@^7.0.2: serialize-javascript "^4.0.0" terser "^5.0.0" +rollup-pluginutils@^1.3.1: + version "1.5.2" + resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" + integrity sha512-SjdWWWO/CUoMpDy8RUbZ/pSpG68YHmhk5ROKNIoi2En9bJ8bTt3IhYi254RWiTclQmL7Awmrq+rZFOhZkJAHmQ== + dependencies: + estree-walker "^0.2.1" + minimatch "^3.0.2" + rollup-pluginutils@^2.3.3: version "2.8.2" resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz"