@porsche-design-system/components-react 4.2.0-rc.2 → 4.2.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/package.json +2 -2
- package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +17 -6
- package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +1 -1
- package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +17 -6
- package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
|
|
|
14
14
|
|
|
15
15
|
## [Unreleased]
|
|
16
16
|
|
|
17
|
+
## [4.2.0-rc.3] - 2026-06-09
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- `Flyout`, `Modal`, `Sheet`: content no longer disappears in Chromium when many elements with a frosted
|
|
22
|
+
`backdrop-filter` (e.g. `p-tag`) are rendered
|
|
23
|
+
([#4490](https://github.com/porsche-design-system/porsche-design-system/pull/4490))
|
|
24
|
+
|
|
17
25
|
## [4.2.0-rc.2] - 2026-06-04
|
|
18
26
|
|
|
19
27
|
### Added
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@porsche-design-system/components-react",
|
|
3
|
-
"version": "4.2.0-rc.
|
|
3
|
+
"version": "4.2.0-rc.3",
|
|
4
4
|
"description": "Porsche Design System is a component library designed to help developers create the best experience for software or services distributed by Dr. Ing. h.c. F. Porsche AG.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"porsche",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"url": "https://github.com/porsche-design-system/porsche-design-system"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@porsche-design-system/components-js": "4.2.0-rc.
|
|
24
|
+
"@porsche-design-system/components-js": "4.2.0-rc.3"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"ag-grid-community": ">= 35.0.0 <36.0.0",
|
|
@@ -4132,7 +4132,7 @@ const OPTION_LIST_SAFE_ZONE = 6;
|
|
|
4132
4132
|
|
|
4133
4133
|
const getCDNBaseURL = () => global.PORSCHE_DESIGN_SYSTEM_CDN_URL + "/porsche-design-system";
|
|
4134
4134
|
|
|
4135
|
-
const prefix = `[Porsche Design System v${"4.2.0-rc.
|
|
4135
|
+
const prefix = `[Porsche Design System v${"4.2.0-rc.3"}]` // this part isn't covered by unit tests
|
|
4136
4136
|
;
|
|
4137
4137
|
const consoleError = (...messages) => {
|
|
4138
4138
|
console.error(prefix, ...messages);
|
|
@@ -6139,7 +6139,7 @@ const dialogBorderRadius = ref(radius3Xl);
|
|
|
6139
6139
|
const dialogPaddingTop = ref(spacingFluidMd$1);
|
|
6140
6140
|
const dialogPaddingBottom = `calc(${dialogBorderRadius} + ${ref(spacingFluidMd$1)})`;
|
|
6141
6141
|
const dialogPaddingInline = ref(spacingFluidLg);
|
|
6142
|
-
const dialogGridJssStyle = () => {
|
|
6142
|
+
const dialogGridJssStyle = (clipPath = 'none') => {
|
|
6143
6143
|
return {
|
|
6144
6144
|
position: 'relative',
|
|
6145
6145
|
display: 'grid',
|
|
@@ -6148,7 +6148,8 @@ const dialogGridJssStyle = () => {
|
|
|
6148
6148
|
paddingTop: dialogPaddingTop,
|
|
6149
6149
|
paddingBottom: dialogPaddingBottom,
|
|
6150
6150
|
alignContent: 'flex-start',
|
|
6151
|
-
overflow: 'clip
|
|
6151
|
+
// `overflow: clip` can't be used due to a Chromium bug that drops descendant backdrop-filter tiles (e.g. frosted p-tag); `clip-path` clips slotted content to the rounded corners without the faulty paint-containment box while keeping the scroll behavior intact
|
|
6152
|
+
clipPath,
|
|
6152
6153
|
};
|
|
6153
6154
|
};
|
|
6154
6155
|
const getDialogColorJssStyle = () => {
|
|
@@ -7334,11 +7335,20 @@ const getComponentCss$V = (isOpen, background, backdrop, position, hasHeader, ha
|
|
|
7334
7335
|
},
|
|
7335
7336
|
},
|
|
7336
7337
|
flyout: {
|
|
7337
|
-
...dialogGridJssStyle(
|
|
7338
|
+
...dialogGridJssStyle(isPositionStart
|
|
7339
|
+
? `inset(0 round 0 ${dialogBorderRadius} ${dialogBorderRadius} 0)` // position 'start': round inline-end (right in LTR) corners only
|
|
7340
|
+
: `inset(0 round ${dialogBorderRadius} 0 0 ${dialogBorderRadius})` // position 'end': round inline-start (left in LTR) corners only
|
|
7341
|
+
),
|
|
7338
7342
|
...getDialogColorJssStyle(),
|
|
7339
7343
|
width: ref(cssVariableWidth$2, 'auto'),
|
|
7340
7344
|
minWidth: '320px',
|
|
7341
7345
|
maxWidth: '100vw',
|
|
7346
|
+
// `clip-path` uses physical corners, so mirror for RTL to keep parity with the logical border*Radius below
|
|
7347
|
+
'&:dir(rtl)': {
|
|
7348
|
+
clipPath: isPositionStart
|
|
7349
|
+
? `inset(0 round ${dialogBorderRadius} 0 0 ${dialogBorderRadius})`
|
|
7350
|
+
: `inset(0 round 0 ${dialogBorderRadius} ${dialogBorderRadius} 0)`,
|
|
7351
|
+
},
|
|
7342
7352
|
...(isPositionStart
|
|
7343
7353
|
? {
|
|
7344
7354
|
borderStartEndRadius: dialogBorderRadius,
|
|
@@ -8147,7 +8157,7 @@ const getComponentCss$C = (isOpen, background, backdrop, fullscreen, hasDismissB
|
|
|
8147
8157
|
},
|
|
8148
8158
|
scroller: getScrollerJssStyle('fullscreen'),
|
|
8149
8159
|
modal: {
|
|
8150
|
-
...dialogGridJssStyle(),
|
|
8160
|
+
...dialogGridJssStyle(`inset(0 round ${dialogBorderRadius})`),
|
|
8151
8161
|
...getDialogColorJssStyle(),
|
|
8152
8162
|
...getDialogTransitionJssStyle(isOpen, '^'),
|
|
8153
8163
|
...buildResponsiveStyles(fullscreen, (fullscreenValue) => fullscreenValue
|
|
@@ -8158,6 +8168,7 @@ const getComponentCss$C = (isOpen, background, backdrop, fullscreen, hasDismissB
|
|
|
8158
8168
|
placeSelf: 'stretch',
|
|
8159
8169
|
margin: 0,
|
|
8160
8170
|
borderRadius: 0,
|
|
8171
|
+
clipPath: 'none', // fullscreen has square corners, so disable corner clipping
|
|
8161
8172
|
}
|
|
8162
8173
|
: {
|
|
8163
8174
|
width: ref(cssVariableWidth$1, 'auto'),
|
|
@@ -9218,7 +9229,7 @@ const getComponentCss$n = (isOpen, background, hasDismissButton) => {
|
|
|
9218
9229
|
},
|
|
9219
9230
|
scroller: getScrollerJssStyle('fullscreen'),
|
|
9220
9231
|
sheet: {
|
|
9221
|
-
...dialogGridJssStyle(),
|
|
9232
|
+
...dialogGridJssStyle(`inset(0 round ${dialogBorderRadius} ${dialogBorderRadius} 0 0)`), // round top corners only
|
|
9222
9233
|
...getDialogColorJssStyle(),
|
|
9223
9234
|
...getDialogTransitionJssStyle(isOpen, '^'),
|
|
9224
9235
|
width: '100%',
|
|
@@ -3465,7 +3465,7 @@ const hasShowPickerSupport = () => (hasDocument &&
|
|
|
3465
3465
|
'showPicker' in HTMLInputElement.prototype &&
|
|
3466
3466
|
CSS.supports('selector(::-webkit-calendar-picker-indicator)'));
|
|
3467
3467
|
|
|
3468
|
-
const prefix = `[Porsche Design System v${"4.2.0-rc.
|
|
3468
|
+
const prefix = `[Porsche Design System v${"4.2.0-rc.3"}]` // this part isn't covered by unit tests
|
|
3469
3469
|
;
|
|
3470
3470
|
const consoleError$1 = (...messages) => {
|
|
3471
3471
|
console.error(prefix, ...messages);
|
|
@@ -4130,7 +4130,7 @@ const OPTION_LIST_SAFE_ZONE = 6;
|
|
|
4130
4130
|
|
|
4131
4131
|
const getCDNBaseURL = () => global.PORSCHE_DESIGN_SYSTEM_CDN_URL + "/porsche-design-system";
|
|
4132
4132
|
|
|
4133
|
-
const prefix = `[Porsche Design System v${"4.2.0-rc.
|
|
4133
|
+
const prefix = `[Porsche Design System v${"4.2.0-rc.3"}]` // this part isn't covered by unit tests
|
|
4134
4134
|
;
|
|
4135
4135
|
const consoleError = (...messages) => {
|
|
4136
4136
|
console.error(prefix, ...messages);
|
|
@@ -6137,7 +6137,7 @@ const dialogBorderRadius = ref(radius3Xl);
|
|
|
6137
6137
|
const dialogPaddingTop = ref(spacingFluidMd$1);
|
|
6138
6138
|
const dialogPaddingBottom = `calc(${dialogBorderRadius} + ${ref(spacingFluidMd$1)})`;
|
|
6139
6139
|
const dialogPaddingInline = ref(spacingFluidLg);
|
|
6140
|
-
const dialogGridJssStyle = () => {
|
|
6140
|
+
const dialogGridJssStyle = (clipPath = 'none') => {
|
|
6141
6141
|
return {
|
|
6142
6142
|
position: 'relative',
|
|
6143
6143
|
display: 'grid',
|
|
@@ -6146,7 +6146,8 @@ const dialogGridJssStyle = () => {
|
|
|
6146
6146
|
paddingTop: dialogPaddingTop,
|
|
6147
6147
|
paddingBottom: dialogPaddingBottom,
|
|
6148
6148
|
alignContent: 'flex-start',
|
|
6149
|
-
overflow: 'clip
|
|
6149
|
+
// `overflow: clip` can't be used due to a Chromium bug that drops descendant backdrop-filter tiles (e.g. frosted p-tag); `clip-path` clips slotted content to the rounded corners without the faulty paint-containment box while keeping the scroll behavior intact
|
|
6150
|
+
clipPath,
|
|
6150
6151
|
};
|
|
6151
6152
|
};
|
|
6152
6153
|
const getDialogColorJssStyle = () => {
|
|
@@ -7332,11 +7333,20 @@ const getComponentCss$V = (isOpen, background, backdrop, position, hasHeader, ha
|
|
|
7332
7333
|
},
|
|
7333
7334
|
},
|
|
7334
7335
|
flyout: {
|
|
7335
|
-
...dialogGridJssStyle(
|
|
7336
|
+
...dialogGridJssStyle(isPositionStart
|
|
7337
|
+
? `inset(0 round 0 ${dialogBorderRadius} ${dialogBorderRadius} 0)` // position 'start': round inline-end (right in LTR) corners only
|
|
7338
|
+
: `inset(0 round ${dialogBorderRadius} 0 0 ${dialogBorderRadius})` // position 'end': round inline-start (left in LTR) corners only
|
|
7339
|
+
),
|
|
7336
7340
|
...getDialogColorJssStyle(),
|
|
7337
7341
|
width: ref(cssVariableWidth$2, 'auto'),
|
|
7338
7342
|
minWidth: '320px',
|
|
7339
7343
|
maxWidth: '100vw',
|
|
7344
|
+
// `clip-path` uses physical corners, so mirror for RTL to keep parity with the logical border*Radius below
|
|
7345
|
+
'&:dir(rtl)': {
|
|
7346
|
+
clipPath: isPositionStart
|
|
7347
|
+
? `inset(0 round ${dialogBorderRadius} 0 0 ${dialogBorderRadius})`
|
|
7348
|
+
: `inset(0 round 0 ${dialogBorderRadius} ${dialogBorderRadius} 0)`,
|
|
7349
|
+
},
|
|
7340
7350
|
...(isPositionStart
|
|
7341
7351
|
? {
|
|
7342
7352
|
borderStartEndRadius: dialogBorderRadius,
|
|
@@ -8145,7 +8155,7 @@ const getComponentCss$C = (isOpen, background, backdrop, fullscreen, hasDismissB
|
|
|
8145
8155
|
},
|
|
8146
8156
|
scroller: getScrollerJssStyle('fullscreen'),
|
|
8147
8157
|
modal: {
|
|
8148
|
-
...dialogGridJssStyle(),
|
|
8158
|
+
...dialogGridJssStyle(`inset(0 round ${dialogBorderRadius})`),
|
|
8149
8159
|
...getDialogColorJssStyle(),
|
|
8150
8160
|
...getDialogTransitionJssStyle(isOpen, '^'),
|
|
8151
8161
|
...buildResponsiveStyles(fullscreen, (fullscreenValue) => fullscreenValue
|
|
@@ -8156,6 +8166,7 @@ const getComponentCss$C = (isOpen, background, backdrop, fullscreen, hasDismissB
|
|
|
8156
8166
|
placeSelf: 'stretch',
|
|
8157
8167
|
margin: 0,
|
|
8158
8168
|
borderRadius: 0,
|
|
8169
|
+
clipPath: 'none', // fullscreen has square corners, so disable corner clipping
|
|
8159
8170
|
}
|
|
8160
8171
|
: {
|
|
8161
8172
|
width: ref(cssVariableWidth$1, 'auto'),
|
|
@@ -9216,7 +9227,7 @@ const getComponentCss$n = (isOpen, background, hasDismissButton) => {
|
|
|
9216
9227
|
},
|
|
9217
9228
|
scroller: getScrollerJssStyle('fullscreen'),
|
|
9218
9229
|
sheet: {
|
|
9219
|
-
...dialogGridJssStyle(),
|
|
9230
|
+
...dialogGridJssStyle(`inset(0 round ${dialogBorderRadius} ${dialogBorderRadius} 0 0)`), // round top corners only
|
|
9220
9231
|
...getDialogColorJssStyle(),
|
|
9221
9232
|
...getDialogTransitionJssStyle(isOpen, '^'),
|
|
9222
9233
|
width: '100%',
|
|
@@ -3463,7 +3463,7 @@ const hasShowPickerSupport = () => (hasDocument &&
|
|
|
3463
3463
|
'showPicker' in HTMLInputElement.prototype &&
|
|
3464
3464
|
CSS.supports('selector(::-webkit-calendar-picker-indicator)'));
|
|
3465
3465
|
|
|
3466
|
-
const prefix = `[Porsche Design System v${"4.2.0-rc.
|
|
3466
|
+
const prefix = `[Porsche Design System v${"4.2.0-rc.3"}]` // this part isn't covered by unit tests
|
|
3467
3467
|
;
|
|
3468
3468
|
const consoleError$1 = (...messages) => {
|
|
3469
3469
|
console.error(prefix, ...messages);
|