From cc625d5519e319df7c51eea6df6b0a7cb89942b2 Mon Sep 17 00:00:00 2001 From: Gabi Podolnikova Date: Fri, 30 Oct 2026 11:18:32 +0100 Subject: [PATCH 1/3] chore(Felt): switch React and docs dependencies to @rh-felt packages Replaces the temporary PatternFly dependencies held over for the docs framework with their published @rh-felt counterparts now that @rh-felt/styles is released: - Swap @patternfly/patternfly@6.7.0-prerelease.3 for @rh-felt/styles@0.0.1-prerelease.3 in the react-core, react-icons, react-styles, react-tokens, react-docs, and demo-app manifests, the style/token/class-map/icon generation scripts, the docs CSS entry, charts examples, and the demo app - Depend on @rh-felt/styles directly in react-docs and keep @patternfly/* npm aliases to the @rh-felt prereleases solely for the documentation framework, which still resolves PatternFly package names internally; the pinned versions match the workspaces so they link to the local packages - Drop the @patternfly react-charts, react-drag-drop, and react-templates dependencies that nothing resolves - Preapprove the @rh-felt/* scope from the npm minimal age gate so freshly published prereleases can be installed - Track @rh-felt/styles instead of @patternfly/patternfly in scripts/promote.sh --- .yarnrc.yml | 5 +- .../ChartLegend/examples/ChartLegend.md | 2 +- .../components/Patterns/examples/patterns.md | 2 +- .../ResizeObserver/examples/resizeObserver.md | 2 +- packages/react-core/package.json | 2 +- packages/react-core/scripts/copyStyles.mjs | 2 +- packages/react-docs/package.json | 18 +- .../patternfly-docs/patternfly-docs.css.js | 6 +- packages/react-icons/package.json | 2 +- .../scripts/icons/patternflyIcons.mjs | 2 +- .../demo-app-ts/package.json | 1 + .../demos/TableDemo/TableSelectableDemo.tsx | 2 +- packages/react-styles/package.json | 2 +- packages/react-styles/scripts/copyStyles.mjs | 2 +- .../scripts/generateClassMaps.mjs | 2 +- .../react-styles/scripts/writeClassMaps.mjs | 2 +- packages/react-tokens/package.json | 2 +- .../react-tokens/scripts/generateTokens.mjs | 11 +- scripts/promote.sh | 4 +- yarn.lock | 339 ++++-------------- 20 files changed, 113 insertions(+), 297 deletions(-) diff --git a/.yarnrc.yml b/.yarnrc.yml index e1450716250..a82ca753351 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -4,4 +4,7 @@ enableScripts: false nodeLinker: node-modules -npmMinimalAgeGate: "1w" \ No newline at end of file +npmMinimalAgeGate: "1w" + +npmPreapprovedPackages: + - "@rh-felt/*" \ No newline at end of file diff --git a/packages/react-charts/src/victory/components/ChartLegend/examples/ChartLegend.md b/packages/react-charts/src/victory/components/ChartLegend/examples/ChartLegend.md index 74fa28acf10..1f1f0422b37 100644 --- a/packages/react-charts/src/victory/components/ChartLegend/examples/ChartLegend.md +++ b/packages/react-charts/src/victory/components/ChartLegend/examples/ChartLegend.md @@ -45,7 +45,7 @@ import { } from '@rh-felt/react-charts/victory'; import { getResizeObserver } from '@rh-felt/react-core'; import chart_color_black_500 from '@rh-felt/react-tokens/dist/esm/chart_color_black_500'; -import '@patternfly/patternfly/patternfly-charts.css'; +import '@rh-felt/styles/patternfly-charts.css'; ## Introduction Note: PatternFly React charts live in its own package at [@rh-felt/react-charts](https://www.npmjs.com/package/@rh-felt/react-charts)! diff --git a/packages/react-charts/src/victory/components/Patterns/examples/patterns.md b/packages/react-charts/src/victory/components/Patterns/examples/patterns.md index 8259db72888..c8508e69496 100644 --- a/packages/react-charts/src/victory/components/Patterns/examples/patterns.md +++ b/packages/react-charts/src/victory/components/Patterns/examples/patterns.md @@ -49,7 +49,7 @@ import chart_color_blue_300 from '@rh-felt/react-tokens/dist/esm/chart_color_blu import chart_color_green_300 from '@rh-felt/react-tokens/dist/esm/chart_color_green_300'; import chart_color_teal_300 from '@rh-felt/react-tokens/dist/esm/chart_color_teal_300'; import chart_color_yellow_300 from '@rh-felt/react-tokens/dist/esm/chart_color_yellow_300'; -import '@patternfly/patternfly/patternfly-charts.css'; +import '@rh-felt/styles/patternfly-charts.css'; ## Introduction Note: PatternFly React charts live in its own package at [@rh-felt/react-charts](https://www.npmjs.com/package/@rh-felt/react-charts)! diff --git a/packages/react-charts/src/victory/components/ResizeObserver/examples/resizeObserver.md b/packages/react-charts/src/victory/components/ResizeObserver/examples/resizeObserver.md index 7e3cf21f9d0..ce80bc5526d 100644 --- a/packages/react-charts/src/victory/components/ResizeObserver/examples/resizeObserver.md +++ b/packages/react-charts/src/victory/components/ResizeObserver/examples/resizeObserver.md @@ -36,7 +36,7 @@ import { import { getResizeObserver } from '@rh-felt/react-core'; import chart_color_blue_300 from '@rh-felt/react-tokens/dist/esm/chart_color_blue_300'; import chart_color_orange_300 from '@rh-felt/react-tokens/dist/esm/chart_color_orange_300'; -import '@patternfly/patternfly/patternfly-charts.css'; +import '@rh-felt/styles/patternfly-charts.css'; ## Introduction Note: PatternFly React charts live in its own package at [@rh-felt/react-charts](https://www.npmjs.com/package/@rh-felt/react-charts)! diff --git a/packages/react-core/package.json b/packages/react-core/package.json index c67247d5fda..0271f80561f 100644 --- a/packages/react-core/package.json +++ b/packages/react-core/package.json @@ -56,7 +56,7 @@ }, "devDependencies": { "@adobe/css-tools": "^4.5.0", - "@patternfly/patternfly": "6.7.0-prerelease.3", + "@rh-felt/styles": "0.0.1-prerelease.3", "case-anything": "^3.1.2", "fs-extra": "^11.3.3" }, diff --git a/packages/react-core/scripts/copyStyles.mjs b/packages/react-core/scripts/copyStyles.mjs index c671aab736a..145a711cb4f 100644 --- a/packages/react-core/scripts/copyStyles.mjs +++ b/packages/react-core/scripts/copyStyles.mjs @@ -6,7 +6,7 @@ import { parse as parseCSS, stringify as stringifyCSS } from '@adobe/css-tools'; const require = createRequire(import.meta.url); const stylesDir = resolve(import.meta.dirname, '../dist/styles'); -const pfDir = dirname(require.resolve('@patternfly/patternfly/patternfly.css')); +const pfDir = dirname(require.resolve('@rh-felt/styles/patternfly.css')); const unusedSelectorRegEx = /(\.fas?|\.sr-only)/; const unusedKeyFramesRegEx = /fa-/; diff --git a/packages/react-docs/package.json b/packages/react-docs/package.json index c5b47a61586..577ed14fba4 100644 --- a/packages/react-docs/package.json +++ b/packages/react-docs/package.json @@ -23,16 +23,14 @@ "test:a11y": "patternfly-a11y --config patternfly-a11y.config" }, "dependencies": { - "@patternfly/patternfly": "6.7.0-prerelease.3", - "@patternfly/react-charts": "8.7.0-prerelease.4", - "@patternfly/react-code-editor": "6.7.0-prerelease.6", - "@patternfly/react-core": "6.7.0-prerelease.6", - "@patternfly/react-drag-drop": "6.7.0-prerelease.6", - "@patternfly/react-icons": "6.7.0-prerelease.3", - "@patternfly/react-styles": "6.7.0-prerelease.3", - "@patternfly/react-table": "6.7.0-prerelease.7", - "@patternfly/react-templates": "6.7.0-prerelease.6", - "@patternfly/react-tokens": "6.7.0-prerelease.3", + "@patternfly/patternfly": "npm:@rh-felt/styles@0.0.1-prerelease.3", + "@patternfly/react-code-editor": "npm:@rh-felt/react-code-editor@0.0.1-prerelease.3", + "@patternfly/react-core": "npm:@rh-felt/react-core@0.0.1-prerelease.3", + "@patternfly/react-icons": "npm:@rh-felt/react-icons@0.0.1-prerelease.2", + "@patternfly/react-styles": "npm:@rh-felt/react-styles@0.0.1-prerelease.3", + "@patternfly/react-table": "npm:@rh-felt/react-table@0.0.1-prerelease.3", + "@patternfly/react-tokens": "npm:@rh-felt/react-tokens@0.0.1-prerelease.2", + "@rh-felt/styles": "0.0.1-prerelease.3", "echarts": "^5.6.0 || ^6.0.0", "victory": "^37.3.6" }, diff --git a/packages/react-docs/patternfly-docs/patternfly-docs.css.js b/packages/react-docs/patternfly-docs/patternfly-docs.css.js index a332be65cd2..f90c2859c97 100644 --- a/packages/react-docs/patternfly-docs/patternfly-docs.css.js +++ b/packages/react-docs/patternfly-docs/patternfly-docs.css.js @@ -7,10 +7,10 @@ import '@rh-felt/react-styles/src/css/components/Popper/Popper.css'; import '@patternfly/documentation-framework/global.css'; // Patternfly -import '@patternfly/patternfly/patternfly.css'; +import '@rh-felt/styles/patternfly.css'; // Utilities -import '@patternfly/patternfly/patternfly-addons.css'; +import '@rh-felt/styles/patternfly-addons.css'; // Charts -import '@patternfly/patternfly/patternfly-charts.css'; +import '@rh-felt/styles/patternfly-charts.css'; diff --git a/packages/react-icons/package.json b/packages/react-icons/package.json index a2a27dcbe2c..66e849fb8da 100644 --- a/packages/react-icons/package.json +++ b/packages/react-icons/package.json @@ -39,7 +39,7 @@ "@fortawesome/free-brands-svg-icons": "^5.15.4", "@fortawesome/free-regular-svg-icons": "^5.15.4", "@fortawesome/free-solid-svg-icons": "^5.15.4", - "@patternfly/patternfly": "6.7.0-prerelease.3", + "@rh-felt/styles": "0.0.1-prerelease.3", "@rhds/icons": "^2.3.1", "fs-extra": "^11.3.3" }, diff --git a/packages/react-icons/scripts/icons/patternflyIcons.mjs b/packages/react-icons/scripts/icons/patternflyIcons.mjs index 3b978c16ece..ca737007842 100644 --- a/packages/react-icons/scripts/icons/patternflyIcons.mjs +++ b/packages/react-icons/scripts/icons/patternflyIcons.mjs @@ -1,4 +1,4 @@ -import { pfIcons } from '@patternfly/patternfly/icons/pficons.mjs'; +import { pfIcons } from '@rh-felt/styles/icons/pficons.mjs'; const renaming = { save: 'save-alt', diff --git a/packages/react-integration/demo-app-ts/package.json b/packages/react-integration/demo-app-ts/package.json index 46a344a97a1..9bee5e4f99b 100644 --- a/packages/react-integration/demo-app-ts/package.json +++ b/packages/react-integration/demo-app-ts/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@rh-felt/react-core": "workspace:^", + "@rh-felt/styles": "0.0.1-prerelease.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router": "^7.12.0", diff --git a/packages/react-integration/demo-app-ts/src/components/demos/TableDemo/TableSelectableDemo.tsx b/packages/react-integration/demo-app-ts/src/components/demos/TableDemo/TableSelectableDemo.tsx index fbe78ac3167..801bec86278 100644 --- a/packages/react-integration/demo-app-ts/src/components/demos/TableDemo/TableSelectableDemo.tsx +++ b/packages/react-integration/demo-app-ts/src/components/demos/TableDemo/TableSelectableDemo.tsx @@ -4,7 +4,7 @@ import { Table, TableHeader, TableBody, TableProps } from '@rh-felt/react-table/ import spacing from '@rh-felt/react-styles/css/utilities/Spacing/spacing'; import { Checkbox, Divider, Radio } from '@rh-felt/react-core'; -import '@patternfly/patternfly/utilities/Spacing/spacing.css'; +import '@rh-felt/styles/utilities/Spacing/spacing.css'; interface TableState { columns: (ICell | string)[]; diff --git a/packages/react-styles/package.json b/packages/react-styles/package.json index e75d7f42377..022c317773e 100644 --- a/packages/react-styles/package.json +++ b/packages/react-styles/package.json @@ -26,7 +26,7 @@ "clean": "rimraf dist css" }, "devDependencies": { - "@patternfly/patternfly": "6.7.0-prerelease.3", + "@rh-felt/styles": "0.0.1-prerelease.3", "change-case": "^5.4.4", "fs-extra": "^11.3.3" }, diff --git a/packages/react-styles/scripts/copyStyles.mjs b/packages/react-styles/scripts/copyStyles.mjs index 184a4a6bdc2..6580c90fa68 100644 --- a/packages/react-styles/scripts/copyStyles.mjs +++ b/packages/react-styles/scripts/copyStyles.mjs @@ -3,6 +3,6 @@ import path from 'node:path'; import url from 'node:url'; const toDir = path.resolve(import.meta.dirname, '../css'); -const fromDir = path.dirname(url.fileURLToPath(import.meta.resolve('@patternfly/patternfly/package.json'))); +const fromDir = path.dirname(url.fileURLToPath(import.meta.resolve('@rh-felt/styles/package.json'))); copySync(path.join(fromDir, 'assets/images'), path.join(toDir, 'assets/images')); diff --git a/packages/react-styles/scripts/generateClassMaps.mjs b/packages/react-styles/scripts/generateClassMaps.mjs index d3965f9db50..a417e18d974 100644 --- a/packages/react-styles/scripts/generateClassMaps.mjs +++ b/packages/react-styles/scripts/generateClassMaps.mjs @@ -55,7 +55,7 @@ function getClassMaps(cssString) { * @returns {any} Map of file names to classMaps */ export function generateClassMaps() { - const pfStylesDir = path.dirname(url.fileURLToPath(import.meta.resolve('@patternfly/patternfly/patternfly.css'))); + const pfStylesDir = path.dirname(url.fileURLToPath(import.meta.resolve('@rh-felt/styles/patternfly.css'))); const patternflyCSSFiles = glob.sync('**/*.css', { cwd: pfStylesDir, diff --git a/packages/react-styles/scripts/writeClassMaps.mjs b/packages/react-styles/scripts/writeClassMaps.mjs index 253265c2ea9..2707ee27ee5 100644 --- a/packages/react-styles/scripts/writeClassMaps.mjs +++ b/packages/react-styles/scripts/writeClassMaps.mjs @@ -40,7 +40,7 @@ export default _default; * @param {any} classMaps Map of file names to classMaps */ function writeClassMaps(classMaps) { - const pfStylesDir = path.dirname(url.fileURLToPath(import.meta.resolve('@patternfly/patternfly/patternfly.css'))); + const pfStylesDir = path.dirname(url.fileURLToPath(import.meta.resolve('@rh-felt/styles/patternfly.css'))); Object.entries(classMaps).forEach(([file, classMap]) => { const outPath = file.includes(pfStylesDir) ? path.relative(pfStylesDir, file) : path.relative('src/css', file); diff --git a/packages/react-tokens/package.json b/packages/react-tokens/package.json index f947f0d4075..3e4725ac14a 100644 --- a/packages/react-tokens/package.json +++ b/packages/react-tokens/package.json @@ -31,7 +31,7 @@ }, "devDependencies": { "@adobe/css-tools": "^4.5.0", - "@patternfly/patternfly": "6.7.0-prerelease.3", + "@rh-felt/styles": "0.0.1-prerelease.3", "fs-extra": "^11.3.3" } } diff --git a/packages/react-tokens/scripts/generateTokens.mjs b/packages/react-tokens/scripts/generateTokens.mjs index ed3ff54d7d2..28bebca48fa 100644 --- a/packages/react-tokens/scripts/generateTokens.mjs +++ b/packages/react-tokens/scripts/generateTokens.mjs @@ -5,7 +5,7 @@ import { parse, stringify } from '@adobe/css-tools'; import { readFileSync } from 'node:fs'; const require = createRequire(import.meta.url); -const pfStylesDir = dirname(require.resolve('@patternfly/patternfly/patternfly.css')); +const pfStylesDir = dirname(require.resolve('@rh-felt/styles/patternfly.css')); const version = 'v6'; // Helpers @@ -73,7 +73,7 @@ const getLocalVarsMap = (cssFiles) => { }; /** - * Generates tokens from CSS in node_modules/@patternfly/patternfly/** + * Generates tokens from CSS in node_modules/@rh-felt/styles/** * * @returns {object} of form { * c_about_modal_box: { @@ -104,14 +104,11 @@ export function generateTokens() { .sort((a, b) => (a.split(sep).length < b.split(sep).length ? 1 : -1)); // various lookup tables to resolve variables - const scssVariables = readFileSync( - require.resolve('@patternfly/patternfly/sass-utilities/scss-variables.scss'), - 'utf8' - ); + const scssVariables = readFileSync(require.resolve('@rh-felt/styles/sass-utilities/scss-variables.scss'), 'utf8'); const scssVarsMap = getRegexMatches(scssVariables, /(\$.*):\s*([^;^!]+)/g); const cssGlobalVariablesAst = parse( - readFileSync(require.resolve('@patternfly/patternfly/base/patternfly-variables.css'), 'utf8') + readFileSync(require.resolve('@rh-felt/styles/base/patternfly-variables.css'), 'utf8') ); cssGlobalVariablesAst.stylesheet.rules = cssGlobalVariablesAst.stylesheet.rules.filter( (node) => !node.selectors || !node.selectors.some((item) => item.includes(`.pf-${version}-theme-dark`)) diff --git a/scripts/promote.sh b/scripts/promote.sh index 50e14d14905..cf16b48e893 100755 --- a/scripts/promote.sh +++ b/scripts/promote.sh @@ -1,10 +1,9 @@ #!/bin/bash # Make sure you update the version number when changing this script. -version=2.0 +version=2.1 promote=false packages=( - @patternfly/patternfly @rh-felt/react-charts @rh-felt/react-code-editor @rh-felt/react-core @@ -14,6 +13,7 @@ packages=( @rh-felt/react-table @rh-felt/react-templates @rh-felt/react-tokens + @rh-felt/styles ) packagesExtensions=( diff --git a/yarn.lock b/yarn.lock index 89ffbdc8774..1ae179d6e84 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5427,201 +5427,109 @@ __metadata: languageName: node linkType: hard -"@patternfly/patternfly@npm:6.7.0-prerelease.3": - version: 6.7.0-prerelease.3 - resolution: "@patternfly/patternfly@npm:6.7.0-prerelease.3" - checksum: 10c0/56213c8a15b9af985e95be3bb6d1babea1d101df6e9c03fd881aeccaade179cda520df5b8b5c367aa2390af42eeaa1f90a55c0cc4f4fc1a2f7acd34126912730 - languageName: node - linkType: hard - -"@patternfly/react-charts@npm:8.7.0-prerelease.4": - version: 8.7.0-prerelease.4 - resolution: "@patternfly/react-charts@npm:8.7.0-prerelease.4" - dependencies: - "@patternfly/react-styles": "npm:^6.7.0-prerelease.3" - "@patternfly/react-tokens": "npm:^6.7.0-prerelease.4" - hoist-non-react-statics: "npm:^3.3.2" - lodash: "npm:^4.17.23" - tslib: "npm:^2.8.1" - peerDependencies: - echarts: ^5.6.0 || ^6.0.0 - react: ^17 || ^18 || ^19 - react-dom: ^17 || ^18 || ^19 - victory-area: ^37.3.6 - victory-axis: ^37.3.6 - victory-bar: ^37.3.6 - victory-box-plot: ^37.3.6 - victory-chart: ^37.3.6 - victory-core: ^37.3.6 - victory-create-container: ^37.3.6 - victory-cursor-container: ^37.3.6 - victory-group: ^37.3.6 - victory-legend: ^37.3.6 - victory-line: ^37.3.6 - victory-pie: ^37.3.6 - victory-scatter: ^37.3.6 - victory-stack: ^37.3.6 - victory-tooltip: ^37.3.6 - victory-voronoi-container: ^37.3.6 - victory-zoom-container: ^37.3.6 - peerDependenciesMeta: - echarts: - optional: true - victory-area: - optional: true - victory-axis: - optional: true - victory-bar: - optional: true - victory-box-plot: - optional: true - victory-chart: - optional: true - victory-core: - optional: true - victory-create-container: - optional: true - victory-cursor-container: - optional: true - victory-group: - optional: true - victory-legend: - optional: true - victory-line: - optional: true - victory-pie: - optional: true - victory-scatter: - optional: true - victory-stack: - optional: true - victory-tooltip: - optional: true - victory-voronoi-container: - optional: true - victory-zoom-container: - optional: true - checksum: 10c0/6e7b07bec0777487a806c7dc35b7348b3a1b4db4fde04d7cb07f3d321fc9b58c133e7d88a6d190c71b360178d2f2e6f7aa4e61f32d44df8d2a4f3ecd1e043c1d +"@patternfly/patternfly@npm:@rh-felt/styles@0.0.1-prerelease.3, @rh-felt/styles@npm:0.0.1-prerelease.3": + version: 0.0.1-prerelease.3 + resolution: "@rh-felt/styles@npm:0.0.1-prerelease.3" + dependenciesMeta: + chromedriver: + built: true + nx: + built: true + puppeteer: + built: true + checksum: 10c0/4f3779eae7208bb283e22493acf8984d56cb695b3253e379388f71f0cdb9c926762c0f06f88881d6e21cf9c29ba7f959b20c22846846ed87a06f2d10434d7ecc languageName: node linkType: hard -"@patternfly/react-code-editor@npm:6.7.0-prerelease.6": - version: 6.7.0-prerelease.6 - resolution: "@patternfly/react-code-editor@npm:6.7.0-prerelease.6" +"@patternfly/react-code-editor@npm:@rh-felt/react-code-editor@0.0.1-prerelease.3, @rh-felt/react-code-editor@workspace:packages/react-code-editor": + version: 0.0.0-use.local + resolution: "@rh-felt/react-code-editor@workspace:packages/react-code-editor" dependencies: "@monaco-editor/react": "npm:^4.7.0" - "@patternfly/react-core": "npm:^6.7.0-prerelease.6" - "@patternfly/react-icons": "npm:^6.7.0-prerelease.3" - "@patternfly/react-styles": "npm:^6.7.0-prerelease.3" + "@rh-felt/react-core": "workspace:^" + "@rh-felt/react-icons": "workspace:^" + "@rh-felt/react-styles": "workspace:^" + monaco-editor: "npm:^0.56.0" react-dropzone: "npm:14.3.5" tslib: "npm:^2.8.1" peerDependencies: react: ^17 || ^18 || ^19 react-dom: ^17 || ^18 || ^19 - checksum: 10c0/fd21584d052cd3aa0a7fe5cc970ecdc2574642539a645ab9ada970683404f97aa93500725d4f31719e9b94ee053f77cad98e281b3dd114f7054cb880720b03e6 - languageName: node - linkType: hard + languageName: unknown + linkType: soft -"@patternfly/react-core@npm:6.7.0-prerelease.6, @patternfly/react-core@npm:^6.7.0-prerelease.6": - version: 6.7.0-prerelease.6 - resolution: "@patternfly/react-core@npm:6.7.0-prerelease.6" +"@patternfly/react-core@npm:@rh-felt/react-core@0.0.1-prerelease.3, @rh-felt/react-core@workspace:^, @rh-felt/react-core@workspace:packages/react-core": + version: 0.0.0-use.local + resolution: "@rh-felt/react-core@workspace:packages/react-core" dependencies: - "@patternfly/react-icons": "npm:^6.7.0-prerelease.3" - "@patternfly/react-styles": "npm:^6.7.0-prerelease.3" - "@patternfly/react-tokens": "npm:^6.7.0-prerelease.4" + "@adobe/css-tools": "npm:^4.5.0" + "@rh-felt/react-icons": "workspace:^" + "@rh-felt/react-styles": "workspace:^" + "@rh-felt/react-tokens": "workspace:^" + "@rh-felt/styles": "npm:0.0.1-prerelease.3" + case-anything: "npm:^3.1.2" focus-trap: "npm:7.6.6" + fs-extra: "npm:^11.3.3" react-dropzone: "npm:^14.3.5" tslib: "npm:^2.8.1" peerDependencies: react: ^17 || ^18 || ^19 react-dom: ^17 || ^18 || ^19 - checksum: 10c0/b070381ddc3c8e690c2e1abad9a2207e4e106b8829adc7787538ac439434e5de0765bf82f4e15de82576c320efdc9c9ed1dfa8f014a88e9ca72db1cc7c5c53b3 - languageName: node - linkType: hard - -"@patternfly/react-drag-drop@npm:6.7.0-prerelease.6": - version: 6.7.0-prerelease.6 - resolution: "@patternfly/react-drag-drop@npm:6.7.0-prerelease.6" - dependencies: - "@dnd-kit/core": "npm:^6.3.1" - "@dnd-kit/modifiers": "npm:^9.0.0" - "@dnd-kit/sortable": "npm:^10.0.0" - "@patternfly/react-core": "npm:^6.7.0-prerelease.6" - "@patternfly/react-icons": "npm:^6.7.0-prerelease.3" - "@patternfly/react-styles": "npm:^6.7.0-prerelease.3" - resize-observer-polyfill: "npm:^1.5.1" - peerDependencies: - react: ^17 || ^18 || ^19 - react-dom: ^17 || ^18 || ^19 - checksum: 10c0/bd6e3fb779eea5cb182773056fadca4d9c0a132e5c31e5eafee195db9e2470db2222949db50dbea88aa9607ca356c8798f48b0356b2f6cf34b3f2dee8d3bf996 - languageName: node - linkType: hard + languageName: unknown + linkType: soft -"@patternfly/react-icons@npm:6.7.0-prerelease.3, @patternfly/react-icons@npm:^6.7.0-prerelease.3": - version: 6.7.0-prerelease.3 - resolution: "@patternfly/react-icons@npm:6.7.0-prerelease.3" +"@patternfly/react-icons@npm:@rh-felt/react-icons@0.0.1-prerelease.2, @rh-felt/react-icons@workspace:^, @rh-felt/react-icons@workspace:packages/react-icons": + version: 0.0.0-use.local + resolution: "@rh-felt/react-icons@workspace:packages/react-icons" dependencies: + "@fortawesome/free-brands-svg-icons": "npm:^5.15.4" + "@fortawesome/free-regular-svg-icons": "npm:^5.15.4" + "@fortawesome/free-solid-svg-icons": "npm:^5.15.4" + "@rh-felt/styles": "npm:0.0.1-prerelease.3" + "@rhds/icons": "npm:^2.3.1" + fs-extra: "npm:^11.3.3" tslib: "npm:^2.8.1" peerDependencies: react: ^17 || ^18 || ^19 react-dom: ^17 || ^18 || ^19 - checksum: 10c0/2b72a54c5db52c7a515be1af55768103829e92ee9e926bb276be708cc923b0685eb0a77e58ad5713b72965102b54e48e7099efffaac0612dd69c058ae7e0267d - languageName: node - linkType: hard + languageName: unknown + linkType: soft -"@patternfly/react-styles@npm:6.7.0-prerelease.3, @patternfly/react-styles@npm:^6.7.0-prerelease.3": - version: 6.7.0-prerelease.3 - resolution: "@patternfly/react-styles@npm:6.7.0-prerelease.3" - checksum: 10c0/9962b7a29427b061cd6209a7bb7eabd56b42dd31f8939b5fd3ff5ede7859408cc993074a53e08ea1c0828d6de552a5dd520421b267a210c52f6efc56c5eb9abe - languageName: node - linkType: hard +"@patternfly/react-styles@npm:@rh-felt/react-styles@0.0.1-prerelease.3, @rh-felt/react-styles@workspace:^, @rh-felt/react-styles@workspace:packages/react-styles": + version: 0.0.0-use.local + resolution: "@rh-felt/react-styles@workspace:packages/react-styles" + dependencies: + "@rh-felt/styles": "npm:0.0.1-prerelease.3" + change-case: "npm:^5.4.4" + fs-extra: "npm:^11.3.3" + languageName: unknown + linkType: soft -"@patternfly/react-table@npm:6.7.0-prerelease.7": - version: 6.7.0-prerelease.7 - resolution: "@patternfly/react-table@npm:6.7.0-prerelease.7" +"@patternfly/react-table@npm:@rh-felt/react-table@0.0.1-prerelease.3, @rh-felt/react-table@workspace:packages/react-table": + version: 0.0.0-use.local + resolution: "@rh-felt/react-table@workspace:packages/react-table" dependencies: - "@patternfly/react-core": "npm:^6.7.0-prerelease.6" - "@patternfly/react-icons": "npm:^6.7.0-prerelease.3" - "@patternfly/react-styles": "npm:^6.7.0-prerelease.3" - "@patternfly/react-tokens": "npm:^6.7.0-prerelease.4" + "@rh-felt/react-core": "workspace:^" + "@rh-felt/react-icons": "workspace:^" + "@rh-felt/react-styles": "workspace:^" + "@rh-felt/react-tokens": "workspace:^" lodash: "npm:^4.18.1" tslib: "npm:^2.8.1" peerDependencies: react: ^17 || ^18 || ^19 react-dom: ^17 || ^18 || ^19 - checksum: 10c0/240d8b0a994fbde725573bed5361f9e4796300547e3b1a4f2e61fbcfd752f8aafc40438148b5d78dd05a4653251c784671476c2111584107743c2afe92f43f56 - languageName: node - linkType: hard + languageName: unknown + linkType: soft -"@patternfly/react-templates@npm:6.7.0-prerelease.6": - version: 6.7.0-prerelease.6 - resolution: "@patternfly/react-templates@npm:6.7.0-prerelease.6" +"@patternfly/react-tokens@npm:@rh-felt/react-tokens@0.0.1-prerelease.2, @rh-felt/react-tokens@workspace:^, @rh-felt/react-tokens@workspace:packages/react-tokens": + version: 0.0.0-use.local + resolution: "@rh-felt/react-tokens@workspace:packages/react-tokens" dependencies: - "@patternfly/react-core": "npm:^6.7.0-prerelease.6" - "@patternfly/react-icons": "npm:^6.7.0-prerelease.3" - "@patternfly/react-styles": "npm:^6.7.0-prerelease.3" - "@patternfly/react-tokens": "npm:^6.7.0-prerelease.4" - tslib: "npm:^2.8.1" - peerDependencies: - react: ^17 || ^18 || ^19 - react-dom: ^17 || ^18 || ^19 - checksum: 10c0/a67c3166b3b6d48aa178d1ee2d1145a23403f144dcea0e5a2cb6dd51a6051ea70a72146b547b4b613ab8c28b854fd8ae2253cda276fbfec20dc3a51a1af798fa - languageName: node - linkType: hard - -"@patternfly/react-tokens@npm:6.7.0-prerelease.3": - version: 6.7.0-prerelease.3 - resolution: "@patternfly/react-tokens@npm:6.7.0-prerelease.3" - checksum: 10c0/9b6b2f7c738cc6695eca373f7173748217d64a0f7fa4f01c8e7a1a8e7920aeabb0a5281e47e089783a001af23b89137581bc5e8322f579d234079dacea22cd8a - languageName: node - linkType: hard - -"@patternfly/react-tokens@npm:^6.7.0-prerelease.4": - version: 6.7.0-prerelease.4 - resolution: "@patternfly/react-tokens@npm:6.7.0-prerelease.4" - checksum: 10c0/ddaa7cf8f9bc13b7983a0cc6db70448d5df3ef9f8dff30fbf89cc09d6436e45f092d0712ec51ee823668668847f4cf0cee8e0e6ab13b7e70f0d057211efce066 - languageName: node - linkType: hard + "@adobe/css-tools": "npm:^4.5.0" + "@rh-felt/styles": "npm:0.0.1-prerelease.3" + fs-extra: "npm:^11.3.3" + languageName: unknown + linkType: soft "@peculiar/asn1-cms@npm:^2.6.0, @peculiar/asn1-cms@npm:^2.6.1": version: 2.6.1 @@ -5917,59 +5825,20 @@ __metadata: languageName: unknown linkType: soft -"@rh-felt/react-code-editor@workspace:packages/react-code-editor": - version: 0.0.0-use.local - resolution: "@rh-felt/react-code-editor@workspace:packages/react-code-editor" - dependencies: - "@monaco-editor/react": "npm:^4.7.0" - "@rh-felt/react-core": "workspace:^" - "@rh-felt/react-icons": "workspace:^" - "@rh-felt/react-styles": "workspace:^" - monaco-editor: "npm:^0.56.0" - react-dropzone: "npm:14.3.5" - tslib: "npm:^2.8.1" - peerDependencies: - react: ^17 || ^18 || ^19 - react-dom: ^17 || ^18 || ^19 - languageName: unknown - linkType: soft - -"@rh-felt/react-core@workspace:^, @rh-felt/react-core@workspace:packages/react-core": - version: 0.0.0-use.local - resolution: "@rh-felt/react-core@workspace:packages/react-core" - dependencies: - "@adobe/css-tools": "npm:^4.5.0" - "@patternfly/patternfly": "npm:6.7.0-prerelease.3" - "@rh-felt/react-icons": "workspace:^" - "@rh-felt/react-styles": "workspace:^" - "@rh-felt/react-tokens": "workspace:^" - case-anything: "npm:^3.1.2" - focus-trap: "npm:7.6.6" - fs-extra: "npm:^11.3.3" - react-dropzone: "npm:^14.3.5" - tslib: "npm:^2.8.1" - peerDependencies: - react: ^17 || ^18 || ^19 - react-dom: ^17 || ^18 || ^19 - languageName: unknown - linkType: soft - "@rh-felt/react-docs@workspace:packages/react-docs": version: 0.0.0-use.local resolution: "@rh-felt/react-docs@workspace:packages/react-docs" dependencies: "@patternfly/documentation-framework": "npm:^6.40.0" - "@patternfly/patternfly": "npm:6.7.0-prerelease.3" + "@patternfly/patternfly": "npm:@rh-felt/styles@0.0.1-prerelease.3" "@patternfly/patternfly-a11y": "npm:5.2.1" - "@patternfly/react-charts": "npm:8.7.0-prerelease.4" - "@patternfly/react-code-editor": "npm:6.7.0-prerelease.6" - "@patternfly/react-core": "npm:6.7.0-prerelease.6" - "@patternfly/react-drag-drop": "npm:6.7.0-prerelease.6" - "@patternfly/react-icons": "npm:6.7.0-prerelease.3" - "@patternfly/react-styles": "npm:6.7.0-prerelease.3" - "@patternfly/react-table": "npm:6.7.0-prerelease.7" - "@patternfly/react-templates": "npm:6.7.0-prerelease.6" - "@patternfly/react-tokens": "npm:6.7.0-prerelease.3" + "@patternfly/react-code-editor": "npm:@rh-felt/react-code-editor@0.0.1-prerelease.3" + "@patternfly/react-core": "npm:@rh-felt/react-core@0.0.1-prerelease.3" + "@patternfly/react-icons": "npm:@rh-felt/react-icons@0.0.1-prerelease.2" + "@patternfly/react-styles": "npm:@rh-felt/react-styles@0.0.1-prerelease.3" + "@patternfly/react-table": "npm:@rh-felt/react-table@0.0.1-prerelease.3" + "@patternfly/react-tokens": "npm:@rh-felt/react-tokens@0.0.1-prerelease.2" + "@rh-felt/styles": "npm:0.0.1-prerelease.3" echarts: "npm:^5.6.0 || ^6.0.0" victory: "npm:^37.3.6" languageName: unknown @@ -5992,23 +5861,6 @@ __metadata: languageName: unknown linkType: soft -"@rh-felt/react-icons@workspace:^, @rh-felt/react-icons@workspace:packages/react-icons": - version: 0.0.0-use.local - resolution: "@rh-felt/react-icons@workspace:packages/react-icons" - dependencies: - "@fortawesome/free-brands-svg-icons": "npm:^5.15.4" - "@fortawesome/free-regular-svg-icons": "npm:^5.15.4" - "@fortawesome/free-solid-svg-icons": "npm:^5.15.4" - "@patternfly/patternfly": "npm:6.7.0-prerelease.3" - "@rhds/icons": "npm:^2.3.1" - fs-extra: "npm:^11.3.3" - tslib: "npm:^2.8.1" - peerDependencies: - react: ^17 || ^18 || ^19 - react-dom: ^17 || ^18 || ^19 - languageName: unknown - linkType: soft - "@rh-felt/react-integration@workspace:packages/react-integration": version: 0.0.0-use.local resolution: "@rh-felt/react-integration@workspace:packages/react-integration" @@ -6089,32 +5941,6 @@ __metadata: languageName: unknown linkType: soft -"@rh-felt/react-styles@workspace:^, @rh-felt/react-styles@workspace:packages/react-styles": - version: 0.0.0-use.local - resolution: "@rh-felt/react-styles@workspace:packages/react-styles" - dependencies: - "@patternfly/patternfly": "npm:6.7.0-prerelease.3" - change-case: "npm:^5.4.4" - fs-extra: "npm:^11.3.3" - languageName: unknown - linkType: soft - -"@rh-felt/react-table@workspace:packages/react-table": - version: 0.0.0-use.local - resolution: "@rh-felt/react-table@workspace:packages/react-table" - dependencies: - "@rh-felt/react-core": "workspace:^" - "@rh-felt/react-icons": "workspace:^" - "@rh-felt/react-styles": "workspace:^" - "@rh-felt/react-tokens": "workspace:^" - lodash: "npm:^4.18.1" - tslib: "npm:^2.8.1" - peerDependencies: - react: ^17 || ^18 || ^19 - react-dom: ^17 || ^18 || ^19 - languageName: unknown - linkType: soft - "@rh-felt/react-templates@workspace:packages/react-templates": version: 0.0.0-use.local resolution: "@rh-felt/react-templates@workspace:packages/react-templates" @@ -6130,16 +5956,6 @@ __metadata: languageName: unknown linkType: soft -"@rh-felt/react-tokens@workspace:^, @rh-felt/react-tokens@workspace:packages/react-tokens": - version: 0.0.0-use.local - resolution: "@rh-felt/react-tokens@workspace:packages/react-tokens" - dependencies: - "@adobe/css-tools": "npm:^4.5.0" - "@patternfly/patternfly": "npm:6.7.0-prerelease.3" - fs-extra: "npm:^11.3.3" - languageName: unknown - linkType: soft - "@rhds/icons@npm:^2.3.1": version: 2.3.1 resolution: "@rhds/icons@npm:2.3.1" @@ -11371,6 +11187,7 @@ __metadata: resolution: "demo-app-ts@workspace:packages/react-integration/demo-app-ts" dependencies: "@rh-felt/react-core": "workspace:^" + "@rh-felt/styles": "npm:0.0.1-prerelease.3" "@vitejs/plugin-react-swc": "npm:^3.11.0" react: "npm:^18.3.1" react-dom: "npm:^18.3.1" From cedfd32b983b348fe2ade1182ec34dc1d9ed0874 Mon Sep 17 00:00:00 2001 From: Gabi Podolnikova Date: Fri, 30 Oct 2026 14:59:41 +0100 Subject: [PATCH 2/3] fix(deps): update react-router to ^7.18.4 in demo app demo-app-ts' manifest change makes Snyk re-test that project, and the pinned react-router 7.13.0 carries 11 direct Snyk advisories (1 critical, 5 high; highest fix floor 7.18.2), failing the security/snyk check. 7.18.4 clears all of them. 7.18.5 is the latest 7.x but is quarantined by the one-week npmMinimalAgeGate on felt-v1 (published Oct 27), so the range uses ^7.18.4 (published Sep 15). Mirrors the react-router bump in #12697 (FELT-190). --- .../demo-app-ts/package.json | 4 ++-- yarn.lock | 22 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/react-integration/demo-app-ts/package.json b/packages/react-integration/demo-app-ts/package.json index 9bee5e4f99b..d9481c92149 100644 --- a/packages/react-integration/demo-app-ts/package.json +++ b/packages/react-integration/demo-app-ts/package.json @@ -12,8 +12,8 @@ "@rh-felt/styles": "0.0.1-prerelease.3", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router": "^7.12.0", - "react-router-dom": "^7.12.0" + "react-router": "^7.18.4", + "react-router-dom": "^7.18.4" }, "devDependencies": { "@vitejs/plugin-react-swc": "^3.11.0", diff --git a/yarn.lock b/yarn.lock index 1ae179d6e84..66dc26cf480 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11191,8 +11191,8 @@ __metadata: "@vitejs/plugin-react-swc": "npm:^3.11.0" react: "npm:^18.3.1" react-dom: "npm:^18.3.1" - react-router: "npm:^7.12.0" - react-router-dom: "npm:^7.12.0" + react-router: "npm:^7.18.4" + react-router-dom: "npm:^7.18.4" vite: "npm:^6.2.2" languageName: unknown linkType: soft @@ -20614,21 +20614,21 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^7.12.0": - version: 7.13.0 - resolution: "react-router-dom@npm:7.13.0" +"react-router-dom@npm:^7.18.4": + version: 7.18.4 + resolution: "react-router-dom@npm:7.18.4" dependencies: - react-router: "npm:7.13.0" + react-router: "npm:7.18.4" peerDependencies: react: ">=18" react-dom: ">=18" - checksum: 10c0/759bd5e7fe7b5baba50a0264724188707682d217cad8eac702a55e0b1abebf295be014dd3bfaff8e3c2def9dfaa23e6ded3f908feab84df766e9b82cc3774e98 + checksum: 10c0/b337acffb669fd977423e3ef2a0551a5d68c2447c718942b232cae367fd599723525e412b4ad0d08607189f962571dfc7ef0373d47fcf0ae301a860510e5e1f1 languageName: node linkType: hard -"react-router@npm:7.13.0, react-router@npm:^7.12.0": - version: 7.13.0 - resolution: "react-router@npm:7.13.0" +"react-router@npm:7.18.4, react-router@npm:^7.18.4": + version: 7.18.4 + resolution: "react-router@npm:7.18.4" dependencies: cookie: "npm:^1.0.1" set-cookie-parser: "npm:^2.6.0" @@ -20638,7 +20638,7 @@ __metadata: peerDependenciesMeta: react-dom: optional: true - checksum: 10c0/397cb009bc83d071269c8f9323bbfe1f856721fde75e39b29fe0ddfe7564ebdc3b8bbb85768321cae92ec28b406e8fac7eab7e232d0738b3b1c092e2764e4307 + checksum: 10c0/352d103f9d738c7bf56cbb135c0d3d44e6325d15e360f58b6e844c1f5f8cbcd4ccb2de347f14e53984683fc237505a045633e9cb92c5457a1162dae054e08a32 languageName: node linkType: hard From 06575fbcd2a0fe2685d2f6c051ecab2cc1611757 Mon Sep 17 00:00:00 2001 From: Gabi Podolnikova Date: Fri, 30 Oct 2026 15:35:13 +0100 Subject: [PATCH 3/3] chore(deps): update lodash and fix demo app issues from #12697 Mirrors the FELT-190 changes from #12697 so this branch carries the same Snyk remediations: - react-charts: lodash ^4.17.23 -> ^4.18.1, dropping the last 4.17.23 resolution and clearing the high-severity lodash advisories - demo app: use the pf-v6-theme-dark class, give the theme toggle radios a shared name, rename the deprecated modal demo entry, add hasNoPadding to the clipboard copy action button, give the resizable drawer demo a fixed height, check drilldown menu heights against undefined, and remove hardcoded dark inline styles from the nav demos --- packages/react-charts/package.json | 2 +- packages/react-integration/demo-app-ts/src/App.tsx | 8 ++++---- packages/react-integration/demo-app-ts/src/Demos.ts | 2 +- .../src/components/demos/ChipDemo/ChipDemo.tsx | 1 - .../demos/ClipboardCopyDemo/ClipboardCopyDemo.tsx | 2 +- .../components/demos/DrawerDemo/DrawerResizeDemo.tsx | 2 +- .../components/demos/MenuDemo/MenuDrilldownDemo.tsx | 2 +- .../src/components/demos/NavDemo/NavDemo.tsx | 11 ++++------- yarn.lock | 9 +-------- 9 files changed, 14 insertions(+), 25 deletions(-) diff --git a/packages/react-charts/package.json b/packages/react-charts/package.json index ce4dddd9fec..c8368fbf4ed 100644 --- a/packages/react-charts/package.json +++ b/packages/react-charts/package.json @@ -43,7 +43,7 @@ "@rh-felt/react-styles": "workspace:^", "@rh-felt/react-tokens": "workspace:^", "hoist-non-react-statics": "^3.3.2", - "lodash": "^4.17.23", + "lodash": "^4.18.1", "tslib": "^2.8.1" }, "devDependencies": { diff --git a/packages/react-integration/demo-app-ts/src/App.tsx b/packages/react-integration/demo-app-ts/src/App.tsx index fd843607f9e..790e999901b 100755 --- a/packages/react-integration/demo-app-ts/src/App.tsx +++ b/packages/react-integration/demo-app-ts/src/App.tsx @@ -52,9 +52,9 @@ class App extends Component<{}, AppState> { const htmlElement = document.getElementsByTagName('html')[0]; if (htmlElement) { if (isDarkTheme) { - htmlElement.classList.add('pf-theme-dark'); + htmlElement.classList.add('pf-v6-theme-dark'); } else { - htmlElement.classList.remove('pf-theme-dark'); + htmlElement.classList.remove('pf-v6-theme-dark'); } } }; @@ -99,7 +99,7 @@ class App extends Component<{}, AppState> { id="light-theme" aria-label="Light theme" label={`Light theme`} - name="light-theme" + name="theme" isChecked={!isDarkTheme} onChange={(_event: React.FormEvent, checked: boolean) => checked && this.onThemeSelect(false) @@ -111,7 +111,7 @@ class App extends Component<{}, AppState> { id="dark-theme" label="Dark theme" aria-label="Dark theme" - name="dark-theme" + name="theme" isChecked={isDarkTheme} onChange={(_event: React.FormEvent, checked: boolean) => checked && this.onThemeSelect(true) diff --git a/packages/react-integration/demo-app-ts/src/Demos.ts b/packages/react-integration/demo-app-ts/src/Demos.ts index 61a7c733ac4..b7c96571ce6 100644 --- a/packages/react-integration/demo-app-ts/src/Demos.ts +++ b/packages/react-integration/demo-app-ts/src/Demos.ts @@ -249,7 +249,7 @@ export const Demos: DemoInterface[] = [ }, { id: 'modal-deprecated-demo', - name: 'Modal Demo', + name: 'Modal Deprecated Demo', componentType: Examples.ModalDeprecatedDemo }, { diff --git a/packages/react-integration/demo-app-ts/src/components/demos/ChipDemo/ChipDemo.tsx b/packages/react-integration/demo-app-ts/src/components/demos/ChipDemo/ChipDemo.tsx index 85c51e79838..49fef3644a7 100644 --- a/packages/react-integration/demo-app-ts/src/components/demos/ChipDemo/ChipDemo.tsx +++ b/packages/react-integration/demo-app-ts/src/components/demos/ChipDemo/ChipDemo.tsx @@ -5,7 +5,6 @@ export const ChipDemo: React.FunctionComponent = () => ( Chip with a really, really, REALLY long text - ; ); ChipDemo.displayName = 'ChipDemo'; diff --git a/packages/react-integration/demo-app-ts/src/components/demos/ClipboardCopyDemo/ClipboardCopyDemo.tsx b/packages/react-integration/demo-app-ts/src/components/demos/ClipboardCopyDemo/ClipboardCopyDemo.tsx index b74f8c9362d..1646c4681a9 100644 --- a/packages/react-integration/demo-app-ts/src/components/demos/ClipboardCopyDemo/ClipboardCopyDemo.tsx +++ b/packages/react-integration/demo-app-ts/src/components/demos/ClipboardCopyDemo/ClipboardCopyDemo.tsx @@ -21,7 +21,7 @@ export class ClipboardCopyDemo extends Component { isBlock additionalActions={ - - + drawer-section {drawerContent} diff --git a/packages/react-integration/demo-app-ts/src/components/demos/MenuDemo/MenuDrilldownDemo.tsx b/packages/react-integration/demo-app-ts/src/components/demos/MenuDemo/MenuDrilldownDemo.tsx index f96464d9e6a..c6f37e49adf 100644 --- a/packages/react-integration/demo-app-ts/src/components/demos/MenuDemo/MenuDrilldownDemo.tsx +++ b/packages/react-integration/demo-app-ts/src/components/demos/MenuDemo/MenuDrilldownDemo.tsx @@ -48,7 +48,7 @@ export class MenuDrilldownDemo extends Component { }; setHeight = (menuId: string, height: number) => { if ( - !this.state.menuHeights[menuId] || + this.state.menuHeights[menuId] === undefined || (menuId !== 'drilldown-rootMenu' && this.state.menuHeights[menuId] !== height) ) { this.setState({ diff --git a/packages/react-integration/demo-app-ts/src/components/demos/NavDemo/NavDemo.tsx b/packages/react-integration/demo-app-ts/src/components/demos/NavDemo/NavDemo.tsx index e9ac20c820c..e187905ed66 100644 --- a/packages/react-integration/demo-app-ts/src/components/demos/NavDemo/NavDemo.tsx +++ b/packages/react-integration/demo-app-ts/src/components/demos/NavDemo/NavDemo.tsx @@ -65,7 +65,7 @@ export class NavDemo extends Component { Default Nav -
+