@porsche-design-system/components-react 3.10.0-rc.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 (114) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/lib/components/link-tile-product.wrapper.cjs +26 -0
  3. package/cjs/public-api.cjs +2 -0
  4. package/esm/lib/components/index.d.ts +1 -0
  5. package/esm/lib/components/link-tile-product.wrapper.d.ts +96 -0
  6. package/esm/lib/components/link-tile-product.wrapper.mjs +24 -0
  7. package/esm/lib/types.d.ts +9 -0
  8. package/esm/public-api.mjs +1 -0
  9. package/package.json +2 -2
  10. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +230 -58
  11. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +4 -0
  12. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/link-tile-product.wrapper.cjs +40 -0
  13. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.cjs +1 -0
  14. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.cjs +1 -0
  15. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.cjs +1 -0
  16. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.cjs +1 -0
  17. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.cjs +1 -0
  18. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.cjs +1 -0
  19. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.cjs +1 -0
  20. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation-item.cjs +1 -0
  21. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation.cjs +2 -0
  22. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.cjs +1 -0
  23. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.cjs +1 -0
  24. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.cjs +1 -0
  25. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-social.cjs +1 -0
  26. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-model-signature.cjs +1 -0
  27. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-product.cjs +92 -0
  28. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.cjs +1 -0
  29. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link.cjs +1 -0
  30. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.cjs +1 -0
  31. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.cjs +1 -0
  32. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +1 -0
  33. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.cjs +1 -0
  34. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +1 -0
  35. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/popover.cjs +1 -0
  36. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.cjs +1 -0
  37. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.cjs +1 -0
  38. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control-item.cjs +1 -0
  39. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.cjs +1 -0
  40. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.cjs +1 -0
  41. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/state-message.cjs +1 -0
  42. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal-item.cjs +1 -0
  43. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.cjs +1 -0
  44. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.cjs +1 -0
  45. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table-head-cell.cjs +1 -0
  46. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.cjs +1 -0
  47. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.cjs +1 -0
  48. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.cjs +1 -0
  49. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag-dismissible.cjs +1 -0
  50. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.cjs +1 -0
  51. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.cjs +1 -0
  52. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/public-api.cjs +2 -0
  53. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +201 -30
  54. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +3 -1
  55. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/link-tile-product.wrapper.mjs +38 -0
  56. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.mjs +3 -2
  57. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.mjs +3 -2
  58. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-group.mjs +2 -2
  59. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +3 -2
  60. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +3 -2
  61. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.mjs +3 -2
  62. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +3 -2
  63. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.mjs +3 -2
  64. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/content-wrapper.mjs +2 -2
  65. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/crest.mjs +2 -2
  66. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.mjs +2 -2
  67. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/divider.mjs +2 -2
  68. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset-wrapper.mjs +2 -2
  69. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset.mjs +2 -2
  70. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex-item.mjs +2 -2
  71. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex.mjs +2 -2
  72. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation-item.mjs +3 -2
  73. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-navigation.mjs +4 -2
  74. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +3 -2
  75. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid-item.mjs +2 -2
  76. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid.mjs +2 -2
  77. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.mjs +2 -2
  78. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/headline.mjs +2 -2
  79. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/icon.mjs +2 -2
  80. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.mjs +3 -2
  81. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.mjs +3 -2
  82. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-social.mjs +3 -2
  83. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-model-signature.mjs +3 -2
  84. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-product.mjs +90 -0
  85. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.mjs +1 -0
  86. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link.mjs +3 -2
  87. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.mjs +1 -0
  88. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.mjs +1 -0
  89. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +1 -0
  90. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.mjs +1 -0
  91. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +1 -0
  92. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/popover.mjs +1 -0
  93. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.mjs +1 -0
  94. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +1 -0
  95. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control-item.mjs +1 -0
  96. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.mjs +1 -0
  97. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.mjs +1 -0
  98. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/state-message.mjs +1 -0
  99. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal-item.mjs +1 -0
  100. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.mjs +1 -0
  101. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.mjs +1 -0
  102. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table-head-cell.mjs +1 -0
  103. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.mjs +1 -0
  104. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.mjs +1 -0
  105. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.mjs +1 -0
  106. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag-dismissible.mjs +1 -0
  107. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.mjs +1 -0
  108. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.mjs +1 -0
  109. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/public-api.mjs +1 -0
  110. package/ssr/esm/lib/components/index.d.ts +1 -0
  111. package/ssr/esm/lib/components/link-tile-product.wrapper.d.ts +96 -0
  112. package/ssr/esm/lib/dsr-components/flyout-navigation.d.ts +1 -0
  113. package/ssr/esm/lib/dsr-components/link-tile-product.d.ts +6 -0
  114. package/ssr/esm/lib/types.d.ts +9 -0
