@porsche-design-system/components-react 3.14.0 → 3.15.0-rc.1

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.
Files changed (33) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/lib/components/model-signature.wrapper.cjs +3 -3
  3. package/esm/lib/components/model-signature.wrapper.d.ts +29 -3
  4. package/esm/lib/components/model-signature.wrapper.mjs +3 -3
  5. package/esm/lib/types.d.ts +56 -10
  6. package/package.json +2 -2
  7. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +51 -44
  8. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +10 -5
  9. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/model-signature.wrapper.cjs +5 -4
  10. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation-item.cjs +1 -5
  11. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation.cjs +1 -5
  12. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.cjs +1 -5
  13. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.cjs +1 -15
  14. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/model-signature.cjs +6 -2
  15. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.cjs +9 -3
  16. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.cjs +2 -1
  17. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea-wrapper.cjs +1 -0
  18. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +51 -44
  19. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +10 -5
  20. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/model-signature.wrapper.mjs +5 -4
  21. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation-item.mjs +1 -5
  22. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation.mjs +1 -5
  23. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +1 -5
  24. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.mjs +1 -15
  25. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/model-signature.mjs +8 -4
  26. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.mjs +10 -4
  27. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.mjs +2 -1
  28. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea-wrapper.mjs +1 -0
  29. package/ssr/esm/lib/components/model-signature.wrapper.d.ts +29 -3
  30. package/ssr/esm/lib/dsr-components/modal.d.ts +0 -8
  31. package/ssr/esm/lib/dsr-components/text-field-wrapper.d.ts +1 -0
  32. package/ssr/esm/lib/dsr-components/textarea-wrapper.d.ts +1 -0
  33. package/ssr/esm/lib/types.d.ts +56 -10
package/CHANGELOG.md CHANGED
@@ -14,6 +14,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
14
14
 
15
15
  ### [Unreleased]
16
16
 
