@porsche-design-system/components-react 3.32.0 → 3.32.1-rc.0
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 +12 -3
- package/package.json +2 -2
- package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +19 -2
- package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +1 -1
- package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +19 -2
- package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
|
|
|
14
14
|
|
|
15
15
|
## [Unreleased]
|
|
16
16
|
|
|
17
|
+
## [3.32.1-rc.0] - 2026-02-20
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- `Input Email`, `Input Password`, `Input Tel`, `Pin Code`: optimize input direction and behavior in RTL mode
|
|
22
|
+
([#4209](https://github.com/porsche-design-system/porsche-design-system/pull/4209))
|
|
23
|
+
|
|
17
24
|
## [3.32.0] - 2026-02-04
|
|
18
25
|
|
|
19
26
|
## [3.32.0-rc.2] - 2026-02-03
|
|
@@ -23,11 +30,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
|
|
|
23
30
|
- `Checkbox`, `Input-*`, `Multi-Select`, `Pin Code`, `Radio Button Group`, `Segmented-Control`, `Select`, `Textarea`:
|
|
24
31
|
New slot `label-after` to add custom content (e.g. `Popover`) after the `label` element
|
|
25
32
|
([#4181](https://github.com/porsche-design-system/porsche-design-system/pull/4181))
|
|
26
|
-
- `Angular`: Bumped peer dependency to support Angular new major version 21
|
|
33
|
+
- `Angular`: Bumped peer dependency to support Angular new major version 21
|
|
34
|
+
([#4178](https://github.com/porsche-design-system/porsche-design-system/pull/4178))
|
|
27
35
|
- `Carousel`:
|
|
28
|
-
- `width` prop now supports `wide` and `full` values
|
|
29
|
-
- `--p-carousel-px` CSS custom property introduced to control horizontal padding (when used, the `width` prop has no effect anymore)
|
|
36
|
+
- `width` prop now supports `wide` and `full` values
|
|
30
37
|
([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
|
|
38
|
+
- `--p-carousel-px` CSS custom property introduced to control horizontal padding (when used, the `width` prop has no
|
|
39
|
+
effect anymore) ([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
|
|
31
40
|
|
|
32
41
|
## [3.32.0-rc.1] - 2026-01-12
|
|
33
42
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@porsche-design-system/components-react",
|
|
3
|
-
"version": "3.32.0",
|
|
3
|
+
"version": "3.32.1-rc.0",
|
|
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",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"license": "SEE LICENSE IN LICENSE",
|
|
18
18
|
"homepage": "https://designsystem.porsche.com",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@porsche-design-system/components-js": "3.32.0"
|
|
20
|
+
"@porsche-design-system/components-js": "3.32.1-rc.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"ag-grid-community": ">= 35.0.0 <36.0.0",
|
|
@@ -3643,7 +3643,7 @@ const hasShowPickerSupport = () => (hasDocument &&
|
|
|
3643
3643
|
'showPicker' in HTMLInputElement.prototype &&
|
|
3644
3644
|
CSS.supports('selector(::-webkit-calendar-picker-indicator)'));
|
|
3645
3645
|
|
|
3646
|
-
const prefix = `[Porsche Design System v${"3.32.0"}]` // this part isn't covered by unit tests
|
|
3646
|
+
const prefix = `[Porsche Design System v${"3.32.1-rc.0"}]` // this part isn't covered by unit tests
|
|
3647
3647
|
;
|
|
3648
3648
|
const consoleError = (...messages) => {
|
|
3649
3649
|
console.error(prefix, ...messages); // eslint-disable-line no-console
|
|
@@ -6249,7 +6249,7 @@ const cssVarButtonPurePadding = '--ref-p-input-slotted-padding';
|
|
|
6249
6249
|
* @css-variable {"name": "--ref-p-input-slotted-margin", "description": "When slotting a `p-button-pure` or `p-link-pure` this variable needs to be set as `margin` in oder to adjust the spacings correctly."}
|
|
6250
6250
|
*/
|
|
6251
6251
|
const cssVarButtonPureMargin = '--ref-p-input-slotted-margin';
|
|
6252
|
-
const getFunctionalComponentInputBaseStyles = (disabled, loading, hideLabel, state, compact, readOnly, theme, additionalInputJssStyle) => {
|
|
6252
|
+
const getFunctionalComponentInputBaseStyles = (disabled, loading, hideLabel, state, compact, readOnly, theme, additionalInputJssStyle, additionalHostJssStyle) => {
|
|
6253
6253
|
const scalingVar = getScalingVar$4(compact);
|
|
6254
6254
|
const paddingBlock = `max(2px, ${formElementPaddingVertical} * ${scalingVar})`;
|
|
6255
6255
|
const paddingInline = `max(2px, ${formElementPaddingHorizontal} * ${scalingVar})`;
|
|
@@ -6277,6 +6277,11 @@ const getFunctionalComponentInputBaseStyles = (disabled, loading, hideLabel, sta
|
|
|
6277
6277
|
[`${cssVarButtonPurePadding}`]: `calc(1px * ${buttonCompensation})`,
|
|
6278
6278
|
[`${cssVarButtonPureMargin}`]: `calc(-1px * ${buttonCompensation})`,
|
|
6279
6279
|
}),
|
|
6280
|
+
'&(:dir(rtl)) input::placeholder': {
|
|
6281
|
+
direction: 'rtl',
|
|
6282
|
+
textAlign: 'end',
|
|
6283
|
+
},
|
|
6284
|
+
...additionalHostJssStyle,
|
|
6280
6285
|
},
|
|
6281
6286
|
...getFunctionalComponentLabelAfterStyles(disabled),
|
|
6282
6287
|
...preventFoucOfNestedElementsStyles,
|
|
@@ -8226,6 +8231,10 @@ const getComponentCss$X = (disabled, loading, hideLabel, state, compact, readOnl
|
|
|
8226
8231
|
'&::-webkit-inner-spin-button, &::-webkit-outer-spin-button': {
|
|
8227
8232
|
WebkitAppearance: 'none',
|
|
8228
8233
|
},
|
|
8234
|
+
}, {
|
|
8235
|
+
'&(:dir(rtl)) .wrapper, &(:dir(rtl)) input:placeholder-shown': {
|
|
8236
|
+
direction: 'ltr',
|
|
8237
|
+
},
|
|
8229
8238
|
}),
|
|
8230
8239
|
'sr-only': getHiddenTextJssStyle(),
|
|
8231
8240
|
});
|
|
@@ -8361,6 +8370,10 @@ const getComponentCss$S = (disabled, loading, hideLabel, state, compact, readOnl
|
|
|
8361
8370
|
'&::-webkit-inner-spin-button, &::-webkit-outer-spin-button': {
|
|
8362
8371
|
WebkitAppearance: 'none',
|
|
8363
8372
|
},
|
|
8373
|
+
}, {
|
|
8374
|
+
'&(:dir(rtl)) .wrapper, &(:dir(rtl)) input:placeholder-shown': {
|
|
8375
|
+
direction: 'ltr',
|
|
8376
|
+
},
|
|
8364
8377
|
}),
|
|
8365
8378
|
'sr-only': getHiddenTextJssStyle(),
|
|
8366
8379
|
});
|
|
@@ -8442,6 +8455,10 @@ const getComponentCss$P = (disabled, loading, hideLabel, state, compact, readOnl
|
|
|
8442
8455
|
'&::-webkit-inner-spin-button, &::-webkit-outer-spin-button': {
|
|
8443
8456
|
WebkitAppearance: 'none',
|
|
8444
8457
|
},
|
|
8458
|
+
}, {
|
|
8459
|
+
'&(:dir(rtl)) .wrapper, &(:dir(rtl)) input:placeholder-shown': {
|
|
8460
|
+
direction: 'ltr',
|
|
8461
|
+
},
|
|
8445
8462
|
}),
|
|
8446
8463
|
'sr-only': getHiddenTextJssStyle(),
|
|
8447
8464
|
});
|
|
@@ -3446,7 +3446,7 @@ const hasShowPickerSupport = () => (hasDocument &&
|
|
|
3446
3446
|
'showPicker' in HTMLInputElement.prototype &&
|
|
3447
3447
|
CSS.supports('selector(::-webkit-calendar-picker-indicator)'));
|
|
3448
3448
|
|
|
3449
|
-
const prefix = `[Porsche Design System v${"3.32.0"}]` // this part isn't covered by unit tests
|
|
3449
|
+
const prefix = `[Porsche Design System v${"3.32.1-rc.0"}]` // this part isn't covered by unit tests
|
|
3450
3450
|
;
|
|
3451
3451
|
const consoleError$1 = (...messages) => {
|
|
3452
3452
|
console.error(prefix, ...messages); // eslint-disable-line no-console
|
package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.cjs
CHANGED
|
@@ -21,7 +21,7 @@ id, label: label$1, description, loading, initialLoading, required, disabled, st
|
|
|
21
21
|
// refElement,
|
|
22
22
|
start, end, }) => {
|
|
23
23
|
const { namedSlotChildren } = splitChildren.splitChildren(children);
|
|
24
|
-
return (jsxRuntime.jsxs("div", { className: "root", children: [jsxRuntime.jsx(label.Label, { hasLabel: !!label$1 || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: !!description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: label$1, description: description, htmlFor: id, isRequired: required, isLoading: loading, isDisabled: disabled }), jsxRuntime.jsxs("div", { className: "wrapper", children: [jsxRuntime.jsx("slot", { name: "start" }), start, jsxRuntime.jsx("input", { "aria-describedby": loading ? loadingMessage.loadingId : `${utilsEntry.descriptionId} ${stateMessage.messageId}`, "aria-invalid": state === 'error' ? 'true' : null, "aria-disabled": disabled || loading ? 'true' : null, "aria-readonly": readOnly ? 'true' : null, id: id, name: name, form: form, type: type, required: required, placeholder: placeholder, maxLength: maxLength, minLength: minLength, spellCheck: spellCheck, max: max, min: min, step: step, defaultValue: value, readOnly: readOnly, autoComplete: autoComplete, disabled: disabled, pattern: pattern, multiple: multiple }), end, jsxRuntime.jsx("slot", { name: "end" }), loading && jsxRuntime.jsx(spinner_wrapper.PSpinner, { className: "spinner", size: "inherit", theme: theme, "aria-hidden": "true" })] }), jsxRuntime.jsx(stateMessage.StateMessage, { hasMessage: (message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(state), state: state, message: message, theme: theme, host: null }), jsxRuntime.jsx(loadingMessage.LoadingMessage, { loading: loading, initialLoading: initialLoading })] }));
|
|
24
|
+
return (jsxRuntime.jsxs("div", { className: "root", children: [jsxRuntime.jsx(label.Label, { hasLabel: !!label$1 || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: !!description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: label$1, description: description, htmlFor: id, isRequired: required, isLoading: loading, isDisabled: disabled }), jsxRuntime.jsxs("div", { className: "wrapper", children: [jsxRuntime.jsx("slot", { name: "start" }), start, jsxRuntime.jsx("input", { "aria-describedby": loading ? loadingMessage.loadingId : `${utilsEntry.descriptionId} ${stateMessage.messageId}`, "aria-invalid": state === 'error' ? 'true' : null, "aria-disabled": disabled || loading ? 'true' : null, "aria-readonly": readOnly ? 'true' : null, id: id, name: name, form: form, type: type, required: required, placeholder: placeholder || null, maxLength: maxLength, minLength: minLength, spellCheck: spellCheck, max: max, min: min, step: step, defaultValue: value, readOnly: readOnly, autoComplete: autoComplete, disabled: disabled, pattern: pattern, multiple: multiple, dir: "auto" }), end, jsxRuntime.jsx("slot", { name: "end" }), loading && jsxRuntime.jsx(spinner_wrapper.PSpinner, { className: "spinner", size: "inherit", theme: theme, "aria-hidden": "true" })] }), jsxRuntime.jsx(stateMessage.StateMessage, { hasMessage: (message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(state), state: state, message: message, theme: theme, host: null }), jsxRuntime.jsx(loadingMessage.LoadingMessage, { loading: loading, initialLoading: initialLoading })] }));
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
exports.InputBase = InputBase;
|
package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs
CHANGED
|
@@ -42,7 +42,7 @@ class DSRPinCode extends react.Component {
|
|
|
42
42
|
this.inputElements = [];
|
|
43
43
|
const currentInputId = 'current-input';
|
|
44
44
|
const style = minifyCss.minifyCss(stylesEntry.getPinCodeCss(this.props.hideLabel, this.props.state, this.props.disabled, this.props.loading, this.props.length, this.props.compact, this.props.theme));
|
|
45
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", shadowrootdelegatesfocus: "true", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs("div", { className: "root", children: [jsxRuntime.jsx(label.Label, { hasLabel: this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: this.props.label, description: this.props.description, htmlFor: currentInputId, isRequired: this.props.required, isLoading: this.props.loading, isDisabled: this.props.disabled }), jsxRuntime.jsxs("div", { className: "wrapper", children: [Array.from(new Array(this.props.length), (_, index) => (jsxRuntime.jsx("input", { name: this.props.name, form: this.props.form, ...(utilsEntry.isCurrentInput(index, this.props.value, this.props.length) && { id: currentInputId }), type: this.props.type === 'number' ? 'text' : this.props.type, "aria-label": `${index + 1}-${this.props.length}`, "aria-describedby": `${utilsEntry.labelId} ${utilsEntry.descriptionId} ${stateMessage.messageId}`, "aria-invalid": this.props.state === 'error' ? 'true' : null, "aria-disabled": this.props.loading ? 'true' : null, autoComplete: "one-time-code", pattern: "\\d*", inputMode: "numeric" // get numeric keyboard on mobile
|
|
45
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", shadowrootdelegatesfocus: "true", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs("div", { className: "root", children: [jsxRuntime.jsx(label.Label, { hasLabel: this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: this.props.label, description: this.props.description, htmlFor: currentInputId, isRequired: this.props.required, isLoading: this.props.loading, isDisabled: this.props.disabled }), jsxRuntime.jsxs("div", { className: "wrapper", dir: "ltr", children: [Array.from(new Array(this.props.length), (_, index) => (jsxRuntime.jsx("input", { name: this.props.name, form: this.props.form, ...(utilsEntry.isCurrentInput(index, this.props.value, this.props.length) && { id: currentInputId }), type: this.props.type === 'number' ? 'text' : this.props.type, "aria-label": `${index + 1}-${this.props.length}`, "aria-describedby": `${utilsEntry.labelId} ${utilsEntry.descriptionId} ${stateMessage.messageId}`, "aria-invalid": this.props.state === 'error' ? 'true' : null, "aria-disabled": this.props.loading ? 'true' : null, autoComplete: "one-time-code", pattern: "\\d*", inputMode: "numeric" // get numeric keyboard on mobile
|
|
46
46
|
, defaultValue: this.props.value[index] === ' ' ? null : this.props.value[index], disabled: this.props.disabled, required: this.props.required, onBlur: this.props.onInputBlur }, index))), this.props.loading && (jsxRuntime.jsx(spinner_wrapper.PSpinner, { className: "spinner", size: "inherit", theme: this.props.theme, "aria-hidden": "true" }))] }), jsxRuntime.jsx(stateMessage.StateMessage, { hasMessage: (this.props.message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(this.props.state), state: this.props.state, message: this.props.message, theme: this.props.theme, host: null }), jsxRuntime.jsx(loadingMessage.LoadingMessage, { loading: this.props.loading, initialLoading: this.props.initialLoading })] })] }), this.props.children] }));
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -3641,7 +3641,7 @@ const hasShowPickerSupport = () => (hasDocument &&
|
|
|
3641
3641
|
'showPicker' in HTMLInputElement.prototype &&
|
|
3642
3642
|
CSS.supports('selector(::-webkit-calendar-picker-indicator)'));
|
|
3643
3643
|
|
|
3644
|
-
const prefix = `[Porsche Design System v${"3.32.0"}]` // this part isn't covered by unit tests
|
|
3644
|
+
const prefix = `[Porsche Design System v${"3.32.1-rc.0"}]` // this part isn't covered by unit tests
|
|
3645
3645
|
;
|
|
3646
3646
|
const consoleError = (...messages) => {
|
|
3647
3647
|
console.error(prefix, ...messages); // eslint-disable-line no-console
|
|
@@ -6247,7 +6247,7 @@ const cssVarButtonPurePadding = '--ref-p-input-slotted-padding';
|
|
|
6247
6247
|
* @css-variable {"name": "--ref-p-input-slotted-margin", "description": "When slotting a `p-button-pure` or `p-link-pure` this variable needs to be set as `margin` in oder to adjust the spacings correctly."}
|
|
6248
6248
|
*/
|
|
6249
6249
|
const cssVarButtonPureMargin = '--ref-p-input-slotted-margin';
|
|
6250
|
-
const getFunctionalComponentInputBaseStyles = (disabled, loading, hideLabel, state, compact, readOnly, theme, additionalInputJssStyle) => {
|
|
6250
|
+
const getFunctionalComponentInputBaseStyles = (disabled, loading, hideLabel, state, compact, readOnly, theme, additionalInputJssStyle, additionalHostJssStyle) => {
|
|
6251
6251
|
const scalingVar = getScalingVar$4(compact);
|
|
6252
6252
|
const paddingBlock = `max(2px, ${formElementPaddingVertical} * ${scalingVar})`;
|
|
6253
6253
|
const paddingInline = `max(2px, ${formElementPaddingHorizontal} * ${scalingVar})`;
|
|
@@ -6275,6 +6275,11 @@ const getFunctionalComponentInputBaseStyles = (disabled, loading, hideLabel, sta
|
|
|
6275
6275
|
[`${cssVarButtonPurePadding}`]: `calc(1px * ${buttonCompensation})`,
|
|
6276
6276
|
[`${cssVarButtonPureMargin}`]: `calc(-1px * ${buttonCompensation})`,
|
|
6277
6277
|
}),
|
|
6278
|
+
'&(:dir(rtl)) input::placeholder': {
|
|
6279
|
+
direction: 'rtl',
|
|
6280
|
+
textAlign: 'end',
|
|
6281
|
+
},
|
|
6282
|
+
...additionalHostJssStyle,
|
|
6278
6283
|
},
|
|
6279
6284
|
...getFunctionalComponentLabelAfterStyles(disabled),
|
|
6280
6285
|
...preventFoucOfNestedElementsStyles,
|
|
@@ -8224,6 +8229,10 @@ const getComponentCss$X = (disabled, loading, hideLabel, state, compact, readOnl
|
|
|
8224
8229
|
'&::-webkit-inner-spin-button, &::-webkit-outer-spin-button': {
|
|
8225
8230
|
WebkitAppearance: 'none',
|
|
8226
8231
|
},
|
|
8232
|
+
}, {
|
|
8233
|
+
'&(:dir(rtl)) .wrapper, &(:dir(rtl)) input:placeholder-shown': {
|
|
8234
|
+
direction: 'ltr',
|
|
8235
|
+
},
|
|
8227
8236
|
}),
|
|
8228
8237
|
'sr-only': getHiddenTextJssStyle(),
|
|
8229
8238
|
});
|
|
@@ -8359,6 +8368,10 @@ const getComponentCss$S = (disabled, loading, hideLabel, state, compact, readOnl
|
|
|
8359
8368
|
'&::-webkit-inner-spin-button, &::-webkit-outer-spin-button': {
|
|
8360
8369
|
WebkitAppearance: 'none',
|
|
8361
8370
|
},
|
|
8371
|
+
}, {
|
|
8372
|
+
'&(:dir(rtl)) .wrapper, &(:dir(rtl)) input:placeholder-shown': {
|
|
8373
|
+
direction: 'ltr',
|
|
8374
|
+
},
|
|
8362
8375
|
}),
|
|
8363
8376
|
'sr-only': getHiddenTextJssStyle(),
|
|
8364
8377
|
});
|
|
@@ -8440,6 +8453,10 @@ const getComponentCss$P = (disabled, loading, hideLabel, state, compact, readOnl
|
|
|
8440
8453
|
'&::-webkit-inner-spin-button, &::-webkit-outer-spin-button': {
|
|
8441
8454
|
WebkitAppearance: 'none',
|
|
8442
8455
|
},
|
|
8456
|
+
}, {
|
|
8457
|
+
'&(:dir(rtl)) .wrapper, &(:dir(rtl)) input:placeholder-shown': {
|
|
8458
|
+
direction: 'ltr',
|
|
8459
|
+
},
|
|
8443
8460
|
}),
|
|
8444
8461
|
'sr-only': getHiddenTextJssStyle(),
|
|
8445
8462
|
});
|
|
@@ -3444,7 +3444,7 @@ const hasShowPickerSupport = () => (hasDocument &&
|
|
|
3444
3444
|
'showPicker' in HTMLInputElement.prototype &&
|
|
3445
3445
|
CSS.supports('selector(::-webkit-calendar-picker-indicator)'));
|
|
3446
3446
|
|
|
3447
|
-
const prefix = `[Porsche Design System v${"3.32.0"}]` // this part isn't covered by unit tests
|
|
3447
|
+
const prefix = `[Porsche Design System v${"3.32.1-rc.0"}]` // this part isn't covered by unit tests
|
|
3448
3448
|
;
|
|
3449
3449
|
const consoleError$1 = (...messages) => {
|
|
3450
3450
|
console.error(prefix, ...messages); // eslint-disable-line no-console
|
package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.mjs
CHANGED
|
@@ -19,7 +19,7 @@ id, label, description, loading, initialLoading, required, disabled, state, mess
|
|
|
19
19
|
// refElement,
|
|
20
20
|
start, end, }) => {
|
|
21
21
|
const { namedSlotChildren } = splitChildren(children);
|
|
22
|
-
return (jsxs("div", { className: "root", children: [jsx(Label, { hasLabel: !!label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: !!description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: label, description: description, htmlFor: id, isRequired: required, isLoading: loading, isDisabled: disabled }), jsxs("div", { className: "wrapper", children: [jsx("slot", { name: "start" }), start, jsx("input", { "aria-describedby": loading ? loadingId : `${descriptionId} ${messageId}`, "aria-invalid": state === 'error' ? 'true' : null, "aria-disabled": disabled || loading ? 'true' : null, "aria-readonly": readOnly ? 'true' : null, id: id, name: name, form: form, type: type, required: required, placeholder: placeholder, maxLength: maxLength, minLength: minLength, spellCheck: spellCheck, max: max, min: min, step: step, defaultValue: value, readOnly: readOnly, autoComplete: autoComplete, disabled: disabled, pattern: pattern, multiple: multiple }), end, jsx("slot", { name: "end" }), loading && jsx(PSpinner, { className: "spinner", size: "inherit", theme: theme, "aria-hidden": "true" })] }), jsx(StateMessage, { hasMessage: (message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(state), state: state, message: message, theme: theme, host: null }), jsx(LoadingMessage, { loading: loading, initialLoading: initialLoading })] }));
|
|
22
|
+
return (jsxs("div", { className: "root", children: [jsx(Label, { hasLabel: !!label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: !!description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: label, description: description, htmlFor: id, isRequired: required, isLoading: loading, isDisabled: disabled }), jsxs("div", { className: "wrapper", children: [jsx("slot", { name: "start" }), start, jsx("input", { "aria-describedby": loading ? loadingId : `${descriptionId} ${messageId}`, "aria-invalid": state === 'error' ? 'true' : null, "aria-disabled": disabled || loading ? 'true' : null, "aria-readonly": readOnly ? 'true' : null, id: id, name: name, form: form, type: type, required: required, placeholder: placeholder || null, maxLength: maxLength, minLength: minLength, spellCheck: spellCheck, max: max, min: min, step: step, defaultValue: value, readOnly: readOnly, autoComplete: autoComplete, disabled: disabled, pattern: pattern, multiple: multiple, dir: "auto" }), end, jsx("slot", { name: "end" }), loading && jsx(PSpinner, { className: "spinner", size: "inherit", theme: theme, "aria-hidden": "true" })] }), jsx(StateMessage, { hasMessage: (message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(state), state: state, message: message, theme: theme, host: null }), jsx(LoadingMessage, { loading: loading, initialLoading: initialLoading })] }));
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export { InputBase };
|
package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs
CHANGED
|
@@ -40,7 +40,7 @@ class DSRPinCode extends Component {
|
|
|
40
40
|
this.inputElements = [];
|
|
41
41
|
const currentInputId = 'current-input';
|
|
42
42
|
const style = minifyCss(getComponentCss$B(this.props.hideLabel, this.props.state, this.props.disabled, this.props.loading, this.props.length, this.props.compact, this.props.theme));
|
|
43
|
-
return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", shadowrootdelegatesfocus: "true", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("div", { className: "root", children: [jsx(Label, { hasLabel: this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: this.props.label, description: this.props.description, htmlFor: currentInputId, isRequired: this.props.required, isLoading: this.props.loading, isDisabled: this.props.disabled }), jsxs("div", { className: "wrapper", children: [Array.from(new Array(this.props.length), (_, index) => (jsx("input", { name: this.props.name, form: this.props.form, ...(isCurrentInput(index, this.props.value, this.props.length) && { id: currentInputId }), type: this.props.type === 'number' ? 'text' : this.props.type, "aria-label": `${index + 1}-${this.props.length}`, "aria-describedby": `${labelId} ${descriptionId} ${messageId}`, "aria-invalid": this.props.state === 'error' ? 'true' : null, "aria-disabled": this.props.loading ? 'true' : null, autoComplete: "one-time-code", pattern: "\\d*", inputMode: "numeric" // get numeric keyboard on mobile
|
|
43
|
+
return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", shadowrootdelegatesfocus: "true", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("div", { className: "root", children: [jsx(Label, { hasLabel: this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: this.props.label, description: this.props.description, htmlFor: currentInputId, isRequired: this.props.required, isLoading: this.props.loading, isDisabled: this.props.disabled }), jsxs("div", { className: "wrapper", dir: "ltr", children: [Array.from(new Array(this.props.length), (_, index) => (jsx("input", { name: this.props.name, form: this.props.form, ...(isCurrentInput(index, this.props.value, this.props.length) && { id: currentInputId }), type: this.props.type === 'number' ? 'text' : this.props.type, "aria-label": `${index + 1}-${this.props.length}`, "aria-describedby": `${labelId} ${descriptionId} ${messageId}`, "aria-invalid": this.props.state === 'error' ? 'true' : null, "aria-disabled": this.props.loading ? 'true' : null, autoComplete: "one-time-code", pattern: "\\d*", inputMode: "numeric" // get numeric keyboard on mobile
|
|
44
44
|
, defaultValue: this.props.value[index] === ' ' ? null : this.props.value[index], disabled: this.props.disabled, required: this.props.required, onBlur: this.props.onInputBlur }, index))), this.props.loading && (jsx(PSpinner, { className: "spinner", size: "inherit", theme: this.props.theme, "aria-hidden": "true" }))] }), jsx(StateMessage, { hasMessage: (this.props.message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(this.props.state), state: this.props.state, message: this.props.message, theme: this.props.theme, host: null }), jsx(LoadingMessage, { loading: this.props.loading, initialLoading: this.props.initialLoading })] })] }), this.props.children] }));
|
|
45
45
|
}
|
|
46
46
|
}
|