@porsche-design-system/components-react 3.14.0-rc.0 → 3.15.0-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.
Files changed (32) hide show
  1. package/CHANGELOG.md +17 -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 +50 -43
  8. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +9 -4
  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 -5
  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 +50 -43
  19. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +9 -4
  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 -5
  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/text-field-wrapper.d.ts +1 -0
  31. package/ssr/esm/lib/dsr-components/textarea-wrapper.d.ts +1 -0
  32. package/ssr/esm/lib/types.d.ts +56 -10
package/CHANGELOG.md CHANGED
@@ -14,6 +14,23 @@ 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.0] - 2024-04-05
18
+
19
+ #### Changed
20
+
21
+ - `Model Signature`: Enabling the use of hex colors, CSS gradients, CSS image and video masks. In addition, the size was
22
+ slightly adjusted. ([#3153](https://github.com/porsche-design-system/porsche-design-system/pull/3153))
23
+
24
+ ### Fixed
25
+
26
+ - `Select`: Hydration error in Next.js when using slotted `img`
27
+ ([#3162](https://github.com/porsche-design-system/porsche-design-system/pull/3162))
28
+ - `Text Field Wrapper`, `Textarea Wrapper`: Dynamic changes of `showCounter` and `maxLength` are reflected. The counter
29
+ element dynamically adjusts to changes in the input value accurately.
30
+ ([#3084](https://github.com/porsche-design-system/porsche-design-system/pull/3084))
31
+
32
+ ### [3.14.0] - 2024-03-25
33
+
17
34
  ### [3.14.0-rc.0] - 2024-03-25
18
35
 
19
36
  #### Added
@@ -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-rc.0",
3
+ "version": "3.15.0-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.14.0-rc.0"
20
+ "@porsche-design-system/components-js": "3.15.0-rc.0"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "react": ">=18.0.0 <19.0.0",
@@ -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
  });
@@ -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
 
@@ -101,11 +101,7 @@ class DSRModal extends react.Component {
101
101
  'aria-label': this.props.heading,
102
102
  'aria-hidden': !this.props.open,
103
103
  ...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] }));
104
+ }), 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" }) })), jsxRuntime.jsx("div", { className: "content", children: jsxRuntime.jsx("slot", {}) }), hasFooter && (jsxRuntime.jsx("div", { className: "footer", children: jsxRuntime.jsx("slot", { name: "footer" }) }))] }) }) })] }), this.props.children] }));
109
105
  }
110
106
  }
111
107
 
@@ -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
 
