diff --git a/package.json b/package.json index ed2286b..0f25b72 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "@typescript-eslint/parser": "^5.59.7", "prettier": "2.8.8", "jest": "^29.5.0", + "jest-transform-stub": "2.0.0", "babel-jest": "^29.5.0", "@babel/core": "^7.21.8", "@babel/preset-env": "^7.21.5", diff --git a/packages/module/patternfly-docs/content/examples/Selectable.tsx b/packages/module/patternfly-docs/content/examples/Selectable.tsx index 3110aac..6fec6a0 100644 --- a/packages/module/patternfly-docs/content/examples/Selectable.tsx +++ b/packages/module/patternfly-docs/content/examples/Selectable.tsx @@ -1,153 +1,111 @@ import React from 'react'; -import { debounce } from '@patternfly/react-core'; -import { headerCol, TableGridBreakpoint } from '@patternfly/react-table'; -import { Table as TableDeprecated, TableHeader as TableHeaderDeprecated } from '@patternfly/react-table/deprecated'; + import { CellMeasurerCache, CellMeasurer } from 'react-virtualized'; import { AutoSizer, VirtualTableBody } from '@patternfly/react-virtualized-extension'; +import { Table, Thead, Tr, Th, Td, Caption, TableGridBreakpoint } from '@patternfly/react-table'; -export class SelectableExample extends React.Component { - constructor(props) { - super(props); - const rows = []; - for (let i = 0; i < 100; i++) { - rows.push({ - selected: false, - id: `selectable-row-${i}`, - cells: [`one-${i}`, `two-${i}`, `three-${i}`, `four-${i}`, `five-${i}`] - }); - } +export const SelectableTableVirtualized: React.FunctionComponent = () => { + // this StringArray type is just needed because something in our documentation framework crashes when it encounters + // a string[][] type + type StringArray = string[]; + const rows: StringArray[] = []; - this.selectableVirtualBody = null; + for (let i = 0; i < 100; i++) { + rows.push([`one-${i}`, `two-${i}`, `three-${i}`, `four-${i}`, `five-${i}`]); + } - this.state = { - columns: [ - // headerCol transform adds checkbox column with pf-m-2-sm, pf-m-1-md+ column space - { - title: 'Repositories', - cellTransforms: [headerCol()], - props: { className: 'pf-m-5-col-on-sm pf-m-4-col-on-md pf-m-3-col-on-lg pf-m-2-col-on-xl' } - }, - { - title: 'Pull requests', - props: { className: 'pf-m-5-col-on-sm pf-m-4-col-on-md pf-m-4-col-on-lg pf-m-3-col-on-xl' } - }, - { - title: 'Workspaces', - props: { className: 'pf-m-2-col-on-lg pf-m-2-col-on-xl pf-m-hidden pf-m-visible-on-lg' } - }, - { title: 'Last Commit', props: { className: 'pf-m-3-col-on-xl pf-m-hidden pf-m-visible-on-xl' } } - ], - rows - }; + const selectableRepos = rows; - this.onSelect = this.onSelect.bind(this); - this._handleResize = debounce(this._handleResize.bind(this), 100); - } + const [selectedRepoNames, setSelectedRepoNames] = React.useState([]); - componentDidMount() { - // re-render after resize - window.addEventListener('resize', this._handleResize); - } + const setRepoSelected = (repo: string, isSelecting = true) => + setSelectedRepoNames((prevSelected) => { + const otherSelectedRepoNames = prevSelected.filter((r) => r !== repo); + return isSelecting ? [...otherSelectedRepoNames, repo] : otherSelectedRepoNames; + }); - componentWillUnmount() { - window.removeEventListener('resize', this._handleResize); - } + const columns = ['Repositories', 'Branches', 'Pull requests', 'Workspaces', 'Last Commit']; - _handleResize() { - this.forceUpdate(); - } + const selectAllRepos = (isSelecting = true) => setSelectedRepoNames(isSelecting ? rows.map((item) => item[0]) : []); - onSelect(event, isSelected, virtualRowIndex, rowData) { - let rows; - if (virtualRowIndex === -1) { - rows = this.state.rows.map((oneRow) => { - oneRow.selected = isSelected; - return oneRow; - }); - } else { - rows = [...this.state.rows]; - const rowIndex = rows.findIndex((r) => r.id === rowData.id); - rows[rowIndex] = { ...rows[rowIndex], selected: isSelected }; - } - this.setState({ - rows - }); - this.selectableVirtualBody.forceUpdateVirtualGrid(); - } + const areAllReposSelected = selectedRepoNames.length === selectableRepos.length; + const isRepoSelected = (repo: string) => selectedRepoNames.includes(repo); - render() { - const { columns, rows } = this.state; + const [recentSelectedRowIndex, setRecentSelectedRowIndex] = React.useState(null); - const measurementCache = new CellMeasurerCache({ - fixedWidth: true, - minHeight: 44, - keyMapper: (rowIndex) => rowIndex - }); + const onSelectRepo = (repo: string, rowIndex: number, isSelecting: boolean) => { + if (recentSelectedRowIndex !== null) { + const numberSelected = rowIndex - recentSelectedRowIndex; + const intermediateIndexes = + numberSelected > 0 + ? Array.from(new Array(numberSelected + 1), (_x, i) => i + recentSelectedRowIndex) + : Array.from(new Array(Math.abs(numberSelected) + 1), (_x, i) => i + rowIndex); + intermediateIndexes.forEach(() => setRepoSelected(repo, isSelecting)); + } else { + setRepoSelected(repo, isSelecting); + } + setRecentSelectedRowIndex(rowIndex); + }; - const rowRenderer = ({ index, _isScrolling, key, style, parent }) => { - const { rows, columns } = this.state; + const measurementCache = new CellMeasurerCache({ + fixedWidth: true, + minHeight: 44, + keyMapper: (rowIndex) => rowIndex + }); - return ( - - - - { - this.onSelect(e, e.target.checked, 0, { id: rows[index].id }); - }} - /> - - - {rows[index].cells[0]} - - - {rows[index].cells[1]} - - - {rows[index].cells[2]} - - - {rows[index].cells[3]} - - - - ); - }; + const rowRenderer = ({ index: rowIndex, _isScrolling, key, style, parent }) => ( + + + onSelectRepo(rows[rowIndex][0], rowIndex, isSelecting), + isSelected: isRepoSelected(rows[rowIndex][0]) + }} + /> + {columns.map((col, index) => ( + {rows[rowIndex][index]} + ))} + + + ); - return ( -
- - - - - {({ width }) => ( - (this.selectableVirtualBody = ref)} - className="pf-v5-c-table pf-v5-c-virtualized pf-v5-c-window-scroller" - deferredMeasurementCache={measurementCache} - rowHeight={measurementCache.rowHeight} - height={400} - overscanRowCount={2} - columnCount={1} - rows={rows} - rowCount={rows.length} - rowRenderer={rowRenderer} - width={width} - role="grid" + return ( +
+ + + + + + ))} + + +
Selectable Virtualized Table
selectAllRepos(isSelecting), + isSelected: areAllReposSelected + }} /> - )} - - - ); - } -} + {columns.map((col, index) => ( + {col}
+ + {({ width }) => ( + + )} + +
+ ); +}; diff --git a/packages/module/patternfly-docs/content/examples/VirtualizedTable.md b/packages/module/patternfly-docs/content/examples/VirtualizedTable.md index ff6f736..9f40ff3 100644 --- a/packages/module/patternfly-docs/content/examples/VirtualizedTable.md +++ b/packages/module/patternfly-docs/content/examples/VirtualizedTable.md @@ -13,6 +13,7 @@ import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; import { CellMeasurerCache, CellMeasurer} from 'react-virtualized'; import { AutoSizer, VirtualTableBody, WindowScroller } from '@patternfly/react-virtualized-extension'; import { Table as TableDeprecated, TableHeader as TableHeaderDeprecated } from '@patternfly/react-table/deprecated'; +import { Table, Thead, Tr, Th, Td, Caption, TableGridBreakpoint } from '@patternfly/react-table'; import { Dropdown as DropdownDeprecated, DropdownItem as DropdownItemDeprecated, diff --git a/packages/module/patternfly-docs/generated/extensions/virtual-scroll-table/react.js b/packages/module/patternfly-docs/generated/extensions/virtual-scroll-table/react.js index 4011646..4f4b310 100644 --- a/packages/module/patternfly-docs/generated/extensions/virtual-scroll-table/react.js +++ b/packages/module/patternfly-docs/generated/extensions/virtual-scroll-table/react.js @@ -5,6 +5,7 @@ import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; import { CellMeasurerCache, CellMeasurer} from 'react-virtualized'; import { AutoSizer, VirtualTableBody, WindowScroller } from '@patternfly/react-virtualized-extension'; import { Table as TableDeprecated, TableHeader as TableHeaderDeprecated } from '@patternfly/react-table/deprecated'; +import { Table, Thead, Tr, Th, Td, Caption, TableGridBreakpoint } from '@patternfly/react-table'; import { Dropdown as DropdownDeprecated, DropdownItem as DropdownItemDeprecated, @@ -191,6 +192,13 @@ pageData.liveContext = { WindowScroller, TableDeprecated, TableHeaderDeprecated, + Table, + Thead, + Tr, + Th, + Td, + Caption, + TableGridBreakpoint, DropdownDeprecated, DropdownItemDeprecated, DropdownPositionDeprecated, @@ -216,7 +224,7 @@ pageData.examples = { , 'Selectable': props => - {\n oneRow.selected = isSelected;\n return oneRow;\n });\n } else {\n rows = [...this.state.rows];\n const rowIndex = rows.findIndex((r) => r.id === rowData.id);\n rows[rowIndex] = { ...rows[rowIndex], selected: isSelected };\n }\n this.setState({\n rows\n });\n this.selectableVirtualBody.forceUpdateVirtualGrid();\n }\n\n render() {\n const { columns, rows } = this.state;\n\n const measurementCache = new CellMeasurerCache({\n fixedWidth: true,\n minHeight: 44,\n keyMapper: (rowIndex) => rowIndex\n });\n\n const rowRenderer = ({ index, _isScrolling, key, style, parent }) => {\n const { rows, columns } = this.state;\n\n return (\n \n \n \n {\n this.onSelect(e, e.target.checked, 0, { id: rows[index].id });\n }}\n />\n \n \n {rows[index].cells[0]}\n \n \n {rows[index].cells[1]}\n \n \n {rows[index].cells[2]}\n \n \n {rows[index].cells[3]}\n \n \n \n );\n };\n\n return (\n
\n \n \n \n \n {({ width }) => (\n (this.selectableVirtualBody = ref)}\n className=\"pf-v5-c-table pf-v5-c-virtualized pf-v5-c-window-scroller\"\n deferredMeasurementCache={measurementCache}\n rowHeight={measurementCache.rowHeight}\n height={400}\n overscanRowCount={2}\n columnCount={1}\n rows={rows}\n rowCount={rows.length}\n rowRenderer={rowRenderer}\n width={width}\n role=\"grid\"\n />\n )}\n \n
\n );\n }\n}\n","title":"Selectable","lang":"js"}}> + {\n // this StringArray type is just needed because something in our documentation framework crashes when it encounters\n // a string[][] type\n type StringArray = string[];\n const rows: StringArray[] = [];\n\n for (let i = 0; i < 100; i++) {\n rows.push([`one-${i}`, `two-${i}`, `three-${i}`, `four-${i}`, `five-${i}`]);\n }\n\n const selectableRepos = rows;\n\n const [selectedRepoNames, setSelectedRepoNames] = React.useState([]);\n\n const setRepoSelected = (repo: string, isSelecting = true) =>\n setSelectedRepoNames((prevSelected) => {\n const otherSelectedRepoNames = prevSelected.filter((r) => r !== repo);\n return isSelecting ? [...otherSelectedRepoNames, repo] : otherSelectedRepoNames;\n });\n\n const columns = ['Repositories', 'Branches', 'Pull requests', 'Workspaces', 'Last Commit'];\n\n const selectAllRepos = (isSelecting = true) => setSelectedRepoNames(isSelecting ? rows.map((item) => item[0]) : []);\n\n const areAllReposSelected = selectedRepoNames.length === selectableRepos.length;\n const isRepoSelected = (repo: string) => selectedRepoNames.includes(repo);\n\n const [recentSelectedRowIndex, setRecentSelectedRowIndex] = React.useState(null);\n\n const onSelectRepo = (repo: string, rowIndex: number, isSelecting: boolean) => {\n if (recentSelectedRowIndex !== null) {\n const numberSelected = rowIndex - recentSelectedRowIndex;\n const intermediateIndexes =\n numberSelected > 0\n ? Array.from(new Array(numberSelected + 1), (_x, i) => i + recentSelectedRowIndex)\n : Array.from(new Array(Math.abs(numberSelected) + 1), (_x, i) => i + rowIndex);\n intermediateIndexes.forEach(() => setRepoSelected(repo, isSelecting));\n } else {\n setRepoSelected(repo, isSelecting);\n }\n setRecentSelectedRowIndex(rowIndex);\n };\n\n const measurementCache = new CellMeasurerCache({\n fixedWidth: true,\n minHeight: 44,\n keyMapper: (rowIndex) => rowIndex\n });\n\n const rowRenderer = ({ index: rowIndex, _isScrolling, key, style, parent }) => (\n \n \n onSelectRepo(rows[rowIndex][0], rowIndex, isSelecting),\n isSelected: isRepoSelected(rows[rowIndex][0])\n }}\n />\n {columns.map((col, index) => (\n {rows[rowIndex][index]}\n ))}\n \n \n );\n\n return (\n
\n \n \n \n \n selectAllRepos(isSelecting),\n isSelected: areAllReposSelected\n }}\n />\n {columns.map((col, index) => (\n \n ))}\n \n \n
Selectable Virtualized Table
{col}
\n \n {({ width }) => (\n \n )}\n \n
\n );\n};\n","title":"Selectable","lang":"js"}}>
, 'Actions': props => diff --git a/packages/module/src/components/Virtualized/VirtualizedTable.test.tsx b/packages/module/src/components/Virtualized/VirtualizedTable.test.tsx index 0710b32..d0ec4c4 100644 --- a/packages/module/src/components/Virtualized/VirtualizedTable.test.tsx +++ b/packages/module/src/components/Virtualized/VirtualizedTable.test.tsx @@ -8,7 +8,7 @@ import { TableHeader as TableHeaderDeprecated } from '@patternfly/react-table/deprecated'; import { VirtualTableBody } from './index'; -import { rows, columns, actions } from '@patternfly/react-table/src/test-helpers/data-sets'; +import { rows, columns, actions } from './testDataSets'; import { CellMeasurerCache } from 'react-virtualized'; const measurementCache = new CellMeasurerCache({ diff --git a/packages/module/src/components/Virtualized/testDataSets.tsx b/packages/module/src/components/Virtualized/testDataSets.tsx new file mode 100644 index 0000000..a6334ad --- /dev/null +++ b/packages/module/src/components/Virtualized/testDataSets.tsx @@ -0,0 +1,221 @@ +/* eslint-disable no-console */ + +// This file is test data pulled from the @patternfly/react-table package + +import * as React from 'react'; +import { IRow, ICell, IActions, EditableTextCell } from '@patternfly/react-table'; + +export const columns: (ICell | string)[] = [ + { title: 'Header cell' }, + 'Branches', + { title: 'Pull requests' }, + 'Workspaces', + { + title: 'Last Commit' + } +]; + +export const rows: IRow[] = [ + { + cells: ['one', 'two', 'three', 'four', 'five'] + }, + { + cells: ['one', 'two', 'three', 'four', 'five'] + }, + { + cells: ['one', 'two', 'three', 'four', 'five'] + }, + { + cells: ['one', 'two', 'three', 'four', 'five'] + }, + { + cells: ['one', 'two', 'three', 'four', 'five'] + }, + { + cells: ['one', 'two', 'three', 'four', 'five'] + }, + { + cells: ['one', 'two', 'three', 'four', 'five'] + }, + { + cells: ['one', 'two', 'three', 'four', 'five'] + }, + { + cells: ['one', 'two', 'three', 'four', 'five'] + } +]; + +export const editableColumns: (ICell | string)[] = [ + 'Text input col 1', + 'Disabled text input col 2', + 'Text input col 3', + 'Text input col 4' +]; + +export const editableRows: IRow[] = [ + { + isEditable: true, + cells: [ + { + title: (value: string, rowIndex: number, cellIndex: number, props: any) => ( + {}} + inputAriaLabel="Row 1 cell 1 content" + /> + ), + props: { + value: 'Row 1 cell 1 content', + name: 'uniqueIdRow1Cell1' + } + }, + { + title: (value: string, rowIndex: number, cellIndex: number, props: any) => ( + {}} + inputAriaLabel="Row 1 cell 2 content" + /> + ), + props: { + value: 'Row 1 cell 2, disabled content', + name: 'uniqueIdRow1Cell2' + } + }, + { + title: (value: string, rowIndex: number, cellIndex: number, props: any) => ( + {}} + inputAriaLabel="Row 1 cell 3 content" + /> + ), + props: { + value: 'Row 1 cell 3 content', + name: 'uniqueIdRow1Cell3' + } + }, + { + title: (value: string, rowIndex: number, cellIndex: number, props: any) => ( + {}} + inputAriaLabel="Row 1 cell 4 content" + /> + ), + props: { + value: 'Row 1 cell 4 content', + name: 'uniqueIdRow1Cell4' + } + } + ] + }, + { + isEditable: false, + cells: [ + { + title: (value: string, rowIndex: number, cellIndex: number, props: any) => ( + {}} + inputAriaLabel="Row 1 cell 1 content" + /> + ), + props: { + value: 'Row 2 cell 1 content', + name: 'uniqueIdRow2Cell1' + } + }, + { + title: (value: string, rowIndex: number, cellIndex: number, props: any) => ( + {}} + inputAriaLabel="Row 2 cell 2 content" + /> + ), + props: { + value: 'Row 2 cell 2, disabled content', + name: 'uniqueIdRow2Cell2' + } + }, + { + title: (value: string, rowIndex: number, cellIndex: number, props: any) => ( + {}} + inputAriaLabel="Row 2 cell 3 content" + /> + ), + props: { + value: 'Row 2 cell 3 content', + name: 'uniqueIdRow2Cell3' + } + }, + { + title: (value: string, rowIndex: number, cellIndex: number, props: any) => ( + {}} + inputAriaLabel="Row 2 cell 4 content" + /> + ), + props: { + value: 'Row 2 cell 4 content', + name: 'uniqueIdRow2Cell4' + } + } + ] + } +]; + +export const actions: IActions = [ + { + title: 'Some action', + onClick: (event: React.MouseEvent, rowId: number) => + // tslint:disable-next-line:no-console + console.log('clicked on Some action, on row: ', rowId) + }, + { + title:
Another action
, + onClick: (event: React.MouseEvent, rowId: number) => + // tslint:disable-next-line:no-console + console.log('clicked on Another action, on row: ', rowId) + }, + { + isSeparator: true, + onClick: null + }, + { + title: 'Third action', + onClick: (event: React.MouseEvent, rowId: number) => + // tslint:disable-next-line:no-console + console.log('clicked on Third action, on row: ', rowId) + } +]; diff --git a/yarn.lock b/yarn.lock index 5fe5b35..81f0069 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2070,10 +2070,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@patternfly/ast-helpers@^1.3.8": - version "1.3.8" - resolved "https://registry.npmjs.org/@patternfly/ast-helpers/-/ast-helpers-1.3.8.tgz#2575b67f3a051e21fff05d38236771de5939622c" - integrity sha512-68cpY/Q/ZIjWzs/pDiG7Jg2BhuPiA36vAlF9wi7qdGaFJTrZGmaosm7whbzpL0TFJZFKDmFYID50EnYzHZOI8w== +"@patternfly/ast-helpers@^1.3.9": + version "1.3.9" + resolved "https://registry.yarnpkg.com/@patternfly/ast-helpers/-/ast-helpers-1.3.9.tgz#b0598627448cb3059cdab8bb2c4f011f19aac8de" + integrity sha512-D5mPJjTXH4tH2pqM8AcqAUkGZGEXe7RapzLRXR2B6GvJu/luyZSTAoZu5d53d885Pnj1WpyxjcXjWnV222c0TQ== dependencies: acorn "^8.4.1" acorn-class-fields "^1.0.0" @@ -2082,9 +2082,9 @@ astring "^1.7.5" "@patternfly/documentation-framework@^5.2.22": - version "5.3.8" - resolved "https://registry.npmjs.org/@patternfly/documentation-framework/-/documentation-framework-5.3.8.tgz#4eb7dcd8b6e7c3a8b1c4680b1d43d45db114201f" - integrity sha512-RiRaC183RdzbUDcpgkT9ekMcBFLhiBfHnByJMgwyveqR10qcGDezT59Pe3bbHSWP+9ly3eCRIkgGHh8rVkfBQg== + version "5.3.9" + resolved "https://registry.yarnpkg.com/@patternfly/documentation-framework/-/documentation-framework-5.3.9.tgz#87a9f132682af328d9c23e20a66a0aa957d5c9cb" + integrity sha512-gfmy/0V0EC+FECPld125JcIX5tMt2p27lr+y/UXLGpcljpi04DFpNHfKUY67E0CaJA/9WqjDv08rqum7sweWcg== dependencies: "@babel/core" "7.18.2" "@babel/plugin-proposal-class-properties" "7.17.12" @@ -2094,7 +2094,7 @@ "@babel/plugin-transform-react-jsx" "7.17.12" "@babel/preset-env" "7.18.2" "@mdx-js/util" "1.6.16" - "@patternfly/ast-helpers" "^1.3.8" + "@patternfly/ast-helpers" "^1.3.9" "@reach/router" "npm:@gatsbyjs/reach-router@1.3.9" autoprefixer "9.8.6" babel-loader "9.1.2" @@ -2171,59 +2171,59 @@ xmldoc "^1.1.2" "@patternfly/patternfly@^6.0.0-alpha.9": - version "6.0.0-alpha.23" - resolved "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-6.0.0-alpha.23.tgz#75d96c445c08200ffcd74aebdc221334f1d0cc13" - integrity sha512-h1BRJkZkdTRzg0w1Q66axH1R3hEQM/f2UfKg4H/r8JmP8sRgpshOx2eSMfAask+dqWMJIM/r82fCsNxaDLW/9Q== + version "6.0.0-alpha.28" + resolved "https://registry.yarnpkg.com/@patternfly/patternfly/-/patternfly-6.0.0-alpha.28.tgz#5c3d0b0b1c712d8f2b9bcc05d3b6545f8f46a9ce" + integrity sha512-10vNDFHjtSRIfTbAnZqed2jbhXA6K4o9ijT8lGrxiSTq4qxRHNcTnNoV9oX328wvvdao052xv6HDYwvgwlvBiA== "@patternfly/react-code-editor@^6.0.0-alpha.1": - version "6.0.0-alpha.2" - resolved "https://registry.npmjs.org/@patternfly/react-code-editor/-/react-code-editor-6.0.0-alpha.2.tgz#96a03ab9218a20fcf63f96f2a1c981f722fe5500" - integrity sha512-YN10UNzVldVk/k93ndX+lXhPQNsh5Psgn+FGTYLMLN8ZlgjtwOPCxWmwj6eseYEvGCdA5QmaN8UjDCY089ieOg== + version "6.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/@patternfly/react-code-editor/-/react-code-editor-6.0.0-alpha.3.tgz#1f2bf8030362842afe17dc733c07786bc464bf7a" + integrity sha512-aKHBA7r/9BNV69AyE8IFbQ9P+Xh3v7dEixfzY9oyJEyDEpTXfsdC6ow/lQN/zCVIieorvs7WPFPO/hHuGEUeng== dependencies: - "@patternfly/react-core" "^6.0.0-alpha.2" - "@patternfly/react-icons" "^6.0.0-alpha.2" - "@patternfly/react-styles" "^6.0.0-alpha.2" + "@patternfly/react-core" "^6.0.0-alpha.3" + "@patternfly/react-icons" "^6.0.0-alpha.3" + "@patternfly/react-styles" "^6.0.0-alpha.3" react-dropzone "14.2.3" tslib "^2.5.0" -"@patternfly/react-core@^6.0.0-alpha.1", "@patternfly/react-core@^6.0.0-alpha.2": - version "6.0.0-alpha.2" - resolved "https://registry.npmjs.org/@patternfly/react-core/-/react-core-6.0.0-alpha.2.tgz#038f5d9f32536bba057c4a0c3f80b31eb7e0bd9b" - integrity sha512-1AnOI3ZmjBtAh97+aDNCmEgE/7LvUGu3MB3BYJkYFWXz8CIKCrurc3k3e3gCAVdg0oNXhcoSpUsjXnS4/e7qkA== +"@patternfly/react-core@^6.0.0-alpha.1", "@patternfly/react-core@^6.0.0-alpha.3": + version "6.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/@patternfly/react-core/-/react-core-6.0.0-alpha.3.tgz#5531f6c0010923a3e41ad3db0432e74d21f40cca" + integrity sha512-j5ujDYuoAyWB7RQJbosA2fAg+0H9bViDRgt4opN1/XHGBuZ5VP9Ty5PiPt3FO83ysSfa7pstpAhUtRZ0Tkfihw== dependencies: - "@patternfly/react-icons" "^6.0.0-alpha.2" - "@patternfly/react-styles" "^6.0.0-alpha.2" - "@patternfly/react-tokens" "^6.0.0-alpha.2" + "@patternfly/react-icons" "^6.0.0-alpha.3" + "@patternfly/react-styles" "^6.0.0-alpha.3" + "@patternfly/react-tokens" "^6.0.0-alpha.3" focus-trap "7.5.2" react-dropzone "^14.2.3" tslib "^2.5.0" -"@patternfly/react-icons@^6.0.0-alpha.1", "@patternfly/react-icons@^6.0.0-alpha.2": - version "6.0.0-alpha.2" - resolved "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-6.0.0-alpha.2.tgz#7555a1410a6038c7c59f2f8d515adec572392f86" - integrity sha512-OGBen2niZ5S88rY2DVeO+P06oaZP5cO5MmdgW7iOzhVuyHkUS+IB15bN7+RxO9PJkEpfMQz0Ui/rQaXFGxLaSw== +"@patternfly/react-icons@^6.0.0-alpha.1", "@patternfly/react-icons@^6.0.0-alpha.3": + version "6.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/@patternfly/react-icons/-/react-icons-6.0.0-alpha.3.tgz#de89a32f1c17e8bb7c6af5a50e99a250702d0cda" + integrity sha512-iBsQ6y2aUKwT3BXYYDNnTdCcN7u8Ip6w+nV/+Q9CeCKm1eir4fOaCLKPijTUqOoe832oBKq3lmEAFSmAUhQYDw== -"@patternfly/react-styles@^6.0.0-alpha.1", "@patternfly/react-styles@^6.0.0-alpha.2": - version "6.0.0-alpha.2" - resolved "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-6.0.0-alpha.2.tgz#0d2973b1c8e42e2f35f208874f12c754f0c2a8b0" - integrity sha512-39VT5sKQdxck48mjSgbiL9gn6SaaVuYrlqQcrkpRB4F7qk0rJdVAdjwS/PliRjsb/Ywz7xG9UWK/D/1OoQEf2A== +"@patternfly/react-styles@^6.0.0-alpha.1", "@patternfly/react-styles@^6.0.0-alpha.3": + version "6.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/@patternfly/react-styles/-/react-styles-6.0.0-alpha.3.tgz#d8b3637a93f554d4cdcd8aee029ac7658928be0d" + integrity sha512-evZssf7C6csk27af31PwsCjy889DxN/htQVxuBsFrpqGdWX9Jn/iiHiMiH0JMpiwXXwvgtU0AB2pU/RYHewL0A== "@patternfly/react-table@^6.0.0-alpha.1": - version "6.0.0-alpha.2" - resolved "https://registry.npmjs.org/@patternfly/react-table/-/react-table-6.0.0-alpha.2.tgz#c454750020518ad8f234d8f630c26f4114c0e249" - integrity sha512-jbyC/JS4F8NifKhdQ7N08ncD2XUoswjDrORoi354Vw+luvS1e+OlcPTCniJZkJP4YlkdeKROTHHe1aJle80BWw== - dependencies: - "@patternfly/react-core" "^6.0.0-alpha.2" - "@patternfly/react-icons" "^6.0.0-alpha.2" - "@patternfly/react-styles" "^6.0.0-alpha.2" - "@patternfly/react-tokens" "^6.0.0-alpha.2" + version "6.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/@patternfly/react-table/-/react-table-6.0.0-alpha.3.tgz#28b2e1de935bb6496604799012c1109ce9077ca2" + integrity sha512-h3UPWMCcBHjDYhr/w6/t8QKMLF4Cv/Eb8t4hJY6bK/0iLWFeWXKZeZdYbJrRSeQaYZMEzU5b0saVJImY3+ijbw== + dependencies: + "@patternfly/react-core" "^6.0.0-alpha.3" + "@patternfly/react-icons" "^6.0.0-alpha.3" + "@patternfly/react-styles" "^6.0.0-alpha.3" + "@patternfly/react-tokens" "^6.0.0-alpha.3" lodash "^4.17.19" tslib "^2.5.0" -"@patternfly/react-tokens@^6.0.0-alpha.2": - version "6.0.0-alpha.2" - resolved "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-6.0.0-alpha.2.tgz#d0509f67638fa244ae91175b0e308f7935b4ec91" - integrity sha512-A4CN2WLUzjpHD2WAOexYG9X+yy5fowZXmUpLX87+Gk+sl5ziYOFY661l6b+ZgWmvNZ+g58K75JKb8Myu3bx7Ow== +"@patternfly/react-tokens@^6.0.0-alpha.3": + version "6.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/@patternfly/react-tokens/-/react-tokens-6.0.0-alpha.3.tgz#a3923e343fe6dc85c476e771c04af0f7370830c4" + integrity sha512-F5DdUK137M9yt/a7MkMaL6ZNgh/1Gn1RlMl7EcGNVmHAzURDn7V0RHIOcNy5w+5Pc+Lu+p6Y7qJ8AUiM4TyVug== "@pkgjs/parseargs@^0.11.0": version "0.11.0" @@ -5746,7 +5746,7 @@ flush-write-stream@^1.0.0: focus-trap@7.5.2: version "7.5.2" - resolved "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz#e5ee678d10a18651f2591ffb66c949fb098d57cf" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.2.tgz#e5ee678d10a18651f2591ffb66c949fb098d57cf" integrity sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw== dependencies: tabbable "^6.2.0" @@ -7468,7 +7468,7 @@ jest-snapshot@^29.5.0: 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" + resolved "https://registry.yarnpkg.com/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz#19018b0851f7568972147a5d60074b55f0225a7d" integrity sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg== jest-util@^29.2.1: @@ -10628,7 +10628,7 @@ symbol-tree@^3.2.4: tabbable@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: