@porsche-design-system/components-react 3.9.0 → 3.10.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/cjs/lib/components/flyout-navigation-item.wrapper.cjs +25 -0
  3. package/cjs/lib/components/flyout-navigation.wrapper.cjs +27 -0
  4. package/cjs/lib/components/link-tile-product.wrapper.cjs +26 -0
  5. package/cjs/lib/components/pagination.wrapper.cjs +1 -1
  6. package/cjs/lib/components/text-field-wrapper.wrapper.cjs +3 -3
  7. package/cjs/public-api.cjs +6 -0
  8. package/esm/lib/components/flyout-navigation-item.wrapper.d.ts +11 -0
  9. package/esm/lib/components/flyout-navigation-item.wrapper.mjs +23 -0
  10. package/esm/lib/components/flyout-navigation.wrapper.d.ts +56 -0
  11. package/esm/lib/components/flyout-navigation.wrapper.mjs +25 -0
  12. package/esm/lib/components/index.d.ts +3 -0
  13. package/esm/lib/components/link-tile-product.wrapper.d.ts +96 -0
  14. package/esm/lib/components/link-tile-product.wrapper.mjs +24 -0
  15. package/esm/lib/components/pagination.wrapper.d.ts +4 -2
  16. package/esm/lib/components/pagination.wrapper.mjs +1 -1
  17. package/esm/lib/components/text-field-wrapper.wrapper.d.ts +8 -0
  18. package/esm/lib/components/text-field-wrapper.wrapper.mjs +3 -3
  19. package/esm/lib/types.d.ts +18 -0
  20. package/esm/public-api.mjs +3 -0
  21. package/package.json +2 -2
  22. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +1056 -425
  23. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +84 -69
  24. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/flyout-navigation-item.wrapper.cjs +39 -0
  25. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/flyout-navigation.wrapper.cjs +41 -0
  26. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/link-tile-product.wrapper.cjs +40 -0
  27. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/pagination.wrapper.cjs +1 -1
  28. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/text-field-wrapper.wrapper.cjs +4 -4
  29. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.cjs +3 -0
  30. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.cjs +3 -0
  31. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.cjs +3 -0
  32. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.cjs +3 -0
  33. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.cjs +3 -0
  34. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.cjs +4 -1
  35. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.cjs +3 -0
  36. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation-item.cjs +95 -0
  37. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation.cjs +94 -0
  38. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.cjs +3 -0
  39. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.cjs +3 -0
  40. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.cjs +3 -0
  41. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-social.cjs +3 -0
  42. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-model-signature.cjs +3 -0
  43. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-product.cjs +92 -0
  44. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.cjs +3 -0
  45. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link.cjs +3 -0
  46. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.cjs +3 -0
  47. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.cjs +3 -0
  48. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +3 -0
  49. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.cjs +17 -11
  50. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +3 -0
  51. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/popover.cjs +3 -0
  52. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.cjs +3 -0
  53. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.cjs +3 -0
  54. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control-item.cjs +3 -0
  55. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.cjs +7 -1
  56. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.cjs +3 -0
  57. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/state-message.cjs +3 -0
  58. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal-item.cjs +3 -0
  59. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.cjs +3 -0
  60. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.cjs +3 -0
  61. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table-head-cell.cjs +3 -0
  62. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.cjs +3 -0
  63. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.cjs +3 -0
  64. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.cjs +3 -0
  65. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag-dismissible.cjs +3 -0
  66. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.cjs +3 -0
  67. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.cjs +5 -2
  68. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/minifyCss.cjs +7 -1
  69. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/public-api.cjs +6 -0
  70. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +1027 -399
  71. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +82 -69
  72. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/flyout-navigation-item.wrapper.mjs +37 -0
  73. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/flyout-navigation.wrapper.mjs +39 -0
  74. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/link-tile-product.wrapper.mjs +38 -0
  75. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/pagination.wrapper.mjs +1 -1
  76. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/text-field-wrapper.wrapper.mjs +4 -4
  77. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.mjs +5 -2
  78. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.mjs +5 -2
  79. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-group.mjs +2 -2
  80. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +5 -2
  81. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +5 -2
  82. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.mjs +5 -2
  83. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +6 -3
  84. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.mjs +5 -2
  85. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/content-wrapper.mjs +2 -2
  86. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/crest.mjs +2 -2
  87. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.mjs +2 -2
  88. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/divider.mjs +2 -2
  89. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset-wrapper.mjs +2 -2
  90. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset.mjs +2 -2
  91. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex-item.mjs +2 -2
  92. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex.mjs +2 -2
  93. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation-item.mjs +93 -0
  94. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation.mjs +92 -0
  95. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +5 -2
  96. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid-item.mjs +2 -2
  97. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid.mjs +2 -2
  98. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.mjs +2 -2
  99. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/headline.mjs +2 -2
  100. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/icon.mjs +2 -2
  101. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.mjs +5 -2
  102. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.mjs +5 -2
  103. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-social.mjs +5 -2
  104. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-model-signature.mjs +5 -2
  105. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-product.mjs +90 -0
  106. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.mjs +3 -0
  107. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link.mjs +5 -2
  108. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.mjs +3 -0
  109. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.mjs +3 -0
  110. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +3 -0
  111. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.mjs +18 -12
  112. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +3 -0
  113. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/popover.mjs +3 -0
  114. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.mjs +3 -0
  115. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +3 -0
  116. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control-item.mjs +3 -0
  117. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.mjs +7 -1
  118. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.mjs +3 -0
  119. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/state-message.mjs +3 -0
  120. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal-item.mjs +3 -0
  121. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.mjs +3 -0
  122. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.mjs +3 -0
  123. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table-head-cell.mjs +3 -0
  124. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.mjs +3 -0
  125. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.mjs +3 -0
  126. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.mjs +3 -0
  127. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag-dismissible.mjs +3 -0
  128. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.mjs +3 -0
  129. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.mjs +5 -2
  130. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/minifyCss.mjs +7 -1
  131. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/public-api.mjs +3 -0
  132. package/ssr/esm/lib/components/flyout-navigation-item.wrapper.d.ts +11 -0
  133. package/ssr/esm/lib/components/flyout-navigation.wrapper.d.ts +56 -0
  134. package/ssr/esm/lib/components/index.d.ts +3 -0
  135. package/ssr/esm/lib/components/link-tile-product.wrapper.d.ts +96 -0
  136. package/ssr/esm/lib/components/pagination.wrapper.d.ts +4 -2
  137. package/ssr/esm/lib/components/text-field-wrapper.wrapper.d.ts +8 -0
  138. package/ssr/esm/lib/dsr-components/flyout-navigation-item.d.ts +8 -0
  139. package/ssr/esm/lib/dsr-components/flyout-navigation.d.ts +8 -0
  140. package/ssr/esm/lib/dsr-components/link-tile-product.d.ts +6 -0
  141. package/ssr/esm/lib/dsr-components/pagination.d.ts +0 -2
  142. package/ssr/esm/lib/dsr-components/select-wrapper-dropdown.d.ts +3 -0
  143. package/ssr/esm/lib/types.d.ts +18 -0
@@ -1,9 +1,5 @@
1
1
  'use strict';
2
2
 