@@ -95,6 +95,7 @@ class DSRTextFieldWrapper extends react.Component {
95
95
  hasCounter;
96
96
  isCounterVisible;
97
97
  hasUnit;
98
+ eventListener;
98
99
  render() {
99
100
  const { children, namedSlotChildren, otherChildren } = splitChildren.splitChildren(this.props.children);
100
101
  const { readOnly, disabled, type } = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props || {};
@@ -110,8 +111,8 @@ class DSRTextFieldWrapper extends react.Component {
110
111
  const isTime = utilsEntry.isType(type, 'time');
111
112
  utilsEntry.isWithinForm(this.props.host);
112
113
  const hasAction = utilsEntry.hasLocateAction(this.props.actionIcon);
113
- const hasCounter = false; // hasCounterAndIsTypeText(otherChildren[0]?.props);
114
114
  const isClearable = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && !!otherChildren[0]?.props.value;
115
+ const hasCounter = false; // hasCounterAndIsTypeText(otherChildren[0]?.props);
115
116
  const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getTextFieldWrapperCss(disabled, this.props.hideLabel, this.props.state, this.props.isCounterVisible, this.props.isCounterVisible ? 'suffix' : this.props.unitPosition, isPassword ? 'password' : type, this.props.showPasswordToggle, this.props.isWithinForm, this.props.submitButton, this.props.theme)));
116
117
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", 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, formElement: typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props, isDisabled: disabled }), jsxRuntime.jsxs("div", { className: "wrapper", children: [jsxRuntime.jsx("slot", {}), hasCounter , (this.props.isCounterVisible) && (jsxRuntime.jsx("span", { className: "unit-counter", "aria-hidden": "true", children: this.props.unit })), isPassword && this.props.showPasswordToggle ? (jsxRuntime.jsx(buttonPure_wrapper.PButtonPure, { ...buttonProps, type: "button", icon: this.props.showPassword ? 'view-off' : 'view', disabled: disabled, aria: { 'aria-pressed': this.props.showPassword ? 'true' : 'false' }, children: "Toggle password visibility" })) : utilsEntry.showCustomCalendarOrTimeIndicator(isCalendar, isTime) ? (jsxRuntime.jsxs(buttonPure_wrapper.PButtonPure, { ...buttonProps, type: "button", icon: isCalendar ? 'calendar' : 'clock', disabled: disabled, children: ["Show $", isCalendar ? 'date' : 'time', " picker"] })) : (isSearch && [
117
118
  // TODO: create an own component, which would fix SSR support too
@@ -15,6 +15,7 @@ class DSRTextareaWrapper extends react.Component {
15
15
  counterElement;
16
16
  ariaElement;
17
17
  hasCounter;
18
+ eventListener;
18
19
  render() {
19
20
  const { children, namedSlotChildren, otherChildren } = splitChildren.splitChildren(this.props.children);
20
21
  const { disabled } = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props || {};
@@ -3682,6 +3682,10 @@ debounce(800, (el, ariaElement) => {
3682
3682
  ariaElement.innerText = `You have ${el.maxLength - el.value.length} out of ${el.maxLength} characters left`;
3683
3683
  });
3684
3684
 
3685
+ const getCDNBaseURL = () => global.PORSCHE_DESIGN_SYSTEM_CDN_URL + "/porsche-design-system";
3686
+
3687
+ 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 } };
3688
+
3685
3689
  /* Auto Generated Start */
3686
3690
  const themeLight = {
3687
3691
  primaryColor: '#010205',
@@ -3951,6 +3955,10 @@ const getSchemedHighContrastMediaQuery = (light, dark) => {
3951
3955
  };
3952
3956
  };
3953
3957
 
3958
+ const forcedColorsMediaQuery = (style) => {
3959
+ return { '@media (forced-colors: active)': style };
3960
+ };
3961
+
3954
3962
  // NOTE: handpicked selection of plugins from jss-preset-default
3955
3963
  const jss = createJss({
3956
3964
  plugins: [
@@ -7033,64 +7041,63 @@ const getComponentCss$C = (isOpen, backdrop, isFullscreen, hasDismissButton, has
7033
7041
  });
7034
7042
  };
7035
7043
 
7036
- const modelSignatureHeight = 36;
7037
-
7038
- const colorToFilterLight = {
7039
- primary: filterLightPrimary,
7040
- 'contrast-low': filterLightContrastLow,
7041
- 'contrast-medium': filterLightContrastMedium,
7042
- 'contrast-high': filterLightContrastHigh,
7043
- };
7044
- const colorToFilterDark = {
7045
- primary: filterDarkPrimary,
7046
- 'contrast-low': filterDarkContrastLow,
7047
- 'contrast-medium': filterDarkContrastMedium,
7048
- 'contrast-high': filterDarkContrastHigh,
7044
+ const getSvgUrl = (model) => {
7045
+ return `${getCDNBaseURL()}/model-signatures/${MODEL_SIGNATURES_MANIFEST[model].src}`;
7049
7046
  };
7050
- const colorToFilterMap = {
7051
- auto: colorToFilterLight,
7052
- light: colorToFilterLight,
7053
- dark: colorToFilterDark,
7047
+
7048
+ const cssVariableWidth = '--p-model-signature-width';
7049
+ const cssVariableHeight = '--p-model-signature-height';
7050
+ const cssVariableColor = '--p-model-signature-color';
7051
+ const { canvasTextColor: canvasTextColor$1 } = getHighContrastColors();
7052
+ const getThemedColor = (color, themedColors) => {
7053
+ const colorMap = {
7054
+ primary: themedColors.primaryColor,
7055
+ inherit: 'black',
7056
+ 'contrast-low': themedColors.contrastLowColor,
7057
+ 'contrast-medium': themedColors.contrastMediumColor,
7058
+ 'contrast-high': themedColors.contrastHighColor,
7059
+ };
7060
+ return colorMap[color];
7054
7061
  };
7055
- const getComponentCss$B = (size, color, theme) => {
7062
+ const getComponentCss$B = (model, safeZone, size, color, theme) => {
7063
+ const { width, height } = MODEL_SIGNATURES_MANIFEST[model];
7056
7064
  const isSizeInherit = size === 'inherit';
7057
- const isColorInherit = color === 'inherit';
7058
7065
  return getCss({
7059
7066
  '@global': {
7060
7067
  ':host': {
7061
7068
  display: 'inline-block',
7062
7069
  verticalAlign: 'top',
7070
+ maxWidth: '100%',
7071
+ maxHeight: '100%',
7072
+ // width + height style can't be !important atm to be backwards compatible with e.g. `<p-model-signature size="inherit" style="height: 50px"/>`
7073
+ width: `var(${cssVariableWidth},${isSizeInherit ? 'auto' : width + 'px'})`,
7074
+ height: `var(${cssVariableHeight},auto)`,
7063
7075
  ...addImportantToEachRule({
7064
- maxWidth: '100%',
7065
- maxHeight: '100%',
7066
- ...(!isSizeInherit && {
7067
- width: 'inherit',
7068
- height: 'inherit',
7069
- // TODO: we need a width map of all signatures to ensure same fluid behavior like implemented fro crest + wordmark
7070
- maxHeight: `${modelSignatureHeight}px`,
7076
+ mask: `url(${getSvgUrl(model)}) no-repeat left top / contain`,
7077
+ aspectRatio: `${width} / ${safeZone ? 36 : height}`, // 36px is the max-height for SVG model signature creation
7078
+ background: `var(${cssVariableColor},${getThemedColor(color, getThemedColors(theme))})`,
7079
+ ...prefersColorSchemeDarkMediaQuery(theme, {
7080
+ background: `var(${cssVariableColor},${getThemedColor(color, getThemedColors('dark'))})`,
7081
+ }),
7082
+ ...forcedColorsMediaQuery({
7083
+ background: canvasTextColor$1,
7071
7084
  }),
7072
7085
  ...colorSchemeStyles,
7073
7086
  ...hostHiddenStyles,
7074
7087
  }),
7075
7088
  },
7089
+ '::slotted(:is(img,video))': addImportantToEachRule({
7090
+ display: 'block', // prevents unintended bottom white-space
7091
+ width: '100%',
7092
+ height: '100%',
7093
+ objectFit: 'cover',
7094
+ }),
7095
+ // the <img /> is only needed for a11y compliance because of alt text and to handle the fetch priority
7076
7096
  img: {
7077
- display: 'block',
7078
- maxWidth: '100%',
7079
- maxHeight: '100%',
7080
- pointerEvents: 'none', // prevents image drag
7081
- ...(!isColorInherit && {
7082
- filter: colorToFilterMap[theme][color],
7083
- ...prefersColorSchemeDarkMediaQuery(theme, {
7084
- filter: colorToFilterMap.dark[color],
7085
- }),
7086
- ...(isHighContrastMode &&
7087
- getSchemedHighContrastMediaQuery({
7088
- filter: colorToFilterMap.light[color],
7089
- }, {
7090
- filter: colorToFilterMap.dark[color],
7091
- })),
7092
- }),
7093
- ...(isSizeInherit && { height: size }),
7097
+ position: 'absolute', // prevents unintended bottom white-space
7098
+ opacity: 0,
7099
+ width: '1px',
7100
+ height: '1px',
7094
7101
  },
7095
7102
  },
7096
7103
  });
@@ -3245,6 +3245,12 @@ const getListAriaAttributes = (label, isRequired, hasFilter, isOpen, multiple =
3245
3245
  }),
3246
3246
  };
3247
3247
  };
3248
+ const getOptionAriaAttributes = (isSelected, isDisabled, isHidden, hasValue) => ({
3249
+ ...(!isHidden && { 'aria-selected': isSelected ? 'true' : 'false' }),
3250
+ 'aria-disabled': isDisabled ? 'true' : null,
3251
+ 'aria-hidden': isHidden ? 'true' : null,
3252
+ 'aria-label': hasValue ? null : 'Empty value',
3253
+ });
3248
3254
 
3249
3255
  const attributeMutationMap = new Map();
3250
3256
  hasWindow &&
@@ -3544,7 +3550,7 @@ const ICONS_MANIFEST = { "360": "360.min.d3b2874981886b5ebece31655f92a3ad.svg",
3544
3550
 
3545
3551
  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" } } } };
3546
3552
 
3547
- 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" };
3553
+ 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 } };
3548
3554
 
3549
3555
  // NOTE: handpicked selection of plugins from jss-preset-default
3550
3556
  createJss({
@@ -3733,9 +3739,8 @@ Object.entries(innerManifest[size])
3733
3739
  .join();
3734
3740
  const buildImgSrc = (innerManifest) => `${getCDNBaseURL()}/marque/${innerManifest.medium['2x'].png}`;
3735
3741
  const getSvgUrl = (model) => {
3736
- return `${getCDNBaseURL()}/model-signatures/${MODEL_SIGNATURES_MANIFEST[model]}`;
3742
+ return `${getCDNBaseURL()}/model-signatures/${MODEL_SIGNATURES_MANIFEST[model].src}`;
3737
3743
  };
3738
- const modelSignatureHeight = 36;
3739
3744
 
3740
3745
  const INTERNAL_MULTI_SELECT_SLOT = 'internal-select';
3741
3746
  const getSelectedOptions = (options) => options.filter((option) => option.selected);
@@ -3960,4 +3965,4 @@ const getTextTagType = (host, tag) => {
3960
3965
  }
3961
3966
  };
3962
3967
 
3963
- export { DISPLAY_TAGS, HEADING_TAGS, HEADLINE_TAGS, INTERNAL_MULTI_SELECT_SLOT, INTERNAL_SELECT_SLOT, ItemType, TEXT_TAGS, _hasShowPickerSupport, anchorSlot, attributeMutationMap, buildCrestImgSrc, buildCrestSrcSet, buildIconUrl, buildImgSrc, buildSrcSet, createPaginationItems, createRange, crestSize, displaySizeToTagMap, getButtonAriaAttributes, getButtonAttributes, getButtonBaseAriaAttributes, getButtonPureAriaAttributes, getCDNBaseURL, getClosestHTMLElement, getComboboxAriaAttributes, getContentAriaAttributes, getCurrentActivePage, getDirectChildHTMLElement, getDisplayTagType, getHTMLElement, getHeadingTagType, getHeadlineTagType, getIconColor, getInlineNotificationIconName, getInnerManifest, getListAriaAttributes, getRole, getSelectedOptionMap, getSelectedOptionString, getSelectedOptionValues, getSelectedOptions, getStepperHorizontalIconName, getSvgUrl, getSwitchButtonAriaAttributes, getTextTagType, getThemeForIcon, getTotalPages, hasDocument, hasLocateAction, hasSpecificDirectChildTag, hasVisibleIcon, hasWindow, headerSlot, isCurrentInput, isCustomDropdown, isDisabledOrLoading, isInfinitePagination, isListTypeOrdered, isScrollable, isSortable, isStateCompleteOrWarning, isThemeDark, isTouchDevice, isType, isUrl, isWithinForm, modelSignatureHeight, observedNodesMap, parseAndGetAriaAttributes, parseJSONAttribute, scrollAreaClass, showCustomCalendarOrTimeIndicator, supportsConstructableStylesheets, supportsNativePopover, tempDiv, tempIcon, tempLabel };
3968
+ export { DISPLAY_TAGS, HEADING_TAGS, HEADLINE_TAGS, INTERNAL_MULTI_SELECT_SLOT, INTERNAL_SELECT_SLOT, ItemType, TEXT_TAGS, _hasShowPickerSupport, anchorSlot, attributeMutationMap, buildCrestImgSrc, buildCrestSrcSet, buildIconUrl, buildImgSrc, buildSrcSet, createPaginationItems, createRange, crestSize, displaySizeToTagMap, getButtonAriaAttributes, getButtonAttributes, getButtonBaseAriaAttributes, getButtonPureAriaAttributes, getCDNBaseURL, getClosestHTMLElement, getComboboxAriaAttributes, getContentAriaAttributes, getCurrentActivePage, getDirectChildHTMLElement, getDisplayTagType, getHTMLElement, getHeadingTagType, getHeadlineTagType, getIconColor, getInlineNotificationIconName, getInnerManifest, getListAriaAttributes, getOptionAriaAttributes, getRole, getSelectedOptionMap, getSelectedOptionString, getSelectedOptionValues, getSelectedOptions, getStepperHorizontalIconName, getSvgUrl, getSwitchButtonAriaAttributes, getTextTagType, getThemeForIcon, getTotalPages, hasDocument, hasLocateAction, hasSpecificDirectChildTag, hasVisibleIcon, hasWindow, headerSlot, isCurrentInput, isCustomDropdown, isDisabledOrLoading, isInfinitePagination, isListTypeOrdered, isScrollable, isSortable, isStateCompleteOrWarning, isThemeDark, isTouchDevice, isType, isUrl, isWithinForm, observedNodesMap, parseAndGetAriaAttributes, parseJSONAttribute, scrollAreaClass, showCustomCalendarOrTimeIndicator, supportsConstructableStylesheets, supportsNativePopover, tempDiv, tempIcon, tempLabel };
@@ -5,13 +5,13 @@ import { usePrefix, useTheme, useBrowserLayoutEffect, useMergedClass } from '../
5
5
  import { syncRef } from '../../utils.mjs';
6
6
  import { DSRModelSignature } from '../dsr-components/model-signature.mjs';
7
7
 
8
- const PModelSignature = forwardRef(({ color = 'primary', model = '911', size = 'small', theme, className, ...rest }, ref) => {
8
+ const PModelSignature = forwardRef(({ color = 'primary', fetchPriority = 'auto', lazy = false, model = '911', safeZone = true, size = 'small', theme, className, children, ...rest }, ref) => {
9
9
  const elementRef = useRef();
10
10
  const WebComponentTag = usePrefix('p-model-signature');
11
- const propsToSync = [color, model, size, theme || useTheme()];
11
+ const propsToSync = [color, fetchPriority, lazy, model, safeZone, size, theme || useTheme()];
12
12
  useBrowserLayoutEffect(() => {
13
13
  const { current } = elementRef;
14
- ['color', 'model', 'size', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
+ ['color', 'fetchPriority', 'lazy', 'model', 'safeZone', 'size', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
15
  }, propsToSync);
16
16
  // @ts-ignore
17
17
  if (!process.browser) {
@@ -22,9 +22,10 @@ const PModelSignature = forwardRef(({ color = 'primary', model = '911', size = '
22
22
  // @ts-ignore
23
23
  ...(!process.browser
24
24
  ? {
25
- children: (jsx(DSRModelSignature, { color, model, size, theme: theme || useTheme() })),
25
+ children: (jsx(DSRModelSignature, { color, fetchPriority, lazy, model, safeZone, size, theme: theme || useTheme(), children })),
26
26
  }
27
27
  : {
28
+ children,
28
29
  suppressHydrationWarning: true,
29
30
  }),
30
31
  class: useMergedClass(elementRef, className),
@@ -86,11 +86,7 @@ class DSRFlyoutNavigationItem extends Component {
86
86
  render() {
87
87
  splitChildren(this.props.children);
88
88
  const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$Q(this.open, this.theme)));
89
- return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs(Fragment, { children: [jsx(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 }), jsxs("div", { className: "scroller",
90
- // ignore needed for pipeline
91
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
92
- /* @ts-ignore */
93
- inert: this.open ? null : '', children: [jsxs("div", { className: "header", children: [jsx(PButtonPure, { className: "back", type: "button", size: "medium", icon: "arrow-head-left", hideLabel: true, theme: this.theme, children: "Back" }), jsx("h2", { className: "heading", children: this.props.label })] }), jsx("div", { className: "content", children: jsx("slot", {}) })] })] })] }), this.props.children] }));
89
+ return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs(Fragment, { children: [jsx(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 }), jsxs("div", { className: "scroller", inert: this.open ? null : '', children: [jsxs("div", { className: "header", children: [jsx(PButtonPure, { className: "back", type: "button", size: "medium", icon: "arrow-head-left", hideLabel: true, theme: this.theme, children: "Back" }), jsx("h2", { className: "heading", children: this.props.label })] }), jsx("div", { className: "content", children: jsx("slot", {}) })] })] })] }), this.props.children] }));
94
90
  }
