@porsche-design-system/components-react 3.0.0-rc.1 → 3.0.0-rc.2

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 (35) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/bin/patchRemixRunProcessBrowserGlobalIdentifier.js +35 -26
  3. package/esm/lib/components/icon.wrapper.js +1 -1
  4. package/esm/lib/components/scroller.wrapper.js +3 -3
  5. package/lib/components/icon.wrapper.js +1 -1
  6. package/lib/components/scroller.wrapper.d.ts +15 -7
  7. package/lib/components/scroller.wrapper.js +3 -3
  8. package/lib/types.d.ts +210 -191
  9. package/package.json +2 -2
  10. package/ssr/components/dist/styles/esm/styles-entry.js +180 -77
  11. package/ssr/components/dist/utils/esm/utils-entry.js +45 -7
  12. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/icon.wrapper.js +1 -1
  13. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.js +4 -4
  14. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/select-wrapper-dropdown.wrapper.js +38 -0
  15. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/stepper-horizontal.wrapper.js +0 -1
  16. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.js +2 -1
  17. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.js +34 -0
  18. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.js +6 -3
  19. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.js +1 -1
  20. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.js +1 -1
  21. package/ssr/esm/components/dist/styles/esm/styles-entry.js +180 -78
  22. package/ssr/esm/components/dist/utils/esm/utils-entry.js +40 -8
  23. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/icon.wrapper.js +1 -1
  24. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.js +4 -4
  25. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/select-wrapper-dropdown.wrapper.js +36 -0
  26. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/stepper-horizontal.wrapper.js +0 -1
  27. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.js +3 -2
  28. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.js +32 -0
  29. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.js +6 -3
  30. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.js +1 -1
  31. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.js +1 -1
  32. package/ssr/lib/components/scroller.wrapper.d.ts +15 -7
  33. package/ssr/lib/components/select-wrapper-dropdown.wrapper.d.ts +30 -0
  34. package/ssr/lib/dsr-components/select-wrapper.d.ts +0 -1
  35. package/ssr/lib/types.d.ts +210 -191
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@porsche-design-system/components-react",
3
- "version": "3.0.0-rc.1",
3
+ "version": "3.0.0-rc.2",
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.0.0-rc.1"
20
+ "@porsche-design-system/components-js": "3.0.0-rc.2"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "react": ">=17.0.0 <19.0.0",
@@ -3228,6 +3228,10 @@ function jssNested() {
3228
3228
  };
3229
3229
  }
3230
3230
 
3231
+ function getDefaultExportFromCjs (x) {
3232
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
3233
+ }
3234
+
3231
3235
  function getAugmentedNamespace(n) {
3232
3236
  if (n.__esModule) return n;
3233
3237
  var f = n.default;
@@ -3289,7 +3293,7 @@ var _tslib$1 = {};
3289
3293
  return t;
3290
3294
  };
3291
3295
  return exports.__assign.apply(this, arguments);
3292
- };
3296
+ };
3293
3297
  } (_tslib$1));
3294
3298
 
3295
3299
  var require$$1 = /*@__PURE__*/getAugmentedNamespace(jss_esm);