17
+ ### [3.15.0-rc.1] - 2024-04-17
18
+
19
+ #### Added
20
+
21
+ - Partials: `getMetaTagsAndIconLinks`, `getComponentChunkLinks`, `getIconLinks` and `getFontLinks` support new format option `js`
22
+ ([#3179](https://github.com/porsche-design-system/porsche-design-system/pull/3179))
23
+
24
+ ### [3.15.0-rc.0] - 2024-04-05
25
+
26
+ #### Changed
27
+
28
+ - `Model Signature`: Enabling the use of hex colors, CSS gradients, CSS image and video masks. In addition, the size was
29
+ slightly adjusted. ([#3153](https://github.com/porsche-design-system/porsche-design-system/pull/3153))
30
+
31
+ ### Fixed
32
+
33
+ - `Modal`: Missing box-shadow on sticky footer when slotted content changes
34
+ ([#3154](https://github.com/porsche-design-system/porsche-design-system/pull/3154))
35
+ - `Select`: Hydration error in Next.js when using slotted `img`
36
+ ([#3162](https://github.com/porsche-design-system/porsche-design-system/pull/3162))
37
+ - `Text Field Wrapper`, `Textarea Wrapper`: Dynamic changes of `showCounter` and `maxLength` are reflected. The counter
38
+ element dynamically adjusts to changes in the input value accurately.
39
+ ([#3084](https://github.com/porsche-design-system/porsche-design-system/pull/3084))
40
+
17
41
  ### [3.14.0] - 2024-03-25
18
42
 
19
43
  ### [3.14.0-rc.0] - 2024-03-25
@@ -6,13 +6,13 @@ var react = require('react');
6
6
  var hooks = require('../../hooks.cjs');
7
7
  var utils = require('../../utils.cjs');
8
8
 
9
- const PModelSignature = react.forwardRef(({ color = 'primary', model = '911', size = 'small', theme, className, ...rest }, ref) => {
9
+ const PModelSignature = react.forwardRef(({ color = 'primary', fetchPriority = 'auto', lazy = false, model = '911', safeZone = true, size = 'small', theme, className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef();
11
11
  const WebComponentTag = hooks.usePrefix('p-model-signature');
12
- const propsToSync = [color, model, size, theme || hooks.useTheme()];
12
+ const propsToSync = [color, fetchPriority, lazy, model, safeZone, size, theme || hooks.useTheme()];
13
13
  hooks.useBrowserLayoutEffect(() => {
14
14
  const { current } = elementRef;
15
- ['color', 'model', 'size', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
+ ['color', 'fetchPriority', 'lazy', 'model', 'safeZone', 'size', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
16
  }, propsToSync);
17
17
  const props = {
18
18
  ...rest,
@@ -1,16 +1,28 @@
1
1
  import { type HTMLAttributes } from 'react';
2
- import type { ModelSignatureColor, ModelSignatureModel, ModelSignatureSize, Theme } from '../types';
2
+ import type { ModelSignatureColor, ModelSignatureFetchPriority, ModelSignatureModel, ModelSignatureSize, Theme } from '../types';
3
3
  export type PModelSignatureProps = Omit<HTMLAttributes<{}>, 'color'> & {
4
4
  /**
5
5
  * Adapts the color of the component.
6
6
  */
7
7
  color?: ModelSignatureColor;
8
+ /**
9
+ * Defines the fetch priority of the model signature. In the end it is just a recommendation to the browser, but it defines the priority on its own.
10
+ */
11
+ fetchPriority?: ModelSignatureFetchPriority;
12
+ /**
13
+ * Defines whether the model signature is always loaded or only loaded when it is in the viewport (this feature may not work reliably).
14
+ */
15
+ lazy?: boolean;
8
16
  /**
9
17
  * Adapts the model of the component.
10
18
  */
11
19
  model?: ModelSignatureModel;
12
20
  /**
13
- * Adapts the size of the component.
21
+ * When set to `true`, then all model signatures are visually aligned with each other. When set to `false` the model signature comes without any safe zone.
22
+ */
23
+ safeZone?: boolean;
24
+ /**
25
+ * Adapts the size of the component. When set to `inherit` a CSS `width` or `height` needs to be defined on the host but not both.
14
26
  */
15
27
  size?: ModelSignatureSize;
16
28
  /**
@@ -23,16 +35,30 @@ export declare const PModelSignature: import("react").ForwardRefExoticComponent<
23
35
  * Adapts the color of the component.
24
36
  */
25
37
  color?: "inherit" | "primary" | "contrast-low" | "contrast-medium" | "contrast-high" | undefined;
38
+ /**
39
+ * Defines the fetch priority of the model signature. In the end it is just a recommendation to the browser, but it defines the priority on its own.
40
+ */
41
+ fetchPriority?: "auto" | "low" | "high" | undefined;
42
+ /**
43
+ * Defines whether the model signature is always loaded or only loaded when it is in the viewport (this feature may not work reliably).
44
+ */
45
+ lazy?: boolean | undefined;
26
46
  /**
27
47
  * Adapts the model of the component.
28
48
  */
29
49
  model?: "718" | "911" | "boxster" | "cayenne" | "cayman" | "macan" | "panamera" | "taycan" | "turbo-s" | "turbo" | undefined;
30
50
  /**
31
- * Adapts the size of the component.
51
+ * When set to `true`, then all model signatures are visually aligned with each other. When set to `false` the model signature comes without any safe zone.
52
+ */
53
+ safeZone?: boolean | undefined;
54
+ /**
55
+ * Adapts the size of the component. When set to `inherit` a CSS `width` or `height` needs to be defined on the host but not both.
32
56
  */
33
57
  size?: "inherit" | "small" | undefined;
34
58
  /**
35
59
  * Adapts color depending on theme.
36
60
  */
37
61
  theme?: "light" | "dark" | "auto" | undefined;
62
+ } & {
63
+ children?: import("react").ReactNode;
38
64
  } & import("react").RefAttributes<HTMLElement>>;
@@ -4,13 +4,13 @@ import { forwardRef, useRef } from 'react';
4
4
  import { usePrefix, useTheme, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
 
7
- const PModelSignature = forwardRef(({ color = 'primary', model = '911', size = 'small', theme, className, ...rest }, ref) => {
7
+ const PModelSignature = forwardRef(({ color = 'primary', fetchPriority = 'auto', lazy = false, model = '911', safeZone = true, size = 'small', theme, className, ...rest }, ref) => {
8
8
  const elementRef = useRef();
9
9
  const WebComponentTag = usePrefix('p-model-signature');
10
- const propsToSync = [color, model, size, theme || useTheme()];
10
+ const propsToSync = [color, fetchPriority, lazy, model, safeZone, size, theme || useTheme()];
11
11
  useBrowserLayoutEffect(() => {
12
12
  const { current } = elementRef;
13
- ['color', 'model', 'size', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
13
+ ['color', 'fetchPriority', 'lazy', 'model', 'safeZone', 'size', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
14
  }, propsToSync);
15
15
  const props = {
16
16
  ...rest,
@@ -1025,16 +1025,56 @@ declare const TILE_PRODUCT_ASPECT_RATIOS: readonly [
1025
1025
  ];
1026
1026
  export type LinkTileProductAspectRatio = Extract<TileAspectRatio, (typeof TILE_PRODUCT_ASPECT_RATIOS)[number]>;
1027
1027
  declare const MODEL_SIGNATURES_MANIFEST: {
1028
- "718": string;
1029
- "911": string;
1030
- boxster: string;
1031
- cayenne: string;
1032
- cayman: string;
1033
- macan: string;
1034
- panamera: string;
1035
- taycan: string;
1036
- "turbo-s": string;
1037
- turbo: string;
1028
+ "718": {
1029
+ src: string;
1030
+ width: number;
1031
+ height: number;
1032
+ };
1033
+ "911": {
1034
+ src: string;
1035
+ width: number;
1036
+ height: number;
1037
+ };
1038
+ boxster: {
1039
+ src: string;
1040
+ width: number;
1041
+ height: number;
1042
+ };
1043
+ cayenne: {
1044
+ src: string;
1045
+ width: number;
1046
+ height: number;
1047
+ };
1048
+ cayman: {
1049
+ src: string;
1050
+ width: number;
1051
+ height: number;
1052
+ };
1053
+ macan: {
1054
+ src: string;
1055
+ width: number;
1056
+ height: number;
1057
+ };
1058
+ panamera: {
1059
+ src: string;
1060
+ width: number;
1061
+ height: number;
1062
+ };
1063
+ taycan: {
1064
+ src: string;
1065
+ width: number;
1066
+ height: number;
1067
+ };
1068
+ "turbo-s": {
1069
+ src: string;
1070
+ width: number;
1071
+ height: number;
1072
+ };
1073
+ turbo: {
1074
+ src: string;
1075
+ width: number;
1076
+ height: number;
1077
+ };
1038
1078
  };
1039
1079
  declare const MARQUE_VARIANTS: readonly [
1040
1080
  "75-years",
@@ -1059,6 +1099,12 @@ declare const MODAL_ARIA_ATTRIBUTES: readonly [
1059
1099
  ];
1060
1100
  export type ModalAriaAttribute = (typeof MODAL_ARIA_ATTRIBUTES)[number];
1061
1101
  export type ModalBackdrop = Backdrop;
1102
+ declare const MODEL_SIGNATURE_FETCH_PRIORITY: readonly [
1103
+ "low",
1104
+ "high",
1105
+ "auto"
1106
+ ];
1107
+ export type ModelSignatureFetchPriority = (typeof MODEL_SIGNATURE_FETCH_PRIORITY)[number];
1062
1108
  declare const MODEL_SIGNATURE_SIZES: readonly [
1063
1109
  "small",
1064
1110
  "inherit"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@porsche-design-system/components-react",
3
- "version": "3.14.0",
3
+ "version": "3.15.0-rc.1",
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.14.0"
20
+ "@porsche-design-system/components-js": "3.15.0-rc.1"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "react": ">=18.0.0 <19.0.0",
@@ -42,7 +42,7 @@ function toPrimitive(t, r) {
42
42
 
43
43
  function toPropertyKey(t) {
44
44
  var i = toPrimitive(t, "string");
45
- return "symbol" == _typeof(i) ? i : String(i);
45
+ return "symbol" == _typeof(i) ? i : i + "";
46
46
  }
47
47
 
48
48
  function _defineProperties(target, props) {
@@ -3684,6 +3684,10 @@ debounce(800, (el, ariaElement) => {
3684
3684
  ariaElement.innerText = `You have ${el.maxLength - el.value.length} out of ${el.maxLength} characters left`;
3685
3685
  });
3686
3686
 
3687
+ const getCDNBaseURL = () => global.PORSCHE_DESIGN_SYSTEM_CDN_URL + "/porsche-design-system";
3688
+
3689
+ const MODEL_SIGNATURES_MANIFEST = { "718": { "src": "718.min.493a9e3509d6e263fa2207150082def5.svg", "width": 79, "height": 26 }, "911": { "src": "911.min.b68f913216168583298ccf83f1a6b8d5.svg", "width": 94, "height": 25 }, "boxster": { "src": "boxster.min.c321738789b37fda4bba3f7c587542aa.svg", "width": 239, "height": 26 }, "cayenne": { "src": "cayenne.min.25562011631a831516f91ec31d144104.svg", "width": 245, "height": 35 }, "cayman": { "src": "cayman.min.cc8919694c002873e1bb6a3c1dae5d41.svg", "width": 229, "height": 35 }, "macan": { "src": "macan.min.a1844f4c8d23b75e371745e9b8eb49b9.svg", "width": 196, "height": 26 }, "panamera": { "src": "panamera.min.6dae8095186567168f85c145845f090c.svg", "width": 260, "height": 25 }, "taycan": { "src": "taycan.min.df444c6f4cc1f627ceaf1b02584d6bea.svg", "width": 167, "height": 36 }, "turbo-s": { "src": "turbo-s.min.73f1e10731caffe93c07d96fa08546c1.svg", "width": 199, "height": 25 }, "turbo": { "src": "turbo.min.6a4084a8704a6c47a099b2de56b22aef.svg", "width": 143, "height": 25 } };
3690
+
3687
3691
  /* Auto Generated Start */
3688
3692
  const themeLight = {
3689
3693
  primaryColor: '#010205',
@@ -3953,6 +3957,10 @@ const getSchemedHighContrastMediaQuery = (light, dark) => {
3953
3957
  };
3954
3958
  };
3955
3959
 
3960
+ const forcedColorsMediaQuery = (style) => {
3961
+ return { '@media (forced-colors: active)': style };
3962
+ };
3963
+
3956
3964
  // NOTE: handpicked selection of plugins from jss-preset-default
3957
3965
  const jss = createJss({
3958
3966
  plugins: [
@@ -7035,64 +7043,63 @@ const getComponentCss$C = (isOpen, backdrop, isFullscreen, hasDismissButton, has
7035
7043
  });
7036
7044
  };
7037
7045
 
7038
- const modelSignatureHeight = 36;
7039
-
7040
- const colorToFilterLight = {
7041
- primary: filterLightPrimary,
7042
- 'contrast-low': filterLightContrastLow,
7043
- 'contrast-medium': filterLightContrastMedium,
7044
- 'contrast-high': filterLightContrastHigh,
7045
- };
7046
- const colorToFilterDark = {
7047
- primary: filterDarkPrimary,
7048
- 'contrast-low': filterDarkContrastLow,
7049
- 'contrast-medium': filterDarkContrastMedium,
7050
- 'contrast-high': filterDarkContrastHigh,
7046
+ const getSvgUrl = (model) => {
7047
+ return `${getCDNBaseURL()}/model-signatures/${MODEL_SIGNATURES_MANIFEST[model].src}`;
7051
7048
  };
7052
- const colorToFilterMap = {
7053
- auto: colorToFilterLight,
7054
- light: colorToFilterLight,
7055
- dark: colorToFilterDark,
7049
+
7050
+ const cssVariableWidth = '--p-model-signature-width';
7051
+ const cssVariableHeight = '--p-model-signature-height';
7052
+ const cssVariableColor = '--p-model-signature-color';
7053
+ const { canvasTextColor: canvasTextColor$1 } = getHighContrastColors();
7054
+ const getThemedColor = (color, themedColors) => {
7055
+ const colorMap = {
7056
+ primary: themedColors.primaryColor,
7057
+ inherit: 'black',
7058
+ 'contrast-low': themedColors.contrastLowColor,
7059
+ 'contrast-medium': themedColors.contrastMediumColor,
7060
+ 'contrast-high': themedColors.contrastHighColor,
7061
+ };
7062
+ return colorMap[color];
7056
7063
  };
7057
- const getComponentCss$B = (size, color, theme) => {
7064
+ const getComponentCss$B = (model, safeZone, size, color, theme) => {
7065
+ const { width, height } = MODEL_SIGNATURES_MANIFEST[model];
7058
7066
  const isSizeInherit = size === 'inherit';
7059
- const isColorInherit = color === 'inherit';
7060
7067
  return getCss({
7061
7068
  '@global': {
7062
7069
  ':host': {
7063
7070
  display: 'inline-block',
7064
7071
  verticalAlign: 'top',
7072
+ maxWidth: '100%',
7073
+ maxHeight: '100%',
7074
+ // width + height style can't be !important atm to be backwards compatible with e.g. `<p-model-signature size="inherit" style="height: 50px"/>`
7075
+ width: `var(${cssVariableWidth},${isSizeInherit ? 'auto' : width + 'px'})`,
7076
+ height: `var(${cssVariableHeight},auto)`,
7065
7077
  ...addImportantToEachRule({
7066
- maxWidth: '100%',
7067
- maxHeight: '100%',
7068
- ...(!isSizeInherit && {
7069
- width: 'inherit',
7070
- height: 'inherit',
7071
- // TODO: we need a width map of all signatures to ensure same fluid behavior like implemented fro crest + wordmark
7072
- maxHeight: `${modelSignatureHeight}px`,
7078
+ mask: `url(${getSvgUrl(model)}) no-repeat left top / contain`,
7079
+ aspectRatio: `${width} / ${safeZone ? 36 : height}`, // 36px is the max-height for SVG model signature creation
7080
+ background: `var(${cssVariableColor},${getThemedColor(color, getThemedColors(theme))})`,
7081
+ ...prefersColorSchemeDarkMediaQuery(theme, {
7082
+ background: `var(${cssVariableColor},${getThemedColor(color, getThemedColors('dark'))})`,
7083
+ }),
7084
+ ...forcedColorsMediaQuery({
7085
+ background: canvasTextColor$1,
7073
7086
  }),
7074
7087
  ...colorSchemeStyles,
7075
7088
  ...hostHiddenStyles,
7076
7089
  }),
7077
7090
  },
7091
+ '::slotted(:is(img,video))': addImportantToEachRule({
7092
+ display: 'block', // prevents unintended bottom white-space
7093
+ width: '100%',
7094
+ height: '100%',
7095
+ objectFit: 'cover',
7096
+ }),
7097
+ // the <img /> is only needed for a11y compliance because of alt text and to handle the fetch priority
7078
7098
  img: {
7079
- display: 'block',
7080
- maxWidth: '100%',
7081
- maxHeight: '100%',
7082
- pointerEvents: 'none', // prevents image drag
7083
- ...(!isColorInherit && {
7084
- filter: colorToFilterMap[theme][color],
7085
- ...prefersColorSchemeDarkMediaQuery(theme, {
7086
- filter: colorToFilterMap.dark[color],
7087
- }),
7088
- ...(isHighContrastMode &&
7089
- getSchemedHighContrastMediaQuery({
7090
- filter: colorToFilterMap.light[color],
7091
- }, {
7092
- filter: colorToFilterMap.dark[color],
7093
- })),
7094
- }),
7095
- ...(isSizeInherit && { height: size }),
7099
+ position: 'absolute', // prevents unintended bottom white-space
7100
+ opacity: 0,
7101
+ width: '1px',
7102
+ height: '1px',
7096
7103
  },
7097
7104
  },
7098
7105
  });
@@ -42,7 +42,7 @@ function toPrimitive(t, r) {
42
42
 
43
43
  function toPropertyKey(t) {
44
44
  var i = toPrimitive(t, "string");
45
- return "symbol" == _typeof(i) ? i : String(i);
45
+ return "symbol" == _typeof(i) ? i : i + "";
46
46
  }
47
47
 
48
48
  function _defineProperties(target, props) {
@@ -3247,6 +3247,12 @@ const getListAriaAttributes = (label, isRequired, hasFilter, isOpen, multiple =
3247
3247
  }),
3248
3248
  };
3249
3249
  };
3250
+ const getOptionAriaAttributes = (isSelected, isDisabled, isHidden, hasValue) => ({
3251
+ ...(!isHidden && { 'aria-selected': isSelected ? 'true' : 'false' }),
3252
+ 'aria-disabled': isDisabled ? 'true' : null,
3253
+ 'aria-hidden': isHidden ? 'true' : null,
3254
+ 'aria-label': hasValue ? null : 'Empty value',
3255
+ });
3250
3256
 
3251
3257
  const attributeMutationMap = new Map();
3252
3258
  hasWindow &&
@@ -3546,7 +3552,7 @@ const ICONS_MANIFEST = { "360": "360.min.d3b2874981886b5ebece31655f92a3ad.svg",
3546
3552
 
3547
3553
  const MARQUES_MANIFEST = { "porscheMarqueTrademark": { "medium": { "1x": { "png": "porsche-marque-trademark.medium.min.da075315857e239ff46bf4c150648ff0@1x.png", "webp": "porsche-marque-trademark.medium.min.5c6af9aa7946fea34f60c8f8c95d0188@1x.webp" }, "2x": { "png": "porsche-marque-trademark.medium.min.aa801f42028b1c385a5e26ae115da598@2x.png", "webp": "porsche-marque-trademark.medium.min.fff6e9b91481cc5b1fc6c9b62987ccaf@2x.webp" }, "3x": { "png": "porsche-marque-trademark.medium.min.824818d15eaf445f50e0a2391613f214@3x.png", "webp": "porsche-marque-trademark.medium.min.f67092ff6b5f4ecb4add73d6ae153db0@3x.webp" } }, "small": { "1x": { "png": "porsche-marque-trademark.small.min.020244b41a29323e2a7932a264514cdf@1x.png", "webp": "porsche-marque-trademark.small.min.783639706bead66b2d56e3b8b64bd61f@1x.webp" }, "2x": { "png": "porsche-marque-trademark.small.min.92184fae44511ceda8320443c17110b1@2x.png", "webp": "porsche-marque-trademark.small.min.760a57efa93d4e7e16e26128ec7ead46@2x.webp" }, "3x": { "png": "porsche-marque-trademark.small.min.fd545cea4298f5d797246d5805711646@3x.png", "webp": "porsche-marque-trademark.small.min.1726036a7829347e1e24d1eb54fc0d64@3x.webp" } } }, "porscheMarque": { "medium": { "1x": { "png": "porsche-marque.medium.min.a98627440b05154565f9f9dfc1ad6187@1x.png", "webp": "porsche-marque.medium.min.fa908e4dfdc5536b0e933e1670d20e1f@1x.webp" }, "2x": { "png": "porsche-marque.medium.min.089d6dd560fff7a2bf613ae6d528990e@2x.png", "webp": "porsche-marque.medium.min.7f0893dc57f2607a2cb0b817d96cb985@2x.webp" }, "3x": { "png": "porsche-marque.medium.min.2cb874345ef290831c929f6caabfeef8@3x.png", "webp": "porsche-marque.medium.min.3534cf066b4e2e737dca62de495f9616@3x.webp" } }, "small": { "1x": { "png": "porsche-marque.small.min.ac2042736af5512cf547c89fa7924c4f@1x.png", "webp": "porsche-marque.small.min.005debed5bf72cf0a9a791b1521f5e1d@1x.webp" }, "2x": { "png": "porsche-marque.small.min.22f1e9dc90399d9a5287eda689b60dba@2x.png", "webp": "porsche-marque.small.min.df4317325d04ffef28c7839aa6d499a0@2x.webp" }, "3x": { "png": "porsche-marque.small.min.49209245f04eadef8817b9bbae80d3e1@3x.png", "webp": "porsche-marque.small.min.cfd6149aaa3bc5b3b522538e5f650890@3x.webp" } } }, "porscheMarque75": { "medium": { "1x": { "png": "porsche-marque75.medium.min.0a02e2256062de963f2fef2c02d20200@1x.png", "webp": "porsche-marque75.medium.min.99b2d657558f0531d639782974e8fd06@1x.webp" }, "2x": { "png": "porsche-marque75.medium.min.1d41ecfb8f5277d3f4bd65d25d22eea3@2x.png", "webp": "porsche-marque75.medium.min.e32580cd1ac179e354ed8fcb31694168@2x.webp" }, "3x": { "png": "porsche-marque75.medium.min.373bcb5f89d31c8b6084e66e902b9f4c@3x.png", "webp": "porsche-marque75.medium.min.4a003d1e5e81db062bf92d52ba797087@3x.webp" } }, "small": { "1x": { "png": "porsche-marque75.small.min.f5b37fe12cd4487432ff77fdd8469f7d@1x.png", "webp": "porsche-marque75.small.min.146b06cffe2b11c07f3113a51f337b98@1x.webp" }, "2x": { "png": "porsche-marque75.small.min.20d86908f2190640a6f24fce1ee49035@2x.png", "webp": "porsche-marque75.small.min.025770f8db54857874c130999b370ed8@2x.webp" }, "3x": { "png": "porsche-marque75.small.min.e89b13e14a088a273107bf1057f7f67d@3x.png", "webp": "porsche-marque75.small.min.a725d2ec7bd07be17afd8feb2589b156@3x.webp" } } } };
3548
3554
 
3549
- const MODEL_SIGNATURES_MANIFEST = { "718": "718.min.d92dc0fe91e67bd51120d91c5cd1eb2f.svg", "911": "911.min.5c462658f9d472e90a139173414e8fdd.svg", "boxster": "boxster.min.5e7b22a1fa25004a4f97807d57f32b21.svg", "cayenne": "cayenne.min.4026ba6b335cc98e10592f900cf731e1.svg", "cayman": "cayman.min.c634f6f3de1d67610b2e4230e60337fb.svg", "macan": "macan.min.e38fbf34ed4f00066620901babd99af0.svg", "panamera": "panamera.min.d35913b252657f7c5cfcae74cfd61b26.svg", "taycan": "taycan.min.ba4e7c3cb86a78d626d4463b81be0f23.svg", "turbo-s": "turbo-s.min.8201d60c1b5e00daf9e23784fd199111.svg", "turbo": "turbo.min.cfde5de85fdc84be597dfad4402c5f6f.svg" };
3555
+ const MODEL_SIGNATURES_MANIFEST = { "718": { "src": "718.min.493a9e3509d6e263fa2207150082def5.svg", "width": 79, "height": 26 }, "911": { "src": "911.min.b68f913216168583298ccf83f1a6b8d5.svg", "width": 94, "height": 25 }, "boxster": { "src": "boxster.min.c321738789b37fda4bba3f7c587542aa.svg", "width": 239, "height": 26 }, "cayenne": { "src": "cayenne.min.25562011631a831516f91ec31d144104.svg", "width": 245, "height": 35 }, "cayman": { "src": "cayman.min.cc8919694c002873e1bb6a3c1dae5d41.svg", "width": 229, "height": 35 }, "macan": { "src": "macan.min.a1844f4c8d23b75e371745e9b8eb49b9.svg", "width": 196, "height": 26 }, "panamera": { "src": "panamera.min.6dae8095186567168f85c145845f090c.svg", "width": 260, "height": 25 }, "taycan": { "src": "taycan.min.df444c6f4cc1f627ceaf1b02584d6bea.svg", "width": 167, "height": 36 }, "turbo-s": { "src": "turbo-s.min.73f1e10731caffe93c07d96fa08546c1.svg", "width": 199, "height": 25 }, "turbo": { "src": "turbo.min.6a4084a8704a6c47a099b2de56b22aef.svg", "width": 143, "height": 25 } };
3550
3556
 
3551
3557
  // NOTE: handpicked selection of plugins from jss-preset-default
3552
3558
  createJss({
@@ -3735,9 +3741,8 @@ Object.entries(innerManifest[size])
3735
3741
  .join();
3736
3742
  const buildImgSrc = (innerManifest) => `${getCDNBaseURL()}/marque/${innerManifest.medium['2x'].png}`;
3737
3743
  const getSvgUrl = (model) => {
3738
- return `${getCDNBaseURL()}/model-signatures/${MODEL_SIGNATURES_MANIFEST[model]}`;
3744
+ return `${getCDNBaseURL()}/model-signatures/${MODEL_SIGNATURES_MANIFEST[model].src}`;
3739
3745
  };
3740
- const modelSignatureHeight = 36;
3741
3746
 
3742
3747
  const INTERNAL_MULTI_SELECT_SLOT = 'internal-select';
3743
3748
  const getSelectedOptions = (options) => options.filter((option) => option.selected);
@@ -3998,6 +4003,7 @@ exports.getIconColor = getIconColor;
3998
4003
  exports.getInlineNotificationIconName = getInlineNotificationIconName;
3999
4004
  exports.getInnerManifest = getInnerManifest;
4000
4005
  exports.getListAriaAttributes = getListAriaAttributes;
4006
+ exports.getOptionAriaAttributes = getOptionAriaAttributes;
4001
4007
  exports.getRole = getRole;
4002
4008
  exports.getSelectedOptionMap = getSelectedOptionMap;
4003
4009
  exports.getSelectedOptionString = getSelectedOptionString;
@@ -4028,7 +4034,6 @@ exports.isTouchDevice = isTouchDevice;
4028
4034
  exports.isType = isType;
4029
4035
  exports.isUrl = isUrl;
4030
4036
  exports.isWithinForm = isWithinForm;
4031
- exports.modelSignatureHeight = modelSignatureHeight;
4032
4037
  exports.observedNodesMap = observedNodesMap;
4033
4038
  exports.parseAndGetAriaAttributes = parseAndGetAriaAttributes;
4034
4039
  exports.parseJSONAttribute = parseJSONAttribute;
@@ -7,13 +7,13 @@ var hooks = require('../../hooks.cjs');
7
7
  var utils = require('../../utils.cjs');
8
8
  var modelSignature = require('../dsr-components/model-signature.cjs');
9
9
 
10
- const PModelSignature = react.forwardRef(({ color = 'primary', model = '911', size = 'small', theme, className, ...rest }, ref) => {
10
+ const PModelSignature = react.forwardRef(({ color = 'primary', fetchPriority = 'auto', lazy = false, model = '911', safeZone = true, size = 'small', theme, className, children, ...rest }, ref) => {
11
11
  const elementRef = react.useRef();
12
12
  const WebComponentTag = hooks.usePrefix('p-model-signature');
13
- const propsToSync = [color, model, size, theme || hooks.useTheme()];
13
+ const propsToSync = [color, fetchPriority, lazy, model, safeZone, size, theme || hooks.useTheme()];
14
14
  hooks.useBrowserLayoutEffect(() => {
15
15
  const { current } = elementRef;
16
- ['color', 'model', 'size', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
+ ['color', 'fetchPriority', 'lazy', 'model', 'safeZone', 'size', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
17
17
  }, propsToSync);
18
18
  // @ts-ignore
19
19
  if (!process.browser) {
@@ -24,9 +24,10 @@ const PModelSignature = react.forwardRef(({ color = 'primary', model = '911', si
24
24
  // @ts-ignore
25
25
  ...(!process.browser
26
26
  ? {
27
- children: (jsxRuntime.jsx(modelSignature.DSRModelSignature, { color, model, size, theme: theme || hooks.useTheme() })),
27
+ children: (jsxRuntime.jsx(modelSignature.DSRModelSignature, { color, fetchPriority, lazy, model, safeZone, size, theme: theme || hooks.useTheme(), children })),
28
28
  }
29
29
  : {
30
+ children,
30
31
  suppressHydrationWarning: true,
31
32
  }),
32
33
  class: hooks.useMergedClass(elementRef, className),
@@ -88,11 +88,7 @@ class DSRFlyoutNavigationItem extends react.Component {
88
88
  render() {
89
89
  splitChildren.splitChildren(this.props.children);
90
90
  const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getFlyoutNavigationItemCss(this.open, this.theme)));
91
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "button", type: "button", size: "medium", alignLabel: "start", stretch: true, icon: "arrow-head-right", active: this.open, aria: { 'aria-expanded': this.open }, theme: this.theme, children: this.props.label }), jsxRuntime.jsxs("div", { className: "scroller",
92
- // ignore needed for pipeline
93
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
94
- /* @ts-ignore */
95
- inert: this.open ? null : '', children: [jsxRuntime.jsxs("div", { className: "header", children: [jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "back", type: "button", size: "medium", icon: "arrow-head-left", hideLabel: true, theme: this.theme, children: "Back" }), jsxRuntime.jsx("h2", { className: "heading", children: this.props.label })] }), jsxRuntime.jsx("div", { className: "content", children: jsxRuntime.jsx("slot", {}) })] })] })] }), this.props.children] }));
91
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "button", type: "button", size: "medium", alignLabel: "start", stretch: true, icon: "arrow-head-right", active: this.open, aria: { 'aria-expanded': this.open }, theme: this.theme, children: this.props.label }), jsxRuntime.jsxs("div", { className: "scroller", inert: this.open ? null : '', children: [jsxRuntime.jsxs("div", { className: "header", children: [jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "back", type: "button", size: "medium", icon: "arrow-head-left", hideLabel: true, theme: this.theme, children: "Back" }), jsxRuntime.jsx("h2", { className: "heading", children: this.props.label })] }), jsxRuntime.jsx("div", { className: "content", children: jsxRuntime.jsx("slot", {}) })] })] })] }), this.props.children] }));
96
92
  }
97
93
  }
98
94
 
@@ -86,11 +86,7 @@ class DSRFlyoutNavigation extends react.Component {
86
86
  render() {
87
87
  splitChildren.splitChildren(this.props.children);
88
88
  const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getFlyoutNavigationCss(this.props.open, !!this.props.activeIdentifier, this.props.theme)));
89
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs("dialog", {
90
- // ignore needed for pipeline
91
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
92
- /* @ts-ignore */
93
- inert: this.props.open ? null : '', tabIndex: -1, children: [jsxRuntime.jsx("div", { className: "header", children: jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "dismiss", type: "button", size: "medium", icon: "close", hideLabel: true, theme: this.props.theme, children: "Dismiss flyout" }) }), jsxRuntime.jsx("div", { className: "scroller", children: jsxRuntime.jsx("nav", { className: "content", ...utilsEntry.parseAndGetAriaAttributes(this.props.aria), children: jsxRuntime.jsx("slot", {}) }) })] })] }), this.props.children] }));
89
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs("dialog", { inert: this.props.open ? null : '', tabIndex: -1, children: [jsxRuntime.jsx("div", { className: "header", children: jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "dismiss", type: "button", size: "medium", icon: "close", hideLabel: true, theme: this.props.theme, children: "Dismiss flyout" }) }), jsxRuntime.jsx("div", { className: "scroller", children: jsxRuntime.jsx("nav", { className: "content", ...utilsEntry.parseAndGetAriaAttributes(this.props.aria), children: jsxRuntime.jsx("slot", {}) }) })] })] }), this.props.children] }));
94
90
  }