95
91
  }
96
92
 
@@ -84,11 +84,7 @@ class DSRFlyoutNavigation extends Component {
84
84
  render() {
85
85
  splitChildren(this.props.children);
86
86
  const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$R(this.props.open, !!this.props.activeIdentifier, this.props.theme)));
87
- return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("dialog", {
88
- // ignore needed for pipeline
89
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
90
- /* @ts-ignore */
91
- inert: this.props.open ? null : '', tabIndex: -1, children: [jsx("div", { className: "header", children: jsx(PButtonPure, { className: "dismiss", type: "button", size: "medium", icon: "close", hideLabel: true, theme: this.props.theme, children: "Dismiss flyout" }) }), jsx("div", { className: "scroller", children: jsx("nav", { className: "content", ...parseAndGetAriaAttributes(this.props.aria), children: jsx("slot", {}) }) })] })] }), this.props.children] }));
87
+ return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("dialog", { inert: this.props.open ? null : '', tabIndex: -1, children: [jsx("div", { className: "header", children: jsx(PButtonPure, { className: "dismiss", type: "button", size: "medium", icon: "close", hideLabel: true, theme: this.props.theme, children: "Dismiss flyout" }) }), jsx("div", { className: "scroller", children: jsx("nav", { className: "content", ...parseAndGetAriaAttributes(this.props.aria), children: jsx("slot", {}) }) })] })] }), this.props.children] }));
92
88
  }