@@ -3649,6 +3653,8 @@ function jssCombineAndSortMQ(options) {
3649
3653
 
3650
3654
  var dist = jssCombineAndSortMQ;
3651
3655
 
3656
+ var jssPluginSortMediaQueries = /*@__PURE__*/getDefaultExportFromCjs(dist);
3657
+
3652
3658
  /* Auto Generated Start */
3653
3659
  const themeLight = {
3654
3660
  primaryColor: '#010205',
@@ -3792,36 +3798,20 @@ const focusPseudoJssStyle = {
3792
3798
  outline: 0,
3793
3799
  },
3794
3800
  };
3795
- const getTextHiddenJssStyle = (isHidden) => isHidden
3796
- ? getScreenReaderOnlyJssStyle()
3797
- : {
3798
- position: 'static',
3799
- width: 'auto',
3800
- height: 'auto',
3801
- margin: 0,
3802
- overflow: 'visible',
3803
- clip: 'auto',
3804
- clipPath: 'none',
3805
- whiteSpace: 'normal',
3806
- };
3807
- const getFormTextHiddenJssStyle = (isHidden) => (Object.assign(Object.assign({}, getTextHiddenJssStyle(isHidden)), { width: 'fit-content' }));
3808
- const getFormCheckboxRadioHiddenJssStyle = (isHidden) => (Object.assign(Object.assign({}, getTextHiddenJssStyle(isHidden)), { width: 'auto', padding: `2px 0 0 ${spacingStaticSmall}` }));
3809
3801
  /**
3810
- * Screen reader only styles to hide (text-)contents visually in the browser but grant access for screen readers
3802
+ * Returns a JSS style object that can be used to visually hide text in the browser, while still allowing it to be accessed by screen readers.
3803
+ * @param {boolean} isHidden - A boolean value indicating whether the text should be hidden or not. Defaults to true.
3804
+ * @param {JssStyle} isShownJssStyle - Additional styles applied when isHidden = false
3805
+ * @returns {JssStyle} - A JSS style object containing styles depending on the value of isHidden and isShownJssStyle.
3811
3806
  */
3812
- const getScreenReaderOnlyJssStyle = () => {
3813
- return {
3807
+ const getHiddenTextJssStyle = (isHidden = true, isShownJssStyle) => isHidden
3808
+ ? {
3814
3809
  position: 'absolute',
3810
+ width: 0,
3815
3811
  height: '1px',
3816
- width: '1px',
3817
- border: '0',
3818
- margin: '-1px',
3819
- overflow: 'hidden',
3820
- clip: 'rect(1px,1px,1px,1px)',
3821
- clipPath: 'inset(50%)',
3822
- whiteSpace: 'nowrap',
3823
- };
3824
- };
3812
+ textIndent: '-999999px',
3813
+ }
3814
+ : Object.assign({ position: 'static', width: 'auto', height: 'auto', textIndent: 0 }, isShownJssStyle);
3825
3815
  const getBackfaceVisibilityJssStyle = () => ({
3826
3816
  backfaceVisibility: 'hidden',
3827
3817
  WebkitBackfaceVisibility: 'hidden',
@@ -3856,7 +3846,7 @@ const jss = createJss({
3856
3846
  jssGlobal(),
3857
3847
  jssNested(),
3858
3848
  camelCase(),
3859
- dist({ combineMediaQueries: true }),
3849
+ jssPluginSortMediaQueries({ combineMediaQueries: true }),
3860
3850
  ],
3861
3851
  });
3862
3852
  const getCss = (jssStyles) => jss
@@ -4083,7 +4073,7 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4083
4073
  fontSize: getFontSizeText(sizeValue),
4084
4074
  })))), { '&::before': Object.assign(Object.assign(Object.assign({ content: '""', position: 'absolute', top: offsetVertical, bottom: offsetVertical }, buildResponsiveStyles(hideLabel, (hideLabelValue) => ({
4085
4075
  right: hideLabelValue ? offsetVertical : offsetHorizontal,
4086
- left: hideLabelValue || hasIcon ? offsetVertical : offsetHorizontal,
4076
+ left: hideLabelValue ? offsetVertical : offsetHorizontal,
4087
4077
  }))), { borderRadius: borderRadiusSmall, transition: getTransition('background-color') }), (active && Object.assign(Object.assign({}, frostedGlassStyle), { backgroundColor: hoverColor }))) }), (!isDisabledOrLoading &&
4088
4078
  hoverMediaQuery({
4089
4079
  '&:hover::before': Object.assign(Object.assign({}, frostedGlassStyle), { backgroundColor: hoverColor }),
@@ -4102,6 +4092,12 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4102
4092
  flexShrink: '0',
4103
4093
  width: fontLineHeight,
4104
4094
  height: fontLineHeight,
4095
+ // workaround for Safari to optimize vertical alignment of icons
4096
+ // TODO: check if this is still needed after optimized icons are included
4097
+ '@supports (width: round(down, 1px, 1px))': {
4098
+ width: `round(down, ${fontLineHeight}, 1px)`,
4099
+ height: `round(down, ${fontLineHeight}, 1px)`,
4100
+ },
4105
4101
  },
4106
4102
  label: mergeDeep(buildResponsiveStyles(hideLabel, getVisibilityJssStyle), buildResponsiveStyles(alignLabel, (alignLabelValue) => ({
4107
4103
  order: alignLabelValue === 'left' ? -1 : 0,
@@ -4279,17 +4275,7 @@ const getLinkButtonStyles = (icon, iconSource, variant, hideLabel, isDisabledOrL
4279
4275
  })), (!isDisabledOrLoading &&
4280
4276
  hoverMediaQuery({
4281
4277
  '&:hover': Object.assign({ backgroundColor: backgroundColorHover, borderColor: isHighContrastMode ? focusColor : borderColorHover }, (!isPrimary && frostedGlassStyle)),
4282
- }))), label: Object.assign({}, buildResponsiveStyles(hideLabel, (hideLabelValue) => hideLabelValue
4283
- ? {
4284
- width: 0,
4285
- height: '1px',
4286
- textIndent: '-999999px',
4287
- }
4288
- : {
4289
- width: 'auto',
4290
- height: 'auto',
4291
- textIndent: 0,
4292
- })) }, (hasIcon && {
4278
+ }))), label: buildResponsiveStyles(hideLabel, getHiddenTextJssStyle) }, (hasIcon && {
4293
4279
  icon: {
4294
4280
  width: fontLineHeight,
4295
4281
  height: fontLineHeight,
@@ -4366,22 +4352,18 @@ const getComponentCss$S = (width, hasPagination, alignHeader, theme) => {
4366
4352
  [mediaQueryS]: isHeaderAlignCenter
4367
4353
  ? {
4368
4354
  gridColumn: 2,
4369
- textAlign: 'center', // relevant when text becomes multiline
4370
4355
  }
4371
4356
  : {
4372
4357
  gridColumn: '1 / 3',
4373
4358
  },
4374
4359
  }),
4375
- }, header: {
4376
- display: 'grid',
4377
- padding: `0 ${spacingMap[width].base}`,
4378
- [mediaQueryS]: Object.assign(Object.assign({ fontFamily, fontSize: fontSizeTextSmall, columnGap: spacingStaticMedium, gridTemplateColumns: `${buttonGroupWidth} minmax(0px, 1fr) ${buttonGroupWidth}` }, (isHeaderAlignCenter && {
4360
+ }, header: Object.assign(Object.assign({ display: 'grid', padding: `0 ${spacingMap[width].base}` }, (isHeaderAlignCenter && {
4361
+ textAlign: 'center',
4362
+ })), { [mediaQueryS]: Object.assign(Object.assign({ fontFamily, fontSize: fontSizeTextSmall, columnGap: spacingStaticMedium, gridTemplateColumns: `${buttonGroupWidth} minmax(0px, 1fr) ${buttonGroupWidth}` }, (isHeaderAlignCenter && {
4379
4363
  justifyItems: 'center', // relevant when max-width of heading or description is reached
4380
- })), { padding: `0 ${spacingMap[width].s}` }),
4381
- [mediaQueryXXL]: {
4364
+ })), { padding: `0 ${spacingMap[width].s}` }), [mediaQueryXXL]: {
4382
4365
  padding: `0 ${spacingMap[width].xxl}`,
4383
- },
4384
- }, nav: {
4366
+ } }), nav: {
4385
4367
  display: 'none',
4386
4368
  [mediaQueryS]: {
4387
4369
  display: 'flex',
@@ -4412,7 +4394,7 @@ const getComponentCss$S = (width, hasPagination, alignHeader, theme) => {
4412
4394
  } }),
4413
4395
  '&__list': Object.assign({ display: 'flex', height: '100%' }, getBackfaceVisibilityJssStyle()),
4414
4396
  '&__slide': Object.assign(Object.assign({ position: 'relative', flexShrink: 0 }, getBackfaceVisibilityJssStyle()), { transform: 'translateZ(0)' }),
4415
- '&__sr': getScreenReaderOnlyJssStyle(), // appears in the DOM when sliding
4397
+ '&__sr': getHiddenTextJssStyle(), // appears in the DOM when sliding
4416
4398
  } }, (hasPagination && {
4417
4399
  pagination: Object.assign(Object.assign({}, buildResponsiveStyles(hasPagination, (hasPaginationValue) => ({
4418
4400
  display: hasPaginationValue ? 'flex' : 'none',
@@ -4511,7 +4493,7 @@ const getCheckboxRadioJssStyle = (hideLabel, state, isDisabled, isLoading, theme
4511
4493
  display: 'flex',
4512
4494
  alignItems: 'flex-start',
4513
4495
  },
4514
- }, text: Object.assign(Object.assign(Object.assign({ order: 1, cursor: disabledOrLoading ? 'default' : 'pointer' }, textSmallStyle), { color: disabledOrLoading ? disabledColor : primaryColor, transition: getTransition('color') }), buildResponsiveStyles(hideLabel, getFormCheckboxRadioHiddenJssStyle)) }, getFunctionalComponentRequiredStyles()), getFunctionalComponentStateMessageStyles(theme, state));
4496
+ }, text: Object.assign(Object.assign(Object.assign({ order: 1, cursor: disabledOrLoading ? 'default' : 'pointer' }, textSmallStyle), { color: disabledOrLoading ? disabledColor : primaryColor, transition: getTransition('color') }), buildResponsiveStyles(hideLabel, (isHidden) => getHiddenTextJssStyle(isHidden, { padding: `2px 0 0 ${spacingStaticSmall}` }))) }, getFunctionalComponentRequiredStyles()), getFunctionalComponentStateMessageStyles(theme, state));
4515
4497
  };