95
91
  }
96
92
 
@@ -98,11 +98,7 @@ class DSRFlyout extends react.Component {
98
98
  const hasFooter = namedSlotChildren.filter(({ props: { slot } }) => slot === 'footer').length > 0;
99
99
  const hasSubFooter = namedSlotChildren.filter(({ props: { slot } }) => slot === 'sub-footer').length > 0;
100
100
  const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getFlyoutCss(this.props.open, (positionDeprecationMap[this.props.position] || this.props.position), hasFooter, hasSubFooter, this.props.theme)));
101
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsx("dialog", {
102
- // ignore needed for pipeline
103
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
104
- /* @ts-ignore */
105
- inert: this.props.open ? null : '', tabIndex: -1, ...utilsEntry.parseAndGetAriaAttributes(this.props.aria), children: jsxRuntime.jsxs("div", { className: "wrapper", ...(hasSubFooter && { onScroll: this.props.updateShadow }), children: [jsxRuntime.jsxs("div", { className: "header", children: [jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "dismiss", type: "button", hideLabel: true, icon: "close", theme: this.props.theme, children: "Dismiss flyout" }), hasHeader && jsxRuntime.jsx("slot", { name: "header" })] }, "header"), jsxRuntime.jsx("div", { className: "content", children: jsxRuntime.jsx("slot", {}) }), hasFooter && (jsxRuntime.jsx("div", { className: "footer", children: jsxRuntime.jsx("slot", { name: "footer" }) }, "footer")), hasSubFooter && (jsxRuntime.jsx("div", { className: "sub-footer", children: jsxRuntime.jsx("slot", { name: "sub-footer" }) }, "sub-footer"))] }) })] }), this.props.children] }));
101
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsx("dialog", { inert: this.props.open ? null : '', tabIndex: -1, ...utilsEntry.parseAndGetAriaAttributes(this.props.aria), children: jsxRuntime.jsxs("div", { className: "wrapper", ...(hasSubFooter && { onScroll: this.props.updateShadow }), children: [jsxRuntime.jsxs("div", { className: "header", children: [jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "dismiss", type: "button", hideLabel: true, icon: "close", theme: this.props.theme, children: "Dismiss flyout" }), hasHeader && jsxRuntime.jsx("slot", { name: "header" })] }, "header"), jsxRuntime.jsx("div", { className: "content", children: jsxRuntime.jsx("slot", {}) }), hasFooter && (jsxRuntime.jsx("div", { className: "footer", children: jsxRuntime.jsx("slot", { name: "footer" }) }, "footer")), hasSubFooter && (jsxRuntime.jsx("div", { className: "sub-footer", children: jsxRuntime.jsx("slot", { name: "sub-footer" }) }, "sub-footer"))] }) })] }), this.props.children] }));
106
102
  }