93
89
  }
94
90
 
@@ -96,11 +96,7 @@ class DSRFlyout extends Component {
96
96
  const hasFooter = namedSlotChildren.filter(({ props: { slot } }) => slot === 'footer').length > 0;
97
97
  const hasSubFooter = namedSlotChildren.filter(({ props: { slot } }) => slot === 'sub-footer').length > 0;
98
98
  const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$P(this.props.open, (positionDeprecationMap[this.props.position] || this.props.position), hasFooter, hasSubFooter, this.props.theme)));
99
- return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsx("dialog", {
100
- // ignore needed for pipeline
101
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
102
- /* @ts-ignore */
103
- inert: this.props.open ? null : '', tabIndex: -1, ...parseAndGetAriaAttributes(this.props.aria), children: jsxs("div", { className: "wrapper", ...(hasSubFooter && { onScroll: this.props.updateShadow }), children: [jsxs("div", { className: "header", children: [jsx(PButtonPure, { className: "dismiss", type: "button", hideLabel: true, icon: "close", theme: this.props.theme, children: "Dismiss flyout" }), hasHeader && jsx("slot", { name: "header" })] }, "header"), jsx("div", { className: "content", children: jsx("slot", {}) }), hasFooter && (jsx("div", { className: "footer", children: jsx("slot", { name: "footer" }) }, "footer")), hasSubFooter && (jsx("div", { className: "sub-footer", children: jsx("slot", { name: "sub-footer" }) }, "sub-footer"))] }) })] }), this.props.children] }));
99
+ return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsx("dialog", { inert: this.props.open ? null : '', tabIndex: -1, ...parseAndGetAriaAttributes(this.props.aria), children: jsxs("div", { className: "wrapper", ...(hasSubFooter && { onScroll: this.props.updateShadow }), children: [jsxs("div", { className: "header", children: [jsx(PButtonPure, { className: "dismiss", type: "button", hideLabel: true, icon: "close", theme: this.props.theme, children: "Dismiss flyout" }), hasHeader && jsx("slot", { name: "header" })] }, "header"), jsx("div", { className: "content", children: jsx("slot", {}) }), hasFooter && (jsx("div", { className: "footer", children: jsx("slot", { name: "footer" }) }, "footer")), hasSubFooter && (jsx("div", { className: "sub-footer", children: jsx("slot", { name: "sub-footer" }) }, "sub-footer"))] }) })] }), this.props.children] }));
104
100
  }