4516
4498
 
4517
4499
  const getInlineSVGBackgroundImage = (path) => {
@@ -4929,7 +4911,7 @@ const getComponentCss$E = (color, size, theme) => {
4929
4911
  filter: filter.light[color],
4930
4912
  }, {
4931
4913
  filter: filter.dark[color],
4932
- }))), { WebkitAnimation: `${isDark ? keyFramesDark : keyFramesLight} 1ms` }))), (isSizeInherit
4914
+ }))), { WebkitAnimation: `${isDark ? `${keyFramesDark}-${color}` : `${keyFramesLight}-${color}`} 1ms` }))), (isSizeInherit
4933
4915
  ? {
4934
4916
  width: size,
4935
4917
  height: size,
@@ -4939,7 +4921,7 @@ const getComponentCss$E = (color, size, theme) => {
4939
4921
  height: fontLineHeight,
4940
4922
  font: `${sizeMap$2[size]} ${fontFamily}`,
4941
4923
  })) }, (!isColorInherit && {
4942
- [`@keyframes ${isDark ? keyFramesDark : keyFramesLight}`]: forceRerenderAnimationStyle,
4924
+ [`@keyframes ${isDark ? `${keyFramesDark}-${color}` : `${keyFramesLight}-${color}`}`]: forceRerenderAnimationStyle,
4943
4925
  })),
4944
4926
  });
4945
4927
  };
@@ -5002,7 +4984,6 @@ const getComponentCss$D = (state, hasAction, hasClose, theme) => {
5002
4984
 
5003
4985
  const getComponentCss$C = (icon, iconSource, active, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor, theme) => {
5004
4986
  const { focusColor } = getThemedColors(theme);
5005
- const hasIcon = hasVisibleIcon(icon, iconSource);
5006
4987
  return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, false, stretch, size, hideLabel, alignLabel, hasSlottedAnchor, theme), Object.assign(Object.assign({}, (hasSlottedAnchor && {
5007
4988
  '@global': addImportantToEachRule({
5008
4989
  '::slotted': {
@@ -5012,7 +4993,7 @@ const getComponentCss$C = (icon, iconSource, active, stretch, size, hideLabel, a
5012
4993
  // (https://bugs.webkit.org/show_bug.cgi?id=178237)
5013
4994
  '&(a)::before': Object.assign({ content: '""', position: 'fixed', top: offsetVertical, bottom: offsetVertical, borderRadius: borderRadiusSmall }, buildResponsiveStyles(hideLabel, (hideLabelValue) => ({
5014
4995
  right: hideLabelValue ? offsetVertical : offsetHorizontal,
5015
- left: hideLabelValue || hasIcon ? offsetVertical : offsetHorizontal,
4996
+ left: hideLabelValue ? offsetVertical : offsetHorizontal,
5016
4997
  }))),
5017
4998
  '&(a:focus)::before': {
5018
4999
  border: `${borderWidthBase} solid ${focusColor}`,
@@ -5055,6 +5036,7 @@ const getComponentCss$B = (icon, iconSource, variant, hideLabel, hasSlottedAncho
5055
5036
  }) })))));
5056
5037
  };
5057
5038
 
5039
+ // array is redefined instead of using the one from in model-signature
5058
5040
  const LINK_TILE_MODEL_SIGNATURE_HEADING_TAGS = ['h2', 'h3', 'h4', 'h5', 'h6'];
5059
5041
 
5060
5042
  const getComponentCss$A = (aspectRatio, weight, direction, hasDescription) => {
@@ -5106,7 +5088,7 @@ const getComponentCss$y = (size) => {
5106
5088
 
5107
5089
  const mediaQueryXl = getMediaQueryMin('xl');
5108
5090
  const { backgroundColor, primaryColor: lightThemePrimaryColor } = getThemedColors('light');
5109
- const { primaryColor: darkThemePrimaryColor } = getThemedColors('dark');
5091
+ const { primaryColor: darkThemePrimaryColor, contrastHighColor: darkThemeContrastHighColor } = getThemedColors('dark');
5110
5092
  const transitionTimingFunction = 'cubic-bezier(.16,1,.3,1)';
5111
5093
  const stretchToFullModalWidthClassName = 'stretch-to-full-modal-width';
5112
5094
  const getFullscreenJssStyles = (fullscreen) => {
@@ -5204,8 +5186,8 @@ const getComponentCss$x = (isOpen, isFullscreen, hasDismissButton, hasHeader) =>
5204
5186
  })), (hasDismissButton && {
5205
5187
  dismiss: Object.assign({ position: 'absolute', top: '8px', right: '8px', border: `2px solid ${backgroundColor}`, borderRadius: '4px', background: backgroundColor }, hoverMediaQuery({
5206
5188
  '&:hover': {
5207
- background: 'transparent',
5208
- borderColor: 'transparent',
5189
+ background: darkThemeContrastHighColor,
5190
+ borderColor: darkThemeContrastHighColor,
5209
5191
  },
5210
5192
  })),
5211
5193
  })));