107
103
  }
108
104
 
@@ -79,16 +79,6 @@ var utilsEntry = require('../../../../../../components/dist/utils/esm/utils-entr
79
79
 
80
80
  class DSRModal extends react.Component {
81
81
  host;
82
- scrollContainerEl; // Necessary to avoid stacking background bug in safari
83
- focusedElBeforeOpen;
84
- dismissBtn;
85
- hasHeader;
86
- hasFooter;
87
- footer;
88
- dialog;
89
- get hasDismissButton() {
90
- return this.props.disableCloseButton ? false : this.props.dismissButton;
91
- }
92
82
  render() {
93
83
  const { children, namedSlotChildren, otherChildren } = splitChildren.splitChildren(this.props.children);
94
84
  const hasHeader = (this.props.heading || namedSlotChildren.filter(({ props: { slot } }) => slot === 'heading').length > 0);
@@ -101,11 +91,7 @@ class DSRModal extends react.Component {
101
91
  'aria-label': this.props.heading,
102
92
  'aria-hidden': !this.props.open,
103
93
  ...utilsEntry.parseAndGetAriaAttributes(this.props.aria),
104
- }), tabIndex: -1,
105
- // ignore needed for pipeline
106
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
107
- /* @ts-ignore */
108
- inert: this.props.open ? null : '', children: [hasDismissButton && (jsxRuntime.jsx("div", { className: "controls", children: jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "dismiss", type: "button", hideLabel: true, icon: "close", theme: this.props.theme, children: "Dismiss modal" }) })), hasHeader && (jsxRuntime.jsx("div", { className: "header", children: this.props.heading ? jsxRuntime.jsx("h2", { children: this.props.heading }) : jsxRuntime.jsx("slot", { name: "heading" }) })), jsxRuntime.jsx("div", { className: "content", children: jsxRuntime.jsx("slot", {}) }), hasFooter && (jsxRuntime.jsx("div", { className: "footer", children: jsxRuntime.jsx("slot", { name: "footer" }) }))] }) }) })] }), this.props.children] }));
94
+ }), tabIndex: -1, inert: this.props.open ? null : '', children: [hasDismissButton && (jsxRuntime.jsx("div", { className: "controls", children: jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { className: "dismiss", type: "button", hideLabel: true, icon: "close", theme: this.props.theme, children: "Dismiss modal" }) })), hasHeader && (jsxRuntime.jsx("div", { className: "header", children: this.props.heading ? jsxRuntime.jsx("h2", { children: this.props.heading }) : jsxRuntime.jsx("slot", { name: "heading" }) }, "heading")), jsxRuntime.jsx("div", { className: "content", children: jsxRuntime.jsx("slot", {}) }), hasFooter && (jsxRuntime.jsx("div", { className: "footer", children: jsxRuntime.jsx("slot", { name: "footer" }) }, "footer"))] }) }) })] }), this.props.children] }));
109
95
  }