105
101
  }
106
102
 
@@ -99,11 +99,7 @@ class DSRModal extends Component {
99
99
  'aria-label': this.props.heading,
100
100
  'aria-hidden': !this.props.open,
101
101
  ...parseAndGetAriaAttributes(this.props.aria),
102
- }), tabIndex: -1,
103
- // ignore needed for pipeline
104
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
105
- /* @ts-ignore */
106
- inert: this.props.open ? null : '', children: [hasDismissButton && (jsx("div", { className: "controls", children: jsx(PButtonPure, { className: "dismiss", type: "button", hideLabel: true, icon: "close", theme: this.props.theme, children: "Dismiss modal" }) })), hasHeader && (jsx("div", { className: "header", children: this.props.heading ? jsx("h2", { children: this.props.heading }) : jsx("slot", { name: "heading" }) })), jsx("div", { className: "content", children: jsx("slot", {}) }), hasFooter && (jsx("div", { className: "footer", children: jsx("slot", { name: "footer" }) }))] }) }) })] }), this.props.children] }));
102
+ }), tabIndex: -1, inert: this.props.open ? null : '', children: [hasDismissButton && (jsx("div", { className: "controls", children: jsx(PButtonPure, { className: "dismiss", type: "button", hideLabel: true, icon: "close", theme: this.props.theme, children: "Dismiss modal" }) })), hasHeader && (jsx("div", { className: "header", children: this.props.heading ? jsx("h2", { children: this.props.heading }) : jsx("slot", { name: "heading" }) })), jsx("div", { className: "content", children: jsx("slot", {}) }), hasFooter && (jsx("div", { className: "footer", children: jsx("slot", { name: "footer" }) }))] }) }) })] }), this.props.children] }));
107
103
  }