3
- const isDisabledOrLoading = (disabled, loading) => {
4
- return disabled || loading;
5
- };
6
-
7
3
  function _extends() {
8
4
  _extends = Object.assign ? Object.assign.bind() : function (target) {
9
5
  for (var i = 1; i < arguments.length; i++) {
@@ -2356,18 +2352,18 @@ function getDynamicStyles(styles) {
2356
2352
  var index = createJss();
2357
2353
 
2358
2354
  var jss_esm = /*#__PURE__*/Object.freeze({
2359
- __proto__: null,
2360
- RuleList: RuleList,
2361
- SheetsManager: SheetsManager,
2362
- SheetsRegistry: SheetsRegistry,
2363
- create: createJss,
2364
- createGenerateId: createGenerateId,
2365
- createRule: createRule,
2366
- default: index,
2367
- getDynamicStyles: getDynamicStyles,
2368
- hasCSSTOMSupport: hasCSSTOMSupport,
2369
- sheets: sheets,
2370
- toCssValue: toCssValue
2355
+ __proto__: null,
2356
+ RuleList: RuleList,
2357
+ SheetsManager: SheetsManager,
2358
+ SheetsRegistry: SheetsRegistry,
2359
+ create: createJss,
2360
+ createGenerateId: createGenerateId,
2361
+ createRule: createRule,
2362
+ default: index,
2363
+ getDynamicStyles: getDynamicStyles,
2364
+ hasCSSTOMSupport: hasCSSTOMSupport,
2365
+ sheets: sheets,
2366
+ toCssValue: toCssValue
2371
2367
  });
2372
2368
 
2373
2369
  var at = '@global';
@@ -3157,6 +3153,10 @@ var dist = jssCombineAndSortMQ;
3157
3153
 
3158
3154
  var jssPluginSortMediaQueries = /*@__PURE__*/getDefaultExportFromCjs(dist);
3159
3155
 
3156
+ const isDisabledOrLoading = (disabled, loading) => {
3157
+ return disabled || loading;
3158
+ };
3159
+
3160
3160
  const hasWindow = typeof window !== 'undefined';
3161
3161
 
3162
3162
  const isHighContrastMode = hasWindow && window.matchMedia?.('(forced-colors: active)').matches;
@@ -3212,6 +3212,27 @@ const dropShadowHighStyle = {
3212
3212
 
3213
3213
  const themeLightStateFocus = '#1A44EA';
3214
3214
 
3215
+ const getFocusStyle = (opts) => {
3216
+ const { borderRadius = 'small', offset = '2px' } = opts || {};
3217
+ const outlineOffset = offset === 'small' ? '2px' : offset === 'none' ? 0 : offset || '2px';
3218
+ const borderRadiusValue = borderRadius === 'small'
3219
+ ? borderRadiusSmall
3220
+ : borderRadius === 'medium'
3221
+ ? borderRadiusMedium
3222
+ : borderRadius || borderRadiusSmall;
3223
+ return {
3224
+ borderRadius: borderRadiusValue,
3225
+ '&:focus': {
3226
+ outline: `${borderWidthBase} solid ${themeLightStateFocus}`,
3227
+ outlineOffset,
3228
+ },
3229
+ // why? have a look at this article https://www.tpgi.com/focus-visible-and-backwards-compatibility/
3230
+ '&:focus:not(:focus-visible)': {
3231
+ outlineColor: 'transparent',
3232
+ },
3233
+ };
3234
+ };
3235
+
3215
3236
  const fontFamily = "'Porsche Next','Arial Narrow',Arial,'Heiti SC',SimHei,sans-serif";
3216
3237
 
3217
3238
  const fontHyphenationStyle = {
@@ -3459,6 +3480,11 @@ const headingXXLargeStyle = {
3459
3480
  const _textFontPartA = `${fontStyleNormal} ${fontVariant} ${fontWeightRegular} `;
3460
3481
  const _textFontPartB = `/${fontLineHeight} ${fontFamily}`;
3461
3482
 
3483
+ const textXXSmallStyle = {
3484
+ font: `${_textFontPartA}${fontSizeTextXXSmall}${_textFontPartB}`,
3485
+ ...fontHyphenationStyle,
3486
+ };
3487
+
3462
3488
  const textXSmallStyle = {
3463
3489
  font: `${_textFontPartA}${fontSizeTextXSmall}${_textFontPartB}`,
3464
3490
  ...fontHyphenationStyle,
@@ -3835,10 +3861,13 @@ const getResetInitialStylesForSlottedAnchor = {
3835
3861
  };
3836
3862
  const focusPseudoJssStyle = {
3837
3863
  outline: 0,
3838
- '&:focus::before': {
3864
+ '&::before': {
3865
+ // needs to be defined always to have correct custom click area
3839
3866
  content: '""',
3840
3867
  position: 'absolute',
3841
3868
  ...getInsetJssStyle(),
3869
+ },
3870
+ '&:focus::before': {
3842
3871
  borderRadius: '1px',
3843
3872
  outline: `${borderWidthBase} solid ${themeLightStateFocus}`,
3844
3873
  outlineOffset: '2px',
@@ -4046,6 +4075,9 @@ const isThemeDark = (theme) => {
4046
4075
  return theme === 'dark';
4047
4076
  };
4048
4077
 
4078
+ const headerSlot = 'header';
4079
+ const anchorSlot = 'anchor';
4080
+
4049
4081
  const formatObjectOutput = (value) => {
4050
4082
  return JSON.stringify(value)
4051
4083
  .replace(/"([a-zA-Z?]+)":/g, '$1:') // remove double quotes from keys
@@ -4058,22 +4090,25 @@ const formatObjectOutput = (value) => {
4058
4090
 
4059
4091
  const HEADING_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
4060
4092
 
4061
- const getComponentCss$10 = (size, compact, open, theme) => {
4093
+ const getComponentCss$13 = (size, compact, open, theme) => {
4062
4094
  const { primaryColor, hoverColor, focusColor, contrastLowColor } = getThemedColors(theme);
4063
4095
  const { primaryColor: primaryColorDark, hoverColor: hoverColorDark, focusColor: focusColorDark, contrastLowColor: contrastLowColorDark, } = getThemedColors('dark');
4064
4096
  return getCss({
4065
4097
  '@global': {
4066
- ':host': addImportantToEachRule({
4098
+ ':host': {
4067
4099
  display: 'block',
4068
- ...(!compact && {
4069
- borderBottom: `1px solid ${contrastLowColor}`,
4070
- ...prefersColorSchemeDarkMediaQuery(theme, {
4071
- borderColor: contrastLowColorDark,
4100
+ ...addImportantToEachRule({
4101
+ ...(!compact && {
4102
+ borderBottom: `1px solid ${contrastLowColor}`,
4103
+ ...prefersColorSchemeDarkMediaQuery(theme, {
4104
+ borderColor: contrastLowColorDark,
4105
+ }),
4072
4106
  }),
4107
+ '&(:only-of-type)': { borderBottom: 0 },
4108
+ ...colorSchemeStyles,
4109
+ ...hostHiddenStyles,
4073
4110
  }),
4074
- ...colorSchemeStyles,
4075
- ...hostHiddenStyles,
4076
- }),
4111
+ },
4077
4112
  button: {
4078
4113
  display: 'flex',
4079
4114
  position: 'relative',
@@ -4198,7 +4233,7 @@ const cssVariableTop = '--p-banner-position-top';
4198
4233
  const cssVariableBottom = '--p-banner-position-bottom';
4199
4234
  const cssVariableZIndex = '--p-internal-banner-z-index';
4200
4235
  const topBottomFallback = '56px';
4201
- const getComponentCss$$ = (isOpen) => {
4236
+ const getComponentCss$12 = (isOpen) => {
4202
4237
  return getCss({
4203
4238
  '@global': {
4204
4239
  ':host': addImportantToEachRule({
@@ -4261,7 +4296,7 @@ const getGroupDirectionJssStyles = (direction) => {
4261
4296
  return groupDirectionJssStyles[direction];
4262
4297
  };
4263
4298
 
4264
- const getComponentCss$_ = (direction) => {
4299
+ const getComponentCss$11 = (direction) => {
4265
4300
  return getCss({
4266
4301
  '@global': {
4267
4302
  ':host': {
@@ -4415,7 +4450,7 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4415
4450
  };
4416
4451
  };
4417
4452
 
4418
- const getComponentCss$Z = (icon, iconSource, active, isLoading, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, theme) => {
4453
+ const getComponentCss$10 = (icon, iconSource, active, isLoading, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, theme) => {
4419
4454
  const hasIcon = hasVisibleIcon(icon, iconSource);
4420
4455
  return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, false, theme), {
4421
4456
  root: {
@@ -4592,7 +4627,7 @@ background, align, compact, hasGradient, isDisabled) => {
4592
4627
  });
4593
4628
  };
4594
4629
 
4595
- const getComponentCss$Y = (isDisabledOrLoading, ...args) => {
4630
+ const getComponentCss$$ = (isDisabledOrLoading, ...args) => {
4596
4631
  const buttonLinkTileStyles = getButtonLinkTileStyles(...args);
4597
4632
  return getCss({
4598
4633
  ...buttonLinkTileStyles,
@@ -4728,7 +4763,7 @@ const getDisabledColors = (variant, loading, theme) => {
4728
4763
  };
4729
4764
  return colors[variant === 'tertiary' ? 'secondary' : variant];
4730
4765
  };
4731
- const getComponentCss$X = (icon, iconSource, variant, hideLabel, disabled, loading, theme) => {
4766
+ const getComponentCss$_ = (icon, iconSource, variant, hideLabel, disabled, loading, theme) => {
4732
4767
  const disabledOrLoading = isDisabledOrLoading(disabled, loading);
4733
4768
  const { textColor, borderColor, backgroundColor } = getDisabledColors(variant, loading, theme);
4734
4769
  const { textColor: textColorDark, borderColor: borderColorDark, backgroundColor: backgroundColorDark, } = getDisabledColors(variant, loading, 'dark');
@@ -4800,53 +4835,57 @@ const spacingMap = {
4800
4835
  basic: gridBasicOffset,
4801
4836
  extended: gridExtendedOffset,
4802
4837
  };
4803
- const getComponentCss$W = (width, hasPagination, isInfinitePagination, alignHeader, theme) => {
4838
+ const getComponentCss$Z = (width, hasPagination, isInfinitePagination, alignHeader, theme) => {
4804
4839
  const { primaryColor, contrastMediumColor, focusColor } = getThemedColors(theme);
4805
4840
  const { primaryColor: primaryColorDark, contrastMediumColor: contrastMediumColorDark, focusColor: focusColorDark, } = getThemedColors('dark');
4806
4841
  const { canvasTextColor } = getHighContrastColors();
4807
4842
  const isHeaderAlignCenter = alignHeader === 'center';
4808
4843
  return getCss({
4809
4844
  '@global': {
4810
- ':host': addImportantToEachRule({
4845
+ ':host': {
4811
4846
  display: 'flex',
4812
- gap: spacingFluidMedium,
4813
- flexDirection: 'column',
4814
- boxSizing: 'content-box',
4815
- ...colorSchemeStyles,
4816
- ...hostHiddenStyles,
4817
- }),
4818
- '::slotted(*)': {
4819
- borderRadius: addImportantToRule(`var(--p-carousel-border-radius, ${borderRadiusLarge})`),
4820
- },
4821
- '::slotted(*:focus-visible)': addImportantToEachRule({
4822
- outline: `${borderWidthBase} solid ${focusColor}`,
4823
- ...prefersColorSchemeDarkMediaQuery(theme, {
4824
- outlineColor: focusColorDark,
4825
- }),
4826
- outlineOffset: '2px',
4827
- }),
4828
- [selectorHeading]: addImportantToEachRule({
4829
- ...headingXLargeStyle,
4830
- maxWidth: '56.25rem',
4831
- margin: 0,
4832
- }),
4833
- [selectorDescription]: addImportantToEachRule({
4834
- ...textSmallStyle,
4835
- maxWidth: '34.375rem',
4836
- margin: `${spacingFluidXSmall} 0 0`,
4837
- }),
4838
- [`${selectorHeading},${selectorDescription}`]: addImportantToEachRule({
4839
- color: primaryColor,
4840
- ...prefersColorSchemeDarkMediaQuery(theme, {
4841
- color: primaryColorDark,
4847
+ ...addImportantToEachRule({
4848
+ gap: spacingFluidMedium,
4849
+ flexDirection: 'column',
4850
+ boxSizing: 'content-box',
4851
+ ...colorSchemeStyles,
4852
+ ...hostHiddenStyles,
4842
4853
  }),
4843
- [mediaQueryS]: isHeaderAlignCenter
4844
- ? {
4845
- gridColumn: 2,
4846
- }
4847
- : {
4848
- gridColumn: '1 / 3',
4849
- },
4854
+ },
4855
+ ...addImportantToEachRule({
4856
+ '::slotted(*)': {
4857
+ borderRadius: `var(--p-carousel-border-radius, ${borderRadiusLarge})`,
4858
+ },
4859
+ '::slotted(*:focus-visible)': {
4860
+ outline: `${borderWidthBase} solid ${focusColor}`,
4861
+ ...prefersColorSchemeDarkMediaQuery(theme, {
4862
+ outlineColor: focusColorDark,
4863
+ }),
4864
+ outlineOffset: '2px',
4865
+ },
4866
+ [selectorHeading]: {
4867
+ ...headingXLargeStyle,
4868
+ maxWidth: '56.25rem',
4869
+ margin: 0,
4870
+ },
4871
+ [selectorDescription]: {
4872
+ ...textSmallStyle,
4873
+ maxWidth: '34.375rem',
4874
+ margin: `${spacingFluidXSmall} 0 0`,
4875
+ },
4876
+ [`${selectorHeading},${selectorDescription}`]: {
4877
+ color: primaryColor,
4878
+ ...prefersColorSchemeDarkMediaQuery(theme, {
4879
+ color: primaryColorDark,
4880
+ }),
4881
+ [mediaQueryS]: isHeaderAlignCenter
4882
+ ? {
4883
+ gridColumn: 2,
4884
+ }
4885
+ : {
4886
+ gridColumn: '1 / 3',
4887
+ },
4888
+ },
4850
4889
  }),
4851
4890
  },
4852
4891
  header: {
@@ -5204,7 +5243,7 @@ const getCheckedSVGBackgroundImage$1 = (fill) => {
5204
5243
  const getIndeterminateSVGBackgroundImage = (fill) => {
5205
5244
  return getInlineSVGBackgroundImage(`<path fill="${fill}" d="m20,11v2H4v-2h16Z"/>`);
5206
5245
  };
5207
- const getComponentCss$V = (hideLabel, state, isDisabled, isLoading, theme) => {
5246
+ const getComponentCss$Y = (hideLabel, state, isDisabled, isLoading, theme) => {
5208
5247
  const { canvasColor } = getHighContrastColors();
5209
5248
  const checkedIconColor = isHighContrastMode
5210
5249
  ? canvasColor
@@ -5302,7 +5341,7 @@ const widthMap = {
5302
5341
  basic: gridBasicOffset,
5303
5342
  extended: gridExtendedOffset,
5304
5343
  };
5305
- const getComponentCss$U = (width) => {
5344
+ const getComponentCss$X = (width) => {
5306
5345
  return getCss({
5307
5346
  '@global': {
5308
5347
  ':host': {
@@ -5344,7 +5383,7 @@ const getDimensionStyle = {
5344
5383
  width: 'inherit',
5345
5384
  height: 'inherit',
5346
5385
  };
5347
- const getComponentCss$T = () => {
5386
+ const getComponentCss$W = () => {
5348
5387
  return getCss({
5349
5388
  '@global': {
5350
5389
  ':host': {
@@ -5432,7 +5471,7 @@ const sizeMap$4 = {
5432
5471
  medium: fontSizeDisplayMedium,
5433
5472
  large: fontSizeDisplayLarge,
5434
5473
  };
5435
- const getComponentCss$S = (size, align, color, ellipsis, theme) => {
5474
+ const getComponentCss$V = (size, align, color, ellipsis, theme) => {
5436
5475
  return getCss({
5437
5476
  '@global': {
5438
5477
  ':host': {
@@ -5452,7 +5491,7 @@ const getComponentCss$S = (size, align, color, ellipsis, theme) => {
5452
5491
  });
5453
5492
  };
5454
5493
 
5455
- const getComponentCss$R = (color, orientation, theme) => {
5494
+ const getComponentCss$U = (color, orientation, theme) => {
5456
5495
  const { contrastLowColor, contrastMediumColor, contrastHighColor } = getThemedColors(theme);
5457
5496
  const { contrastLowColor: contrastLowColorDark, contrastMediumColor: contrastMediumColorDark, contrastHighColor: contrastHighColorDark, } = getThemedColors('dark');
5458
5497
  const colorMap = {
@@ -5495,14 +5534,16 @@ const getComponentCss$R = (color, orientation, theme) => {
5495
5534
  });
5496
5535
  };
5497
5536
 
5498
- const getComponentCss$Q = (state, labelSize, hasLabel, theme) => {
5537
+ const getComponentCss$T = (state, labelSize, hasLabel, theme) => {
5499
5538
  return getCss({
5500
5539
  '@global': {
5501
- ':host': addImportantToEachRule({
5540
+ ':host': {
5502
5541
  display: 'block',
5503
- ...colorSchemeStyles,
5504
- ...hostHiddenStyles,
5505
- }),
5542
+ ...addImportantToEachRule({
5543
+ ...colorSchemeStyles,
5544
+ ...hostHiddenStyles,
5545
+ }),
5546
+ },
5506
5547
  fieldset: {
5507
5548
  margin: 0,
5508
5549
  padding: 0,
@@ -5529,14 +5570,16 @@ const getComponentCss$Q = (state, labelSize, hasLabel, theme) => {
5529
5570
  });
5530
5571
  };
5531
5572
 
5532
- const getComponentCss$P = (state, labelSize, hasLabel, theme) => {
5573
+ const getComponentCss$S = (state, labelSize, hasLabel, theme) => {
5533
5574
  return getCss({
5534
5575
  '@global': {
5535
- ':host': addImportantToEachRule({
5576
+ ':host': {
5536
5577
  display: 'block',
5537
- ...colorSchemeStyles,
5538
- ...hostHiddenStyles,
5539
- }),
5578
+ ...addImportantToEachRule({
5579
+ ...colorSchemeStyles,
5580
+ ...hostHiddenStyles,
5581
+ }),
5582
+ },
5540
5583
  fieldset: {
5541
5584
  margin: 0,
5542
5585
  padding: 0,
@@ -5573,7 +5616,7 @@ const flexItemWidths = {
5573
5616
  full: 100,
5574
5617
  auto: 'auto',
5575
5618
  };
5576
- const getComponentCss$O = (width, offset, alignSelf, grow, shrink, flex) => {
5619
+ const getComponentCss$R = (width, offset, alignSelf, grow, shrink, flex) => {
5577
5620
  return getCss({
5578
5621
  '@global': {
5579
5622
  ':host': addImportantToEachRule({
@@ -5595,162 +5638,532 @@ const getComponentCss$O = (width, offset, alignSelf, grow, shrink, flex) => {
5595
5638
  });
5596
5639
  };
5597
5640
 
5598
- const getComponentCss$N = (inline, wrap, direction, justifyContent, alignItems, alignContent) => {
5641
+ const getComponentCss$Q = (inline, wrap, direction, justifyContent, alignItems, alignContent) => {
5599
5642
  return getCss({
5600
5643
  '@global': {
5601
- ':host': addImportantToEachRule(mergeDeep(colorSchemeStyles, hostHiddenStyles, buildResponsiveStyles(inline, (inlineResponsive) => ({
5602
- display: inlineResponsive ? 'inline-flex' : 'flex',
5603
- })), buildResponsiveStyles(wrap, (flexWrapResponsive) => ({ flexWrap: flexWrapResponsive })), buildResponsiveStyles(direction, (flexDirectionResponsive) => ({
5604
- flexDirection: flexDirectionResponsive,
5605
- })), buildResponsiveStyles(justifyContent, (justifyContentResponsive) => ({
5606
- justifyContent: justifyContentResponsive,
5607
- })), buildResponsiveStyles(alignItems, (alignItemsResponsive) => ({
5608
- alignItems: alignItemsResponsive,
5609
- })), buildResponsiveStyles(alignContent, (alignContentResponsive) => ({
5610
- alignContent: alignContentResponsive,
5611
- })))),
5644
+ ':host': {
5645
+ ...buildResponsiveStyles(inline, (inlineResponsive) => ({
5646
+ display: inlineResponsive ? 'inline-flex' : 'flex',
5647
+ })),
5648
+ ...addImportantToEachRule(mergeDeep(colorSchemeStyles, hostHiddenStyles, buildResponsiveStyles(wrap, (flexWrapResponsive) => ({ flexWrap: flexWrapResponsive })), buildResponsiveStyles(direction, (flexDirectionResponsive) => ({
5649
+ flexDirection: flexDirectionResponsive,
5650
+ })), buildResponsiveStyles(justifyContent, (justifyContentResponsive) => ({
5651
+ justifyContent: justifyContentResponsive,
5652
+ })), buildResponsiveStyles(alignItems, (alignItemsResponsive) => ({
5653
+ alignItems: alignItemsResponsive,
5654
+ })), buildResponsiveStyles(alignContent, (alignContentResponsive) => ({
5655
+ alignContent: alignContentResponsive,
5656
+ })))),
5657
+ },
5612
5658
  },
5613
5659
  });
5614
5660
  };
5615
5661
 
5616
- const headerShadowClass = 'header--shadow';
5617
- const footerShadowClass$1 = 'footer--shadow';
5618
- const getComponentCss$M = (isOpen, position, hasFooter, hasSubFooter, theme) => {
5619
- const { primaryColor, backgroundColor } = getThemedColors(theme);
5620
- const { primaryColor: primaryColorDark, backgroundColor: backgroundColorDark } = getThemedColors('dark');
5621
- const isPositionStart = position === 'start';
5622
- const contentPadding = `${spacingStaticMedium} ${spacingFluidLarge}`;
5623
- const isDark = isThemeDark(theme);
5624
- const shadowColor = isDark ? scrollShadowColorDark : scrollShadowColor;
5625
- const transparentColorDark = 'rgba(14, 14, 18, 0)';
5626
- const transparentColor = isDark ? transparentColorDark : 'rgba(255, 255, 255, 0)';
5662
+ const cssVariableVisibility = '--p-internal-flyout-navigation-visibility';
5663
+ const cssVariableVisibilityTransitionDuration = '--p-internal-flyout-navigation-visibility-transition-duration';
5664
+ const frostedGlassHeaderHeight = '4rem';
5665
+ const frostedGlassBackgroundColorLight$1 = 'rgba(255, 255, 255, 0.79)';
5666
+ const frostedGlassBackgroundColorDark$1 = 'rgba(14, 14, 18, 0.79)';
5667
+ const scrollerWidthEnhancedView = 'clamp(338px, 10.52vw + 258px, 460px)';
5668
+ const mediaQueryEnhancedView = getMediaQueryMin('s');
5669
+ const getComponentCss$P = (isPrimaryScrollerVisible, isSecondaryScrollerVisible, theme) => {
5670
+ const { backgroundColor } = getThemedColors(theme);
5671
+ const { backgroundColor: backgroundColorDark } = getThemedColors('dark');
5672
+ const frostedGlassBackgroundColor = isThemeDark(theme)
5673
+ ? frostedGlassBackgroundColorDark$1
5674
+ : frostedGlassBackgroundColorLight$1;
5627
5675
  return getCss({
5628
5676
  '@global': {
5629
5677
  ':host': {
5630
- display: 'flex',
5678
+ display: 'block',
5631
5679
  ...addImportantToEachRule({
5632
- // needed for correct alignment of the Porsche Grid within the Flyout
5633
- '--pds-internal-grid-outer-column': `calc(${spacingFluidLarge} - ${gridGap})`,
5634
- '--pds-internal-grid-margin': `calc(${spacingFluidLarge} * -1)`,
5635
- position: 'fixed',
5636
- zIndex: FLYOUT_Z_INDEX,
5637
- justifyContent: isPositionStart ? 'flex-start' : 'flex-end',
5638
- ...(isOpen
5639
- ? {
5640
- visibility: 'inherit',
5641
- }
5642
- : {
5643
- visibility: 'hidden',
5644
- transition: `visibility 0s linear var(${cssVariableTransitionDuration}, ${motionDurationLong})`,
5645
- }),
5646
- ...getInsetJssStyle(),
5647
- ...getFrostedGlassBackgroundJssStyles(isOpen, 'long', theme),
5680
+ ...(!isPrimaryScrollerVisible && {
5681
+ [cssVariableVisibility]: 'hidden',
5682
+ [cssVariableVisibilityTransitionDuration]: motionDurationLong,
5683
+ }),
5684
+ ...getBackdropJssStyle(isPrimaryScrollerVisible, 'long', theme),
5648
5685
  ...colorSchemeStyles,
5649
5686
  ...hostHiddenStyles,
5650
5687
  }),
5651
5688
  },
5689
+ dialog: {
5690
+ position: 'fixed',
5691
+ ...getInsetJssStyle(),
5692
+ display: 'grid',
5693
+ width: 'auto',
5694
+ height: '100vh',
5695
+ maxWidth: '100vw',
5696
+ maxHeight: '100vh',
5697
+ margin: 0,
5698
+ padding: 0,
5699
+ border: 0,
5700
+ visibility: 'inherit',
5701
+ background: 'none',
5702
+ overflow: 'hidden',
5703
+ ...(isPrimaryScrollerVisible
5704
+ ? {
5705
+ transform: 'translate3d(0, 0, 0)',
5706
+ transition: `${getTransition('transform', 'long', 'in')}`,
5707
+ }
5708
+ : {
5709
+ transform: 'translate3d(-100%, 0, 0)',
5710
+ transition: `${getTransition('transform', 'long', 'out')}`,
5711
+ }),
5712
+ [mediaQueryEnhancedView]: {
5713
+ gridTemplateColumns: `repeat(${isSecondaryScrollerVisible ? 2 : 1}, ${scrollerWidthEnhancedView}) auto`,
5714
+ gridTemplateRows: '100vh',
5715
+ insetInlineEnd: 'auto', // to have correct dialog dimensions for ideal transitions
5716
+ },
5717
+ '&:dir(rtl)': {
5718
+ ...(!isPrimaryScrollerVisible && {
5719
+ transform: 'translate3d(100%, 0, 0)', // use correct transitions in rtl mode
5720
+ }),
5721
+ },
5722
+ '&:focus-visible': {
5723
+ outline: 'none', // ua-style reset
5724
+ },
5725
+ '&::backdrop': {
5726
+ // to improve browser backwards compatibility we visually style the backdrop on the :host,
5727
+ // although it's not on the #top-layer like it would be for modern browsers supporting ::backdrop
5728
+ opacity: 0, // to support backdrop click for modern browsers supporting ::backdrop
5729
+ },
5730
+ },
5652
5731
  },
5653
- root: {
5654
- position: 'relative',
5655
- display: 'flex',
5656
- flexDirection: 'column',
5657
- boxSizing: 'border-box',
5658
- ...(hasSubFooter && {
5659
- overflowY: 'auto',
5660
- overscrollBehaviorY: 'none',
5661
- }),
5662
- width: 'var(--p-flyout-width, auto)',
5663
- height: '100%',
5664
- minWidth: '320px',
5665
- maxWidth: 'var(--p-flyout-max-width, 1180px)',
5666
- color: primaryColor,
5667
- background: backgroundColor,
5668
- ...(isOpen
5669
- ? {
5670
- opacity: 1,
5671
- transform: 'initial',
5672
- transition: `${getTransition('opacity', 'long', 'in')}, ${getTransition('transform', 'long', 'in')}`,
5673
- }
5674
- : {
5675
- opacity: 0,
5676
- transform: `translate3d(${isPositionStart ? '-100%' : '100%'}, 0, 0)`,
5677
- transition: `${getTransition('opacity', 'short', 'out', 'long')}, ${getTransition('transform', 'long', 'out')}`,
5678
- }),
5679
- boxShadow: `${isPositionStart ? '3px' : '-3px'} 0px 30px rgba(0, 0, 0, 0.25)`,
5680
- ...prefersColorSchemeDarkMediaQuery(theme, {
5681
- color: primaryColorDark,
5682
- background: backgroundColorDark,
5683
- }),
5684
- },
5685
- header: {
5686
- position: 'sticky',
5687
- top: 0,
5688
- zIndex: 2,
5689
- display: 'grid',
5690
- gridTemplateColumns: `minmax(0, 1fr) ${spacingFluidLarge}`,
5691
- alignItems: 'flex-start',
5692
- padding: `${spacingStaticMedium} 0`,
5693
- paddingInlineStart: spacingFluidLarge,
5694
- background: backgroundColor,
5695
- ...prefersColorSchemeDarkMediaQuery(theme, {
5696
- background: backgroundColorDark,
5697
- }),
5698
- },
5699
- [headerShadowClass]: {
5700
- boxShadow: `${isDark ? scrollShadowColorDark : scrollShadowColor} 0px 5px 10px`,
5701
- ...prefersColorSchemeDarkMediaQuery(theme, {
5702
- boxShadow: `${scrollShadowColorDark} 0px 5px 10px`,
5703
- }),
5704
- },
5705
- dismiss: {
5706
- gridArea: '1 / 2',
5707
- justifySelf: 'center',
5708
- },
5709
- content: {
5710
- padding: contentPadding,
5711
- position: 'relative',
5712
- zIndex: 0,
5732
+ scroller: {
5733
+ gridArea: '1/1',
5734
+ overflow: 'auto',
5735
+ // cssVariableVisibility ensures secondary scroller is not tabbable when whole flyout-navigation is closed
5736
+ // on mobile we need to decide if secondary scroller needs to be visible or not, on desktop it's not necessary but also doesn't harm
5737
+ visibility: `var(${cssVariableVisibility},${isSecondaryScrollerVisible ? 'hidden' : 'visible'})`,
5738
+ transition: `${getTransition('left', 'long', isSecondaryScrollerVisible ? 'in' : 'out')}, visibility 0s linear var(${cssVariableTransitionDuration}, ${!isPrimaryScrollerVisible || isSecondaryScrollerVisible ? motionDurationLong : '0s'})`,
5739
+ // it's important to define background-color for each scroller to have correct scrollbar coloring
5713
5740
  backgroundColor,
5714
5741
  ...prefersColorSchemeDarkMediaQuery(theme, {
5715
- backgroundColor: backgroundColorDark, // to ensure scrollbar coloring is optimal for dark theme
5716
- }),
5717
- // If sub-footer is used scroll shadows have to be done via JS
5718
- ...(!hasSubFooter && {
5719
- overflowY: 'auto',
5720
- WebkitOverflowScrolling: 'touch',
5721
- backgroundImage: `linear-gradient(to top, ${backgroundColor}, ${backgroundColor}), linear-gradient(to top, ${backgroundColor}, ${backgroundColor}), linear-gradient(to top, ${shadowColor}, ${transparentColor}), linear-gradient(to bottom, ${shadowColor}, ${transparentColor})`,
5722
- backgroundPosition: 'bottom center, top center, bottom center, top center',
5723
- backgroundRepeat: 'no-repeat',
5724
- backgroundSize: '100% 20px, 100% 20px, 100% 10px, 100% 10px',
5725
- backgroundAttachment: 'local, local, scroll, scroll',
5726
- overscrollBehaviorY: 'none',
5727
- ...prefersColorSchemeDarkMediaQuery(theme, {
5728
- backgroundImage: `linear-gradient(to top, ${backgroundColorDark}, ${backgroundColorDark}), linear-gradient(to top, ${backgroundColorDark}, ${backgroundColorDark}), linear-gradient(to top, ${scrollShadowColorDark}, ${transparentColorDark}), linear-gradient(to bottom, ${scrollShadowColorDark}, ${transparentColorDark})`,
5729
- backgroundColor: backgroundColorDark, // to ensure scrollbar coloring is optimal for dark theme
5730
- }),
5742
+ backgroundColor: backgroundColorDark,
5731
5743
  }),
5732
- },
5733
- ...(hasFooter && {
5734
- footer: {
5744
+ [mediaQueryEnhancedView]: {
5745
+ visibility: 'inherit',
5746
+ transition: 'initial',
5747
+ },
5748
+ // simulates frosted glass header, to be visually in sync with header of secondary scroller
5749
+ '&::before': {
5750
+ content: '""',
5751
+ display: 'block',
5735
5752
  position: 'sticky',
5736
- bottom: 0,
5753
+ top: 0,
5737
5754
  zIndex: 1,
5738
- padding: contentPadding,
5739
- background: backgroundColor,
5740
- ...prefersColorSchemeDarkMediaQuery(theme, {
5741
- background: backgroundColorDark,
5742
- }),
5743
- },
5744
- [footerShadowClass$1]: {
5745
- boxShadow: `${isDark ? scrollShadowColorDark : scrollShadowColor} 0px -5px 10px`,
5755
+ height: frostedGlassHeaderHeight,
5756
+ backgroundColor: frostedGlassBackgroundColor,
5757
+ WebkitBackdropFilter: 'blur(8px)',
5758
+ backdropFilter: 'blur(8px)',
5746
5759
  ...prefersColorSchemeDarkMediaQuery(theme, {
5747
- boxShadow: `${scrollShadowColorDark} 0px -5px 10px`,
5760
+ backgroundColor: frostedGlassBackgroundColorDark$1,
5748
5761
  }),
5762
+ [mediaQueryEnhancedView]: {
5763
+ display: 'none',
5764
+ },
5749
5765
  },
5750
- }),
5751
- ...(hasSubFooter && {
5752
- 'sub-footer': {
5753
- padding: contentPadding,
5766
+ },
5767
+ content: {
5768
+ display: 'flex',
5769
+ flexDirection: 'column',
5770
+ gap: spacingFluidXSmall,
5771
+ padding: `${spacingFluidSmall} ${spacingFluidLarge} ${spacingFluidLarge}`,
5772
+ [mediaQueryEnhancedView]: {
5773
+ padding: `${spacingFluidMedium} ${spacingFluidLarge} ${spacingFluidLarge}`,
5774
+ },
5775
+ },
5776
+ // header is needed to keep position of dismiss button in sync with header of secondary scroller
5777
+ header: {
5778
+ position: 'relative',
5779
+ zIndex: 3,
5780
+ gridArea: '1/1',
5781
+ alignSelf: 'flex-start',
5782
+ justifySelf: 'flex-end',
5783
+ marginInlineEnd: `calc(${spacingFluidLarge} - ${spacingFluidSmall})`,
5784
+ height: frostedGlassHeaderHeight,
5785
+ display: 'flex',
5786
+ alignItems: 'center',
5787
+ [mediaQueryEnhancedView]: {
5788
+ marginInlineEnd: 0,
5789
+ gridArea: '1/-1',
5790
+ placeSelf: 'flex-start',
5791
+ },
5792
+ },
5793
+ dismiss: {
5794
+ padding: spacingFluidSmall,
5795
+ [mediaQueryEnhancedView]: {
5796
+ '--p-internal-icon-filter': 'invert(1)',
5797
+ margin: spacingFluidSmall,
5798
+ padding: spacingStaticSmall,
5799
+ },
5800
+ },
5801
+ });
5802
+ };
5803
+ // TODO: getBackdropJssStyle can be shared with flyout and modal
5804
+ /**
5805
+ * Generates JSS styles for a frosted glass background.
5806
+ * @param {boolean} isVisible - Determines if the frosted glass effect is visible.
5807
+ * @param {string} duration - The duration of the transition animation.
5808
+ * @param {Theme} theme - The theme to be used
5809
+ * @returns {JssStyle} - The JSS styles for the frosted glass backdrop.
5810
+ */
5811
+ const getBackdropJssStyle = (isVisible, duration, theme) => {
5812
+ return {
5813
+ position: 'fixed',
5814
+ ...getInsetJssStyle(),
5815
+ zIndex: FLYOUT_Z_INDEX,
5816
+ ...(isVisible
5817
+ ? {
5818
+ visibility: 'visible',
5819
+ pointerEvents: 'auto',
5820
+ ...frostedGlassStyle,
5821
+ // TODO: background shading is missing in getThemedColors(theme).backgroundShading
5822
+ background: isThemeDark(theme) ? themeDarkBackgroundShading : themeLightBackgroundShading,
5823
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5824
+ background: themeDarkBackgroundShading,
5825
+ }),
5826
+ }
5827
+ : {
5828
+ visibility: 'hidden',
5829
+ pointerEvents: 'none',
5830
+ WebkitBackdropFilter: 'blur(0px)',
5831
+ backdropFilter: 'blur(0px)',
5832
+ background: 'none',
5833
+ }),
5834
+ transition: `${getTransition('background', duration, 'base')}, ${getTransition('backdrop-filter', duration, 'base')}, ${getTransition('-webkit-backdrop-filter', duration, 'base')}, visibility 0s linear var(${cssVariableTransitionDuration}, ${isVisible ? '0s' : motionDurationLong})`,
5835
+ };
5836
+ };
5837
+ const getContentJssStyle = () => {
5838
+ return {
5839
+ display: 'flex',
5840
+ flexDirection: 'column',
5841
+ gap: spacingFluidXSmall,
5842
+ padding: `${spacingFluidSmall} ${spacingFluidLarge} ${spacingFluidLarge}`,
5843
+ [mediaQueryEnhancedView]: {
5844
+ padding: `${spacingFluidMedium} ${spacingFluidLarge} ${spacingFluidLarge}`,
5845
+ },
5846
+ };
5847
+ };
5848
+
5849
+ const frostedGlassBackgroundColorLight = 'rgba(238, 239, 242, 0.79)';
5850
+ const frostedGlassBackgroundColorDark = 'rgba(33, 34, 37, 0.79)';
5851
+ const getComponentCss$O = (isSecondaryScrollerVisible, theme) => {
5852
+ const { primaryColor, backgroundSurfaceColor, focusColor, hoverColor } = getThemedColors(theme);
5853
+ const { primaryColor: primaryColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark, focusColor: focusColorDark, hoverColor: hoverColorDark, } = getThemedColors('dark');
5854
+ const frostedGlassBackgroundColor = isThemeDark(theme)
5855
+ ? frostedGlassBackgroundColorDark
5856
+ : frostedGlassBackgroundColorLight;
5857
+ const fadeInOutTransition = isSecondaryScrollerVisible
5858
+ ? {
5859
+ opacity: 1,
5860
+ transition: `${getTransition('opacity', 'veryLong', 'in', 'short')}`,
5861
+ [mediaQueryEnhancedView]: {
5862
+ transition: `${getTransition('opacity', 'veryLong', 'in')}`,
5863
+ },
5864
+ }
5865
+ : {
5866
+ opacity: 0,
5867
+ transition: `${getTransition('opacity', 'short', 'out')}`,
5868
+ };
5869
+ return getCss({
5870
+ '@global': {
5871
+ ':host': {
5872
+ display: 'block',
5873
+ ...addImportantToEachRule({
5874
+ ...colorSchemeStyles,
5875
+ ...hostHiddenStyles,
5876
+ }),
5877
+ },
5878
+ '::slotted(:is(h1, h2, h3, h4, h5, h6))': addImportantToEachRule({
5879
+ ...headingSmallStyle,
5880
+ margin: 0,
5881
+ color: primaryColor,
5882
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5883
+ color: primaryColorDark,
5884
+ }),
5885
+ }),
5886
+ '::slotted(:is(h1, h2, h3, h4, h5, h6):not(:first-child))': addImportantToEachRule({
5887
+ margin: `${spacingFluidSmall} 0 0`,
5888
+ }),
5889
+ '::slotted(p)': addImportantToEachRule({
5890
+ ...textSmallStyle,
5891
+ margin: 0,
5892
+ color: primaryColor,
5893
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5894
+ color: primaryColorDark,
5895
+ }),
5896
+ }),
5897
+ // TODO: how can we easily re-use getHoverStyle() and getFocusStyle() with ::slotted(a) selector?
5898
+ '::slotted(a)': {
5899
+ ...addImportantToEachRule({
5900
+ ...textSmallStyle,
5901
+ display: 'block',
5902
+ textDecoration: 'none',
5903
+ cursor: 'pointer',
5904
+ color: primaryColor,
5905
+ borderRadius: borderRadiusSmall,
5906
+ marginLeft: `-${spacingStaticXSmall}`,
5907
+ marginRight: `-${spacingStaticXSmall}`,
5908
+ padding: `2px ${spacingStaticXSmall}`,
5909
+ transition: `background var(${cssVariableTransitionDuration}, ${motionDurationShort}) ${motionEasingBase}`,
5910
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5911
+ color: primaryColorDark,
5912
+ }),
5913
+ }),
5914
+ },
5915
+ ...hoverMediaQuery({
5916
+ '::slotted(a:hover)': addImportantToEachRule({
5917
+ background: hoverColor,
5918
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5919
+ background: hoverColorDark,
5920
+ }),
5921
+ }),
5922
+ }),
5923
+ '::slotted(a[aria-current])': addImportantToEachRule({
5924
+ background: hoverColor,
5925
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5926
+ background: hoverColorDark,
5927
+ }),
5928
+ }),
5929
+ '::slotted(a:focus)': addImportantToEachRule({
5930
+ outline: `${borderWidthBase} solid ${focusColor}`,
5931
+ outlineOffset: '-2px',
5932
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5933
+ outlineColor: focusColorDark,
5934
+ }),
5935
+ }),
5936
+ '::slotted(a:focus:not(:focus-visible))': addImportantToEachRule({
5937
+ outlineColor: 'transparent',
5938
+ }),
5939
+ },
5940
+ button: {
5941
+ width: 'auto',
5942
+ padding: spacingFluidSmall,
5943
+ margin: `0 calc(${spacingFluidSmall} * -1)`,
5944
+ },
5945
+ scroller: {
5946
+ position: 'fixed',
5947
+ ...getInsetJssStyle(),
5948
+ // "cssVariableTransitionDuration" ensures closing animation of secondary scroller is given when whole flyout-navigation gets closed
5949
+ // "cssVariableVisibility" ensures secondary scroller is not tabbable when whole flyout-navigation is closed
5950
+ ...(isSecondaryScrollerVisible
5951
+ ? {
5952
+ zIndex: 2,
5953
+ transform: 'translate3d(0, 0, 0)',
5954
+ visibility: `var(${cssVariableVisibility},visible)`,
5955
+ transition: `${getTransition('transform', 'long', 'in')}, visibility 0s linear var(${cssVariableTransitionDuration},var(${cssVariableVisibilityTransitionDuration},0s))`,
5956
+ }
5957
+ : {
5958
+ zIndex: 1,
5959
+ transform: 'translate3d(100%, 0, 0)',
5960
+ visibility: `var(${cssVariableVisibility},hidden)`,
5961
+ transition: `${getTransition('transform', 'long', 'out')}, visibility 0s linear var(${cssVariableTransitionDuration},var(${cssVariableVisibilityTransitionDuration},${motionDurationLong}))`,
5962
+ }),
5963
+ width: '100vw',
5964
+ boxSizing: 'border-box',
5965
+ overflow: 'auto',
5966
+ ...dropShadowHighStyle,
5967
+ // it's important to define background-color for each scroller to have correct scrollbar coloring
5968
+ backgroundColor: backgroundSurfaceColor,
5969
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5970
+ backgroundColor: backgroundSurfaceColorDark,
5971
+ }),
5972
+ [mediaQueryEnhancedView]: {
5973
+ boxShadow: 'none',
5974
+ insetInlineStart: `calc(${scrollerWidthEnhancedView} - 1px)`,
5975
+ width: scrollerWidthEnhancedView,
5976
+ transform: addImportantToRule('initial'),
5977
+ transition: `visibility 0s linear var(${cssVariableTransitionDuration},var(${cssVariableVisibilityTransitionDuration},0s))`,
5978
+ },
5979
+ '&:dir(rtl)': {
5980
+ ...(!isSecondaryScrollerVisible && {
5981
+ transform: 'translate3d(-100%, 0, 0)', // use correct transitions in rtl mode for mobile view
5982
+ }),
5983
+ },
5984
+ },
5985
+ // header needs to be placed within scroller to ensure scrollbars are fully visible
5986
+ header: {
5987
+ position: 'sticky',
5988
+ top: 0,
5989
+ zIndex: 1,
5990
+ height: frostedGlassHeaderHeight,
5991
+ padding: `0 ${spacingFluidLarge}`,
5992
+ display: 'grid',
5993
+ gridTemplateColumns: '4rem minmax(0, 1fr) 4rem',
5994
+ alignItems: 'center',
5995
+ gap: spacingFluidSmall,
5996
+ WebkitBackdropFilter: 'blur(8px)',
5997
+ backdropFilter: 'blur(8px)',
5998
+ backgroundColor: frostedGlassBackgroundColor,
5999
+ ...fadeInOutTransition,
6000
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6001
+ backgroundColor: frostedGlassBackgroundColorDark,
6002
+ }),
6003
+ [mediaQueryEnhancedView]: {
6004
+ display: 'none',
6005
+ },
6006
+ },
6007
+ back: {
6008
+ justifySelf: 'flex-start',
6009
+ padding: spacingFluidSmall,
6010
+ marginInlineStart: `calc(${spacingFluidSmall} * -1)`,
6011
+ },
6012
+ heading: {
6013
+ ...headingMediumStyle,
6014
+ margin: 0,
6015
+ padding: 0,
6016
+ overflow: 'hidden',
6017
+ textAlign: 'center',
6018
+ whiteSpace: 'nowrap',
6019
+ textOverflow: 'ellipsis',
6020
+ color: primaryColor,
6021
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6022
+ color: primaryColorDark,
6023
+ }),
6024
+ },
6025
+ content: mergeDeep(getContentJssStyle(), fadeInOutTransition),
6026
+ });
6027
+ };
6028
+
6029
+ const headerShadowClass = 'header--shadow';
6030
+ const footerShadowClass$1 = 'footer--shadow';
6031
+ const getComponentCss$N = (isOpen, position, hasFooter, hasSubFooter, theme) => {
6032
+ const { primaryColor, backgroundColor } = getThemedColors(theme);
6033
+ const { primaryColor: primaryColorDark, backgroundColor: backgroundColorDark } = getThemedColors('dark');
6034
+ const isPositionStart = position === 'start';
6035
+ const contentPadding = `${spacingStaticMedium} ${spacingFluidLarge}`;
6036
+ const isDark = isThemeDark(theme);
6037
+ const shadowColor = isDark ? scrollShadowColorDark : scrollShadowColor;
6038
+ const transparentColorDark = 'rgba(14, 14, 18, 0)';
6039
+ const transparentColor = isDark ? transparentColorDark : 'rgba(255, 255, 255, 0)';
6040
+ return getCss({
6041
+ '@global': {
6042
+ ':host': {
6043
+ display: 'flex',
6044
+ ...addImportantToEachRule({
6045
+ // needed for correct alignment of the Porsche Grid within the Flyout
6046
+ '--pds-internal-grid-outer-column': `calc(${spacingFluidLarge} - ${gridGap})`,
6047
+ '--pds-internal-grid-margin': `calc(${spacingFluidLarge} * -1)`,
6048
+ position: 'fixed',
6049
+ zIndex: FLYOUT_Z_INDEX,
6050
+ justifyContent: isPositionStart ? 'flex-start' : 'flex-end',
6051
+ ...(isOpen
6052
+ ? {
6053
+ visibility: 'inherit',
6054
+ }
6055
+ : {
6056
+ visibility: 'hidden',
6057
+ transition: `visibility 0s linear var(${cssVariableTransitionDuration}, ${motionDurationLong})`,
6058
+ }),
6059
+ ...getInsetJssStyle(),
6060
+ ...getFrostedGlassBackgroundJssStyles(isOpen, 'long', theme),
6061
+ ...colorSchemeStyles,
6062
+ ...hostHiddenStyles,
6063
+ }),
6064
+ },
6065
+ },
6066
+ root: {
6067
+ position: 'relative',
6068
+ display: 'flex',
6069
+ flexDirection: 'column',
6070
+ boxSizing: 'border-box',
6071
+ ...(hasSubFooter && {
6072
+ overflowY: 'auto',
6073
+ overscrollBehaviorY: 'none',
6074
+ }),
6075
+ width: 'var(--p-flyout-width, auto)',
6076
+ height: '100%',
6077
+ minWidth: '320px',
6078
+ maxWidth: 'var(--p-flyout-max-width, 1180px)',
6079
+ color: primaryColor,
6080
+ background: backgroundColor,
6081
+ ...(isOpen
6082
+ ? {
6083
+ opacity: 1,
6084
+ transform: 'initial',
6085
+ transition: `${getTransition('opacity', 'long', 'in')}, ${getTransition('transform', 'long', 'in')}`,
6086
+ }
6087
+ : {
6088
+ opacity: 0,
6089
+ transform: `translate3d(${isPositionStart ? '-100%' : '100%'}, 0, 0)`,
6090
+ transition: `${getTransition('opacity', 'short', 'out', 'long')}, ${getTransition('transform', 'long', 'out')}`,
6091
+ }),
6092
+ boxShadow: `${isPositionStart ? '3px' : '-3px'} 0px 30px rgba(0, 0, 0, 0.25)`,
6093
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6094
+ color: primaryColorDark,
6095
+ background: backgroundColorDark,
6096
+ }),
6097
+ },
6098
+ header: {
6099
+ position: 'sticky',
6100
+ top: 0,
6101
+ zIndex: 2,
6102
+ display: 'grid',
6103
+ gridTemplateColumns: `minmax(0, 1fr) ${spacingFluidLarge}`,
6104
+ alignItems: 'flex-start',
6105
+ padding: `${spacingStaticMedium} 0`,
6106
+ paddingInlineStart: spacingFluidLarge,
6107
+ background: backgroundColor,
6108
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6109
+ background: backgroundColorDark,
6110
+ }),
6111
+ },
6112
+ [headerShadowClass]: {
6113
+ boxShadow: `${isDark ? scrollShadowColorDark : scrollShadowColor} 0px 5px 10px`,
6114
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6115
+ boxShadow: `${scrollShadowColorDark} 0px 5px 10px`,
6116
+ }),
6117
+ },
6118
+ dismiss: {
6119
+ gridArea: '1 / 2',
6120
+ justifySelf: 'center',
6121
+ },
6122
+ content: {
6123
+ padding: contentPadding,
6124
+ position: 'relative',
6125
+ zIndex: 0,
6126
+ backgroundColor,
6127
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6128
+ backgroundColor: backgroundColorDark, // to ensure scrollbar coloring is optimal for dark theme
6129
+ }),
6130
+ // If sub-footer is used scroll shadows have to be done via JS
6131
+ ...(!hasSubFooter && {
6132
+ overflowY: 'auto',
6133
+ WebkitOverflowScrolling: 'touch',
6134
+ backgroundImage: `linear-gradient(to top, ${backgroundColor}, ${backgroundColor}), linear-gradient(to top, ${backgroundColor}, ${backgroundColor}), linear-gradient(to top, ${shadowColor}, ${transparentColor}), linear-gradient(to bottom, ${shadowColor}, ${transparentColor})`,
6135
+ backgroundPosition: 'bottom center, top center, bottom center, top center',
6136
+ backgroundRepeat: 'no-repeat',
6137
+ backgroundSize: '100% 20px, 100% 20px, 100% 10px, 100% 10px',
6138
+ backgroundAttachment: 'local, local, scroll, scroll',
6139
+ overscrollBehaviorY: 'none',
6140
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6141
+ backgroundImage: `linear-gradient(to top, ${backgroundColorDark}, ${backgroundColorDark}), linear-gradient(to top, ${backgroundColorDark}, ${backgroundColorDark}), linear-gradient(to top, ${scrollShadowColorDark}, ${transparentColorDark}), linear-gradient(to bottom, ${scrollShadowColorDark}, ${transparentColorDark})`,
6142
+ backgroundColor: backgroundColorDark, // to ensure scrollbar coloring is optimal for dark theme
6143
+ }),
6144
+ }),
6145
+ },
6146
+ ...(hasFooter && {
6147
+ footer: {
6148
+ position: 'sticky',
6149
+ bottom: 0,
6150
+ zIndex: 1,
6151
+ padding: contentPadding,
6152
+ background: backgroundColor,
6153
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6154
+ background: backgroundColorDark,
6155
+ }),
6156
+ },
6157
+ [footerShadowClass$1]: {
6158
+ boxShadow: `${isDark ? scrollShadowColorDark : scrollShadowColor} 0px -5px 10px`,
6159
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6160
+ boxShadow: `${scrollShadowColorDark} 0px -5px 10px`,
6161
+ }),
6162
+ },
6163
+ }),
6164
+ ...(hasSubFooter && {
6165
+ 'sub-footer': {
6166
+ padding: contentPadding,
5754
6167
  },
5755
6168
  }),
5756
6169
  });
@@ -5760,7 +6173,7 @@ const gutter$1 = `calc(${gridGap} / 2)`;
5760
6173
  const gridItemWidths = [
5761
6174
  0, 8.333333, 16.666667, 25, 33.333333, 41.666667, 50, 58.333333, 66.666667, 75, 83.333333, 91.666667, 100,
5762
6175
  ];
5763
- const getComponentCss$L = (size, offset) => {
6176
+ const getComponentCss$M = (size, offset) => {
5764
6177
  return getCss({
5765
6178
  '@global': {
5766
6179
  ':host': addImportantToEachRule({
@@ -5780,19 +6193,21 @@ const getComponentCss$L = (size, offset) => {
5780
6193
  };
5781
6194
 
5782
6195
  const gutter = `calc(${gridGap} / -2)`;
5783
- const getComponentCss$K = (direction, wrap) => {
6196
+ const getComponentCss$L = (direction, wrap) => {
5784
6197
  return getCss({
5785
6198
  '@global': {
5786
- ':host': addImportantToEachRule({
6199
+ ':host': {
5787
6200
  display: 'flex',
5788
- flex: 'auto',
5789
- width: 'auto',
5790
- marginLeft: gutter,
5791
- marginRight: gutter,
5792
- ...colorSchemeStyles,
5793
- ...hostHiddenStyles,
5794
- ...mergeDeep(buildResponsiveStyles(direction, (flexDirection) => ({ flexDirection })), buildResponsiveStyles(wrap, (flexWrap) => ({ flexWrap }))),
5795
- }),
6201
+ ...addImportantToEachRule({
6202
+ flex: 'auto',
6203
+ width: 'auto',
6204
+ marginLeft: gutter,
6205
+ marginRight: gutter,
6206
+ ...colorSchemeStyles,
6207
+ ...hostHiddenStyles,
6208
+ ...mergeDeep(buildResponsiveStyles(direction, (flexDirection) => ({ flexDirection })), buildResponsiveStyles(wrap, (flexWrap) => ({ flexWrap }))),
6209
+ }),
6210
+ },
5796
6211
  },
5797
6212
  });
5798
6213
  };
@@ -5804,7 +6219,7 @@ const sizeMap$3 = {
5804
6219
  'x-large': fontSizeHeadingXLarge,
5805
6220
  'xx-large': fontSizeHeadingXXLarge,
5806
6221
  };
5807
- const getComponentCss$J = (size, align, color, ellipsis, theme) => {
6222
+ const getComponentCss$K = (size, align, color, ellipsis, theme) => {
5808
6223
  return getCss({
5809
6224
  '@global': {
5810
6225
  ':host': {
@@ -5866,7 +6281,7 @@ const getTextSizeJssStyle = (textSize) => {
5866
6281
  fontSize: textSize === 'inherit' ? textSize : textSizeMap[textSize],
5867
6282
  };
5868
6283
  };
5869
- const getComponentCss$I = (variant, align, color, ellipsis, theme) => {
6284
+ const getComponentCss$J = (variant, align, color, ellipsis, theme) => {
5870
6285
  return getCss({
5871
6286
  '@global': {
5872
6287
  ':host': {
@@ -5955,7 +6370,8 @@ const forceRerenderAnimationStyle = {
5955
6370
  };
5956
6371
  const keyFramesLight = 'rerender-light';
5957
6372
  const keyFramesDark = 'rerender-dark';
5958
- const getComponentCss$H = (color, size, theme) => {
6373
+ const cssVariableFilter = '--p-internal-icon-filter';
6374
+ const getComponentCss$I = (color, size, theme) => {
5959
6375
  const isColorInherit = color === 'inherit';
5960
6376
  const isSizeInherit = size === 'inherit';
5961
6377
  const isDark = isThemeDark(theme);
@@ -5975,9 +6391,9 @@ const getComponentCss$H = (color, size, theme) => {
5975
6391
  padding: 0,
5976
6392
  pointerEvents: 'none',
5977
6393
  ...(!isColorInherit && {
5978
- filter: filterMap[theme][color],
6394
+ filter: `var(${cssVariableFilter},${filterMap[theme][color]})`,
5979
6395
  ...prefersColorSchemeDarkMediaQuery(theme, {
5980
- filter: filterMap.dark[color],
6396
+ filter: `var(${cssVariableFilter},${filterMap.dark[color]})`,
5981
6397
  }),
5982
6398
  ...(isHighContrastMode &&
5983
6399
  getSchemedHighContrastMediaQuery({
@@ -6006,7 +6422,7 @@ const getComponentCss$H = (color, size, theme) => {
6006
6422
  };
6007
6423
 
6008
6424
  const mediaQueryMinS$1 = getMediaQueryMin('s');
6009
- const mediaQueryMaxS$1 = getMediaQueryMax('s');
6425
+ const mediaQueryMaxS$2 = getMediaQueryMax('s');
6010
6426
  const getBackgroundColor = (state, theme) => {
6011
6427
  const { infoSoftColor, successSoftColor, errorSoftColor, warningSoftColor } = getThemedColors(theme);
6012
6428
  const colorMap = {
@@ -6020,7 +6436,7 @@ const getBackgroundColor = (state, theme) => {
6020
6436
  };
6021
6437
  const getNotificationRootJssStyle = (state, hasAction, hasClose, theme) => {
6022
6438
  return {
6023
- display: 'grid',
6439
+ // display: 'grid', // NOTE: display property is moved into component styled to not apply !important keyword
6024
6440
  // 2 columns for content and optional close button
6025
6441
  gridTemplateColumns: `minmax(auto, 1fr)${hasClose ? ' auto' : ''}`,
6026
6442
  gap: spacingStaticMedium,
@@ -6041,7 +6457,7 @@ const getNotificationRootJssStyle = (state, hasAction, hasClose, theme) => {
6041
6457
  };
6042
6458
  };
6043
6459
  const getNotificationIconJssStyle = () => ({
6044
- [mediaQueryMaxS$1]: {
6460
+ [mediaQueryMaxS$2]: {
6045
6461
  display: 'none',
6046
6462
  },
6047
6463
  });
@@ -6054,15 +6470,18 @@ const getNotificationContentJssStyle = () => ({
6054
6470
  },
6055
6471
  });
6056
6472
 
6057
- const mediaQueryMaxS = getMediaQueryMax('s');
6058
- const getComponentCss$G = (state, hasAction, hasClose, theme) => {
6473
+ const mediaQueryMaxS$1 = getMediaQueryMax('s');
6474
+ const getComponentCss$H = (state, hasAction, hasClose, theme) => {
6059
6475
  return getCss({
6060
6476
  '@global': {
6061
- ':host': addImportantToEachRule({
6062
- ...getNotificationRootJssStyle(state, hasAction, hasClose, theme),
6063
- ...colorSchemeStyles,
6064
- ...hostHiddenStyles,
6065
- }),
6477
+ ':host': {
6478
+ display: 'grid',
6479
+ ...addImportantToEachRule({
6480
+ ...getNotificationRootJssStyle(state, hasAction, hasClose, theme),
6481
+ ...colorSchemeStyles,
6482
+ ...hostHiddenStyles,
6483
+ }),
6484
+ },
6066
6485
  h5: headingSmallStyle,
6067
6486
  p: textSmallStyle,
6068
6487
  'h5,p': {
@@ -6077,7 +6496,7 @@ const getComponentCss$G = (state, hasAction, hasClose, theme) => {
6077
6496
  content: getNotificationContentJssStyle(),
6078
6497
  ...(hasAction && {
6079
6498
  action: {
6080
- [mediaQueryMaxS]: {
6499
+ [mediaQueryMaxS$1]: {
6081
6500
  gridRowStart: 2,
6082
6501
  },
6083
6502
  },
@@ -6085,7 +6504,7 @@ const getComponentCss$G = (state, hasAction, hasClose, theme) => {
6085
6504
  });
6086
6505
  };
6087
6506
 
6088
- const getComponentCss$F = (icon, iconSource, active, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor, theme) => {
6507
+ const getComponentCss$G = (icon, iconSource, active, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor, theme) => {
6089
6508
  const { focusColor } = getThemedColors(theme);
6090
6509
  const { focusColor: focusColorDark } = getThemedColors('dark');
6091
6510
  return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, false, stretch, size, hideLabel, alignLabel, hasSlottedAnchor, theme), {
@@ -6129,7 +6548,7 @@ const getComponentCss$F = (icon, iconSource, active, stretch, size, hideLabel, a
6129
6548
  }));
6130
6549
  };
6131
6550
 
6132
- const getComponentCss$E = (icon, iconSource, variant, hideLabel, hasSlottedAnchor, theme) => {
6551
+ const getComponentCss$F = (icon, iconSource, variant, hideLabel, hasSlottedAnchor, theme) => {
6133
6552
  const { focusColor } = getThemedColors(theme);
6134
6553
  const { focusColor: focusColorDark } = getThemedColors('dark');
6135
6554
  const { linkColor } = getHighContrastColors();
@@ -6189,7 +6608,7 @@ const getComponentCss$E = (icon, iconSource, variant, hideLabel, hasSlottedAncho
6189
6608
  // because it is created via Object.keys(MODEL_SIGNATURES_MANIFEST) would bundle the entire manifest into both chunks
6190
6609
  const LINK_TILE_MODEL_SIGNATURE_HEADING_TAGS = ['h2', 'h3', 'h4', 'h5', 'h6'];
6191
6610
 
6192
- const getComponentCss$D = (aspectRatio, weight, direction, hasDescription) => {
6611
+ const getComponentCss$E = (aspectRatio, weight, direction, hasDescription) => {
6193
6612
  const tileBaseStyles = getTileBaseStyles(aspectRatio);
6194
6613
  return getCss({
6195
6614
  ...tileBaseStyles,
@@ -6198,44 +6617,183 @@ const getComponentCss$D = (aspectRatio, weight, direction, hasDescription) => {
6198
6617
  [LINK_TILE_MODEL_SIGNATURE_HEADING_TAGS.join(',')]: {
6199
6618
  margin: addImportantToRule(0),
6200
6619
  },
6201
- },
6202
- content: {
6203
- ...tileBaseStyles.content,
6620
+ },
6621
+ content: {
6622
+ ...tileBaseStyles.content,
6623
+ flexDirection: 'column',
6624
+ bottom: 0,
6625
+ padding: `${spacingFluidLarge} ${spacingFluidMedium} ${spacingFluidMedium}`,
6626
+ ...gradientToTopStyle,
6627
+ },
6628
+ signature: {
6629
+ position: 'absolute',
6630
+ top: spacingFluidMedium,
6631
+ left: spacingFluidMedium,
6632
+ right: spacingFluidMedium,
6633
+ display: 'flex',
6634
+ },
6635
+ heading: {
6636
+ margin: 0,
6637
+ ...textLargeStyle,
6638
+ hyphens: 'inherit',
6639
+ ...buildResponsiveStyles(weight, (w) => ({ fontWeight: getFontWeight(w) })),
6640
+ },
6641
+ ...(hasDescription && {
6642
+ description: {
6643
+ margin: '-12px 0 0 ',
6644
+ ...textSmallStyle,
6645
+ hyphens: 'inherit',
6646
+ },
6647
+ }),
6648
+ 'link-group': {
6649
+ display: 'flex',
6650
+ width: '100%',
6651
+ gap: spacingFluidSmall,
6652
+ ...buildResponsiveStyles(direction, getGroupDirectionJssStyles),
6653
+ },
6654
+ 'link-overlay': {
6655
+ // covers entire tile, used for expanded click-area only
6656
+ position: 'fixed',
6657
+ ...getInsetJssStyle(),
6658
+ },
6659
+ });
6660
+ };
6661
+
6662
+ const slottedAnchorSelector = `a[slot='${anchorSlot}']`;
6663
+ const getComponentCss$D = (hasLikeButton, hasSlottedAnchor, aspectRatio, theme) => {
6664
+ const { primaryColor, contrastHighColor, backgroundSurfaceColor } = getThemedColors(theme);
6665
+ const { primaryColor: primaryColorDark, contrastHighColor: contrastHighColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark, } = getThemedColors('dark');
6666
+ return getCss({
6667
+ '@global': {
6668
+ ':host': {
6669
+ display: 'block',
6670
+ position: 'relative',
6671
+ ...addImportantToEachRule({
6672
+ ...colorSchemeStyles,
6673
+ ...hostHiddenStyles,
6674
+ }),
6675
+ },
6676
+ ...addImportantToEachRule({
6677
+ '::slotted': {
6678
+ '&(img), &(picture)': {
6679
+ display: 'block',
6680
+ width: '100%',
6681
+ height: '100%',
6682
+ objectFit: 'cover',
6683
+ overflow: 'hidden',
6684
+ borderRadius: borderRadiusLarge,
6685
+ },
6686
+ ...(hasSlottedAnchor && {
6687
+ [`&(${slottedAnchorSelector})`]: {
6688
+ position: 'absolute',
6689
+ borderRadius: borderRadiusMedium,
6690
+ ...getInsetJssStyle(),
6691
+ zIndex: 1,
6692
+ textIndent: '-999999px', // Hide anchor label visually but still usable for a11y
6693
+ },
6694
+ // TODO: Refactor getFocusStyles to support slotted selector
6695
+ [`&(${slottedAnchorSelector}:focus)`]: {
6696
+ outline: `${borderWidthBase} solid ${themeLightStateFocus}`,
6697
+ outlineOffset: '2px',
6698
+ },
6699
+ [`&(${slottedAnchorSelector}:focus:not(:focus-visible))`]: {
6700
+ outlineColor: 'transparent',
6701
+ },
6702
+ }),
6703
+ },
6704
+ }),
6705
+ },
6706
+ ...(!hasSlottedAnchor && {
6707
+ 'link-overlay': {
6708
+ position: 'absolute',
6709
+ ...getInsetJssStyle(),
6710
+ ...getFocusStyle({ borderRadius: 'medium' }),
6711
+ },
6712
+ }),
6713
+ root: {
6714
+ display: 'flex',
6204
6715
  flexDirection: 'column',
6205
- bottom: 0,
6206
- padding: `${spacingFluidLarge} ${spacingFluidMedium} ${spacingFluidMedium}`,
6207
- ...gradientToTopStyle,
6716
+ aspectRatio: '3 / 4',
6717
+ ...buildResponsiveStyles(aspectRatio, (ratio) => ({
6718
+ aspectRatio: ratio.replace(':', ' / '),
6719
+ })),
6720
+ overflow: 'hidden',
6721
+ boxSizing: 'border-box',
6722
+ borderRadius: borderRadiusMedium,
6723
+ padding: spacingFluidSmall,
6724
+ color: primaryColor,
6725
+ backgroundColor: backgroundSurfaceColor,
6726
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6727
+ color: primaryColorDark,
6728
+ backgroundColor: backgroundSurfaceColorDark,
6729
+ }),
6730
+ ...hoverMediaQuery({
6731
+ '&:hover .image-container': {
6732
+ transform: 'scale3d(1.05,1.05,1.05)',
6733
+ },
6734
+ }),
6208
6735
  },
6209
- signature: {
6210
- position: 'absolute',
6211
- top: spacingFluidMedium,
6212
- left: spacingFluidMedium,
6213
- right: spacingFluidMedium,
6736
+ header: {
6214
6737
  display: 'flex',
6738
+ justifyContent: 'space-between',
6739
+ fontSize: fontSizeTextXSmall,
6740
+ [`& slot[name="${headerSlot}"]`]: {
6741
+ display: 'block', // To ensure button positioning when slot is unused
6742
+ },
6215
6743
  },
6216
- heading: {
6217
- margin: 0,
6218
- ...textLargeStyle,
6219
- hyphens: 'inherit',
6220
- ...buildResponsiveStyles(weight, (w) => ({ fontWeight: getFontWeight(w) })),
6221
- },
6222
- ...(hasDescription && {
6223
- description: {
6224
- margin: '-12px 0 0 ',
6225
- ...textSmallStyle,
6226
- hyphens: 'inherit',
6744
+ ...(hasLikeButton && {
6745
+ 'like-button': {
6746
+ height: 'fit-content',
6747
+ position: 'relative',
6748
+ zIndex: 2,
6749
+ ...hoverMediaQuery({
6750
+ '&:hover': {
6751
+ cursor: 'pointer',
6752
+ },
6753
+ }),
6227
6754
  },
6228
6755
  }),
6229
- 'link-group': {
6756
+ 'text-container': {
6230
6757
  display: 'flex',
6231
- width: '100%',
6232
- gap: spacingFluidSmall,
6233
- ...buildResponsiveStyles(direction, getGroupDirectionJssStyles),
6758
+ justifyContent: 'center',
6759
+ flexDirection: 'column',
6760
+ margin: 'auto',
6234
6761
  },
6235
- 'link-overlay': {
6236
- // covers entire tile, used for expanded click-area only
6237
- position: 'fixed',
6238
- ...getInsetJssStyle(),
6762
+ text: {
6763
+ textAlign: 'center',
6764
+ margin: 0,
6765
+ '&__heading': {
6766
+ ...headingSmallStyle,
6767
+ paddingBottom: '2px',
6768
+ minHeight: `calc(${fontLineHeight} * 2)`,
6769
+ display: 'flex',
6770
+ justifyContent: 'center',
6771
+ alignItems: 'flex-end',
6772
+ },
6773
+ '&__price, &__description': {
6774
+ fontWeight: fontWeightRegular,
6775
+ },
6776
+ '&__price': {
6777
+ ...textXSmallStyle,
6778
+ },
6779
+ '&__description': {
6780
+ ...textXXSmallStyle,
6781
+ color: contrastHighColor,
6782
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6783
+ color: contrastHighColorDark,
6784
+ }),
6785
+ },
6786
+ },
6787
+ 'image-container': {
6788
+ margin: `${spacingFluidSmall} auto ${spacingFluidXSmall} auto`,
6789
+ padding: 0,
6790
+ [getMediaQueryMin('s')]: {
6791
+ padding: `0 ${spacingFluidMedium}`,
6792
+ },
6793
+ overflow: 'hidden',
6794
+ aspectRatio: '8 / 9',
6795
+ transition: getTransition('transform', 'moderate'),
6796
+ maxHeight: '100%',
6239
6797
  },
6240
6798
  });
6241
6799
  };
@@ -6358,11 +6916,12 @@ const getComponentCss$A = (isOpen, isFullscreen, hasDismissButton, hasHeader, ha
6358
6916
  return getCss({
6359
6917
  '@global': {
6360
6918
  ':host': {
6919
+ display: 'flex',
6920
+ overflowY: 'auto',
6361
6921
  ...addImportantToEachRule({
6362
6922
  position: 'fixed',
6363
6923
  ...getInsetJssStyle(),
6364
6924
  zIndex: MODAL_Z_INDEX,
6365
- display: 'flex',
6366
6925
  alignItems: 'center',
6367
6926
  justifyContent: 'center',
6368
6927
  flexWrap: 'wrap',
@@ -6378,7 +6937,6 @@ const getComponentCss$A = (isOpen, isFullscreen, hasDismissButton, hasHeader, ha
6378
6937
  ...hostHiddenStyles,
6379
6938
  ...getFrostedGlassBackgroundJssStyles(isOpen, duration, theme),
6380
6939
  }),
6381
- overflowY: 'auto', // overrideable
6382
6940
  },
6383
6941
  '::slotted': addImportantToEachRule(mergeDeep(getSlottedJssStyle(32, hasHeader, hasDismissButton), buildResponsiveStyles(isFullscreen, (fullscreenValue) => ({
6384
6942
  [`&(.${stretchToFullModalWidthClassName}`]: {
@@ -6941,6 +7499,7 @@ const getListStyles$1 = (isOpen, direction, theme) => {
6941
7499
  };
6942
7500
 
6943
7501
  const mediaQueryMinS = getMediaQueryMin('s');
7502
+ const mediaQueryMaxS = getMediaQueryMax('s');
6944
7503
  // button size needs to be fluid between 320px and 360px viewport width, so that the pagination fits into 320px viewport
6945
7504
  // and text scale 200% works (almost) on mobile viewports too
6946
7505
  const buttonSize = `clamp(36px, calc(${fontLineHeight} + 10vw - 20px), 40px)`;
@@ -6948,7 +7507,8 @@ const disabledCursorStyle = {
6948
7507
  cursor: 'default',
6949
7508
  pointerEvents: 'none', // prevents :hover (has no effect when forced), maybe we can remove it since CSS selectors already cover desired behavior
6950
7509
  };
6951
- const getComponentCss$w = (maxNumberOfPageLinks, theme) => {
7510
+ const hiddenStyle = { display: 'none' };
7511
+ const getComponentCss$w = (activePage, pageTotal, showLastPage, theme) => {
6952
7512
  const { primaryColor, disabledColor, hoverColor, focusColor } = getThemedColors(theme);
6953
7513
  const { primaryColor: primaryColorDark, disabledColor: disabledColorDark, hoverColor: hoverColorDark, focusColor: focusColorDark, } = getThemedColors('dark');
6954
7514
  return getCss({
@@ -6964,9 +7524,6 @@ const getComponentCss$w = (maxNumberOfPageLinks, theme) => {
6964
7524
  display: 'flex',
6965
7525
  justifyContent: 'center',
6966
7526
  userSelect: 'none',
6967
- ...buildResponsiveStyles(maxNumberOfPageLinks, (n) => ({
6968
- counterReset: `size ${n}`,
6969
- })),
6970
7527
  },
6971
7528
  ul: {
6972
7529
  display: 'flex',
@@ -6979,13 +7536,43 @@ const getComponentCss$w = (maxNumberOfPageLinks, theme) => {
6979
7536
  },
6980
7537
  li: {
6981
7538
  listStyleType: 'none',
6982
- [mediaQueryMinS]: {
6983
- '&:first-child': {
6984
- marginInlineEnd: spacingStaticSmall,
6985
- },
6986
- '&:last-child': {
6987
- marginInlineStart: spacingStaticSmall,
7539
+ ...(pageTotal > 5 && {
7540
+ // max 5 items including ellipsis at the same time on mobile
7541
+ [mediaQueryMaxS]: {
7542
+ [activePage < 4
7543
+ ? // we are at the start, so let's hide start ellipsis and 2 items before end ellipsis
7544
+ '&.ellip-start,&:nth-child(6),&:nth-child(7),&:not(.ellip):nth-child(8)'
7545
+ : pageTotal - activePage < 3
7546
+ ? // we are at the end, so let's hide end ellipsis and 2 items after start ellipsis
7547
+ '&.ellip-end, &.ellip-start + &:not(.current), &.ellip-start + &:not(.current) + &:not(.current)'
7548
+ : // we are at in the middle, so let's hide elements after start and before end ellipsis
7549
+ '&.ellip-start + &:not(.current), &.current-1, &.current\\+1, &.current\\+1 + &:not(.ellip)']: hiddenStyle,
7550
+ // without last page we need to adjust end page handling
7551
+ ...(!showLastPage &&
7552
+ (pageTotal - activePage < 2
7553
+ ? { [`&.current-2${pageTotal - activePage === 1 ? ',&.current-1' : ''}`]: hiddenStyle }
7554
+ : activePage > 2 && {
7555
+ '&.current\\+1,&.current\\+2': hiddenStyle,
7556
+ '&.ellip-end': { display: 'initial' },
7557
+ })),
6988
7558
  },
7559
+ }),
7560
+ [mediaQueryMinS]: {
7561
+ // prev
7562
+ '&:first-child': { marginInlineEnd: spacingStaticSmall },
7563
+ // next
7564
+ '&:last-child': { marginInlineStart: spacingStaticSmall },
7565
+ ...(pageTotal < 8
7566
+ ? { '&.ellip': hiddenStyle }
7567
+ : // max 7 items including ellipsis at the same time on tablet
7568
+ {
7569
+ // we are at the start, so let's hide start ellipsis
7570
+ ...(activePage <= 4 && { '&.ellip-start': hiddenStyle }),
7571
+ // we are at the end, so let's hide end ellipsis
7572
+ ...(pageTotal - activePage < 4 && { '&.ellip-end:nth-last-child(3)': hiddenStyle }),
7573
+ // we are at the end without last page, so let's hide end ellipsis
7574
+ ...(pageTotal - activePage < 3 && { '&.ellip-end:nth-last-child(2)': hiddenStyle }),
7575
+ }),
6989
7576
  },
6990
7577
  },
6991
7578
  span: {
@@ -7034,7 +7621,7 @@ const getComponentCss$w = (maxNumberOfPageLinks, theme) => {
7034
7621
  color: primaryColorDark,
7035
7622
  borderColor: primaryColorDark,
7036
7623
  }),
7037
- '&:not(.ellipsis):focus::before': getInsetJssStyle(-6),
7624
+ '&:not(.ellipsis):focus::before': getInsetJssStyle(-6), // adjust for missing 2px border
7038
7625
  },
7039
7626
  '&[aria-disabled]': {
7040
7627
  ...disabledCursorStyle,
@@ -7241,13 +7828,13 @@ const getComponentCss$u = (direction, isNative, theme) => {
7241
7828
  return getCss({
7242
7829
  '@global': {
7243
7830
  ':host': {
7831
+ display: 'inline-block',
7832
+ verticalAlign: 'top',
7244
7833
  ...addImportantToEachRule({
7245
7834
  position: 'relative',
7246
- display: 'inline-block',
7247
7835
  ...colorSchemeStyles,
7248
7836
  ...hostHiddenStyles,
7249
7837
  }),
7250
- verticalAlign: 'top',
7251
7838
  },
7252
7839
  p: {
7253
7840
  ...textSmallStyle,
@@ -7649,11 +8236,13 @@ const getComponentCss$r = (isDisabled, isSelected, hasIcon, hasSlottedContent, t
7649
8236
  const { buttonColor: buttonColorDark, labelColor: labelColorDark, borderColor: borderColorDark, hoverBorderColor: hoverBorderColorDark, } = getColors$2(isDisabled, isSelected, 'dark');
7650
8237
  return getCss({
7651
8238
  '@global': {
7652
- ':host': addImportantToEachRule({
8239
+ ':host': {
7653
8240
  display: 'block',
7654
- outline: 0,
7655
- ...hostHiddenStyles,
7656
- }),
8241
+ ...addImportantToEachRule({
8242
+ outline: 0,
8243
+ ...hostHiddenStyles,
8244
+ }),
8245
+ },
7657
8246
  // All width relevant styling has to be kept in sync with the tempDiv of the p-segmented-control utils
7658
8247
  button: {
7659
8248
  position: 'relative',
@@ -7735,16 +8324,18 @@ const getComponentCss$q = (maxWidth, columns) => {
7735
8324
  maxWidth = (maxWidth > MAX_ITEM_WIDTH && MAX_ITEM_WIDTH) || (maxWidth < MIN_ITEM_WIDTH && MIN_ITEM_WIDTH) || maxWidth;
7736
8325
  return getCss({
7737
8326
  '@global': {
7738
- ':host': addImportantToEachRule({
8327
+ ':host': {
7739
8328
  display: 'grid',
7740
- gridAutoRows: '1fr',
7741
- ...buildResponsiveStyles(columns, (col) => ({
7742
- gridTemplateColumns: col === 'auto' ? `repeat(auto-fit, ${maxWidth}px)` : `repeat(${col}, minmax(0, 1fr))`,
7743
- })),
7744
- gap: '6px',
7745
- ...colorSchemeStyles,
7746
- ...hostHiddenStyles,
7747
- }),
8329
+ ...addImportantToEachRule({
8330
+ gridAutoRows: '1fr',
8331
+ ...buildResponsiveStyles(columns, (col) => ({
8332
+ gridTemplateColumns: col === 'auto' ? `repeat(auto-fit, ${maxWidth}px)` : `repeat(${col}, minmax(0, 1fr))`,
8333
+ })),
8334
+ gap: '6px',
8335
+ ...colorSchemeStyles,
8336
+ ...hostHiddenStyles,
8337
+ }),
8338
+ },
7748
8339
  },
7749
8340
  });
7750
8341
  };
@@ -8024,7 +8615,7 @@ const getListStyles = (direction, theme) => {
8024
8615
  },
8025
8616
  };
8026
8617
  };
8027
- const getComponentCss$p = (direction, isOpen, state, disabled, filter, theme) => {
8618
+ const getComponentCss$p = (direction, isOpen, state, disabled, filter, isNativePopover, theme) => {
8028
8619
  return getCss(
8029
8620
  // merge because of global styles
8030
8621
  mergeDeep({
@@ -8037,6 +8628,23 @@ const getComponentCss$p = (direction, isOpen, state, disabled, filter, theme) =>
8037
8628
  'sr-text': {
8038
8629
  display: 'none',
8039
8630
  },
8631
+ ...(isNativePopover && {
8632
+ popover: {
8633
+ position: 'absolute',
8634
+ bottom: 'auto',
8635
+ border: 'none',
8636
+ background: 'none',
8637
+ pointerEvents: 'all',
8638
+ padding: 0,
8639
+ margin: 0,
8640
+ overflow: 'initial',
8641
+ height: 'auto',
8642
+ maxHeight: `${8.5 * (OPTION_HEIGHT + 8) + 6 + 2}px`,
8643
+ '&:-internal-popover-in-top-layer::backdrop': {
8644
+ display: 'none',
8645
+ },
8646
+ },
8647
+ }),
8040
8648
  }, filter
8041
8649
  ? getFilterStyles(direction, isOpen, state, disabled, theme)
8042
8650
  : getButtonStyles(direction, isOpen, state, theme), isOpen && getListStyles(direction, theme)));
@@ -8116,12 +8724,14 @@ const getComponentCss$n = (size, theme) => {
8116
8724
  const lastHighContrastStrokeColor = isHighContrastMode && canvasColor;
8117
8725
  return getCss({
8118
8726
  '@global': {
8119
- ':host': addImportantToEachRule({
8727
+ ':host': {
8120
8728
  display: 'inline-flex',
8121
- verticalAlign: 'top',
8122
- ...colorSchemeStyles,
8123
- ...hostHiddenStyles,
8124
- }),
8729
+ ...addImportantToEachRule({
8730
+ verticalAlign: 'top',
8731
+ ...colorSchemeStyles,
8732
+ ...hostHiddenStyles,
8733
+ }),
8734
+ },
8125
8735
  svg: {
8126
8736
  display: 'block',
8127
8737
  fill: 'none',
@@ -8360,16 +8970,20 @@ const getComponentCss$k = (alignLabel, hideLabel, stretch, checked, disabled, lo
8360
8970
  const { focusColor: focusColorDark } = getThemedColors('dark');
8361
8971
  return getCss({
8362
8972
  '@global': {
8363
- ':host': addImportantToEachRule({
8364
- outline: 0,
8365
- ...colorSchemeStyles,
8366
- ...hostHiddenStyles,
8973
+ ':host': {
8367
8974
  ...buildResponsiveStyles(stretch, (stretchValue) => ({
8368
8975
  display: stretchValue ? 'block' : 'inline-block',
8369
- width: stretchValue ? '100%' : 'auto',
8370
- ...(!stretchValue && { verticalAlign: 'top' }),
8371
8976
  })),
8372
- }),
8977
+ ...addImportantToEachRule({
8978
+ outline: 0,
8979
+ ...colorSchemeStyles,
8980
+ ...hostHiddenStyles,
8981
+ ...buildResponsiveStyles(stretch, (stretchValue) => ({
8982
+ width: stretchValue ? '100%' : 'auto',
8983
+ ...(!stretchValue && { verticalAlign: 'top' }),
8984
+ })),
8985
+ }),
8986
+ },
8373
8987
  },
8374
8988
  root: {
8375
8989
  display: 'flex',
@@ -8480,10 +9094,10 @@ const getComponentCss$k = (alignLabel, hideLabel, stretch, checked, disabled, lo
8480
9094
  const getComponentCss$j = () => {
8481
9095
  return getCss({
8482
9096
  '@global': {
8483
- ':host': addImportantToEachRule({
9097
+ ':host': {
8484
9098
  display: 'table-row-group',
8485
- ...hostHiddenStyles,
8486
- }),
9099
+ ...addImportantToEachRule(hostHiddenStyles),
9100
+ },
8487
9101
  },
8488
9102
  });
8489
9103
  };
@@ -8492,14 +9106,14 @@ const getComponentCss$i = (multiline) => {
8492
9106
  return getCss({
8493
9107
  '@global': {
8494
9108
  ':host': {
9109
+ display: 'table-cell',
9110
+ verticalAlign: 'middle',
8495
9111
  ...addImportantToEachRule({
8496
- display: 'table-cell',
8497
9112
  padding: spacingFluidSmall,
8498
9113
  margin: 0,
8499
9114
  whiteSpace: multiline ? 'normal' : 'nowrap',
8500
9115
  ...hostHiddenStyles,
8501
9116
  }),
8502
- verticalAlign: 'middle',
8503
9117
  },
8504
9118
  },
8505
9119
  });
@@ -8518,17 +9132,19 @@ const getComponentCss$h = (theme) => {
8518
9132
  const { primaryColor: primaryColorDark, hoverColor: hoverColorDark, contrastLowColor: contrastLowColorDark, } = doGetThemedColors('dark');
8519
9133
  return getCss({
8520
9134
  '@global': {
8521
- ':host': addImportantToEachRule({
9135
+ ':host': {
8522
9136
  display: 'block',
8523
- ...textSmallStyle,
8524
- color: primaryColor,
8525
- textAlign: 'start',
8526
- ...colorSchemeStyles,
8527
- ...hostHiddenStyles,
8528
- ...prefersColorSchemeDarkMediaQuery(theme, {
8529
- color: primaryColorDark,
9137
+ ...addImportantToEachRule({
9138
+ ...textSmallStyle,
9139
+ color: primaryColor,
9140
+ textAlign: 'start',
9141
+ ...colorSchemeStyles,
9142
+ ...hostHiddenStyles,
9143
+ ...prefersColorSchemeDarkMediaQuery(theme, {
9144
+ color: primaryColorDark,
9145
+ }),
8530
9146
  }),
8531
- }),
9147
+ },
8532
9148
  '::slotted(*)': addImportantToEachRule({
8533
9149
  [cssVariableTableHoverColor]: hoverColor,
8534
9150
  [cssVariableTableBorderColor]: contrastLowColor,
@@ -8565,13 +9181,15 @@ const getComponentCss$g = (active, direction, hideLabel, multiline) => {
8565
9181
  const sortable = isSortable(active, direction);
8566
9182
  return getCss({
8567
9183
  '@global': {
8568
- ':host': addImportantToEachRule({
9184
+ ':host': {
8569
9185
  display: 'table-cell',
8570
- padding: `2px ${spacingFluidSmall} ${spacingFluidSmall}`,
8571
- verticalAlign: 'bottom',
8572
- whiteSpace: multiline ? 'normal' : 'nowrap',
8573
- ...hostHiddenStyles,
8574
- }),
9186
+ ...addImportantToEachRule({
9187
+ padding: `2px ${spacingFluidSmall} ${spacingFluidSmall}`,
9188
+ verticalAlign: 'bottom',
9189
+ whiteSpace: multiline ? 'normal' : 'nowrap',
9190
+ ...hostHiddenStyles,
9191
+ }),
9192
+ },
8575
9193
  ...(sortable
8576
9194
  ? {
8577
9195
  button: {
@@ -8645,10 +9263,10 @@ const getComponentCss$g = (active, direction, hideLabel, multiline) => {
8645
9263
  const getComponentCss$f = () => {
8646
9264
  return getCss({
8647
9265
  '@global': {
8648
- ':host': addImportantToEachRule({
9266
+ ':host': {
8649
9267
  display: 'table-row',
8650
- ...hostHiddenStyles,
8651
- }),
9268
+ ...addImportantToEachRule(hostHiddenStyles),
9269
+ },
8652
9270
  },
8653
9271
  });
8654
9272
  };
@@ -8656,13 +9274,15 @@ const getComponentCss$f = () => {
8656
9274
  const getComponentCss$e = () => {
8657
9275
  return getCss({
8658
9276
  '@global': {
8659
- ':host': addImportantToEachRule({
9277
+ ':host': {
8660
9278
  display: 'table-header-group',
8661
- fontSize: fontSizeTextXSmall,
8662
- lineHeight: fontLineHeight,
8663
- fontWeight: fontWeightSemiBold,
8664
- ...hostHiddenStyles,
8665
- }),
9279
+ ...addImportantToEachRule({
9280
+ fontSize: fontSizeTextXSmall,
9281
+ lineHeight: fontLineHeight,
9282
+ fontWeight: fontWeightSemiBold,
9283
+ ...hostHiddenStyles,
9284
+ }),
9285
+ },
8666
9286
  },
8667
9287
  });
8668
9288
  };
@@ -8670,19 +9290,21 @@ const getComponentCss$e = () => {
8670
9290
  const getComponentCss$d = () => {
8671
9291
  return getCss({
8672
9292
  '@global': {
8673
- ':host': addImportantToEachRule({
9293
+ ':host': {
8674
9294
  display: 'table-row',
8675
- borderTop: `1px solid var(${cssVariableTableBorderColor})`,
8676
- borderBottom: `1px solid var(${cssVariableTableBorderColor})`,
8677
- transition: getTransition('background'),
8678
- ...hostHiddenStyles,
8679
- ...hoverMediaQuery({
8680
- '&(:hover)': {
8681
- // ...frostedGlassStyle, // will result in not smooth transition when applied
8682
- background: `var(${cssVariableTableHoverColor})`,
8683
- },
9295
+ ...addImportantToEachRule({
9296
+ borderTop: `1px solid var(${cssVariableTableBorderColor})`,
9297
+ borderBottom: `1px solid var(${cssVariableTableBorderColor})`,
9298
+ transition: getTransition('background'),
9299
+ ...hostHiddenStyles,
9300
+ ...hoverMediaQuery({
9301
+ '&(:hover)': {
9302
+ // ...frostedGlassStyle, // will result in not smooth transition when applied
9303
+ background: `var(${cssVariableTableHoverColor})`,
9304
+ },
9305
+ }),
8684
9306
  }),
8685
- }),
9307
+ },
8686
9308
  },
8687
9309
  });
8688
9310
  };
@@ -8826,26 +9448,28 @@ const getComponentCss$b = (theme) => {
8826
9448
  const { primaryColor: primaryColorDark, focusColor: focusColorDark } = getThemedColors('dark');
8827
9449
  return getCss({
8828
9450
  '@global': {
8829
- ':host': addImportantToEachRule({
9451
+ ':host': {
8830
9452
  display: 'block',
8831
- position: 'relative',
8832
- color: primaryColor,
8833
- outline: 0,
8834
- ...hostHiddenStyles,
8835
- ...prefersColorSchemeDarkMediaQuery(theme, {
8836
- color: primaryColorDark,
8837
- }),
8838
- '&(:focus:focus-visible)::before': {
8839
- content: '""',
8840
- position: 'absolute',
8841
- ...getInsetJssStyle(-4),
8842
- border: `${borderWidthBase} solid ${focusColor}`,
8843
- borderRadius: borderRadiusSmall,
9453
+ ...addImportantToEachRule({
9454
+ position: 'relative',
9455
+ color: primaryColor,
9456
+ outline: 0,
9457
+ ...hostHiddenStyles,
8844
9458
  ...prefersColorSchemeDarkMediaQuery(theme, {
8845
- borderColor: focusColorDark,
9459
+ color: primaryColorDark,
8846
9460
  }),
8847
- },
8848
- }),
9461
+ '&(:focus:focus-visible)::before': {
9462
+ content: '""',
9463
+ position: 'absolute',
9464
+ ...getInsetJssStyle(-4),
9465
+ border: `${borderWidthBase} solid ${focusColor}`,
9466
+ borderRadius: borderRadiusSmall,
9467
+ ...prefersColorSchemeDarkMediaQuery(theme, {
9468
+ borderColor: focusColorDark,
9469
+ }),
9470
+ },
9471
+ }),
9472
+ },
8849
9473
  },
8850
9474
  });
8851
9475
  };
@@ -9083,14 +9707,14 @@ const showCustomCalendarOrTimeIndicator = (isCalendar, isTime) => {
9083
9707
 
9084
9708
  const cssVariableInputPaddingStart = '--p-internal-text-field-input-padding-start';
9085
9709
  const cssVariableInputPaddingEnd = '--p-internal-text-field-input-padding-end';
9086
- const getComponentCss$7 = (isDisabled, hideLabel, state, hasUnitOrVisibleCounter, unitPosition, inputType, showPasswordToggle, isWithinForm, theme) => {
9710
+ const getComponentCss$7 = (isDisabled, hideLabel, state, hasUnitOrVisibleCounter, unitPosition, inputType, showPasswordToggle, isWithinForm, hasSubmitButton, theme) => {
9087
9711
  const isSearch = isType(inputType, 'search');
9088
9712
  const isPassword = isType(inputType, 'password');
9089
9713
  const isNumber = isType(inputType, 'number');
9090
9714
  const isCalendar = isType(inputType, 'date') || isType(inputType, 'week') || isType(inputType, 'month');
9091
9715
  const isTime = isType(inputType, 'time');
9092
9716
  const isSearchOrPassword = isSearch || (isPassword && showPasswordToggle);
9093
- const isSearchWithoutForm = isSearch && !isWithinForm;
9717
+ const isSearchWithoutFormOrSubmitButton = isSearch && (!isWithinForm || !hasSubmitButton);
9094
9718
  const isSearchWithForm = isSearch && isWithinForm;
9095
9719
  const isCalendarOrTimeWithCustomIndicator = showCustomCalendarOrTimeIndicator(isCalendar, isTime);
9096
9720
  return getCss({
@@ -9123,11 +9747,11 @@ const getComponentCss$7 = (isDisabled, hideLabel, state, hasUnitOrVisibleCounter
9123
9747
  }),
9124
9748
  },
9125
9749
  root: {
9126
- [cssVariableInputPaddingStart]: isSearchWithoutForm
9750
+ [cssVariableInputPaddingStart]: isSearchWithoutFormOrSubmitButton
9127
9751
  ? getCalculatedFormElementPaddingHorizontal(1)
9128
9752
  : formElementPaddingHorizontal,
9129
9753
  [cssVariableInputPaddingEnd]: isSearchOrPassword || isCalendarOrTimeWithCustomIndicator
9130
- ? getCalculatedFormElementPaddingHorizontal(isSearchWithForm ? 2 : 1)
9754
+ ? getCalculatedFormElementPaddingHorizontal(isSearchWithForm && hasSubmitButton ? 2 : 1)
9131
9755
  : formElementPaddingHorizontal,
9132
9756
  display: 'grid',
9133
9757
  gap: spacingStaticXSmall,
@@ -9148,7 +9772,7 @@ const getComponentCss$7 = (isDisabled, hideLabel, state, hasUnitOrVisibleCounter
9148
9772
  },
9149
9773
  },
9150
9774
  }),
9151
- ...(isSearchWithoutForm && {
9775
+ ...(isSearchWithoutFormOrSubmitButton && {
9152
9776
  // TODO: extract for multi-select, select-wrapper and text-field (not gridArea and placeSelf) like done for unit class
9153
9777
  icon: {
9154
9778
  gridArea: '1/2',
@@ -9235,25 +9859,29 @@ const getComponentCss$6 = (type, theme) => {
9235
9859
 
9236
9860
  const getComponentCss$5 = () => {
9237
9861
  return getCss({
9238
- '@global': addImportantToEachRule({
9862
+ '@global': {
9239
9863
  ':host': {
9240
9864
  display: 'grid',
9241
- gridTemplateColumns: `var(${cssVariablePseudoSpace}) 1fr`,
9242
- columnGap: spacingStaticMedium,
9243
- font: 'inherit',
9244
- color: 'inherit',
9245
- ...hostHiddenStyles,
9246
- },
9247
- '::slotted(*)': {
9248
- [cssVariableUnorderedGridColumn]: '.625rem',
9249
- [cssVariableUnorderedPseudoContent]: '"–"',
9250
- [cssVariableOrderedGridColumn]: '2rem',
9251
- [cssVariableOrderedPseudoSuffix]: '""', // don't show ::before suffix "." (nested ordered list)
9252
- },
9253
- '::slotted(*:last-child)': {
9254
- gridColumn: 2,
9865
+ ...addImportantToEachRule({
9866
+ gridTemplateColumns: `var(${cssVariablePseudoSpace}) 1fr`,
9867
+ columnGap: spacingStaticMedium,
9868
+ font: 'inherit',
9869
+ color: 'inherit',
9870
+ ...hostHiddenStyles,
9871
+ }),
9255
9872
  },
9256
- }),
9873
+ ...addImportantToEachRule({
9874
+ '::slotted(*)': {
9875
+ [cssVariableUnorderedGridColumn]: '.625rem',
9876
+ [cssVariableUnorderedPseudoContent]: '"–"',
9877
+ [cssVariableOrderedGridColumn]: '2rem',
9878
+ [cssVariableOrderedPseudoSuffix]: '""', // don't show ::before suffix "." (nested ordered list)
9879
+ },
9880
+ '::slotted(*:last-child)': {
9881
+ gridColumn: 2,
9882
+ },
9883
+ }),
9884
+ },
9257
9885
  });
9258
9886
  };
9259
9887
 
@@ -9442,37 +10070,40 @@ const getComponentCss = (size, theme) => {
9442
10070
  });
9443
10071
  };
9444
10072
 
9445
- exports.getAccordionCss = getComponentCss$10;
9446
- exports.getBannerCss = getComponentCss$$;
9447
- exports.getButtonCss = getComponentCss$X;
9448
- exports.getButtonGroupCss = getComponentCss$_;
9449
- exports.getButtonPureCss = getComponentCss$Z;
9450
- exports.getButtonTileCss = getComponentCss$Y;
9451
- exports.getCarouselCss = getComponentCss$W;
9452
- exports.getCheckboxWrapperCss = getComponentCss$V;
9453
- exports.getContentWrapperCss = getComponentCss$U;
9454
- exports.getCrestCss = getComponentCss$T;
9455
- exports.getDisplayCss = getComponentCss$S;
9456
- exports.getDividerCss = getComponentCss$R;
9457
- exports.getFieldsetCss = getComponentCss$P;
9458
- exports.getFieldsetWrapperCss = getComponentCss$Q;
9459
- exports.getFlexCss = getComponentCss$N;
9460
- exports.getFlexItemCss = getComponentCss$O;
9461
- exports.getFlyoutCss = getComponentCss$M;
10073
+ exports.getAccordionCss = getComponentCss$13;
10074
+ exports.getBannerCss = getComponentCss$12;
10075
+ exports.getButtonCss = getComponentCss$_;
10076
+ exports.getButtonGroupCss = getComponentCss$11;
10077
+ exports.getButtonPureCss = getComponentCss$10;
10078
+ exports.getButtonTileCss = getComponentCss$$;
10079
+ exports.getCarouselCss = getComponentCss$Z;
10080
+ exports.getCheckboxWrapperCss = getComponentCss$Y;
10081
+ exports.getContentWrapperCss = getComponentCss$X;
10082
+ exports.getCrestCss = getComponentCss$W;
10083
+ exports.getDisplayCss = getComponentCss$V;
10084
+ exports.getDividerCss = getComponentCss$U;
10085
+ exports.getFieldsetCss = getComponentCss$S;
10086
+ exports.getFieldsetWrapperCss = getComponentCss$T;
10087
+ exports.getFlexCss = getComponentCss$Q;
10088
+ exports.getFlexItemCss = getComponentCss$R;
10089
+ exports.getFlyoutCss = getComponentCss$N;
10090
+ exports.getFlyoutNavigationCss = getComponentCss$P;
10091
+ exports.getFlyoutNavigationItemCss = getComponentCss$O;
9462
10092
  exports.getFunctionalComponentLabelStyles = getFunctionalComponentLabelStyles;
9463
10093
  exports.getFunctionalComponentRequiredStyles = getFunctionalComponentRequiredStyles;
9464
10094
  exports.getFunctionalComponentStateMessageStyles = getFunctionalComponentStateMessageStyles;
9465
- exports.getGridCss = getComponentCss$K;
9466
- exports.getGridItemCss = getComponentCss$L;
9467
- exports.getHeadingCss = getComponentCss$J;
9468
- exports.getHeadlineCss = getComponentCss$I;
9469
- exports.getIconCss = getComponentCss$H;
9470
- exports.getInlineNotificationCss = getComponentCss$G;
9471
- exports.getLinkCss = getComponentCss$E;
9472
- exports.getLinkPureCss = getComponentCss$F;
9473
- exports.getLinkSocialCss = getComponentCss$E;
10095
+ exports.getGridCss = getComponentCss$L;
10096
+ exports.getGridItemCss = getComponentCss$M;
10097
+ exports.getHeadingCss = getComponentCss$K;
10098
+ exports.getHeadlineCss = getComponentCss$J;
10099
+ exports.getIconCss = getComponentCss$I;
10100
+ exports.getInlineNotificationCss = getComponentCss$H;
10101
+ exports.getLinkCss = getComponentCss$F;
10102
+ exports.getLinkPureCss = getComponentCss$G;
10103
+ exports.getLinkSocialCss = getComponentCss$F;
9474
10104
  exports.getLinkTileCss = getComponentCss$C;
9475
- exports.getLinkTileModelSignatureCss = getComponentCss$D;
10105
+ exports.getLinkTileModelSignatureCss = getComponentCss$E;
10106
+ exports.getLinkTileProductCss = getComponentCss$D;
9476
10107
  exports.getMarqueCss = getComponentCss$B;
9477
10108
  exports.getModalCss = getComponentCss$A;
9478
10109
  exports.getModelSignatureCss = getComponentCss$z;