110
96
  }
111
97
 
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var splitChildren = require('../../splitChildren.cjs');
4
5
  var react = require('react');
5
6
  var minifyCss = require('../../minifyCss.cjs');
6
7
  var stripFocusAndHoverStyles = require('../../stripFocusAndHoverStyles.cjs');
@@ -10,8 +11,11 @@ var utilsEntry = require('../../../../../../components/dist/utils/esm/utils-entr
10
11
  class DSRModelSignature extends react.Component {
11
12
  host;
12
13
  render() {
13
- const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getModelSignatureCss(this.props.size, this.props.color, this.props.theme)));
14
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsx("img", { src: utilsEntry.getSvgUrl(this.props.model), height: utilsEntry.modelSignatureHeight, alt: this.props.model })] }) }));
14
+ splitChildren.splitChildren(this.props.children);
15
+ const fetchPriority = this.props.fetchPriority !== 'auto' ? this.props.fetchPriority : null;
16
+ const loading = this.props.lazy === true ? 'lazy' : null;
17
+ const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getModelSignatureCss(this.props.model, this.props.safeZone, this.props.size, this.props.color, this.props.theme)));
18
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("slot", {}), jsxRuntime.jsx("img", { fetchpriority: fetchPriority, loading: loading, src: utilsEntry.getSvgUrl(this.props.model), alt: this.props.model })] })] }), this.props.children] }));
15
19
  }