@@ -5383,7 +5365,7 @@ const getComponentCss$u = (direction, theme) => {
5383
5365
  borderColor: 'transparent',
5384
5366
  } }),
5385
5367
  },
5386
- label: getTextHiddenJssStyle(true),
5368
+ label: getHiddenTextJssStyle(),
5387
5369
  icon: {
5388
5370
  display: 'inline-block',
5389
5371
  transform: 'translate3d(0,0,0)', // Fixes movement on hover in Safari
@@ -5588,6 +5570,7 @@ const getComponentCss$q = (maxWidth) => {
5588
5570
  },
5589
5571
  });
5590
5572
  };
5573
+
5591
5574
  const getBaseChildStyles = (child, state, theme, additionalDefaultJssStyle) => {
5592
5575
  const { primaryColor, contrastLowColor, contrastMediumColor, disabledColor } = getThemedColors(theme);
5593
5576
  const { formStateColor, formStateHoverColor } = getThemedFormStateColors(theme, state);
@@ -5621,7 +5604,7 @@ const getLabelStyles = (child, isDisabled, hideLabel, state, theme, counterOrUni
5621
5604
  flexDirection: 'column',
5622
5605
  gap: spacingStaticXSmall,
5623
5606
  position: 'relative',
5624
- '&__text': Object.assign(Object.assign(Object.assign(Object.assign({ display: 'block' }, buildResponsiveStyles(hideLabel, getFormTextHiddenJssStyle)), textSmallStyle), { color: isDisabled ? disabledColor : primaryColor, transition: getTransition('color'), '&+&': Object.assign({ marginTop: `-${spacingStaticXSmall}`, fontSize: fontSizeTextXSmall }, (!isDisabled && {
5607
+ '&__text': Object.assign(Object.assign(Object.assign(Object.assign({ display: 'block' }, buildResponsiveStyles(hideLabel, (isHidden) => getHiddenTextJssStyle(isHidden, { width: 'fit-content' }))), textSmallStyle), { color: isDisabled ? disabledColor : primaryColor, transition: getTransition('color'), '&+&': Object.assign({ marginTop: `-${spacingStaticXSmall}`, fontSize: fontSizeTextXSmall }, (!isDisabled && {
5625
5608
  color: contrastHighColor,
5626
5609
  })) }), hoverMediaQuery({
5627
5610
  '&:hover': {
@@ -5638,14 +5621,10 @@ const getLabelStyles = (child, isDisabled, hideLabel, state, theme, counterOrUni
5638
5621
  })),
5639
5622
  }));
5640
5623
  };
5641
- const ICON_SPACE = `${24 + 13 * 2 + 2}px`; // 24px = icon width, 13px * 2 = padding, 2px = border
5642
- const getComponentCss$p = (isDisabled, hideLabel, state, theme) => {
5643
- return getCss(Object.assign(Object.assign(Object.assign({ '@global': addImportantToEachRule(Object.assign({ ':host': Object.assign({ display: 'block' }, hostHiddenStyles) }, getBaseChildStyles('select', state, theme, {
5644
- position: 'static',
5645
- zIndex: 0,
5646
- cursor: 'pointer',
5647
- padding: `8px ${ICON_SPACE} 8px ${spacingStaticMedium}`,
5648
- }))), root: {
5624
+
5625
+ const OPTION_HEIGHT = 40; // optgroups are higher and ignored
5626
+ const getComponentCss$p = (isDisabled, native, hideLabel, state, theme) => {
5627
+ return getCss(Object.assign(Object.assign(Object.assign({ '@global': addImportantToEachRule(Object.assign({ ':host': Object.assign({ display: 'block' }, hostHiddenStyles) }, getBaseChildStyles('select', state, theme, Object.assign({ position: 'static', zIndex: 0, cursor: 'pointer', padding: `8px calc(${fontLineHeight} + 10px + ${borderWidthBase} * 2 + ${spacingStaticSmall} * 2) 8px ${spacingStaticMedium}` }, (!native && !isDisabled && { borderColor: 'transparent' }))))), root: {
5649
5628
  display: 'block',
5650
5629
  position: 'relative',
5651
5630
  } }, getLabelStyles('select', isDisabled, hideLabel, state, theme, {
@@ -5662,6 +5641,129 @@ const getComponentCss$p = (isDisabled, hideLabel, state, theme) => {
5662
5641
  })), getFunctionalComponentRequiredStyles()), getFunctionalComponentStateMessageStyles(theme, state)));
5663
5642
  };
5664
5643
 
5644
+ const dropdownPositionVar = '--p-internal-dropdown-position';
5645
+ const getButtonStyles = (direction, isOpen, state, theme) => {
5646
+ const { primaryColor, disabledColor, contrastMediumColor } = getThemedColors(theme);
5647
+ const { formStateHoverColor, formStateColor } = getThemedFormStateColors(theme, state);
5648
+ const isDirectionDown = direction === 'down';
5649
+ return {
5650
+ '@global': {
5651
+ button: Object.assign(Object.assign(Object.assign({ position: 'absolute', top: 0, height: `calc(${fontLineHeight} + 10px + ${borderWidthBase} * 2 + ${spacingStaticSmall} * 2)`, width: '100%', font: textSmallStyle.font.replace('ex', 'ex + 6px'), padding: 0, background: 'transparent', border: `${borderWidthBase} solid ${isOpen ? primaryColor : formStateColor || contrastMediumColor}`, borderRadius: borderRadiusSmall, outline: '0', cursor: 'pointer', transition: getTransition('border-color'), '&:focus, &:focus ~ ul': {
5652
+ borderColor: primaryColor,
5653
+ } }, hoverMediaQuery({
5654
+ '&:not(:disabled):not(:focus):hover': {
5655
+ borderColor: isOpen ? primaryColor : formStateHoverColor || primaryColor,
5656
+ },
5657
+ })), { '&:disabled': {
5658
+ cursor: 'not-allowed',
5659
+ borderColor: disabledColor,
5660
+ } }), (isOpen && {
5661
+ [isDirectionDown ? 'borderBottomLeftRadius' : 'borderTopLeftRadius']: 0,
5662
+ [isDirectionDown ? 'borderBottomRightRadius' : 'borderTopRightRadius']: 0,
5663
+ })),
5664
+ },
5665
+ };
5666
+ };
5667
+ const getFilterStyles = (direction, isOpen, state, disabled, theme) => {
5668
+ const { primaryColor, backgroundColor, disabledColor, contrastMediumColor } = getThemedColors(theme);
5669
+ const { formStateHoverColor, formStateColor } = getThemedFormStateColors(theme, state);
5670
+ const isDirectionDown = direction === 'down';
5671
+ const placeHolderJssStyle = {
5672
+ opacity: 1,
5673
+ color: disabled ? disabledColor : primaryColor,
5674
+ };
5675
+ return {
5676
+ '@global': {
5677
+ input: Object.assign(Object.assign(Object.assign(Object.assign({ display: 'block', position: 'absolute', zIndex: 1, bottom: '2px', left: '2px', width: `calc(100% - (${fontLineHeight} + 6px + ${borderWidthBase} * 2 + ${spacingStaticSmall} * 2))`, height: `calc(${fontLineHeight} + 6px + ${borderWidthBase} * 2 + ${spacingStaticSmall} * 2)`, font: textSmallStyle.font.replace('ex', 'ex + 6px'), padding: `13px ${spacingStaticMedium}`, outline: '0', appearance: 'none', boxSizing: 'border-box', border: '0', borderRadius: borderRadiusSmall, opacity: 0 }, textSmallStyle), { textIndent: 0, cursor: disabled ? 'not-allowed' : 'text', color: primaryColor, background: backgroundColor, '&::placeholder': placeHolderJssStyle, '&::-webkit-input-placeholder': placeHolderJssStyle, '&::-moz-placeholder': placeHolderJssStyle, '&:not(:disabled):focus': {
5678
+ opacity: 1,
5679
+ '&+span, &~ ul': {
5680
+ borderColor: primaryColor,
5681
+ },
5682
+ } }), hoverMediaQuery({
5683
+ '&:not(:disabled)': {
5684
+ '&+span:hover': {
5685
+ borderColor: isOpen ? primaryColor : formStateHoverColor || primaryColor,
5686
+ },
5687
+ '&:hover': {
5688
+ '&+span, &~ul': {
5689
+ borderColor: isOpen ? primaryColor : formStateHoverColor || primaryColor,
5690
+ },
5691
+ },
5692
+ },
5693
+ })), { '&+span': Object.assign(Object.assign(Object.assign({
5694
+ // for focus outline and clicking arrow since input ends left of the icon
5695
+ position: 'absolute' }, getInsetJssStyle()), { transition: getTransition('border-color'), pointerEvents: 'all', cursor: disabled ? 'not-allowed' : 'pointer', border: `${borderWidthBase} solid ${isOpen ? primaryColor : formStateColor || contrastMediumColor}`, borderRadius: borderRadiusSmall }), (isOpen && {
5696
+ [isDirectionDown ? 'borderBottomLeftRadius' : 'borderTopLeftRadius']: 0,
5697
+ [isDirectionDown ? 'borderBottomRightRadius' : 'borderTopRightRadius']: 0,
5698
+ })) }),
5699
+ },
5700
+ };
5701
+ };
5702
+ const getListStyles = (direction, theme) => {
5703
+ const isDirectionDown = direction === 'down';
5704
+ const { primaryColor, backgroundColor, contrastMediumColor, contrastHighColor, backgroundSurfaceColor, disabledColor, } = getThemedColors(theme);
5705
+ const { highlightColor } = getHighContrastColors();
5706
+ return {
5707
+ '@global': {
5708
+ ul: Object.assign(Object.assign(Object.assign(Object.assign({ display: 'flex', flexDirection: 'column', gap: spacingStaticSmall, position: `var(${dropdownPositionVar})`, padding: '6px', margin: 0, background: backgroundColor }, textSmallStyle), { zIndex: 10, left: 0, right: 0, [isDirectionDown ? 'top' : 'bottom']: 'calc(100% - 2px)', boxSizing: 'border-box', maxHeight: `${8.5 * (OPTION_HEIGHT + 8) + 6 + 2}px`, overflowY: 'auto', WebkitOverflowScrolling: 'touch', scrollBehavior: 'smooth', border: `2px solid ${primaryColor}`, [isDirectionDown ? 'borderTop' : 'borderBottom']: addImportantToRule(`1px solid ${contrastMediumColor}`) }), (isDirectionDown
5709
+ ? ['borderBottomLeftRadius', 'borderBottomRightRadius']
5710
+ : ['borderTopLeftRadius', 'borderTopRightRadius']).reduce((result, curr) => (Object.assign(Object.assign({}, result), { [curr]: borderRadiusSmall })), {})), { scrollbarWidth: 'thin', scrollbarColor: 'auto', transition: getTransition('border-color'), transform: 'translate3d(0,0,0)' }),
5711
+ },
5712
+ option: Object.assign(Object.assign({ display: 'flex', justifyContent: 'space-between', gap: '12px', padding: `${spacingStaticSmall} 12px`, flex: `1 0 calc(${fontLineHeight} + ${spacingStaticSmall} * 2)`, color: contrastHighColor, cursor: 'pointer', textAlign: 'left', wordBreak: 'break-word', boxSizing: 'border-box', borderRadius: borderRadiusSmall, transition: ['background-color', 'color'].map(getTransition).join(), '&[role=status]': {
5713
+ cursor: 'not-allowed',
5714
+ }, '&__sr': getHiddenTextJssStyle() }, hoverMediaQuery({
5715
+ '&:not([aria-disabled]):not([role=status]):hover': {
5716
+ color: isHighContrastMode ? highlightColor : primaryColor,
5717
+ background: backgroundSurfaceColor,
5718
+ },
5719
+ })), { '&--highlighted, &--selected': {
5720
+ color: isHighContrastMode ? highlightColor : primaryColor,
5721
+ background: backgroundSurfaceColor,
5722
+ }, '&--selected': {
5723
+ cursor: 'default',
5724
+ pointerEvents: 'none',
5725
+ }, '&--disabled': {
5726
+ cursor: 'not-allowed',
5727
+ color: disabledColor,
5728
+ }, '&--hidden': {
5729
+ display: 'none',
5730
+ } }),
5731
+ optgroup: {
5732
+ display: 'block',
5733
+ padding: '3px 14px',
5734
+ fontWeight: fontWeightSemiBold,
5735
+ '&:not(:first-child)': {
5736
+ marginTop: spacingStaticSmall,
5737
+ },
5738
+ '&~$option': {
5739
+ paddingLeft: '24px',
5740
+ },
5741
+ },
5742
+ };
5743
+ };
5744
+ const getComponentCss$o = (direction, isOpen, state, disabled, filter, theme) => {
5745
+ const { primaryColor, contrastMediumColor, disabledColor } = getThemedColors(theme);
5746
+ const { formStateColor, formStateHoverColor } = getThemedFormStateColors(theme, state);
5747
+ return getCss(
5748
+ // merge because of global styles
5749
+ mergeDeep({
5750
+ '@global': {
5751
+ ':host': Object.assign({ [dropdownPositionVar]: 'absolute', display: 'block', position: `var(${dropdownPositionVar})`, font: textSmallStyle.font.replace('ex', 'ex + 6px'), marginTop: `calc(-1 * (${fontLineHeight} + 10px + ${borderWidthBase} * 2 + ${spacingStaticSmall} * 2))`, paddingTop: `calc(${fontLineHeight} + 10px + ${borderWidthBase} * 2 + ${spacingStaticSmall} * 2)`, left: 0, right: 0, color: disabled ? disabledColor : formStateColor || contrastMediumColor }, (!disabled &&
5752
+ !isHighContrastMode &&
5753
+ hoverMediaQuery({
5754
+ '&(:hover)': {
5755
+ color: formStateHoverColor || primaryColor,
5756
+ },
5757
+ }))),
5758
+ },
5759
+ 'sr-text': {
5760
+ display: 'none',
5761
+ },
5762
+ }, filter
5763
+ ? getFilterStyles(direction, isOpen, state, disabled, theme)
5764
+ : getButtonStyles(direction, isOpen, state, theme), isOpen && getListStyles(direction, theme)));
5765
+ };
5766
+
5665
5767
  const sizeSmall = '48px';
5666
5768
  const sizeMedium = '72px';
5667
5769
  const sizeLarge = '104px';
@@ -5724,7 +5826,7 @@ const getComponentCss$n = (size, theme) => {
5724
5826
  },
5725
5827
  },
5726
5828
  root: Object.assign(Object.assign({ display: 'block' }, buildResponsiveStyles(size, (s) => sizeMap$1[s])), { margin: 0, padding: 0, boxSizing: 'border-box', strokeWidth: 1.5 }),
5727
- 'sr-only': getScreenReaderOnlyJssStyle(),
5829
+ 'sr-only': getHiddenTextJssStyle(),
5728
5830
  });
5729
5831
  };
5730
5832
 
@@ -5787,7 +5889,7 @@ const getComponentCss$m = (state, disabled, theme) => {
5787
5889
  height: fontLineHeight,
5788
5890
  width: fontLineHeight,
5789
5891
  },
5790
- })), { 'sr-only': getScreenReaderOnlyJssStyle() }));
5892
+ })), { 'sr-only': getHiddenTextJssStyle() }));
5791
5893
  };