108
104
  }
109
105
 
@@ -1,15 +1,19 @@
1
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { splitChildren } from '../../splitChildren.mjs';
2
3
  import { Component } from 'react';
3
4
  import { minifyCss } from '../../minifyCss.mjs';
4
5
  import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
5
6
  import { getModelSignatureCss as getComponentCss$B } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
6
- import { getSvgUrl, modelSignatureHeight } from '../../../../../../components/dist/utils/esm/utils-entry.mjs';
7
+ import { getSvgUrl } from '../../../../../../components/dist/utils/esm/utils-entry.mjs';
7
8
 
8
9
  class DSRModelSignature extends Component {
9
10
  host;
10
11
  render() {
11
- const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$B(this.props.size, this.props.color, this.props.theme)));
12
- return (jsx(Fragment, { children: jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsx("img", { src: getSvgUrl(this.props.model), height: modelSignatureHeight, alt: this.props.model })] }) }));
12
+ splitChildren(this.props.children);
13
+ const fetchPriority = this.props.fetchPriority !== 'auto' ? this.props.fetchPriority : null;
14
+ const loading = this.props.lazy === true ? 'lazy' : null;
15
+ const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$B(this.props.model, this.props.safeZone, this.props.size, this.props.color, this.props.theme)));
16
+ return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs(Fragment, { children: [jsx("slot", {}), jsx("img", { fetchpriority: fetchPriority, loading: loading, src: getSvgUrl(this.props.model), alt: this.props.model })] })] }), this.props.children] }));
13
17
  }