16
20
  }
17
21
 
@@ -24,7 +24,7 @@ require('../components/grid.wrapper.cjs');
24
24
  require('../components/grid-item.wrapper.cjs');
25
25
  require('../components/heading.wrapper.cjs');
26
26
  require('../components/headline.wrapper.cjs');
27
- require('../components/icon.wrapper.cjs');
27
+ var icon_wrapper = require('../components/icon.wrapper.cjs');
28
28
  require('../components/inline-notification.wrapper.cjs');
29
29
  require('../components/link.wrapper.cjs');
30
30
  require('../components/link-pure.wrapper.cjs');
@@ -75,14 +75,20 @@ var react = require('react');
75
75
  var minifyCss = require('../../minifyCss.cjs');
76
76
  var stripFocusAndHoverStyles = require('../../stripFocusAndHoverStyles.cjs');
77
77
  var stylesEntry = require('../../../../../../components/dist/styles/esm/styles-entry.cjs');
78
+ var utilsEntry = require('../../../../../../components/dist/utils/esm/utils-entry.cjs');
78
79
 
79
80
  class DSRSelectOption extends react.Component {
80
81
  host;
81
82
  render() {
82
83
  splitChildren.splitChildren(this.props.children);
83
84
  const { theme = 'light', selected, highlighted, hidden } = this.props;
84
- minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getSelectOptionCss(theme)));
85
- return (jsxRuntime.jsx(jsxRuntime.Fragment, {}));
85
+ const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getSelectOptionCss(theme)));
86
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { role: "option", className: {
87
+ option: true,
88
+ 'option--selected': selected,
89
+ 'option--highlighted': highlighted,
90
+ 'option--disabled': this.props.disabled,
91
+ }, ...utilsEntry.getOptionAriaAttributes(selected, this.props.disabled, hidden, !!this.props.value), children: [jsxRuntime.jsx("slot", {}), selected && (jsxRuntime.jsx(icon_wrapper.PIcon, { className: "icon", "aria-hidden": "true", name: "check", color: this.props.disabled ? 'state-disabled' : 'primary', theme: theme }))] }) })] }), this.props.children] }));
86
92
  }
87
93
  }
88
94