5792
5894
 
5793
5895
  const getComponentCss$l = (size) => {
@@ -5877,7 +5979,7 @@ const getComponentCss$k = (alignLabel, hideLabel, stretch, checked, disabled, lo
5877
5979
  },
5878
5980
  })), { label: Object.assign(Object.assign(Object.assign({}, textSmallStyle), { paddingTop: '2px', minWidth: 0, minHeight: 0, color: textColor }), mergeDeep(buildResponsiveStyles(alignLabel, (alignLabelValue) => ({
5879
5981
  order: alignLabelValue === 'left' ? -1 : 0,
5880
- })), buildResponsiveStyles(hideLabel, getTextHiddenJssStyle))) }));
5982
+ })), buildResponsiveStyles(hideLabel, getHiddenTextJssStyle))) }));
5881
5983
  };
5882
5984
 
5883
5985
  const getComponentCss$j = () => {
@@ -5959,7 +6061,7 @@ const getComponentCss$g = (active, direction, hideLabel, multiline) => {
5959
6061
  } }),
5960
6062
  }
5961
6063
  : hideLabel && {
5962
- span: Object.assign(Object.assign({}, getTextHiddenJssStyle(true)), { display: 'block', border: 0 }),
6064
+ span: Object.assign(Object.assign({}, getHiddenTextJssStyle()), { display: 'block', border: 0 }),
5963
6065
  })) }, (sortable && {
5964
6066
  icon: {
5965
6067
  transition: getTransition('opacity'),
@@ -6029,9 +6131,9 @@ const getComponentCss$c = (size, weight, theme) => {
6029
6131
  display: 'block',
6030
6132
  position: 'absolute',
6031
6133
  width: 0,
6032
- height: isHighContrastMode ? '4px' : weight === 'semi-bold' ? '2px' : '1.5px',
6134
+ height: '2px',
6033
6135
  left: 0,
6034
- bottom: isHighContrastMode ? '-1px' : '-4px',
6136
+ bottom: isHighContrastMode ? '0' : '-2px',
6035
6137
  background: isHighContrastMode ? getHighContrastColors().canvasTextColor : primaryColor,
6036
6138
  '&--enable-transition': {
6037
6139
  willChange: 'width',
@@ -6110,7 +6212,7 @@ const getComponentCss$9 = (color, hasLabel, theme) => {
6110
6212
  marginRight: '10px',
6111
6213
  transition: getTransition('background-color'),
6112
6214
  borderRadius: borderRadiusSmall,
6113
- }, 'sr-only': getScreenReaderOnlyJssStyle() }));
6215
+ }, 'sr-only': getHiddenTextJssStyle() }));
6114
6216
  };