@@ -3210,6 +3210,27 @@ const dropShadowHighStyle = {
3210
3210
 
3211
3211
  const themeLightStateFocus = '#1A44EA';
3212
3212
 
3213
+ const getFocusStyle = (opts) => {
3214
+ const { borderRadius = 'small', offset = '2px' } = opts || {};
3215
+ const outlineOffset = offset === 'small' ? '2px' : offset === 'none' ? 0 : offset || '2px';
3216
+ const borderRadiusValue = borderRadius === 'small'
3217
+ ? borderRadiusSmall
3218
+ : borderRadius === 'medium'
3219
+ ? borderRadiusMedium
3220
+ : borderRadius || borderRadiusSmall;
3221
+ return {
3222
+ borderRadius: borderRadiusValue,
3223
+ '&:focus': {
3224
+ outline: `${borderWidthBase} solid ${themeLightStateFocus}`,
3225
+ outlineOffset,
3226
+ },
3227
+ // why? have a look at this article https://www.tpgi.com/focus-visible-and-backwards-compatibility/
3228
+ '&:focus:not(:focus-visible)': {
3229
+ outlineColor: 'transparent',
3230
+ },
3231
+ };
3232
+ };
3233
+
3213
3234
  const fontFamily = "'Porsche Next','Arial Narrow',Arial,'Heiti SC',SimHei,sans-serif";
3214
3235
 
3215
3236
  const fontHyphenationStyle = {
@@ -3457,6 +3478,11 @@ const headingXXLargeStyle = {
3457
3478
  const _textFontPartA = `${fontStyleNormal} ${fontVariant} ${fontWeightRegular} `;
3458
3479
  const _textFontPartB = `/${fontLineHeight} ${fontFamily}`;
3459
3480
 
3481
+ const textXXSmallStyle = {
3482
+ font: `${_textFontPartA}${fontSizeTextXXSmall}${_textFontPartB}`,
3483
+ ...fontHyphenationStyle,
3484
+ };
3485
+
3460
3486
  const textXSmallStyle = {
3461
3487
  font: `${_textFontPartA}${fontSizeTextXSmall}${_textFontPartB}`,
3462
3488
  ...fontHyphenationStyle,
@@ -3833,10 +3859,13 @@ const getResetInitialStylesForSlottedAnchor = {
3833
3859
  };
3834
3860
  const focusPseudoJssStyle = {
3835
3861
  outline: 0,
3836
- '&:focus::before': {
3862
+ '&::before': {
3863
+ // needs to be defined always to have correct custom click area
3837
3864
  content: '""',
3838
3865
  position: 'absolute',
3839
3866
  ...getInsetJssStyle(),
3867
+ },
3868
+ '&:focus::before': {
3840
3869
  borderRadius: '1px',
3841
3870
  outline: `${borderWidthBase} solid ${themeLightStateFocus}`,
3842
3871
  outlineOffset: '2px',
@@ -4044,6 +4073,9 @@ const isThemeDark = (theme) => {
4044
4073
  return theme === 'dark';
4045
4074
  };
4046
4075
 
4076
+ const headerSlot = 'header';
4077
+ const anchorSlot = 'anchor';
4078
+
4047
4079
  const formatObjectOutput = (value) => {
4048
4080
  return JSON.stringify(value)
4049
4081
  .replace(/"([a-zA-Z?]+)":/g, '$1:') // remove double quotes from keys
@@ -4056,7 +4088,7 @@ const formatObjectOutput = (value) => {
4056
4088
 
4057
4089
  const HEADING_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
4058
4090
 
4059
- const getComponentCss$12 = (size, compact, open, theme) => {
4091
+ const getComponentCss$13 = (size, compact, open, theme) => {
4060
4092
  const { primaryColor, hoverColor, focusColor, contrastLowColor } = getThemedColors(theme);
4061
4093
  const { primaryColor: primaryColorDark, hoverColor: hoverColorDark, focusColor: focusColorDark, contrastLowColor: contrastLowColorDark, } = getThemedColors('dark');
4062
4094
  return getCss({
@@ -4199,7 +4231,7 @@ const cssVariableTop = '--p-banner-position-top';
4199
4231
  const cssVariableBottom = '--p-banner-position-bottom';
4200
4232
  const cssVariableZIndex = '--p-internal-banner-z-index';
4201
4233
  const topBottomFallback = '56px';
4202
- const getComponentCss$11 = (isOpen) => {
4234
+ const getComponentCss$12 = (isOpen) => {
4203
4235
  return getCss({
4204
4236
  '@global': {
4205
4237
  ':host': addImportantToEachRule({
@@ -4262,7 +4294,7 @@ const getGroupDirectionJssStyles = (direction) => {
4262
4294
  return groupDirectionJssStyles[direction];
4263
4295
  };
4264
4296
 
4265
- const getComponentCss$10 = (direction) => {
4297
+ const getComponentCss$11 = (direction) => {
4266
4298
  return getCss({
4267
4299
  '@global': {
4268
4300
  ':host': {
@@ -4416,7 +4448,7 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4416
4448
  };
4417
4449
  };
4418
4450
 
4419
- const getComponentCss$$ = (icon, iconSource, active, isLoading, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, theme) => {
4451
+ const getComponentCss$10 = (icon, iconSource, active, isLoading, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, theme) => {
4420
4452
  const hasIcon = hasVisibleIcon(icon, iconSource);
4421
4453
  return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, false, theme), {
4422
4454
  root: {
@@ -4593,7 +4625,7 @@ background, align, compact, hasGradient, isDisabled) => {
4593
4625
  });
4594
4626
  };
4595
4627
 
4596
- const getComponentCss$_ = (isDisabledOrLoading, ...args) => {
4628
+ const getComponentCss$$ = (isDisabledOrLoading, ...args) => {
4597
4629
  const buttonLinkTileStyles = getButtonLinkTileStyles(...args);
4598
4630
  return getCss({
4599
4631
  ...buttonLinkTileStyles,
@@ -4729,7 +4761,7 @@ const getDisabledColors = (variant, loading, theme) => {
4729
4761
  };
4730
4762
  return colors[variant === 'tertiary' ? 'secondary' : variant];
4731
4763
  };
4732
- const getComponentCss$Z = (icon, iconSource, variant, hideLabel, disabled, loading, theme) => {
4764
+ const getComponentCss$_ = (icon, iconSource, variant, hideLabel, disabled, loading, theme) => {
4733
4765
  const disabledOrLoading = isDisabledOrLoading(disabled, loading);
4734
4766
  const { textColor, borderColor, backgroundColor } = getDisabledColors(variant, loading, theme);
4735
4767
  const { textColor: textColorDark, borderColor: borderColorDark, backgroundColor: backgroundColorDark, } = getDisabledColors(variant, loading, 'dark');
@@ -4801,7 +4833,7 @@ const spacingMap = {
4801
4833
  basic: gridBasicOffset,
4802
4834
  extended: gridExtendedOffset,
4803
4835
  };
4804
- const getComponentCss$Y = (width, hasPagination, isInfinitePagination, alignHeader, theme) => {
4836
+ const getComponentCss$Z = (width, hasPagination, isInfinitePagination, alignHeader, theme) => {
4805
4837
  const { primaryColor, contrastMediumColor, focusColor } = getThemedColors(theme);
4806
4838
  const { primaryColor: primaryColorDark, contrastMediumColor: contrastMediumColorDark, focusColor: focusColorDark, } = getThemedColors('dark');
4807
4839
  const { canvasTextColor } = getHighContrastColors();
@@ -5209,7 +5241,7 @@ const getCheckedSVGBackgroundImage$1 = (fill) => {
5209
5241
  const getIndeterminateSVGBackgroundImage = (fill) => {
5210
5242
  return getInlineSVGBackgroundImage(`<path fill="${fill}" d="m20,11v2H4v-2h16Z"/>`);
5211
5243
  };
5212
- const getComponentCss$X = (hideLabel, state, isDisabled, isLoading, theme) => {
5244
+ const getComponentCss$Y = (hideLabel, state, isDisabled, isLoading, theme) => {
5213
5245
  const { canvasColor } = getHighContrastColors();
5214
5246
  const checkedIconColor = isHighContrastMode
5215
5247
  ? canvasColor
@@ -5307,7 +5339,7 @@ const widthMap = {
5307
5339
  basic: gridBasicOffset,
5308
5340
  extended: gridExtendedOffset,
5309
5341
  };
5310
- const getComponentCss$W = (width) => {
5342
+ const getComponentCss$X = (width) => {
5311
5343
  return getCss({
5312
5344
  '@global': {
5313
5345
  ':host': {
@@ -5349,7 +5381,7 @@ const getDimensionStyle = {
5349
5381
  width: 'inherit',
5350
5382
  height: 'inherit',
5351
5383
  };
5352
- const getComponentCss$V = () => {
5384
+ const getComponentCss$W = () => {
5353
5385
  return getCss({
5354
5386
  '@global': {
5355
5387
  ':host': {
@@ -5437,7 +5469,7 @@ const sizeMap$4 = {
5437
5469
  medium: fontSizeDisplayMedium,
5438
5470
  large: fontSizeDisplayLarge,
5439
5471
  };
5440
- const getComponentCss$U = (size, align, color, ellipsis, theme) => {
5472
+ const getComponentCss$V = (size, align, color, ellipsis, theme) => {
5441
5473
  return getCss({
5442
5474
  '@global': {
5443
5475
  ':host': {
@@ -5457,7 +5489,7 @@ const getComponentCss$U = (size, align, color, ellipsis, theme) => {
5457
5489
  });
5458
5490
  };
5459
5491
 
5460
- const getComponentCss$T = (color, orientation, theme) => {
5492
+ const getComponentCss$U = (color, orientation, theme) => {
5461
5493
  const { contrastLowColor, contrastMediumColor, contrastHighColor } = getThemedColors(theme);
5462
5494
  const { contrastLowColor: contrastLowColorDark, contrastMediumColor: contrastMediumColorDark, contrastHighColor: contrastHighColorDark, } = getThemedColors('dark');
5463
5495
  const colorMap = {
@@ -5500,7 +5532,7 @@ const getComponentCss$T = (color, orientation, theme) => {
5500
5532
  });
5501
5533
  };
5502
5534
 
5503
- const getComponentCss$S = (state, labelSize, hasLabel, theme) => {
5535
+ const getComponentCss$T = (state, labelSize, hasLabel, theme) => {
5504
5536
  return getCss({
5505
5537
  '@global': {
5506
5538
  ':host': {
@@ -5536,7 +5568,7 @@ const getComponentCss$S = (state, labelSize, hasLabel, theme) => {
5536
5568
  });
5537
5569
  };
5538
5570
 
5539
- const getComponentCss$R = (state, labelSize, hasLabel, theme) => {
5571
+ const getComponentCss$S = (state, labelSize, hasLabel, theme) => {
5540
5572
  return getCss({
5541
5573
  '@global': {
5542
5574
  ':host': {
@@ -5582,7 +5614,7 @@ const flexItemWidths = {
5582
5614
  full: 100,
5583
5615
  auto: 'auto',
5584
5616
  };
5585
- const getComponentCss$Q = (width, offset, alignSelf, grow, shrink, flex) => {
5617
+ const getComponentCss$R = (width, offset, alignSelf, grow, shrink, flex) => {
5586
5618
  return getCss({
5587
5619
  '@global': {
5588
5620
  ':host': addImportantToEachRule({
@@ -5604,7 +5636,7 @@ const getComponentCss$Q = (width, offset, alignSelf, grow, shrink, flex) => {
5604
5636
  });
5605
5637
  };
5606
5638
 
5607
- const getComponentCss$P = (inline, wrap, direction, justifyContent, alignItems, alignContent) => {
5639
+ const getComponentCss$Q = (inline, wrap, direction, justifyContent, alignItems, alignContent) => {
5608
5640
  return getCss({
5609
5641
  '@global': {
5610
5642
  ':host': {
@@ -5632,7 +5664,7 @@ const frostedGlassBackgroundColorLight$1 = 'rgba(255, 255, 255, 0.79)';
5632
5664
  const frostedGlassBackgroundColorDark$1 = 'rgba(14, 14, 18, 0.79)';
5633
5665
  const scrollerWidthEnhancedView = 'clamp(338px, 10.52vw + 258px, 460px)';
5634
5666
  const mediaQueryEnhancedView = getMediaQueryMin('s');
5635
- const getComponentCss$O = (isPrimaryScrollerVisible, isSecondaryScrollerVisible, theme) => {
5667
+ const getComponentCss$P = (isPrimaryScrollerVisible, isSecondaryScrollerVisible, theme) => {
5636
5668
  const { backgroundColor } = getThemedColors(theme);
5637
5669
  const { backgroundColor: backgroundColorDark } = getThemedColors('dark');
5638
5670
  const frostedGlassBackgroundColor = isThemeDark(theme)
@@ -5814,7 +5846,7 @@ const getContentJssStyle = () => {
5814
5846
 
5815
5847
  const frostedGlassBackgroundColorLight = 'rgba(238, 239, 242, 0.79)';
5816
5848
  const frostedGlassBackgroundColorDark = 'rgba(33, 34, 37, 0.79)';
5817
- const getComponentCss$N = (isSecondaryScrollerVisible, theme) => {
5849
+ const getComponentCss$O = (isSecondaryScrollerVisible, theme) => {
5818
5850
  const { primaryColor, backgroundSurfaceColor, focusColor, hoverColor } = getThemedColors(theme);
5819
5851
  const { primaryColor: primaryColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark, focusColor: focusColorDark, hoverColor: hoverColorDark, } = getThemedColors('dark');
5820
5852
  const frostedGlassBackgroundColor = isThemeDark(theme)
@@ -5994,7 +6026,7 @@ const getComponentCss$N = (isSecondaryScrollerVisible, theme) => {
5994
6026
 
5995
6027
  const headerShadowClass = 'header--shadow';
5996
6028
  const footerShadowClass$1 = 'footer--shadow';
5997
- const getComponentCss$M = (isOpen, position, hasFooter, hasSubFooter, theme) => {
6029
+ const getComponentCss$N = (isOpen, position, hasFooter, hasSubFooter, theme) => {
5998
6030
  const { primaryColor, backgroundColor } = getThemedColors(theme);
5999
6031
  const { primaryColor: primaryColorDark, backgroundColor: backgroundColorDark } = getThemedColors('dark');
6000
6032
  const isPositionStart = position === 'start';
@@ -6139,7 +6171,7 @@ const gutter$1 = `calc(${gridGap} / 2)`;
6139
6171
  const gridItemWidths = [
6140
6172
  0, 8.333333, 16.666667, 25, 33.333333, 41.666667, 50, 58.333333, 66.666667, 75, 83.333333, 91.666667, 100,
6141
6173
  ];
6142
- const getComponentCss$L = (size, offset) => {
6174
+ const getComponentCss$M = (size, offset) => {
6143
6175
  return getCss({
6144
6176
  '@global': {
6145
6177
  ':host': addImportantToEachRule({
@@ -6159,7 +6191,7 @@ const getComponentCss$L = (size, offset) => {
6159
6191
  };
6160
6192
 
6161
6193
  const gutter = `calc(${gridGap} / -2)`;
6162
- const getComponentCss$K = (direction, wrap) => {
6194
+ const getComponentCss$L = (direction, wrap) => {
6163
6195
  return getCss({
6164
6196
  '@global': {
6165
6197
  ':host': {
@@ -6185,7 +6217,7 @@ const sizeMap$3 = {
6185
6217
  'x-large': fontSizeHeadingXLarge,
6186
6218
  'xx-large': fontSizeHeadingXXLarge,
6187
6219
  };
6188
- const getComponentCss$J = (size, align, color, ellipsis, theme) => {
6220
+ const getComponentCss$K = (size, align, color, ellipsis, theme) => {
6189
6221
  return getCss({
6190
6222
  '@global': {
6191
6223
  ':host': {
@@ -6247,7 +6279,7 @@ const getTextSizeJssStyle = (textSize) => {
6247
6279
  fontSize: textSize === 'inherit' ? textSize : textSizeMap[textSize],
6248
6280
  };
6249
6281
  };
6250
- const getComponentCss$I = (variant, align, color, ellipsis, theme) => {
6282
+ const getComponentCss$J = (variant, align, color, ellipsis, theme) => {
6251
6283
  return getCss({
6252
6284
  '@global': {
6253
6285
  ':host': {
@@ -6337,7 +6369,7 @@ const forceRerenderAnimationStyle = {
6337
6369
  const keyFramesLight = 'rerender-light';
6338
6370
  const keyFramesDark = 'rerender-dark';
6339
6371
  const cssVariableFilter = '--p-internal-icon-filter';
6340
- const getComponentCss$H = (color, size, theme) => {
6372
+ const getComponentCss$I = (color, size, theme) => {
6341
6373
  const isColorInherit = color === 'inherit';
6342
6374
  const isSizeInherit = size === 'inherit';
6343
6375
  const isDark = isThemeDark(theme);
@@ -6437,7 +6469,7 @@ const getNotificationContentJssStyle = () => ({
6437
6469
  });
6438
6470
 
6439
6471
  const mediaQueryMaxS$1 = getMediaQueryMax('s');
6440
- const getComponentCss$G = (state, hasAction, hasClose, theme) => {
6472
+ const getComponentCss$H = (state, hasAction, hasClose, theme) => {
6441
6473
  return getCss({
6442
6474
  '@global': {
6443
6475
  ':host': {
@@ -6470,7 +6502,7 @@ const getComponentCss$G = (state, hasAction, hasClose, theme) => {
6470
6502
  });
6471
6503
  };
6472
6504
 
6473
- const getComponentCss$F = (icon, iconSource, active, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor, theme) => {
6505
+ const getComponentCss$G = (icon, iconSource, active, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor, theme) => {
6474
6506
  const { focusColor } = getThemedColors(theme);
6475
6507
  const { focusColor: focusColorDark } = getThemedColors('dark');
6476
6508
  return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, false, stretch, size, hideLabel, alignLabel, hasSlottedAnchor, theme), {
@@ -6514,7 +6546,7 @@ const getComponentCss$F = (icon, iconSource, active, stretch, size, hideLabel, a
6514
6546
  }));
6515
6547
  };
6516
6548
 
6517
- const getComponentCss$E = (icon, iconSource, variant, hideLabel, hasSlottedAnchor, theme) => {
6549
+ const getComponentCss$F = (icon, iconSource, variant, hideLabel, hasSlottedAnchor, theme) => {
6518
6550
  const { focusColor } = getThemedColors(theme);
6519
6551
  const { focusColor: focusColorDark } = getThemedColors('dark');
6520
6552
  const { linkColor } = getHighContrastColors();
@@ -6574,7 +6606,7 @@ const getComponentCss$E = (icon, iconSource, variant, hideLabel, hasSlottedAncho
6574
6606
  // because it is created via Object.keys(MODEL_SIGNATURES_MANIFEST) would bundle the entire manifest into both chunks
6575
6607
  const LINK_TILE_MODEL_SIGNATURE_HEADING_TAGS = ['h2', 'h3', 'h4', 'h5', 'h6'];
6576
6608
 
6577
- const getComponentCss$D = (aspectRatio, weight, direction, hasDescription) => {
6609
+ const getComponentCss$E = (aspectRatio, weight, direction, hasDescription) => {
6578
6610
  const tileBaseStyles = getTileBaseStyles(aspectRatio);
6579
6611
  return getCss({
6580
6612
  ...tileBaseStyles,
@@ -6625,6 +6657,145 @@ const getComponentCss$D = (aspectRatio, weight, direction, hasDescription) => {
6625
6657
  });
6626
6658
  };
6627
6659
 
6660
+ const slottedAnchorSelector = `a[slot='${anchorSlot}']`;
6661
+ const getComponentCss$D = (hasLikeButton, hasSlottedAnchor, aspectRatio, theme) => {
6662
+ const { primaryColor, contrastHighColor, backgroundSurfaceColor } = getThemedColors(theme);
6663
+ const { primaryColor: primaryColorDark, contrastHighColor: contrastHighColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark, } = getThemedColors('dark');
6664
+ return getCss({
6665
+ '@global': {
6666
+ ':host': {
6667
+ display: 'block',
6668
+ position: 'relative',
6669
+ ...addImportantToEachRule({
6670
+ ...colorSchemeStyles,
6671
+ ...hostHiddenStyles,
6672
+ }),
6673
+ },
6674
+ ...addImportantToEachRule({
6675
+ '::slotted': {
6676
+ '&(img), &(picture)': {
6677
+ display: 'block',
6678
+ width: '100%',
6679
+ height: '100%',
6680
+ objectFit: 'cover',
6681
+ overflow: 'hidden',
6682
+ borderRadius: borderRadiusLarge,
6683
+ },
6684
+ ...(hasSlottedAnchor && {
6685
+ [`&(${slottedAnchorSelector})`]: {
6686
+ position: 'absolute',
6687
+ borderRadius: borderRadiusMedium,
6688
+ ...getInsetJssStyle(),
6689
+ zIndex: 1,
6690
+ textIndent: '-999999px', // Hide anchor label visually but still usable for a11y
6691
+ },
6692
+ // TODO: Refactor getFocusStyles to support slotted selector
6693
+ [`&(${slottedAnchorSelector}:focus)`]: {
6694
+ outline: `${borderWidthBase} solid ${themeLightStateFocus}`,
6695
+ outlineOffset: '2px',
6696
+ },
6697
+ [`&(${slottedAnchorSelector}:focus:not(:focus-visible))`]: {
6698
+ outlineColor: 'transparent',
6699
+ },
6700
+ }),
6701
+ },
6702
+ }),
6703
+ },
6704
+ ...(!hasSlottedAnchor && {
6705
+ 'link-overlay': {
6706
+ position: 'absolute',
6707
+ ...getInsetJssStyle(),
6708
+ ...getFocusStyle({ borderRadius: 'medium' }),
6709
+ },
6710
+ }),
6711
+ root: {
6712
+ display: 'flex',
6713
+ flexDirection: 'column',
6714
+ aspectRatio: '3 / 4',
6715
+ ...buildResponsiveStyles(aspectRatio, (ratio) => ({
6716
+ aspectRatio: ratio.replace(':', ' / '),
6717
+ })),
6718
+ overflow: 'hidden',
6719
+ boxSizing: 'border-box',
6720
+ borderRadius: borderRadiusMedium,
6721
+ padding: spacingFluidSmall,
6722
+ color: primaryColor,
6723
+ backgroundColor: backgroundSurfaceColor,
6724
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6725
+ color: primaryColorDark,
6726
+ backgroundColor: backgroundSurfaceColorDark,
6727
+ }),
6728
+ ...hoverMediaQuery({
6729
+ '&:hover .image-container': {
6730
+ transform: 'scale3d(1.05,1.05,1.05)',
6731
+ },
6732
+ }),
6733
+ },
6734
+ header: {
6735
+ display: 'flex',
6736
+ justifyContent: 'space-between',
6737
+ fontSize: fontSizeTextXSmall,
6738
+ [`& slot[name="${headerSlot}"]`]: {
6739
+ display: 'block', // To ensure button positioning when slot is unused
6740
+ },
6741
+ },
6742
+ ...(hasLikeButton && {
6743
+ 'like-button': {
6744
+ height: 'fit-content',
6745
+ position: 'relative',
6746
+ zIndex: 2,
6747
+ ...hoverMediaQuery({
6748
+ '&:hover': {
6749
+ cursor: 'pointer',
6750
+ },
6751
+ }),
6752
+ },
6753
+ }),
6754
+ 'text-container': {
6755
+ display: 'flex',
6756
+ justifyContent: 'center',
6757
+ flexDirection: 'column',
6758
+ margin: 'auto',
6759
+ },
6760
+ text: {
6761
+ textAlign: 'center',
6762
+ margin: 0,
6763
+ '&__heading': {
6764
+ ...headingSmallStyle,
6765
+ paddingBottom: '2px',
6766
+ minHeight: `calc(${fontLineHeight} * 2)`,
6767
+ display: 'flex',
6768
+ justifyContent: 'center',
6769
+ alignItems: 'flex-end',
6770
+ },
6771
+ '&__price, &__description': {
6772
+ fontWeight: fontWeightRegular,
6773
+ },
6774
+ '&__price': {
6775
+ ...textXSmallStyle,
6776
+ },
6777
+ '&__description': {
6778
+ ...textXXSmallStyle,
6779
+ color: contrastHighColor,
6780
+ ...prefersColorSchemeDarkMediaQuery(theme, {
6781
+ color: contrastHighColorDark,
6782
+ }),
6783
+ },
6784
+ },
6785
+ 'image-container': {
6786
+ margin: `${spacingFluidSmall} auto ${spacingFluidXSmall} auto`,
6787
+ padding: 0,
6788
+ [getMediaQueryMin('s')]: {
6789
+ padding: `0 ${spacingFluidMedium}`,
6790
+ },
6791
+ overflow: 'hidden',
6792
+ aspectRatio: '8 / 9',
6793
+ transition: getTransition('transform', 'moderate'),
6794
+ maxHeight: '100%',
6795
+ },
6796
+ });
6797
+ };
6798
+
6628
6799
  const getComponentCss$C = (...args) => {
6629
6800
  return getCss({
6630
6801
  ...getButtonLinkTileStyles(...args),
@@ -9897,4 +10068,4 @@ const getComponentCss = (size, theme) => {
9897
10068
  });
9898
10069
  };
9899
10070
 
9900
- export { getComponentCss$12 as getAccordionCss, getComponentCss$11 as getBannerCss, getComponentCss$Z as getButtonCss, getComponentCss$10 as getButtonGroupCss, getComponentCss$$ as getButtonPureCss, getComponentCss$_ as getButtonTileCss, getComponentCss$Y as getCarouselCss, getComponentCss$X as getCheckboxWrapperCss, getComponentCss$W as getContentWrapperCss, getComponentCss$V as getCrestCss, getComponentCss$U as getDisplayCss, getComponentCss$T as getDividerCss, getComponentCss$R as getFieldsetCss, getComponentCss$S as getFieldsetWrapperCss, getComponentCss$P as getFlexCss, getComponentCss$Q as getFlexItemCss, getComponentCss$M as getFlyoutCss, getComponentCss$O as getFlyoutNavigationCss, getComponentCss$N as getFlyoutNavigationItemCss, getFunctionalComponentLabelStyles, getFunctionalComponentRequiredStyles, getFunctionalComponentStateMessageStyles, getComponentCss$K as getGridCss, getComponentCss$L as getGridItemCss, getComponentCss$J as getHeadingCss, getComponentCss$I as getHeadlineCss, getComponentCss$H as getIconCss, getComponentCss$G as getInlineNotificationCss, getComponentCss$E as getLinkCss, getComponentCss$F as getLinkPureCss, getComponentCss$E as getLinkSocialCss, getComponentCss$C as getLinkTileCss, getComponentCss$D as getLinkTileModelSignatureCss, getComponentCss$B as getMarqueCss, getComponentCss$A as getModalCss, getComponentCss$z as getModelSignatureCss, getComponentCss$x as getMultiSelectCss, getComponentCss$y as getMultiSelectOptionCss, getComponentCss$w as getPaginationCss, getComponentCss$v as getPinCodeCss, getComponentCss$u as getPopoverCss, getComponentCss$t as getRadioButtonWrapperCss, getComponentCss$s as getScrollerCss, getComponentCss$q as getSegmentedControlCss, getComponentCss$r as getSegmentedControlItemCss, getComponentCss$o as getSelectWrapperCss, getComponentCss$p as getSelectWrapperDropdownCss, getComponentCss$n as getSpinnerCss, getComponentCss$l as getStepperHorizontalCss, getComponentCss$m as getStepperHorizontalItemCss, getComponentCss$k as getSwitchCss, getComponentCss$j as getTableBodyCss, getComponentCss$i as getTableCellCss, getComponentCss$h as getTableCss, getComponentCss$g as getTableHeadCellCss, getComponentCss$e as getTableHeadCss, getComponentCss$f as getTableHeadRowCss, getComponentCss$d as getTableRowCss, getComponentCss$c as getTabsBarCss, getComponentCss$a as getTabsCss, getComponentCss$b as getTabsItemCss, getComponentCss$8 as getTagCss, getComponentCss$9 as getTagDismissibleCss, getComponentCss$4 as getTextCss, getComponentCss$7 as getTextFieldWrapperCss, getComponentCss$6 as getTextListCss, getComponentCss$5 as getTextListItemCss, getComponentCss$3 as getTextareaWrapperCss, getComponentCss$1 as getToastCss, getComponentCss as getWordmarkCss };
10071
+ export { getComponentCss$13 as getAccordionCss, getComponentCss$12 as getBannerCss, getComponentCss$_ as getButtonCss, getComponentCss$11 as getButtonGroupCss, getComponentCss$10 as getButtonPureCss, getComponentCss$$ as getButtonTileCss, getComponentCss$Z as getCarouselCss, getComponentCss$Y as getCheckboxWrapperCss, getComponentCss$X as getContentWrapperCss, getComponentCss$W as getCrestCss, getComponentCss$V as getDisplayCss, getComponentCss$U as getDividerCss, getComponentCss$S as getFieldsetCss, getComponentCss$T as getFieldsetWrapperCss, getComponentCss$Q as getFlexCss, getComponentCss$R as getFlexItemCss, getComponentCss$N as getFlyoutCss, getComponentCss$P as getFlyoutNavigationCss, getComponentCss$O as getFlyoutNavigationItemCss, getFunctionalComponentLabelStyles, getFunctionalComponentRequiredStyles, getFunctionalComponentStateMessageStyles, getComponentCss$L as getGridCss, getComponentCss$M as getGridItemCss, getComponentCss$K as getHeadingCss, getComponentCss$J as getHeadlineCss, getComponentCss$I as getIconCss, getComponentCss$H as getInlineNotificationCss, getComponentCss$F as getLinkCss, getComponentCss$G as getLinkPureCss, getComponentCss$F as getLinkSocialCss, getComponentCss$C as getLinkTileCss, getComponentCss$E as getLinkTileModelSignatureCss, getComponentCss$D as getLinkTileProductCss, getComponentCss$B as getMarqueCss, getComponentCss$A as getModalCss, getComponentCss$z as getModelSignatureCss, getComponentCss$x as getMultiSelectCss, getComponentCss$y as getMultiSelectOptionCss, getComponentCss$w as getPaginationCss, getComponentCss$v as getPinCodeCss, getComponentCss$u as getPopoverCss, getComponentCss$t as getRadioButtonWrapperCss, getComponentCss$s as getScrollerCss, getComponentCss$q as getSegmentedControlCss, getComponentCss$r as getSegmentedControlItemCss, getComponentCss$o as getSelectWrapperCss, getComponentCss$p as getSelectWrapperDropdownCss, getComponentCss$n as getSpinnerCss, getComponentCss$l as getStepperHorizontalCss, getComponentCss$m as getStepperHorizontalItemCss, getComponentCss$k as getSwitchCss, getComponentCss$j as getTableBodyCss, getComponentCss$i as getTableCellCss, getComponentCss$h as getTableCss, getComponentCss$g as getTableHeadCellCss, getComponentCss$e as getTableHeadCss, getComponentCss$f as getTableHeadRowCss, getComponentCss$d as getTableRowCss, getComponentCss$c as getTabsBarCss, getComponentCss$a as getTabsCss, getComponentCss$b as getTabsItemCss, getComponentCss$8 as getTagCss, getComponentCss$9 as getTagDismissibleCss, getComponentCss$4 as getTextCss, getComponentCss$7 as getTextFieldWrapperCss, getComponentCss$6 as getTextListCss, getComponentCss$5 as getTextListItemCss, getComponentCss$3 as getTextareaWrapperCss, getComponentCss$1 as getToastCss, getComponentCss as getWordmarkCss };
@@ -3564,6 +3564,8 @@ const hasDocument = typeof document !== 'undefined';
3564
3564
  const isThemeDark = (theme) => {
3565
3565
  return theme === 'dark';
3566
3566
  };
3567
+ const headerSlot = 'header';
3568
+ const anchorSlot = 'anchor';
3567
3569
 
3568
3570
  const formatObjectOutput = (value) => {
3569
3571
  return JSON.stringify(value)
@@ -3911,4 +3913,4 @@ const getTextTagType = (host, tag) => {
3911
3913
  }
3912
3914
  };
3913
3915
 
3914
- export { DISPLAY_TAGS, HEADING_TAGS, HEADLINE_TAGS, ItemType, TEXT_TAGS, _hasShowPickerSupport, attributeMutationMap, buildCrestImgSrc, buildCrestSrcSet, buildIconUrl, buildImgSrc, buildSrcSet, createPaginationItems, createRange, crestSize, displaySizeToTagMap, getButtonAriaAttributes, getButtonAttributes, getButtonBaseAriaAttributes, getButtonPureAriaAttributes, getCDNBaseURL, getClosestHTMLElement, getContentAriaAttributes, getCurrentActivePage, getDirectChildHTMLElement, getDisplayTagType, getHTMLElement, getHeadingTagType, getHeadlineTagType, getIconColor, getInlineNotificationIconName, getInnerManifest, getRole, getSelectedOptionMap, getSelectedOptionValues, getSelectedOptions, getStepperHorizontalIconName, getSvgUrl, getSwitchButtonAriaAttributes, getTextTagType, getThemeForIcon, getTotalPages, hasDocument, hasLocateAction, hasSpecificSlottedTag, hasVisibleIcon, hasWindow, isCustomDropdown, isDisabledOrLoading, isInfinitePagination, isListTypeOrdered, isScrollable, isSortable, isStateCompleteOrWarning, isThemeDark, isTouchDevice, isType, isUrl, isWithinForm, modelSignatureHeight, observedNodesMap, parseAndGetAriaAttributes, parseJSONAttribute, scrollAreaClass, showCustomCalendarOrTimeIndicator, supportsConstructableStylesheets, supportsNativePopover, tempDiv, tempIcon, tempLabel };
3916
+ export { DISPLAY_TAGS, HEADING_TAGS, HEADLINE_TAGS, ItemType, TEXT_TAGS, _hasShowPickerSupport, anchorSlot, attributeMutationMap, buildCrestImgSrc, buildCrestSrcSet, buildIconUrl, buildImgSrc, buildSrcSet, createPaginationItems, createRange, crestSize, displaySizeToTagMap, getButtonAriaAttributes, getButtonAttributes, getButtonBaseAriaAttributes, getButtonPureAriaAttributes, getCDNBaseURL, getClosestHTMLElement, getContentAriaAttributes, getCurrentActivePage, getDirectChildHTMLElement, getDisplayTagType, getHTMLElement, getHeadingTagType, getHeadlineTagType, getIconColor, getInlineNotificationIconName, getInnerManifest, getRole, getSelectedOptionMap, getSelectedOptionValues, getSelectedOptions, getStepperHorizontalIconName, getSvgUrl, getSwitchButtonAriaAttributes, getTextTagType, getThemeForIcon, getTotalPages, hasDocument, hasLocateAction, hasSpecificSlottedTag, hasVisibleIcon, hasWindow, headerSlot, isCustomDropdown, isDisabledOrLoading, isInfinitePagination, isListTypeOrdered, isScrollable, isSortable, isStateCompleteOrWarning, isThemeDark, isTouchDevice, isType, isUrl, isWithinForm, modelSignatureHeight, observedNodesMap, parseAndGetAriaAttributes, parseJSONAttribute, scrollAreaClass, showCustomCalendarOrTimeIndicator, supportsConstructableStylesheets, supportsNativePopover, tempDiv, tempIcon, tempLabel };
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef, useRef } from 'react';
4
+ import { useEventCallback, usePrefix, useTheme, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
+ import { syncRef } from '../../utils.mjs';
6
+ import { DSRLinkTileProduct } from '../dsr-components/link-tile-product.mjs';
7
+
8
+ const PLinkTileProduct = forwardRef(({ aspectRatio = '3:4', description, heading, href, likeButton = true, liked = false, onLike, price, rel, target = '_self', theme, className, children, ...rest }, ref) => {
9
+ const elementRef = useRef();
10
+ useEventCallback(elementRef, 'like', onLike);
11
+ const WebComponentTag = usePrefix('p-link-tile-product');
12
+ const propsToSync = [aspectRatio, description, heading, href, likeButton, liked, price, rel, target, theme || useTheme()];
13
+ useBrowserLayoutEffect(() => {
14
+ const { current } = elementRef;
15
+ ['aspectRatio', 'description', 'heading', 'href', 'likeButton', 'liked', 'price', 'rel', 'target', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
+ }, propsToSync);
17
+ // @ts-ignore
18
+ if (!process.browser) {
19
+ className = className ? `${className} ssr` : 'ssr';
20
+ }
21
+ const props = {
22
+ ...rest,
23
+ // @ts-ignore
24
+ ...(!process.browser
25
+ ? {
26
+ children: (jsx(DSRLinkTileProduct, { aspectRatio, description, heading, href, likeButton, liked, price, rel, target, theme: theme || useTheme(), children })),
27
+ }
28
+ : {
29
+ children,
30
+ suppressHydrationWarning: true,
31
+ }),
32
+ class: useMergedClass(elementRef, className),
33
+ ref: syncRef(elementRef, ref)
34
+ };
35
+ return jsx(WebComponentTag, { ...props });
36
+ });
37
+
38
+ export { PLinkTileProduct };
@@ -29,6 +29,7 @@ import '../components/link-pure.wrapper.mjs';
29
29
  import '../components/link-social.wrapper.mjs';
30
30
  import '../components/link-tile.wrapper.mjs';
31
31
  import '../components/link-tile-model-signature.wrapper.mjs';
32
+ import '../components/link-tile-product.wrapper.mjs';
32
33
  import '../components/marque.wrapper.mjs';
33
34
  import '../components/modal.wrapper.mjs';
34
35
  import '../components/model-signature.wrapper.mjs';
@@ -69,7 +70,7 @@ import { splitChildren } from '../../splitChildren.mjs';
69
70
  import { Component } from 'react';
70
71
  import { minifyCss } from '../../minifyCss.mjs';
71
72
  import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
72
- import { getAccordionCss as getComponentCss$12 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
73
+ import { getAccordionCss as getComponentCss$13 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
73
74
 
74
75
  class DSRAccordion extends Component {
75
76
  host;
@@ -78,7 +79,7 @@ class DSRAccordion extends Component {
78
79
  const buttonId = 'accordion-control';
79
80
  const contentId = 'accordion-panel';
80
81
  const Heading = this.props.tag;
81
- const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$12(this.props.size, this.props.compact, this.props.open, this.props.theme)));
82
+ const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$13(this.props.size, this.props.compact, this.props.open, this.props.theme)));
82
83
  return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs(Fragment, { children: [jsx(Heading, { className: "heading", children: jsxs("button", { id: buttonId, type: "button", "aria-expanded": this.props.open ? 'true' : 'false', "aria-controls": contentId, children: [this.props.heading || jsx("slot", { name: "heading" }), jsx("span", { className: "icon-container", children: jsx(PIcon, { className: "icon", name: this.props.open ? 'minus' : 'plus', theme: this.props.theme, size: "xx-small", "aria-hidden": "true" }) })] }) }), jsx("div", { id: contentId, className: "collapsible", role: "region", "aria-labelledby": buttonId, children: jsx("div", { children: jsx("slot", {}) }) })] })] }), this.props.children] }));
83
84
  }
84
85
  }
@@ -29,6 +29,7 @@ import '../components/link-pure.wrapper.mjs';
29
29
  import '../components/link-social.wrapper.mjs';
30
30
  import '../components/link-tile.wrapper.mjs';
31
31
  import '../components/link-tile-model-signature.wrapper.mjs';
32
+ import '../components/link-tile-product.wrapper.mjs';
32
33
  import '../components/marque.wrapper.mjs';
33
34
  import '../components/modal.wrapper.mjs';
34
35
  import '../components/model-signature.wrapper.mjs';
@@ -69,7 +70,7 @@ import { splitChildren } from '../../splitChildren.mjs';
69
70
  import { Component } from 'react';
70
71
  import { minifyCss } from '../../minifyCss.mjs';
71
72
  import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
72
- import { getBannerCss as getComponentCss$11 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
73
+ import { getBannerCss as getComponentCss$12 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
73
74
 
74
75
  class DSRBanner extends Component {
75
76
  host;
@@ -81,7 +82,7 @@ class DSRBanner extends Component {
81
82
  render() {
82
83
  const { children, namedSlotChildren, otherChildren } = splitChildren(this.props.children);
83
84
  const hasTitleSlot = namedSlotChildren.filter(({ props: { slot } }) => slot === 'title').length > 0;
84
- const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$11(this.props.open)));
85
+ const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$12(this.props.open)));
85
86
  return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs(PInlineNotification, { heading: this.props.heading, description: this.props.description, state: this.props.state, dismissButton: this.hasDismissButton, theme: this.props.theme, "aria-hidden": !this.props.open ? 'true' : 'false', children: [namedSlotChildren.filter(({ props: { slot } }) => slot === 'heading').length > 0 ? (jsx("slot", { name: "heading", slot: "heading" })) : (hasTitleSlot && jsx("slot", { name: "title", slot: "heading" })), namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0 && jsx("slot", { name: "description" })] })] }), this.props.children] }));
86
87
  }
87
88
  }
@@ -3,13 +3,13 @@ import { splitChildren } from '../../splitChildren.mjs';
3
3
  import { Component } from 'react';
4
4
  import { minifyCss } from '../../minifyCss.mjs';
5
5
  import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
6
- import { getButtonGroupCss as getComponentCss$10 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
6
+ import { getButtonGroupCss as getComponentCss$11 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
7
7
 
8
8
  class DSRButtonGroup extends Component {
9
9
  host;
10
10
  render() {
11
11
  splitChildren(this.props.children);
12
- const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$10(this.props.direction)));
12
+ const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$11(this.props.direction)));
13
13
  return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsx("div", { role: "group", children: jsx("slot", {}) })] }), this.props.children] }));
14
14
  }
15
15
  }
@@ -29,6 +29,7 @@ import '../components/link-pure.wrapper.mjs';
29
29
  import '../components/link-social.wrapper.mjs';
30
30
  import '../components/link-tile.wrapper.mjs';
31
31
  import '../components/link-tile-model-signature.wrapper.mjs';
32
+ import '../components/link-tile-product.wrapper.mjs';
32
33
  import '../components/marque.wrapper.mjs';
33
34
  import '../components/modal.wrapper.mjs';
34
35
  import '../components/model-signature.wrapper.mjs';
@@ -69,7 +70,7 @@ import { splitChildren } from '../../splitChildren.mjs';
69
70
  import { Component } from 'react';
70
71
  import { minifyCss } from '../../minifyCss.mjs';
71
72
  import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
72
- import { getButtonPureCss as getComponentCss$$ } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
73
+ import { getButtonPureCss as getComponentCss$10 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
73
74
  import { isDisabledOrLoading, hasVisibleIcon, getButtonPureAriaAttributes } from '../../../../../../components/dist/utils/esm/utils-entry.mjs';
74
75
 
75
76
  class DSRButtonPure extends Component {
@@ -86,7 +87,7 @@ class DSRButtonPure extends Component {
86
87
  size: 'inherit',
87
88
  theme: this.props.theme,
88
89
  };
89
- const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$$(this.props.icon, this.props.iconSource, this.props.active, this.props.loading, this.isDisabledOrLoading, this.props.stretch, this.props.size, this.props.hideLabel, this.props.alignLabel, this.props.theme)));
90
+ const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$10(this.props.icon, this.props.iconSource, this.props.active, this.props.loading, this.isDisabledOrLoading, this.props.stretch, this.props.size, this.props.hideLabel, this.props.alignLabel, this.props.theme)));
90
91
  return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", shadowrootdelegatesfocus: "true", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("button", { ...getButtonPureAriaAttributes(this.props.disabled, this.props.loading, this.props.aria), className: "root", type: this.props.type, name: this.props.name, value: this.props.value, children: [this.props.loading ? (jsx(PSpinner, { aria: { 'aria-label': 'Loading state' }, ...iconProps })) : (hasIcon && (jsx(PIcon, { ...iconProps, name: this.props.icon, source: this.props.iconSource, color: this.isDisabledOrLoading ? 'state-disabled' : 'primary', theme: this.props.theme, "aria-hidden": "true" }))), jsx("span", { className: "label", children: jsx("slot", {}) })] })] }), this.props.children] }));
91
92
  }
92
93
  }