14
18
  }
15
19
 
@@ -1,4 +1,4 @@
1
- import { jsx, Fragment } from 'react/jsx-runtime';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import '../components/accordion.wrapper.mjs';
3
3
  import '../components/banner.wrapper.mjs';
4
4
  import '../components/button.wrapper.mjs';
@@ -22,7 +22,7 @@ import '../components/grid.wrapper.mjs';
22
22
  import '../components/grid-item.wrapper.mjs';
23
23
  import '../components/heading.wrapper.mjs';
24
24
  import '../components/headline.wrapper.mjs';
25
- import '../components/icon.wrapper.mjs';
25
+ import { PIcon } from '../components/icon.wrapper.mjs';
26
26
  import '../components/inline-notification.wrapper.mjs';
27
27
  import '../components/link.wrapper.mjs';
28
28
  import '../components/link-pure.wrapper.mjs';
@@ -73,14 +73,20 @@ import { Component } from 'react';
73
73
  import { minifyCss } from '../../minifyCss.mjs';
74
74
  import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
75
75
  import { getSelectOptionCss as getComponentCss$p } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
76
+ import { getOptionAriaAttributes } from '../../../../../../components/dist/utils/esm/utils-entry.mjs';
76
77
 
77
78
  class DSRSelectOption extends Component {
78
79
  host;
79
80
  render() {
80
81
  splitChildren(this.props.children);
81
82
  const { theme = 'light', selected, highlighted, hidden } = this.props;
82
- minifyCss(stripFocusAndHoverStyles(getComponentCss$p(theme)));
83
- return (jsx(Fragment, {}));
83
+ const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$p(theme)));
84
+ return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsx(Fragment, { children: jsxs("div", { role: "option", className: {
85
+ option: true,
86
+ 'option--selected': selected,
87
+ 'option--highlighted': highlighted,
88
+ 'option--disabled': this.props.disabled,
89
+ }, ...getOptionAriaAttributes(selected, this.props.disabled, hidden, !!this.props.value), children: [jsx("slot", {}), selected && (jsx(PIcon, { className: "icon", "aria-hidden": "true", name: "check", color: this.props.disabled ? 'state-disabled' : 'primary', theme: theme }))] }) })] }), this.props.children] }));
84
90
  }