6115
6217
 
6116
6218
  const getThemedBackgroundHoverColor = (tagColor, themedColors, theme) => {
@@ -6238,7 +6340,7 @@ const getComponentCss$7 = (isDisabled, hideLabel, state, hasUnitOrVisibleCounter
6238
6340
  },
6239
6341
  })), getFunctionalComponentRequiredStyles()), getFunctionalComponentStateMessageStyles(theme, state)), {
6240
6342
  // TODO: could be made conditional if we had hasUnit
6241
- 'sr-only': Object.assign(Object.assign({}, getScreenReaderOnlyJssStyle()), { padding: 0 }) }));
6343
+ 'sr-only': Object.assign(Object.assign({}, getHiddenTextJssStyle()), { padding: 0 }) }));
6242
6344
  };
6243
6345
 
6244
6346
  /** @deprecated */
@@ -6335,7 +6437,7 @@ const getComponentCss$3 = (isDisabled, hideLabel, state, hasCounter, theme) => {
6335
6437
  color: contrastMediumColor,
6336
6438
  },
6337
6439
  })), getFunctionalComponentRequiredStyles()), getFunctionalComponentStateMessageStyles(theme, state)), (hasCounter && {
6338
- 'sr-only': Object.assign(Object.assign({}, getScreenReaderOnlyJssStyle()), { padding: 0 }),
6440
+ 'sr-only': Object.assign(Object.assign({}, getHiddenTextJssStyle()), { padding: 0 }),
6339
6441
  })));