85
91
  }
86
92
 
@@ -93,6 +93,7 @@ class DSRTextFieldWrapper extends Component {
93
93
  hasCounter;
94
94
  isCounterVisible;
95
95
  hasUnit;
96
+ eventListener;
96
97
  render() {
97
98
  const { children, namedSlotChildren, otherChildren } = splitChildren(this.props.children);
98
99
  const { readOnly, disabled, type } = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props || {};
@@ -108,8 +109,8 @@ class DSRTextFieldWrapper extends Component {
108
109
  const isTime = isType(type, 'time');
109
110
  isWithinForm(this.props.host);
110
111
  const hasAction = hasLocateAction(this.props.actionIcon);
111
- const hasCounter = false; // hasCounterAndIsTypeText(otherChildren[0]?.props);
112
112
  const isClearable = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && !!otherChildren[0]?.props.value;
113
+ const hasCounter = false; // hasCounterAndIsTypeText(otherChildren[0]?.props);
113
114
  const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$7(disabled, this.props.hideLabel, this.props.state, this.props.isCounterVisible, this.props.isCounterVisible ? 'suffix' : this.props.unitPosition, isPassword ? 'password' : type, this.props.showPasswordToggle, this.props.isWithinForm, this.props.submitButton, this.props.theme)));
114
115
  return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", 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, formElement: typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props, isDisabled: disabled }), jsxs("div", { className: "wrapper", children: [jsx("slot", {}), hasCounter , (this.props.isCounterVisible) && (jsx("span", { className: "unit-counter", "aria-hidden": "true", children: this.props.unit })), isPassword && this.props.showPasswordToggle ? (jsx(PButtonPure, { ...buttonProps, type: "button", icon: this.props.showPassword ? 'view-off' : 'view', disabled: disabled, aria: { 'aria-pressed': this.props.showPassword ? 'true' : 'false' }, children: "Toggle password visibility" })) : showCustomCalendarOrTimeIndicator(isCalendar, isTime) ? (jsxs(PButtonPure, { ...buttonProps, type: "button", icon: isCalendar ? 'calendar' : 'clock', disabled: disabled, children: ["Show $", isCalendar ? 'date' : 'time', " picker"] })) : (isSearch && [
115
116
  // TODO: create an own component, which would fix SSR support too
@@ -13,6 +13,7 @@ class DSRTextareaWrapper extends Component {
13
13
  counterElement;
14
14
  ariaElement;
15
15
  hasCounter;
16
+ eventListener;
16
17
  render() {
17
18
  const { children, namedSlotChildren, otherChildren } = splitChildren(this.props.children);
18
19
  const { disabled } = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props || {};
@@ -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?: ModelSignatureColor;
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?: ModelSignatureFetchPriority;
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;
26
46
  /**
27
47
  * Adapts the model of the component.
28
48
  */
29
49
  model?: ModelSignatureModel;
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;
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?: ModelSignatureSize;
34
58
  /**
35
59
  * Adapts color depending on theme.
36
60
  */
37
61
  theme?: Theme;
62
+ } & {
63
+ children?: import("react").ReactNode;
38
64
  } & import("react").RefAttributes<HTMLElement>>;
@@ -15,5 +15,6 @@ export declare class DSRTextFieldWrapper extends Component<any> {
15
15
  private hasCounter;
16
16
  private isCounterVisible;
17
17
  private hasUnit;
18
+ private eventListener;
18
19
  render(): JSX.Element;
19
20
  }
@@ -5,5 +5,6 @@ export declare class DSRTextareaWrapper extends Component<any> {
5
5
  private counterElement;
6
6
  private ariaElement;
7
7
  private hasCounter;
8
+ private eventListener;
8
9
  render(): JSX.Element;
9
10
  }
@@ -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"