6340
6442
  };
6341
6443
 
@@ -6443,6 +6545,7 @@ exports.getScrollerCss = getComponentCss$s;
6443
6545
  exports.getSegmentedControlCss = getComponentCss$q;
6444
6546
  exports.getSegmentedControlItemCss = getComponentCss$r;
6445
6547
  exports.getSelectWrapperCss = getComponentCss$p;
6548
+ exports.getSelectWrapperDropdownCss = getComponentCss$o;
6446
6549
  exports.getSpinnerCss = getComponentCss$n;
6447
6550
  exports.getStepperHorizontalCss = getComponentCss$l;
6448
6551
  exports.getStepperHorizontalItemCss = getComponentCss$m;
@@ -168,6 +168,13 @@ hasWindow &&
168
168
  .forEach((node) => childrenMutationMap.get(node)());
169
169
  });
170
170
 
171
+ const isTouchDevice = () => {
172
+ if (!hasWindow) {
173
+ return;
174
+ }
175
+ return !!('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
176
+ };
177
+
171
178
  /* eslint-disable no-undefined,no-param-reassign,no-shadow */
172
179
 
173
180
  /**
@@ -3074,6 +3081,10 @@ function jssNested() {
3074
3081
  };
3075
3082
  }
3076
3083
 
3084
+ function getDefaultExportFromCjs (x) {
3085
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
3086
+ }
3087
+
3077
3088
  function getAugmentedNamespace(n) {
3078
3089
  if (n.__esModule) return n;
3079
3090
  var f = n.default;
@@ -3135,7 +3146,7 @@ var _tslib$1 = {};
3135
3146
  return t;
3136
3147
  };
3137
3148
  return exports.__assign.apply(this, arguments);
3138
- };
3149
+ };
3139
3150
  } (_tslib$1));
3140
3151
 
3141
3152
  var require$$1 = /*@__PURE__*/getAugmentedNamespace(jss_esm);
@@ -3495,6 +3506,8 @@ function jssCombineAndSortMQ(options) {
3495
3506
 
3496
3507
  var dist = jssCombineAndSortMQ;
3497
3508
 
3509
+ var jssPluginSortMediaQueries = /*@__PURE__*/getDefaultExportFromCjs(dist);
3510
+
3498
3511
  /* Auto Generated Start */
3499
3512
  const themeLight = {
3500
3513
  primaryColor: '#010205',
@@ -3617,7 +3630,7 @@ createJss({
3617
3630
  jssGlobal(),
3618
3631
  jssNested(),
3619
3632
  camelCase$1(),
3620
- dist({ combineMediaQueries: true }),
3633
+ jssPluginSortMediaQueries({ combineMediaQueries: true }),
3621
3634
  ],
3622
3635
  });
3623
3636
  const supportsConstructableStylesheets = () => {
@@ -3643,10 +3656,6 @@ const isScrollable = (isPrevHidden, isNextHidden) => {
3643
3656
  const hasDocument = typeof document !== 'undefined';
3644
3657
 
3645
3658
  hasDocument && 'scrollBehavior' in document.documentElement.style;
3646
- const win = typeof window !== 'undefined' ? window : {};
3647
- win.document || { head: {} };
3648
- (win.HTMLElement || class {
3649
- });
3650
3659
 
3651
3660
  const formatObjectOutput = (value) => {
3652
3661
  return JSON.stringify(value)
@@ -3797,7 +3806,7 @@ Object.entries(innerManifest[size])
3797
3806
  .join();
3798
3807
 
3799
3808
  const CDN_BASE_URL = (typeof window !== 'undefined' && window.PORSCHE_DESIGN_SYSTEM_CDN === 'cn' ? 'https://cdn.ui.porsche.cn' : 'https://cdn.ui.porsche.com') + '/porsche-design-system/model-signatures';
3800
- const MODEL_SIGNATURES_MANIFEST = { "718": "718.min.64611f93dc2fc9e234e25b88cca12593.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" };
3809
+ 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" };
3801
3810
  const getSvgUrl = (model) => {
3802
3811
  const cdnBaseUrl = CDN_BASE_URL
3803
3812
  ;
@@ -4014,6 +4023,29 @@ if (tempIcon) {
4014
4023
  tempIcon.style.width = ICON_SIZE;
4015
4024
  tempIcon.style.marginRight = ICON_MARGIN;
4016
4025
  }
4026
+ const getSelectWrapperDropdownButtonAriaAttributes = (isOpen, labelId, descriptionId, dropdownId, activeDescendantId) => {
4027
+ return Object.assign({ 'aria-labelledby': labelId, 'aria-describedby': descriptionId || null, 'aria-haspopup': 'listbox', 'aria-expanded': isOpen ? 'true' : 'false', 'aria-controls': dropdownId }, (isOpen && {
4028
+ 'aria-activedescendant': `option-${activeDescendantId}`,
4029
+ }));
4030
+ };
4031
+ const getFilterInputAriaAttributes = (isOpen, isRequired, labelId, descriptionId, dropdownId, activeDescendantId) => {
4032
+ return Object.assign(Object.assign(Object.assign({}, getSelectWrapperDropdownButtonAriaAttributes(isOpen, labelId, descriptionId, dropdownId, activeDescendantId)), { 'aria-autocomplete': 'list' }), (isRequired && {
4033
+ 'aria-required': 'true',
4034
+ }));
4035
+ };
4036
+ const getHighlightedOptionMapIndex = (arr) => arr.findIndex((item) => item.highlighted);
4037
+ const getSelectedOptionMap = (arr) => arr.find((item) => item.selected);
4038
+ const isCustomDropdown = (filter, native) => {
4039
+ if (filter) {
4040
+ return true;
4041
+ }
4042
+ else if (native) {
4043
+ return false;
4044
+ }
4045
+ else {
4046
+ return !isTouchDevice();
4047
+ }
4048
+ };
4017
4049
  const isStateCompleteOrWarning = (state) => {
4018
4050
  return state === 'complete' || state === 'warning';
4019
4051
  };
@@ -4083,14 +4115,18 @@ exports.getContentAriaAttributes = getContentAriaAttributes;
4083
4115
  exports.getCurrentActivePage = getCurrentActivePage;
4084
4116
  exports.getDirectChildHTMLElement = getDirectChildHTMLElement;
4085
4117
  exports.getDisplayTagType = getDisplayTagType;
4118
+ exports.getFilterInputAriaAttributes = getFilterInputAriaAttributes;
4086
4119
  exports.getHTMLElement = getHTMLElement;
4087
4120
  exports.getHeadingTagType = getHeadingTagType;
4088
4121
  exports.getHeadlineTagType = getHeadlineTagType;
4122
+ exports.getHighlightedOptionMapIndex = getHighlightedOptionMapIndex;
4089
4123
  exports.getIconColor = getIconColor;
4090
4124
  exports.getInlineNotificationIconName = getInlineNotificationIconName;
4091
4125
  exports.getInnerManifest = getInnerManifest;
4092
4126
  exports.getLinkButtonThemeForIcon = getLinkButtonThemeForIcon;
4093
4127
  exports.getRole = getRole;
4128
+ exports.getSelectWrapperDropdownButtonAriaAttributes = getSelectWrapperDropdownButtonAriaAttributes;
4129
+ exports.getSelectedOptionMap = getSelectedOptionMap;
4094
4130
  exports.getStepperHorizontalIconName = getStepperHorizontalIconName;
4095
4131
  exports.getSvgUrl = getSvgUrl;
4096
4132
  exports.getSwitchButtonAriaAttributes = getSwitchButtonAriaAttributes;
@@ -4102,6 +4138,7 @@ exports.hasLocateAction = hasLocateAction;
4102
4138
  exports.hasSpecificSlottedTag = hasSpecificSlottedTag;
4103
4139
  exports.hasVisibleIcon = hasVisibleIcon;
4104
4140
  exports.hasWindow = hasWindow;
4141
+ exports.isCustomDropdown = isCustomDropdown;
4105
4142
  exports.isDisabledOrLoading = isDisabledOrLoading;
4106
4143
  exports.isHighContrastMode = isHighContrastMode;
4107
4144
  exports.isListTypeOrdered = isListTypeOrdered;
@@ -4109,6 +4146,7 @@ exports.isScrollable = isScrollable;
4109
4146
  exports.isSortable = isSortable;
4110
4147
  exports.isStateCompleteOrWarning = isStateCompleteOrWarning;
4111
4148
  exports.isThemeDark = isThemeDark;
4149
+ exports.isTouchDevice = isTouchDevice;
4112
4150
  exports.isType = isType;
4113
4151
  exports.isUrl = isUrl;
4114
4152
  exports.isWithinForm = isWithinForm;
@@ -6,7 +6,7 @@ var hooks = require('../../hooks.js');
6
6
  var utils = require('../../utils.js');
7
7
  var icon = require('../dsr-components/icon.js');
8
8
 
9
- const PIcon = react.forwardRef(({ aria, color = 'primary', lazy = false, name = 'arrow-right', size = 'small', source, theme = 'light', className, ...rest }, ref) => {
9
+ const PIcon = react.forwardRef(({ aria, color = 'primary', lazy, name = 'arrow-right', size = 'small', source, theme = 'light', className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef();
11
11
  const WebComponentTag = hooks.usePrefix('p-icon');
12
12
  const propsToSync = [aria, color, lazy, name, size, source, theme];