@porsche-design-system/components-react 4.0.0-beta.1 → 4.0.0-beta.3

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 (214) hide show
  1. package/CHANGELOG.md +377 -7
  2. package/cjs/lib/components/button-pure.wrapper.cjs +3 -3
  3. package/cjs/lib/components/display.wrapper.cjs +1 -0
  4. package/cjs/lib/components/flag.wrapper.cjs +1 -1
  5. package/cjs/lib/components/heading.wrapper.cjs +3 -3
  6. package/cjs/lib/components/icon.wrapper.cjs +1 -1
  7. package/cjs/lib/components/link-pure.wrapper.cjs +3 -3
  8. package/cjs/lib/components/scroller.wrapper.cjs +3 -3
  9. package/cjs/lib/components/spinner.wrapper.cjs +3 -3
  10. package/cjs/lib/components/table.wrapper.cjs +3 -3
  11. package/cjs/lib/components/tabs-bar.wrapper.cjs +3 -3
  12. package/cjs/lib/components/tabs.wrapper.cjs +3 -3
  13. package/cjs/lib/components/text.wrapper.cjs +1 -1
  14. package/esm/lib/components/accordion.wrapper.d.ts +8 -8
  15. package/esm/lib/components/button-pure.wrapper.d.ts +15 -7
  16. package/esm/lib/components/button-pure.wrapper.mjs +3 -3
  17. package/esm/lib/components/button-tile.wrapper.d.ts +2 -2
  18. package/esm/lib/components/button.wrapper.d.ts +6 -6
  19. package/esm/lib/components/carousel.wrapper.d.ts +10 -10
  20. package/esm/lib/components/checkbox.wrapper.d.ts +6 -6
  21. package/esm/lib/components/crest.wrapper.d.ts +6 -6
  22. package/esm/lib/components/display.wrapper.d.ts +1 -0
  23. package/esm/lib/components/display.wrapper.mjs +1 -0
  24. package/esm/lib/components/drilldown-link.wrapper.d.ts +8 -8
  25. package/esm/lib/components/drilldown.wrapper.d.ts +8 -8
  26. package/esm/lib/components/fieldset.wrapper.d.ts +6 -6
  27. package/esm/lib/components/flag.wrapper.d.ts +5 -5
  28. package/esm/lib/components/flag.wrapper.mjs +1 -1
  29. package/esm/lib/components/flyout.wrapper.d.ts +2 -2
  30. package/esm/lib/components/heading.wrapper.d.ts +19 -11
  31. package/esm/lib/components/heading.wrapper.mjs +3 -3
  32. package/esm/lib/components/icon.wrapper.d.ts +7 -7
  33. package/esm/lib/components/icon.wrapper.mjs +1 -1
  34. package/esm/lib/components/input-date.wrapper.d.ts +12 -12
  35. package/esm/lib/components/input-email.wrapper.d.ts +8 -8
  36. package/esm/lib/components/input-month.wrapper.d.ts +12 -12
  37. package/esm/lib/components/input-number.wrapper.d.ts +8 -8
  38. package/esm/lib/components/input-password.wrapper.d.ts +6 -6
  39. package/esm/lib/components/input-search.wrapper.d.ts +6 -6
  40. package/esm/lib/components/input-tel.wrapper.d.ts +6 -6
  41. package/esm/lib/components/input-text.wrapper.d.ts +6 -6
  42. package/esm/lib/components/input-time.wrapper.d.ts +14 -14
  43. package/esm/lib/components/input-url.wrapper.d.ts +16 -16
  44. package/esm/lib/components/input-week.wrapper.d.ts +14 -14
  45. package/esm/lib/components/link-pure.wrapper.d.ts +23 -15
  46. package/esm/lib/components/link-pure.wrapper.mjs +3 -3
  47. package/esm/lib/components/link-tile-product.wrapper.d.ts +8 -8
  48. package/esm/lib/components/link-tile.wrapper.d.ts +8 -8
  49. package/esm/lib/components/link.wrapper.d.ts +14 -14
  50. package/esm/lib/components/modal.wrapper.d.ts +2 -2
  51. package/esm/lib/components/model-signature.wrapper.d.ts +2 -2
  52. package/esm/lib/components/multi-select.wrapper.d.ts +10 -10
  53. package/esm/lib/components/pin-code.wrapper.d.ts +8 -8
  54. package/esm/lib/components/popover.wrapper.d.ts +6 -6
  55. package/esm/lib/components/radio-group-option.wrapper.d.ts +2 -2
  56. package/esm/lib/components/radio-group.wrapper.d.ts +8 -8
  57. package/esm/lib/components/scroller.wrapper.d.ts +20 -4
  58. package/esm/lib/components/scroller.wrapper.mjs +3 -3
  59. package/esm/lib/components/segmented-control-item.wrapper.d.ts +4 -4
  60. package/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
  61. package/esm/lib/components/select.wrapper.d.ts +10 -10
  62. package/esm/lib/components/sheet.wrapper.d.ts +2 -2
  63. package/esm/lib/components/spinner.wrapper.d.ts +13 -5
  64. package/esm/lib/components/spinner.wrapper.mjs +3 -3
  65. package/esm/lib/components/switch.wrapper.d.ts +6 -6
  66. package/esm/lib/components/table-cell.wrapper.d.ts +2 -2
  67. package/esm/lib/components/table-head-cell.wrapper.d.ts +4 -4
  68. package/esm/lib/components/table.wrapper.d.ts +10 -2
  69. package/esm/lib/components/table.wrapper.mjs +3 -3
  70. package/esm/lib/components/tabs-bar.wrapper.d.ts +21 -5
  71. package/esm/lib/components/tabs-bar.wrapper.mjs +3 -3
  72. package/esm/lib/components/tabs.wrapper.d.ts +21 -5
  73. package/esm/lib/components/tabs.wrapper.mjs +3 -3
  74. package/esm/lib/components/tag-dismissible.wrapper.d.ts +6 -6
  75. package/esm/lib/components/tag.wrapper.d.ts +2 -2
  76. package/esm/lib/components/text.wrapper.d.ts +12 -12
  77. package/esm/lib/components/text.wrapper.mjs +1 -1
  78. package/esm/lib/components/textarea.wrapper.d.ts +6 -6
  79. package/esm/lib/components/wordmark.wrapper.d.ts +8 -8
  80. package/esm/lib/types.d.ts +356 -157
  81. package/global-styles/cn/index.css +3 -7
  82. package/global-styles/index.css +3 -7
  83. package/global-styles/variables.css +3 -7
  84. package/package.json +6 -2
  85. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +641 -533
  86. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +20 -19
  87. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/button-pure.wrapper.cjs +4 -4
  88. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/display.wrapper.cjs +1 -0
  89. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/flag.wrapper.cjs +1 -1
  90. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/heading.wrapper.cjs +4 -4
  91. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/icon.wrapper.cjs +1 -1
  92. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/link-pure.wrapper.cjs +4 -4
  93. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.cjs +4 -4
  94. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/spinner.wrapper.cjs +4 -4
  95. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/table.wrapper.cjs +4 -4
  96. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/tabs-bar.wrapper.cjs +4 -4
  97. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/tabs.wrapper.cjs +4 -4
  98. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/text.wrapper.cjs +1 -1
  99. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.cjs +3 -2
  100. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.cjs +2 -2
  101. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.cjs +1 -1
  102. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.cjs +2 -0
  103. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-item.cjs +2 -2
  104. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.cjs +1 -1
  105. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.cjs +1 -1
  106. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.cjs +1 -1
  107. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.cjs +1 -1
  108. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group-option.cjs +1 -1
  109. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.cjs +1 -1
  110. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.cjs +8 -12
  111. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.cjs +1 -1
  112. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/spinner.cjs +2 -2
  113. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.cjs +3 -2
  114. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.cjs +1 -1
  115. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.cjs +1 -1
  116. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.cjs +8 -8
  117. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.cjs +3 -2
  118. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +641 -533
  119. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +21 -18
  120. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/button-pure.wrapper.mjs +4 -4
  121. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/display.wrapper.mjs +1 -0
  122. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/flag.wrapper.mjs +1 -1
  123. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/heading.wrapper.mjs +4 -4
  124. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/icon.wrapper.mjs +1 -1
  125. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/link-pure.wrapper.mjs +4 -4
  126. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.mjs +4 -4
  127. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/spinner.wrapper.mjs +4 -4
  128. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/table.wrapper.mjs +4 -4
  129. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/tabs-bar.wrapper.mjs +4 -4
  130. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/tabs.wrapper.mjs +4 -4
  131. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/text.wrapper.mjs +1 -1
  132. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +3 -2
  133. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +2 -2
  134. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.mjs +1 -1
  135. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.mjs +2 -0
  136. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-item.mjs +2 -2
  137. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +1 -1
  138. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.mjs +1 -1
  139. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.mjs +1 -1
  140. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.mjs +1 -1
  141. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group-option.mjs +1 -1
  142. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.mjs +1 -1
  143. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +9 -13
  144. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.mjs +1 -1
  145. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/spinner.mjs +2 -2
  146. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.mjs +3 -2
  147. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.mjs +1 -1
  148. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.mjs +1 -1
  149. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.mjs +8 -8
  150. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.mjs +3 -2
  151. package/ssr/esm/lib/components/accordion.wrapper.d.ts +8 -8
  152. package/ssr/esm/lib/components/button-pure.wrapper.d.ts +15 -7
  153. package/ssr/esm/lib/components/button-tile.wrapper.d.ts +2 -2
  154. package/ssr/esm/lib/components/button.wrapper.d.ts +6 -6
  155. package/ssr/esm/lib/components/carousel.wrapper.d.ts +10 -10
  156. package/ssr/esm/lib/components/checkbox.wrapper.d.ts +6 -6
  157. package/ssr/esm/lib/components/crest.wrapper.d.ts +6 -6
  158. package/ssr/esm/lib/components/display.wrapper.d.ts +1 -0
  159. package/ssr/esm/lib/components/drilldown-link.wrapper.d.ts +8 -8
  160. package/ssr/esm/lib/components/drilldown.wrapper.d.ts +8 -8
  161. package/ssr/esm/lib/components/fieldset.wrapper.d.ts +6 -6
  162. package/ssr/esm/lib/components/flag.wrapper.d.ts +5 -5
  163. package/ssr/esm/lib/components/flyout.wrapper.d.ts +2 -2
  164. package/ssr/esm/lib/components/heading.wrapper.d.ts +19 -11
  165. package/ssr/esm/lib/components/icon.wrapper.d.ts +7 -7
  166. package/ssr/esm/lib/components/input-date.wrapper.d.ts +12 -12
  167. package/ssr/esm/lib/components/input-email.wrapper.d.ts +8 -8
  168. package/ssr/esm/lib/components/input-month.wrapper.d.ts +12 -12
  169. package/ssr/esm/lib/components/input-number.wrapper.d.ts +8 -8
  170. package/ssr/esm/lib/components/input-password.wrapper.d.ts +6 -6
  171. package/ssr/esm/lib/components/input-search.wrapper.d.ts +6 -6
  172. package/ssr/esm/lib/components/input-tel.wrapper.d.ts +6 -6
  173. package/ssr/esm/lib/components/input-text.wrapper.d.ts +6 -6
  174. package/ssr/esm/lib/components/input-time.wrapper.d.ts +14 -14
  175. package/ssr/esm/lib/components/input-url.wrapper.d.ts +16 -16
  176. package/ssr/esm/lib/components/input-week.wrapper.d.ts +14 -14
  177. package/ssr/esm/lib/components/link-pure.wrapper.d.ts +23 -15
  178. package/ssr/esm/lib/components/link-tile-product.wrapper.d.ts +8 -8
  179. package/ssr/esm/lib/components/link-tile.wrapper.d.ts +8 -8
  180. package/ssr/esm/lib/components/link.wrapper.d.ts +14 -14
  181. package/ssr/esm/lib/components/modal.wrapper.d.ts +2 -2
  182. package/ssr/esm/lib/components/model-signature.wrapper.d.ts +2 -2
  183. package/ssr/esm/lib/components/multi-select.wrapper.d.ts +10 -10
  184. package/ssr/esm/lib/components/pin-code.wrapper.d.ts +8 -8
  185. package/ssr/esm/lib/components/popover.wrapper.d.ts +6 -6
  186. package/ssr/esm/lib/components/radio-group-option.wrapper.d.ts +2 -2
  187. package/ssr/esm/lib/components/radio-group.wrapper.d.ts +8 -8
  188. package/ssr/esm/lib/components/scroller.wrapper.d.ts +20 -4
  189. package/ssr/esm/lib/components/segmented-control-item.wrapper.d.ts +4 -4
  190. package/ssr/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
  191. package/ssr/esm/lib/components/select.wrapper.d.ts +10 -10
  192. package/ssr/esm/lib/components/sheet.wrapper.d.ts +2 -2
  193. package/ssr/esm/lib/components/spinner.wrapper.d.ts +13 -5
  194. package/ssr/esm/lib/components/switch.wrapper.d.ts +6 -6
  195. package/ssr/esm/lib/components/table-cell.wrapper.d.ts +2 -2
  196. package/ssr/esm/lib/components/table-head-cell.wrapper.d.ts +4 -4
  197. package/ssr/esm/lib/components/table.wrapper.d.ts +10 -2
  198. package/ssr/esm/lib/components/tabs-bar.wrapper.d.ts +21 -5
  199. package/ssr/esm/lib/components/tabs.wrapper.d.ts +21 -5
  200. package/ssr/esm/lib/components/tag-dismissible.wrapper.d.ts +6 -6
  201. package/ssr/esm/lib/components/tag.wrapper.d.ts +2 -2
  202. package/ssr/esm/lib/components/text.wrapper.d.ts +12 -12
  203. package/ssr/esm/lib/components/textarea.wrapper.d.ts +6 -6
  204. package/ssr/esm/lib/components/wordmark.wrapper.d.ts +8 -8
  205. package/ssr/esm/lib/dsr-components/carousel.d.ts +2 -2
  206. package/ssr/esm/lib/dsr-components/display.d.ts +2 -0
  207. package/ssr/esm/lib/dsr-components/drilldown-item.d.ts +2 -2
  208. package/ssr/esm/lib/dsr-components/flyout.d.ts +1 -1
  209. package/ssr/esm/lib/dsr-components/scroller.d.ts +5 -3
  210. package/ssr/esm/lib/dsr-components/stepper-horizontal.d.ts +3 -2
  211. package/ssr/esm/lib/dsr-components/tabs-bar.d.ts +6 -6
  212. package/ssr/esm/lib/dsr-components/tabs.d.ts +2 -1
  213. package/ssr/esm/lib/types.d.ts +356 -157
  214. package/tailwindcss/index.css +19 -4
@@ -1,9 +1,9 @@
1
- const blurFrosted = 'blur(32px)';
1
+ const blurFrosted$1 = 'blur(32px)';
2
2
 
3
3
  /** @deprecated since v4.0.0, will be removed with next major release. Use backdropFilter: blurFrosted instead */
4
4
  const frostedGlassStyle = {
5
- WebkitBackdropFilter: blurFrosted,
6
- backdropFilter: blurFrosted,
5
+ WebkitBackdropFilter: blurFrosted$1,
6
+ backdropFilter: blurFrosted$1,
7
7
  };
8
8
 
9
9
  /** @deprecated since v4.0.0, will be removed with next major release. Use 2px instead. */
@@ -22,16 +22,7 @@ const leadingNormal$1 = 'calc(6px + 2.125ex)';
22
22
  /** @deprecated since v4.0.0, will be removed with next major release. Use leadingNormal instead */
23
23
  const fontLineHeight = leadingNormal$1;
24
24
 
25
- const fontSizeDisplayLarge = 'clamp(2.28rem, 5.2vw + 1.24rem, 7.48rem)';
26
-
27
- const fontSizeDisplayMedium = 'clamp(2.03rem, 3.58vw + 1.31rem, 5.61rem)';
28
-
29
- const fontSizeDisplaySmall = 'clamp(1.8rem, 2.41vw + 1.32rem, 4.21rem)';
30
-
31
- const typescaleLg = 'clamp(1.27rem, 0.51vw + 1.16rem, 1.78rem)';
32
-
33
- /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleLg instead. */
34
- const fontSizeHeadingLarge = typescaleLg;
25
+ const typescaleLg$1 = 'clamp(1.27rem, 0.51vw + 1.16rem, 1.78rem)';
35
26
 
36
27
  const typescaleMd$1 = 'clamp(1.13rem, 0.21vw + 1.08rem, 1.33rem)';
37
28
 
@@ -43,18 +34,18 @@ const typescaleSm$1 = '1rem';
43
34
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleSm instead. */
44
35
  const fontSizeHeadingSmall = typescaleSm$1;
45
36
 
46
- const typescaleXl = 'clamp(1.42rem, 0.94vw + 1.23rem, 2.37rem)';
37
+ const typescaleXl$1 = 'clamp(1.42rem, 0.94vw + 1.23rem, 2.37rem)';
47
38
 
48
39
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleXl instead. */
49
- const fontSizeHeadingXLarge = typescaleXl;
40
+ const fontSizeHeadingXLarge = typescaleXl$1;
50
41
 
51
- const typescale2Xl = 'clamp(1.6rem, 1.56vw + 1.29rem, 3.16rem)';
42
+ const typescale2Xl$1 = 'clamp(1.6rem, 1.56vw + 1.29rem, 3.16rem)';
52
43
 
53
44
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescale2Xl instead. */
54
- const fontSizeHeadingXXLarge = typescale2Xl;
45
+ const fontSizeHeadingXXLarge = typescale2Xl$1;
55
46
 
56
47
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleLg instead. */
57
- const fontSizeTextLarge = typescaleLg;
48
+ const fontSizeTextLarge = typescaleLg$1;
58
49
 
59
50
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleMd instead. */
60
51
  const fontSizeTextMedium = typescaleMd$1;
@@ -63,20 +54,20 @@ const fontSizeTextMedium = typescaleMd$1;
63
54
  const fontSizeTextSmall = typescaleSm$1;
64
55
 
65
56
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleXl instead. */
66
- const fontSizeTextXLarge = typescaleXl;
57
+ const fontSizeTextXLarge = typescaleXl$1;
67
58
 
68
- const typescaleXs$1 = 'clamp(0.81rem, 0.23vw + 0.77rem, 0.88rem)';
59
+ const typescaleXs$2 = 'clamp(0.81rem, 0.23vw + 0.77rem, 0.88rem)';
69
60
 
70
61
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleXs instead. */
71
- const fontSizeTextXSmall = typescaleXs$1;
62
+ const fontSizeTextXSmall = typescaleXs$2;
72
63
 
73
- const typescale2Xs = '.75rem';
64
+ const typescale2Xs$1 = '.75rem';
74
65
 
75
66
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescale2Xs instead. */
76
- const fontSizeTextXXSmall = typescale2Xs;
67
+ const fontSizeTextXXSmall = typescale2Xs$1;
77
68
 
78
69
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescale variables instead. */
79
- const fontSizeText = {
70
+ const fontSizeText$1 = {
80
71
  xxSmall: fontSizeTextXXSmall,
81
72
  xSmall: fontSizeTextXSmall,
82
73
  small: fontSizeTextSmall,
@@ -91,20 +82,16 @@ const fontStyleNormal = 'normal';
91
82
  /** @deprecated since v4.0.0, will be removed with next major release. Use 'normal' instead. */
92
83
  const fontVariant = 'normal';
93
84
 
94
- const fontWeightNormal = 400;
85
+ const fontWeightNormal$1 = 400;
95
86
 
96
87
  /** @deprecated since v4.0.0, will be removed with next major release. Use fontWeightNormal instead. */
97
- const fontWeightRegular = fontWeightNormal;
88
+ const fontWeightRegular = fontWeightNormal$1;
98
89
 
99
90
  const fontWeightSemibold$1 = 600;
100
91
 
101
92
  /** @deprecated since v4.0.0, will be removed with next major release. Use fontWeightSemibold instead. */
102
93
  const fontWeightSemiBold = fontWeightSemibold$1;
103
94
 
104
- const fontWeightBold$1 = 700;
105
-
106
- const fontWeightBold = fontWeightBold$1;
107
-
108
95
  const fontHyphenationStyle = {
109
96
  overflowWrap: 'break-word',
110
97
  // @ts-ignore
@@ -251,20 +238,20 @@ const durationLg = '.6s';
251
238
  /** @deprecated since v4.0.0, will be removed with next major release. Use durationLg instead. */
252
239
  const motionDurationLong = durationLg;
253
240
 
254
- const durationMd = '.4s';
241
+ const durationMd$1 = '.4s';
255
242
 
256
243
  /** @deprecated since v4.0.0, will be removed with next major release. Use durationMd instead. */
257
- const motionDurationModerate = durationMd;
244
+ const motionDurationModerate = durationMd$1;
258
245
 
259
- const durationSm = '.25s';
246
+ const durationSm$1 = '.25s';
260
247
 
261
248
  /** @deprecated since v4.0.0, will be removed with next major release. Use durationSm instead. */
262
- const motionDurationShort = durationSm;
249
+ const motionDurationShort = durationSm$1;
263
250
 
264
- const durationXl = '1.2s';
251
+ const durationXl$1 = '1.2s';
265
252
 
266
253
  /** @deprecated since v4.0.0, will be removed with next major release. Use durationXl instead. */
267
- const motionDurationVeryLong = durationXl;
254
+ const motionDurationVeryLong = durationXl$1;
268
255
 
269
256
  const easeInOut = 'cubic-bezier(.25,.1,.25,1)';
270
257
 
@@ -288,13 +275,6 @@ const dropShadowHighStyle = {
288
275
  boxShadow: shadowLg,
289
276
  };
290
277
 
291
- const shadowSm = '0px 3px 8px rgba(0,0,0,.16)';
292
-
293
- /** @deprecated since v4.0.0, will be removed with next major release. Use boxShadow: shadowSm instead. */
294
- const dropShadowLowStyle = {
295
- boxShadow: shadowSm,
296
- };
297
-
298
278
  const spacingFluidLg = 'clamp(32px, 2.75vw + 23px, 76px)';
299
279
 
300
280
  /** @deprecated since v4.0.0, will be removed with next major release. Use spacingFluidLg instead. */
@@ -310,30 +290,22 @@ const spacingFluidXs = 'clamp(4px, 0.25vw + 3px, 8px)';
310
290
  /** @deprecated since v4.0.0, will be removed with next major release. Use spacingFluidXs instead. */
311
291
  const spacingFluidXSmall = spacingFluidXs;
312
292
 
313
- const spacingStaticMd = '16px';
293
+ const spacingStaticMd$1 = '16px';
314
294
 
315
295
  /** @deprecated since v4.0.0, will be removed with next major release. Use spacingStaticMd instead. */
316
- const spacingStaticMedium = spacingStaticMd;
296
+ const spacingStaticMedium = spacingStaticMd$1;
317
297
 
318
- const spacingStaticSm$1 = '8px';
298
+ const spacingStaticSm$2 = '8px';
319
299
 
320
300
  /** @deprecated since v4.0.0, will be removed with next major release. Use spacingStaticSm instead. */
321
- const spacingStaticSmall = spacingStaticSm$1;
301
+ const spacingStaticSmall = spacingStaticSm$2;
322
302
 
323
- const spacingStaticXs$2 = '4px';
303
+ const spacingStaticXs$3 = '4px';
324
304
 
325
305
  /** @deprecated since v4.0.0, will be removed with next major release. Use spacingStaticXs instead. */
326
- const spacingStaticXSmall = spacingStaticXs$2;
306
+ const spacingStaticXSmall = spacingStaticXs$3;
327
307
 
328
- const spacingStaticXs$1 = spacingStaticXs$2;
329
-
330
- const _displayFontPartA = `${fontStyleNormal} ${fontVariant} ${fontWeightRegular} `;
331
- const _displayFontPartB = `/${fontLineHeight} ${fontFamily}`;
332
-
333
- /** @deprecated since v4.0.0, will be removed with next major release. Use proseDisplayLg instead. */
334
- const displayLargeStyle = {
335
- font: `${_displayFontPartA}${fontSizeDisplayLarge}${_displayFontPartB}`,
336
- };
308
+ const spacingStaticXs$2 = spacingStaticXs$3;
337
309
 
338
310
  const _headingFontPartA = `${fontStyleNormal} ${fontVariant} ${fontWeightRegular} `;
339
311
  const _headingFontPartB = `/${fontLineHeight} ${fontFamily}`;
@@ -386,12 +358,14 @@ const textMediumStyle = {
386
358
  };
387
359
 
388
360
  const proseTextSmStyle = {
389
- font: `normal normal ${fontWeightNormal} ${typescaleSm$1} / ${leadingNormal$1} ${fontPorscheNext$1}`,
361
+ font: `normal normal ${fontWeightNormal$1} ${typescaleSm$1} / ${leadingNormal$1} ${fontPorscheNext$1}`,
390
362
  ...fontHyphenationStyle,
391
363
  };
392
364
 
393
365
  const alphaDisabled = 0.4;
394
366
 
367
+ const blurFrosted = 'var(--p-blur-frosted)';
368
+
395
369
  const legacyRadiusLarge = '--_p-legacy-radius-large';
396
370
 
397
371
  const legacyRadiusMedium = '--_p-legacy-radius-medium';
@@ -430,6 +404,8 @@ const colorSurface = 'var(--p-color-surface)';
430
404
 
431
405
  const colorContrastHigh = 'var(--p-color-contrast-high)';
432
406
 
407
+ const colorContrastHigher = 'var(--p-color-contrast-higher)';
408
+
433
409
  const colorContrastLow = 'var(--p-color-contrast-low)';
434
410
 
435
411
  const colorContrastLower = 'var(--p-color-contrast-lower)';
@@ -468,14 +444,46 @@ const fontPorscheNext = 'var(--p-font-porsche-next)';
468
444
 
469
445
  const leadingNormal = 'var(--p-leading-normal)';
470
446
 
447
+ const typescale2Xl = 'var(--p-typescale-2xl)';
448
+
449
+ const typescale2Xs = 'var(--p-typescale-2xs)';
450
+
451
+ const typescale3Xl = 'var(--p-typescale-3xl)';
452
+
453
+ const typescale4Xl = 'var(--p-typescale-4xl)';
454
+
455
+ const typescale5Xl = 'var(--p-typescale-5xl)';
456
+
457
+ const typescaleLg = 'var(--p-typescale-lg)';
458
+
471
459
  const typescaleMd = 'var(--p-typescale-md)';
472
460
 
473
461
  const typescaleSm = 'var(--p-typescale-sm)';
474
462
 
463
+ const typescaleXl = 'var(--p-typescale-xl)';
464
+
465
+ const typescaleXs$1 = 'var(--p-typescale-xs)';
466
+
467
+ const fontWeightBold = 'var(--p-font-weight-bold)';
468
+
469
+ const fontWeightNormal = 'var(--p-font-weight-normal)';
470
+
475
471
  const fontWeightSemibold = 'var(--p-font-weight-semibold)';
476
472
 
473
+ const durationMd = 'var(--p-duration-md)';
474
+
475
+ const durationSm = 'var(--p-duration-sm)';
476
+
477
+ const durationXl = 'var(--p-duration-xl)';
478
+
479
+ const spacingStaticMd = 'var(--p-spacing-static-md)';
480
+
481
+ const spacingStaticSm$1 = 'var(--p-spacing-static-sm)';
482
+
483
+ const spacingStaticXs$1 = 'var(--p-spacing-static-xs)';
484
+
477
485
  const forcedColorsMediaQuery = (style) => {
478
- return { '@media (forced-colors: active)': style };
486
+ return { '@media(forced-colors:active)': style };
479
487
  };
480
488
 
481
489
  const motionDurationMap = {
@@ -511,21 +519,22 @@ const addImportantToEachRule = (input) => {
511
519
  typeof value === 'object' ? addImportantToEachRule(value) : addImportantToRule(value)),
512
520
  result), {});
513
521
  };
514
- const getFocusBaseStyles = () => {
522
+ const getFocusBaseStyles = (offset = 2) => {
515
523
  return {
516
524
  outline: `${borderWidthBase} solid ${colorFocus}`,
517
- outlineOffset: '2px',
525
+ outlineOffset: `${offset}px`,
518
526
  ...forcedColorsMediaQuery({
519
527
  outlineColor: 'Highlight',
520
528
  }),
521
529
  };
522
530
  };
523
- const getDisabledBaseStyles = () => {
531
+ const getDisabledBaseStyles = (addForcedColorsDisabledStyles) => {
524
532
  return {
525
533
  opacity: alphaDisabled,
526
534
  ...forcedColorsMediaQuery({
527
535
  opacity: 1,
528
536
  color: 'GrayText',
537
+ ...addForcedColorsDisabledStyles,
529
538
  }),
530
539
  };
531
540
  };
@@ -576,7 +585,9 @@ const preventFoucOfNestedElementsStyles = {
576
585
  * utility to wrap jss styles parameter in `@media (hover: hover)`
577
586
  * which is used to not have hover styles on touch devices
578
587
  */
579
- const hoverMediaQuery = (style) => ({ '@media(hover:hover)': style });
588
+ const hoverMediaQuery = (style) => {
589
+ return { '@media(hover:hover)': style };
590
+ };
580
591
 
581
592
  function _extends() {
582
593
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -3764,10 +3775,6 @@ const isDisabledOrLoading = (disabled, loading) => {
3764
3775
  return disabled || loading;
3765
3776
  };
3766
3777
 
3767
- const hasWindow = typeof window !== 'undefined';
3768
-
3769
- const isHighContrastMode = hasWindow && window.matchMedia?.('(forced-colors: active)').matches;
3770
-
3771
3778
  const parseJSON = (prop) => {
3772
3779
  if (typeof prop === 'string') {
3773
3780
  try {
@@ -3855,6 +3862,8 @@ const mergeDeep = (...objects) => {
3855
3862
  }
3856
3863
  })(); // determine it once
3857
3864
 
3865
+ const hasWindow = typeof window !== 'undefined';
3866
+
3858
3867
  const attributeMutationMap = new Map();
3859
3868
  hasWindow &&
3860
3869
  new MutationObserver((mutations) => {
@@ -3901,14 +3910,12 @@ const OPTION_LIST_SAFE_ZONE = 6;
3901
3910
 
3902
3911
  const getCDNBaseURL = () => global.PORSCHE_DESIGN_SYSTEM_CDN_URL + "/porsche-design-system";
3903
3912
 
3904
- const prefix = `[Porsche Design System v${"4.0.0-beta.1"}]` // this part isn't covered by unit tests
3913
+ const prefix = `[Porsche Design System v${"4.0.0-beta.3"}]` // this part isn't covered by unit tests
3905
3914
  ;
3906
3915
  const consoleError = (...messages) => {
3907
3916
  console.error(prefix, ...messages);
3908
3917
  };
3909
3918
 
3910
- const HEADING_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
3911
-
3912
3919
  const headerSlot = 'header';
3913
3920
  const anchorSlot = 'anchor';
3914
3921
 
@@ -4031,8 +4038,8 @@ const cssVarPaddingBlock = '--p-accordion-py';
4031
4038
  /**
4032
4039
  * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
4033
4040
  */
4034
- const icon = getInlineSVGBackgroundImage(`<path d="m12 15.125h-.001l-.005-.006-6.494-5.476.642-.768 5.858 4.94 5.858-4.94.642.769-6.497 5.477z"/>`);
4035
- const backgroundMap = {
4041
+ const iconMarker = getInlineSVGBackgroundImage(`<path d="m12 15.125h-.001l-.005-.006-6.494-5.476.642-.768 5.858 4.94 5.858-4.94.642.769-6.497 5.477z"/>`);
4042
+ const backgroundMap$1 = {
4036
4043
  canvas: colorCanvas,
4037
4044
  surface: colorSurface,
4038
4045
  frosted: colorFrosted,
@@ -4107,7 +4114,7 @@ const getComponentCss$19 = (alignMarker, background, isCompact, isOpen, isSticky
4107
4114
  columnGap: gap,
4108
4115
  alignItems: 'center',
4109
4116
  padding: `var(${cssVarPaddingBlock}, ${background === 'none' ? '0' : paddingBlock}) var(${cssVarPaddingInline$1}, ${background === 'none' ? '0' : paddingInline})`,
4110
- background: backgroundMap[background],
4117
+ background: backgroundMap$1[background],
4111
4118
  ...(background === 'frosted' && frostedGlassStyle),
4112
4119
  borderRadius: `var(${legacyRadiusSmall}, ${radiusXl})`,
4113
4120
  ...forcedColorsMediaQuery({
@@ -4156,7 +4163,7 @@ const getComponentCss$19 = (alignMarker, background, isCompact, isOpen, isSticky
4156
4163
  (background === 'canvas' || background === 'surface') && {
4157
4164
  position: 'sticky',
4158
4165
  top: `var(${cssVarSummaryTop}, var(${cssVarSummaryTopDeprecated}, 0px))`,
4159
- background: `linear-gradient(180deg,${backgroundMap[background]} 0%,${backgroundMap[background]} 90%,transparent 100%)`,
4166
+ background: `linear-gradient(180deg,${backgroundMap$1[background]} 0%,${backgroundMap$1[background]} 90%,transparent 100%)`,
4160
4167
  borderRadius: `var(${legacyRadiusSmall}, ${radiusXl})`,
4161
4168
  }),
4162
4169
  '&:focus-visible::before': getFocusBaseStyles(),
@@ -4175,9 +4182,6 @@ const getComponentCss$19 = (alignMarker, background, isCompact, isOpen, isSticky
4175
4182
  borderRadius: radiusFull,
4176
4183
  background: 'transparent',
4177
4184
  transition: getTransition('background-color'),
4178
- ...forcedColorsMediaQuery({
4179
- backgroundColor: 'LinkText',
4180
- }),
4181
4185
  },
4182
4186
  '&::after': {
4183
4187
  gridArea: `1/${isIconAlignedStart ? '1' : hasSummaryBefore && hasSummaryAfter ? '4' : hasSummaryBefore || hasSummaryAfter ? '3' : '2'}`,
@@ -4186,8 +4190,8 @@ const getComponentCss$19 = (alignMarker, background, isCompact, isOpen, isSticky
4186
4190
  width: '1rem',
4187
4191
  height: '1rem',
4188
4192
  pointerEvents: 'none',
4189
- WebkitMask: `${icon} center/contain no-repeat`, // necessary for Sogou browser support :-)
4190
- mask: `${icon} center/contain no-repeat`,
4193
+ WebkitMask: `${iconMarker} center/contain no-repeat`, // necessary for Sogou browser support :-)
4194
+ mask: `${iconMarker} center/contain no-repeat`,
4191
4195
  background: colorPrimary,
4192
4196
  transform: 'rotate3d(0)',
4193
4197
  transition: getTransition('transform', duration, easing),
@@ -4230,6 +4234,9 @@ const cssVariableBottom = '--p-banner-position-bottom';
4230
4234
  const cssVariableZIndex = '--p-internal-banner-z-index';
4231
4235
  const topBottomFallback = '56px';
4232
4236
  const getComponentCss$18 = (isOpen) => {
4237
+ const easing = isOpen ? 'in' : 'out';
4238
+ const transition = `visibility 0s linear var(${cssVariableTransitionDuration}, ${isOpen ? '0s' : motionDurationLong}), ${getTransition('transform', 'moderate', easing)}`;
4239
+ const transitionChild = `${getTransition('opacity', 'moderate', easing)}`;
4233
4240
  return getCss({
4234
4241
  '@global': {
4235
4242
  ':host': {
@@ -4239,32 +4246,42 @@ const getComponentCss$18 = (isOpen) => {
4239
4246
  ...getBannerPopoverResetStyles(),
4240
4247
  inset: `auto ${gridExtendedOffsetBase} var(${cssVariableBottom},${topBottomFallback})`,
4241
4248
  zIndex: `var(${cssVariableZIndex},${BANNER_Z_INDEX})`,
4242
- ...dropShadowHighStyle,
4243
4249
  borderRadius: `var(${legacyRadiusMedium}, ${radiusXl})`, // needed for rounded box-shadow
4244
4250
  '&::backdrop': {
4245
4251
  display: 'none',
4246
4252
  },
4253
+ '& > :first-child': {
4254
+ opacity: 0,
4255
+ ...dropShadowHighStyle,
4256
+ ...(isOpen
4257
+ ? {
4258
+ opacity: 1,
4259
+ }
4260
+ : {
4261
+ opacity: 0,
4262
+ }),
4263
+ transition: transitionChild,
4264
+ // // during transition the element will be removed from top-layer immediately, resulting in other elements laying over (as of Mai 2024 only Chrome is fixed by this)
4265
+ '@supports (transition-behavior: allow-discrete)': {
4266
+ transition: `${transitionChild}, overlay var(${cssVariableTransitionDuration}, ${motionDurationModerate}) ${motionEasingOut} allow-discrete`,
4267
+ },
4268
+ },
4247
4269
  ...(isOpen
4248
4270
  ? {
4249
- opacity: 1,
4250
4271
  visibility: 'inherit',
4251
4272
  pointerEvents: 'inherit',
4252
4273
  transform: 'translate3d(0,0,0)',
4253
- transition: `${getTransition('transform', 'moderate', 'in')}, ${getTransition('opacity', 'moderate', 'in')}`,
4254
4274
  }
4255
4275
  : {
4256
- opacity: 0,
4257
4276
  visibility: 'hidden',
4258
4277
  pointerEvents: 'none',
4259
4278
  transform: `translate3d(0,calc(var(${cssVariableBottom},${topBottomFallback}) + 100%),0)`,
4260
- '&(.hydrated),&(.ssr)': {
4261
- transition: `visibility 0s linear var(${cssVariableTransitionDuration}, ${motionDurationLong}), ${getTransition('transform', 'moderate', 'out')}, ${getTransition('opacity', 'moderate', 'out')}`,
4262
- // during transition the element will be removed from top-layer immediately, resulting in other elements laying over (as of Mai 2024 only Chrome is fixed by this)
4263
- '@supports (transition-behavior: allow-discrete)': {
4264
- transition: `visibility 0s linear var(${cssVariableTransitionDuration}, ${motionDurationLong}), ${getTransition('transform', 'moderate', 'out')}, ${getTransition('opacity', 'moderate', 'out')}, overlay var(${cssVariableTransitionDuration}, ${motionDurationModerate}) ${motionEasingOut} allow-discrete`,
4265
- },
4266
- },
4267
4279
  }),
4280
+ transition,
4281
+ // during transition the element will be removed from top-layer immediately, resulting in other elements laying over (as of Mai 2024 only Chrome is fixed by this)
4282
+ '@supports (transition-behavior: allow-discrete)': {
4283
+ transition: `${transition}, overlay var(${cssVariableTransitionDuration}, ${motionDurationModerate}) ${motionEasingOut} allow-discrete`,
4284
+ },
4268
4285
  [getMediaQueryMin('s')]: {
4269
4286
  inset: `var(${cssVariableTop},${topBottomFallback}) ${gridExtendedOffsetS} auto`,
4270
4287
  ...(!isOpen && { transform: `translate3d(0,calc(-100% - var(${cssVariableTop},${topBottomFallback})),0)` }),
@@ -4280,17 +4297,47 @@ const getComponentCss$18 = (isOpen) => {
4280
4297
  });
4281
4298
  };
4282
4299
 
4283
- const fontSizeTextMap = {
4284
- 'xx-small': fontSizeTextXXSmall,
4285
- 'x-small': fontSizeTextXSmall,
4286
- small: fontSizeTextSmall,
4287
- medium: fontSizeTextMedium,
4288
- large: fontSizeTextLarge,
4289
- 'x-large': fontSizeTextXLarge,
4300
+ const colorMap$3 = {
4301
+ primary: colorPrimary,
4302
+ 'contrast-higher': colorContrastHigher,
4303
+ 'contrast-high': colorContrastHigh,
4304
+ 'contrast-medium': colorContrastMedium,
4305
+ 'contrast-low': colorContrastLow,
4306
+ 'contrast-lower': colorContrastLower,
4307
+ success: colorSuccess,
4308
+ warning: colorWarning,
4309
+ error: colorError,
4310
+ info: colorInfo,
4311
+ inherit: 'currentcolor',
4312
+ };
4313
+
4314
+ const sizeMap$1 = {
4315
+ 'xx-small': typescale2Xs, // deprecated (alias)
4316
+ 'x-small': typescaleXs$1, // deprecated (alias)
4317
+ small: typescaleSm, // deprecated (alias)
4318
+ medium: typescaleMd, // deprecated (alias)
4319
+ large: typescaleLg, // deprecated (alias)
4320
+ 'x-large': typescaleXl, // deprecated (alias)
4321
+ 'xx-large': typescale2Xl, // deprecated (alias)
4322
+ '2xs': typescale2Xs,
4323
+ xs: typescaleXs$1,
4324
+ sm: typescaleSm,
4325
+ md: typescaleMd,
4326
+ lg: typescaleLg,
4327
+ xl: typescaleXl,
4328
+ '2xl': typescale2Xl,
4329
+ '3xl': typescale3Xl,
4330
+ '4xl': typescale4Xl,
4331
+ '5xl': typescale5Xl,
4290
4332
  inherit: 'inherit',
4291
4333
  };
4292
- const getFontSizeText = (size) => {
4293
- return fontSizeTextMap[size];
4334
+
4335
+ const weightMap = {
4336
+ regular: fontWeightNormal, // deprecated
4337
+ 'semi-bold': fontWeightSemibold, // deprecated
4338
+ normal: fontWeightNormal,
4339
+ semibold: fontWeightSemibold,
4340
+ bold: fontWeightBold,
4294
4341
  };
4295
4342
 
4296
4343
  // Needed for slotted anchor and hidden label, which then enlarges the hidden label to equal host size and indents the text to be visually hidden.
@@ -4309,7 +4356,7 @@ const getVisibilityJssStyle = (hideLabel) => {
4309
4356
  };
4310
4357
  const offsetVertical = '-2px';
4311
4358
  const offsetHorizontal = '-4px';
4312
- const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor) => {
4359
+ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading, stretch, size, color, hideLabel, alignLabel, underline, hasSlottedAnchor) => {
4313
4360
  const hasIcon = hasVisibleIcon(icon, iconSource);
4314
4361
  return {
4315
4362
  '@global': {
@@ -4331,17 +4378,23 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4331
4378
  display: 'flex',
4332
4379
  width: '100%',
4333
4380
  cursor: 'pointer',
4334
- color: colorPrimary,
4381
+ color: colorMap$3[color],
4335
4382
  textDecoration: underline ? 'underline' : 'none',
4336
- ...textSmallStyle,
4383
+ font: `${fontWeightNormal} ${typescaleSm}/${leadingNormal} ${fontPorscheNext}`,
4337
4384
  ...mergeDeep(buildResponsiveStyles(hideLabel, (hidelabelValue) => ({
4338
- gap: hidelabelValue ? 0 : spacingStaticXSmall,
4385
+ gap: hidelabelValue ? 0 : spacingStaticXs$1,
4339
4386
  })), buildResponsiveStyles(stretch, (stretchValue) => ({
4340
4387
  justifyContent: stretchValue ? 'space-between' : 'flex-start',
4341
4388
  alignItems: stretchValue ? 'center' : 'flex-start',
4342
- })), buildResponsiveStyles(size, (sizeValue) => ({
4343
- fontSize: getFontSizeText(sizeValue),
4389
+ })), buildResponsiveStyles(size, (v) => ({
4390
+ fontSize: sizeMap$1[v],
4344
4391
  }))),
4392
+ ...forcedColorsMediaQuery({
4393
+ color: 'LinkText',
4394
+ '&:is(button)': {
4395
+ color: 'ButtonText',
4396
+ },
4397
+ }),
4345
4398
  '&::before': {
4346
4399
  content: '""',
4347
4400
  position: 'absolute', // mobile Safari -> prevent lagging active state
@@ -4354,14 +4407,16 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4354
4407
  })),
4355
4408
  transition: getTransition('background-color'),
4356
4409
  ...(active && {
4357
- ...frostedGlassStyle,
4410
+ WebkitBackdropFilter: blurFrosted,
4411
+ backdropFilter: blurFrosted,
4358
4412
  backgroundColor: colorFrosted,
4359
4413
  }),
4360
4414
  },
4361
4415
  ...(!isDisabledOrLoading &&
4362
4416
  hoverMediaQuery({
4363
4417
  '&:hover::before': {
4364
- ...frostedGlassStyle,
4418
+ WebkitBackdropFilter: blurFrosted,
4419
+ backdropFilter: blurFrosted,
4365
4420
  backgroundColor: colorFrostedStrong,
4366
4421
  },
4367
4422
  })),
@@ -4374,15 +4429,6 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4374
4429
  icon: {
4375
4430
  position: 'relative',
4376
4431
  flexShrink: '0',
4377
- fontSize: 'inherit', // inherit font size from root
4378
- width: fontLineHeight,
4379
- height: fontLineHeight,
4380
- // workaround for Safari to optimize vertical alignment of icons
4381
- // TODO: check if this is still needed after optimized icons are included
4382
- '@supports (width: round(down, 1px, 1px))': {
4383
- width: `round(down, ${fontLineHeight}, 1px)`,
4384
- height: `round(down, ${fontLineHeight}, 1px)`,
4385
- },
4386
4432
  },
4387
4433
  label: mergeDeep({ zIndex: '1' }, // fix Firefox bug on :hover (#2583) & pure-link with nested anchor & hidden label (#3349)
4388
4434
  buildResponsiveStyles(hideLabel, getVisibilityJssStyle), buildResponsiveStyles(alignLabel, (alignLabelValue) => ({
@@ -4407,9 +4453,9 @@ const getFunctionalComponentLoadingMessageStyles = () => {
4407
4453
  /**
4408
4454
  * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
4409
4455
  */
4410
- const getComponentCss$17 = (icon, iconSource, active, isDisabled, isLoading, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, underline) => {
4456
+ const getComponentCss$17 = (icon, iconSource, active, isDisabled, isLoading, isDisabledOrLoading, stretch, size, color, hideLabel, alignLabel, underline) => {
4411
4457
  const hasIcon = hasVisibleIcon(icon, iconSource);
4412
- return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, underline, false), {
4458
+ return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, isDisabledOrLoading, stretch, size, color, hideLabel, alignLabel, underline, false), {
4413
4459
  root: {
4414
4460
  ...(isDisabled && {
4415
4461
  color: colorContrastLow,
@@ -4426,9 +4472,7 @@ const getComponentCss$17 = (icon, iconSource, active, isDisabled, isLoading, isD
4426
4472
  icon: {
4427
4473
  position: 'absolute',
4428
4474
  top: 0,
4429
- left: `calc(50% - ${fontLineHeight} / 2)`,
4430
- width: fontLineHeight,
4431
- height: fontLineHeight,
4475
+ left: `calc(50% - ${leadingNormal} / 2)`,
4432
4476
  },
4433
4477
  }),
4434
4478
  // .loading
@@ -4436,15 +4480,6 @@ const getComponentCss$17 = (icon, iconSource, active, isDisabled, isLoading, isD
4436
4480
  }));
4437
4481
  };
4438
4482
 
4439
- const fontWeightMap = {
4440
- regular: fontWeightRegular,
4441
- 'semi-bold': fontWeightSemiBold,
4442
- bold: fontWeightBold,
4443
- };
4444
- const getFontWeight = (weight) => {
4445
- return fontWeightMap[weight];
4446
- };
4447
-
4448
4483
  // CSS Variable defined in fontHyphenationStyle
4449
4484
  /**
4450
4485
  * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
@@ -4503,10 +4538,10 @@ const getComponentCss$16 = (isDisabledOrLoading, aspectRatio, size, weight, alig
4503
4538
  ...textMediumStyle,
4504
4539
  color: colorPrimary,
4505
4540
  hyphens: 'inherit',
4506
- ...mergeDeep(buildResponsiveStyles(size, (sizeValue) => ({
4507
- fontSize: getFontSizeText(sizeValue),
4508
- })), buildResponsiveStyles(weight, (weightValue) => ({
4509
- fontWeight: getFontWeight(weightValue),
4541
+ ...mergeDeep(buildResponsiveStyles(size, (v) => ({
4542
+ fontSize: sizeMap$1[v],
4543
+ })), buildResponsiveStyles(weight, (v) => ({
4544
+ fontWeight: weightMap[v],
4510
4545
  }))),
4511
4546
  },
4512
4547
  },
@@ -4699,7 +4734,11 @@ const getComponentCss$15 = (icon, iconSource, variant, hideLabel, isDisabled, is
4699
4734
  cursor: 'not-allowed',
4700
4735
  }),
4701
4736
  ...(isDisabled && {
4702
- ...getDisabledBaseStyles(),
4737
+ ...getDisabledBaseStyles({
4738
+ '&': {
4739
+ boxShadow: 'inset 0 0 0 2px GrayText !important',
4740
+ },
4741
+ }),
4703
4742
  }),
4704
4743
  },
4705
4744
  ...(isLoading && {
@@ -4711,7 +4750,9 @@ const getComponentCss$15 = (icon, iconSource, variant, hideLabel, isDisabled, is
4711
4750
  top: '50%',
4712
4751
  left: '50%',
4713
4752
  transform: 'translate(-50%, -50%)',
4714
- color: 'inherit',
4753
+ ...(variant === 'primary' && {
4754
+ '--p-spinner-color': 'currentcolor',
4755
+ }),
4715
4756
  },
4716
4757
  }),
4717
4758
  label: {
@@ -5383,7 +5424,7 @@ const colorBorderHoverMap = {
5383
5424
  error: colorError,
5384
5425
  none: colorPrimary,
5385
5426
  };
5386
- const colorMap$4 = {
5427
+ const colorMap$2 = {
5387
5428
  success: colorSuccess,
5388
5429
  error: colorError,
5389
5430
  none: undefined,
@@ -5393,7 +5434,7 @@ const getThemedFormStateColors = (state) => {
5393
5434
  formStateBackgroundColor: colorBackgroundMap$1[state],
5394
5435
  formStateBorderColor: colorBorderMap[state],
5395
5436
  formStateBorderHoverColor: colorBorderHoverMap[state],
5396
- formStateColor: colorMap$4[state],
5437
+ formStateColor: colorMap$2[state],
5397
5438
  };
5398
5439
  };
5399
5440
 
@@ -5457,10 +5498,12 @@ const getCheckboxCheckedBaseStyles = (isLoading, state) => {
5457
5498
  }
5458
5499
  return {
5459
5500
  '&::before': {
5460
- forcedColorAdjust: 'none',
5461
5501
  WebkitMask: `${checkedIcon$1} center/contain no-repeat`, // necessary for Sogou browser support :-)
5462
5502
  mask: `${checkedIcon$1} center/contain no-repeat`,
5463
5503
  backgroundColor: `var(${cssVarCheckboxIconColor}, ${state === 'none' ? colorPrimary : formStateBorderColor})`,
5504
+ ...forcedColorsMediaQuery({
5505
+ background: 'CanvasText',
5506
+ }),
5464
5507
  },
5465
5508
  };
5466
5509
  };
@@ -5473,10 +5516,12 @@ const getCheckboxIndeterminateBaseStyles = (isLoading, state) => {
5473
5516
  }
5474
5517
  return {
5475
5518
  '&::before': {
5476
- forcedColorAdjust: 'none',
5477
5519
  WebkitMask: `${indeterminateIcon} center/contain no-repeat`,
5478
5520
  mask: `${indeterminateIcon} center/contain no-repeat`,
5479
5521
  backgroundColor: state === 'none' ? colorPrimary : formStateBorderColor,
5522
+ ...forcedColorsMediaQuery({
5523
+ background: 'CanvasText',
5524
+ }),
5480
5525
  },
5481
5526
  };
5482
5527
  };
@@ -5496,7 +5541,7 @@ const getFunctionalComponentLabelAfterStyles = () => {
5496
5541
  verticalAlign: 'top',
5497
5542
  '&::slotted(*)': {
5498
5543
  ...addImportantToEachRule({
5499
- marginInlineStart: spacingStaticXs$1,
5544
+ marginInlineStart: spacingStaticXs$2,
5500
5545
  })
5501
5546
  },
5502
5547
  },
@@ -5532,8 +5577,8 @@ const getFunctionalComponentLabelStyles = (isDisabled, isLoading, hideLabel, add
5532
5577
  cursor: 'unset',
5533
5578
  fontSize: typescaleXs,
5534
5579
  color: colorContrastHigh,
5535
- ...buildResponsiveStyles(hideLabel, (isHidden) => getHiddenTextJssStyle(isHidden, { marginTop: `-${spacingStaticXs$1}` })),
5536
- marginTop: `-${spacingStaticXs$1}`,
5580
+ ...buildResponsiveStyles(hideLabel, (isHidden) => getHiddenTextJssStyle(isHidden, { marginTop: `-${spacingStaticXs$2}` })),
5581
+ marginTop: `-${spacingStaticXs$2}`,
5537
5582
  },
5538
5583
  ...additionalDefaultJssStyle,
5539
5584
  },
@@ -5619,13 +5664,11 @@ const getComponentCss$12 = (hideLabel, state, isDisabled, isLoading, isCompact)
5619
5664
  },
5620
5665
  ...(isLoading && {
5621
5666
  spinner: {
5667
+ '--p-spinner-size': `calc(${checkboxDimension} - 2px)`, // compensates the 1px border of the checkbox
5622
5668
  position: 'absolute',
5623
5669
  top: '50%',
5624
5670
  left: '50%',
5625
5671
  transform: 'translate(-50%,-50%)',
5626
- width: checkboxDimension,
5627
- height: checkboxDimension,
5628
- font: `${fontSizeTextSmall} ${fontFamily}`, // needed for correct width and height definition based on ex-unit
5629
5672
  },
5630
5673
  }),
5631
5674
  // .label / .required
@@ -5738,13 +5781,6 @@ const getFunctionalComponentInputBaseStyles = (isDisabled, isLoading, hideLabel,
5738
5781
  },
5739
5782
  })),
5740
5783
  },
5741
- ...(isLoading && {
5742
- spinner: {
5743
- font: textSmallStyle.font,
5744
- width: fontLineHeight,
5745
- height: fontLineHeight,
5746
- },
5747
- }),
5748
5784
  // .label / .required
5749
5785
  ...getFunctionalComponentLabelStyles(isDisabled, isLoading, hideLabel),
5750
5786
  // .message
@@ -5996,54 +6032,13 @@ const getComponentCss$11 = () => {
5996
6032
  });
5997
6033
  };
5998
6034
 
5999
- const colorMap$3 = {
6000
- primary: colorPrimary,
6001
- 'contrast-high': colorContrastHigh,
6002
- 'contrast-medium': colorContrastMedium,
6003
- 'contrast-low': colorContrastLow,
6004
- success: colorSuccess,
6005
- warning: colorWarning,
6006
- error: colorError,
6007
- info: colorInfo,
6008
- inherit: 'currentColor',
6009
- };
6010
- const getThemedTypographyColor = (textColor) => {
6011
- return colorMap$3[textColor];
6012
- };
6013
-
6014
- const getTypographyRootJssStyle = (baseTextStyle, responsiveStyle, align, // eslint-disable-line @typescript-eslint/no-duplicate-type-constituents
6015
- color, // eslint-disable-line @typescript-eslint/no-duplicate-type-constituents
6016
- ellipsis) => {
6017
- return {
6018
- all: 'unset',
6019
- display: 'block',
6020
- ...baseTextStyle,
6021
- color: getThemedTypographyColor(color),
6022
- textAlign: align,
6023
- letterSpacing: 'normal',
6024
- listStyleType: 'none',
6025
- whiteSpace: 'inherit',
6026
- ...(ellipsis && {
6027
- maxWidth: '100%',
6028
- overflow: 'hidden',
6029
- textOverflow: 'ellipsis',
6030
- whiteSpace: 'nowrap',
6031
- }),
6032
- ...responsiveStyle,
6033
- };
6034
- };
6035
- const getTypographySlottedJssStyle = () => {
6036
- return {
6037
- all: 'unset',
6038
- };
6039
- };
6040
-
6041
6035
  const DISPLAY_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
6042
6036
 
6043
- const sizeMap$5 = {
6044
- small: fontSizeDisplaySmall,
6045
- medium: fontSizeDisplayMedium,
6046
- large: fontSizeDisplayLarge,
6037
+ const sizeMap = {
6038
+ small: typescale3Xl,
6039
+ medium: typescale4Xl,
6040
+ large: typescale5Xl,
6041
+ inherit: 'inherit',
6047
6042
  };
6048
6043
  const getComponentCss$10 = (size, align, color, ellipsis) => {
6049
6044
  return getCss({
@@ -6054,15 +6049,30 @@ const getComponentCss$10 = (size, align, color, ellipsis) => {
6054
6049
  ...hostHiddenStyles,
6055
6050
  }),
6056
6051
  },
6057
- [`::slotted(:is(${DISPLAY_TAGS.join()}))`]: addImportantToEachRule(getTypographySlottedJssStyle()),
6052
+ [`::slotted(:is(${DISPLAY_TAGS.join()}))`]: addImportantToEachRule({
6053
+ all: 'unset',
6054
+ }),
6055
+ },
6056
+ root: {
6057
+ all: 'unset',
6058
+ display: 'block',
6059
+ font: `${fontWeightNormal} ${typescale5Xl}/${leadingNormal} ${fontPorscheNext}`,
6060
+ ...buildResponsiveStyles(size, (v) => ({
6061
+ fontSize: sizeMap[v],
6062
+ })),
6063
+ color: colorMap$3[color],
6064
+ textAlign: align,
6065
+ ...(ellipsis && {
6066
+ maxWidth: '100%',
6067
+ overflow: 'hidden',
6068
+ textOverflow: 'ellipsis',
6069
+ whiteSpace: 'nowrap',
6070
+ }),
6058
6071
  },
6059
- root: getTypographyRootJssStyle(displayLargeStyle, buildResponsiveStyles(size, (sizeValue) => ({
6060
- fontSize: sizeValue === 'inherit' ? sizeValue : sizeMap$5[sizeValue],
6061
- })), align, color, ellipsis),
6062
6072
  });
6063
6073
  };
6064
6074
 
6065
- const colorMap$2 = {
6075
+ const colorMap$1 = {
6066
6076
  'contrast-lower': colorContrastLower,
6067
6077
  'contrast-low': colorContrastLow,
6068
6078
  'contrast-medium': colorContrastMedium,
@@ -6080,7 +6090,10 @@ const getComponentCss$$ = (color, orientation) => {
6080
6090
  hr: {
6081
6091
  all: 'unset',
6082
6092
  display: 'block',
6083
- background: colorMap$2[color],
6093
+ background: colorMap$1[color],
6094
+ ...forcedColorsMediaQuery({
6095
+ background: 'CanvasText',
6096
+ }),
6084
6097
  ...buildResponsiveStyles(orientation, (o) => o === 'horizontal' ? { height: '1px', width: '100%' } : { height: '100%', width: '1px' }),
6085
6098
  },
6086
6099
  },
@@ -6655,40 +6668,36 @@ const getComponentCss$X = (state, labelSize, hasLabel) => {
6655
6668
  });
6656
6669
  };
6657
6670
 
6658
- const sizeMap$4 = {
6659
- 'xx-small': fontSizeTextXXSmall,
6660
- 'x-small': fontSizeTextXSmall,
6661
- small: fontSizeTextSmall,
6662
- medium: fontSizeTextMedium,
6663
- large: fontSizeTextLarge,
6664
- 'x-large': fontSizeTextXLarge,
6665
- };
6671
+ /**
6672
+ * @css-variable {"name": "--p-flag-size", "description": "Defines the width and height of the flag. Overrides the `size` property when set.", "defaultValue": ""}
6673
+ */
6674
+ const cssVarSize$2 = '--p-flag-size';
6666
6675
  const getComponentCss$W = (size) => {
6676
+ const dimension = `var(${cssVarSize$2},${leadingNormal})`;
6667
6677
  return getCss({
6668
6678
  '@global': {
6669
6679
  ':host': {
6670
- display: 'inline-block',
6680
+ display: 'inline-flex',
6671
6681
  verticalAlign: 'top',
6672
6682
  ...addImportantToEachRule({
6673
6683
  ...hostHiddenStyles,
6674
6684
  }),
6675
6685
  },
6676
6686
  img: {
6677
- all: 'unset',
6678
6687
  display: 'block', // without display, img tag gets some extra spacing
6688
+ margin: 0,
6679
6689
  padding: '1px', // add safe-zone to be visually in sync with <p-icon />
6690
+ border: 0,
6691
+ outline: 0,
6692
+ overflow: 'hidden', // clip the image
6680
6693
  boxSizing: 'border-box',
6681
6694
  pointerEvents: 'none', // disable dragging/ghosting of images
6682
- ...(size === 'inherit'
6683
- ? {
6684
- width: size,
6685
- height: size,
6686
- }
6687
- : {
6688
- width: fontLineHeight,
6689
- height: fontLineHeight,
6690
- font: `${sizeMap$4[size]} ${fontFamily}`,
6691
- }),
6695
+ width: dimension,
6696
+ height: dimension,
6697
+ fontFamily: fontPorscheNext, // needed for correct width/height definition based on ex-unit
6698
+ ...buildResponsiveStyles(size, (s) => ({
6699
+ fontSize: sizeMap$1[s], // needed for correct width/height definition based on ex-unit
6700
+ })),
6692
6701
  },
6693
6702
  },
6694
6703
  });
@@ -6995,14 +7004,9 @@ const getComponentCss$V = (isOpen, background, backdrop, position, hasHeader, ha
6995
7004
  });
6996
7005
  };
6997
7006
 
6998
- const sizeMap$3 = {
6999
- small: fontSizeHeadingSmall,
7000
- medium: fontSizeHeadingMedium,
7001
- large: fontSizeHeadingLarge,
7002
- 'x-large': fontSizeHeadingXLarge,
7003
- 'xx-large': fontSizeHeadingXXLarge,
7004
- };
7005
- const getComponentCss$U = (size, align, color, ellipsis) => {
7007
+ const HEADING_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
7008
+
7009
+ const getComponentCss$U = (size, weight, align, color, ellipsis) => {
7006
7010
  return getCss({
7007
7011
  '@global': {
7008
7012
  ':host': {
@@ -7011,12 +7015,26 @@ const getComponentCss$U = (size, align, color, ellipsis) => {
7011
7015
  ...hostHiddenStyles,
7012
7016
  }),
7013
7017
  },
7014
- [`::slotted(:is(${HEADING_TAGS.join()}))`]: addImportantToEachRule(getTypographySlottedJssStyle()),
7018
+ [`::slotted(:is(${HEADING_TAGS.join()}))`]: addImportantToEachRule({
7019
+ all: 'unset',
7020
+ }),
7021
+ },
7022
+ root: {
7023
+ all: 'unset',
7024
+ display: 'block',
7025
+ font: `${weightMap[weight]} ${typescale2Xl}/${leadingNormal} ${fontPorscheNext}`,
7026
+ ...buildResponsiveStyles(size, (v) => ({
7027
+ fontSize: sizeMap$1[v],
7028
+ })),
7029
+ color: colorMap$3[color],
7030
+ textAlign: align,
7031
+ ...(ellipsis && {
7032
+ maxWidth: '100%',
7033
+ overflow: 'hidden',
7034
+ textOverflow: 'ellipsis',
7035
+ whiteSpace: 'nowrap',
7036
+ }),
7015
7037
  },
7016
- root: getTypographyRootJssStyle(headingXXLargeStyle, buildResponsiveStyles(size, (sizeValue) => ({
7017
- fontSize: sizeValue === 'inherit' ? sizeValue : sizeMap$3[sizeValue],
7018
- fontWeight: sizeValue === 'small' ? fontWeightSemiBold : fontWeightRegular,
7019
- })), align, color, ellipsis),
7020
7038
  });
7021
7039
  };
7022
7040
 
@@ -7036,25 +7054,14 @@ const buildIconUrl = (iconNameOrSource = DEFAULT_ICON_NAME) => {
7036
7054
  return buildIconUrl(DEFAULT_ICON_NAME);
7037
7055
  };
7038
7056
 
7039
- const colorMap$1 = {
7040
- primary: colorPrimary,
7041
- 'contrast-high': colorContrastHigh,
7042
- 'contrast-medium': colorContrastMedium,
7043
- 'contrast-low': colorContrastLow,
7044
- success: colorSuccess,
7045
- warning: colorWarning,
7046
- error: colorError,
7047
- info: colorInfo,
7048
- inherit: 'inherit',
7049
- };
7050
- const sizeMap$2 = {
7051
- 'xx-small': fontSizeTextXXSmall,
7052
- 'x-small': fontSizeTextXSmall,
7053
- small: fontSizeTextSmall,
7054
- medium: fontSizeTextMedium,
7055
- large: fontSizeTextLarge,
7056
- 'x-large': fontSizeTextXLarge,
7057
- };
7057
+ /**
7058
+ * @css-variable {"name": "--p-icon-size", "description": "Defines the width and height of the icon. Overrides the `size` property when set.", "defaultValue": ""}
7059
+ */
7060
+ const cssVarSize$1 = '--p-icon-size';
7061
+ /**
7062
+ * @css-variable {"name": "--p-icon-color", "description": "Defines the icon color. Overrides the `color` property when set.", "defaultValue": ""}
7063
+ */
7064
+ const cssVarColor$1 = '--p-icon-color';
7058
7065
  const isFlippableIcon = (name, source) => {
7059
7066
  return (!source &&
7060
7067
  (name === 'arrow-compact-left' ||
@@ -7078,43 +7085,44 @@ const isFlippableIcon = (name, source) => {
7078
7085
  name === 'send'));
7079
7086
  };
7080
7087
  const getComponentCss$T = (name, source, color, size) => {
7081
- const isSizeInherit = size === 'inherit';
7082
- const dimension = isSizeInherit ? 'inherit' : fontLineHeight;
7088
+ const dimension = `var(${cssVarSize$1},${leadingNormal})`;
7089
+ const mask = `url("${buildIconUrl(source || name)}") center/contain no-repeat`;
7083
7090
  return getCss({
7084
7091
  '@global': {
7085
7092
  ':host': {
7086
- display: 'inline-block',
7093
+ display: 'inline-flex',
7087
7094
  verticalAlign: 'top',
7088
- maxWidth: '100%',
7089
- maxHeight: '100%',
7090
- width: dimension,
7091
- height: dimension,
7092
- font: `${isSizeInherit ? sizeMap$2.small : sizeMap$2[size]} ${fontFamily}`,
7093
- color: colorMap$1[color],
7094
7095
  ...addImportantToEachRule({
7095
- WebkitMask: `url("${buildIconUrl(source || name)}") center/contain no-repeat`, // necessary for Sogou browser support :-)
7096
- mask: `url("${buildIconUrl(source || name)}") center/contain no-repeat`,
7097
- aspectRatio: '1/1',
7098
- background: 'currentcolor', // necessary for proper color inheritance
7099
- ...forcedColorsMediaQuery({
7100
- background: 'CanvasText',
7101
- }),
7102
- ...(isFlippableIcon(name, source) && {
7103
- '&(:dir(rtl))': {
7104
- transform: 'scaleX(-1)',
7105
- },
7106
- }),
7107
7096
  ...hostHiddenStyles,
7108
7097
  }),
7109
7098
  },
7110
- // the <img /> is only needed for a11y compliance because of alt text and to handle the fetch priority
7099
+ // the <img /> is needed for a11y compliance because of alt text and to handle the fetch priority
7111
7100
  img: {
7112
- all: 'unset',
7113
- position: 'absolute', // prevents unintended bottom white-space
7114
- opacity: 0,
7115
- width: '1px',
7116
- height: '1px',
7101
+ display: 'block', // without display, img tag gets some extra spacing
7102
+ margin: 0,
7103
+ padding: 0,
7104
+ border: 0,
7105
+ outline: 0,
7106
+ overflow: 'hidden', // clip the image
7107
+ objectPosition: '-9999px -9999px', // hide the actual image content, the mask + background still renders the icon
7117
7108
  pointerEvents: 'none', // disable dragging/ghosting of images
7109
+ width: dimension,
7110
+ height: dimension,
7111
+ fontFamily: fontPorscheNext, // needed for correct width/height definition based on ex-unit
7112
+ ...buildResponsiveStyles(size, (s) => ({
7113
+ fontSize: sizeMap$1[s], // needed for correct width/height definition based on ex-unit
7114
+ })),
7115
+ WebkitMask: mask, // necessary for Sogou browser support :-)
7116
+ mask,
7117
+ background: `var(${cssVarColor$1},${colorMap$3[color]})`,
7118
+ ...forcedColorsMediaQuery({
7119
+ background: 'CanvasText',
7120
+ }),
7121
+ ...(isFlippableIcon(name, source) && {
7122
+ '&:dir(rtl)': {
7123
+ transform: 'scaleX(-1)',
7124
+ },
7125
+ }),
7118
7126
  },
7119
7127
  },
7120
7128
  });
@@ -7167,6 +7175,8 @@ const getNotificationContentJssStyle = () => ({
7167
7175
  },
7168
7176
  });
7169
7177
 
7178
+ const INLINE_NOTIFICATION_HEADING_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
7179
+
7170
7180
  const mediaQueryMaxS$1 = getMediaQueryMax('s');
7171
7181
  const getTextJssStyle = {
7172
7182
  margin: 0,
@@ -7191,7 +7201,9 @@ const getComponentCss$S = (state, hasAction, hasClose) => {
7191
7201
  }),
7192
7202
  },
7193
7203
  ...preventFoucOfNestedElementsStyles,
7194
- [`::slotted(:is(${HEADING_TAGS.join()}))`]: addImportantToEachRule(getTypographySlottedJssStyle()),
7204
+ [`::slotted(:is(${INLINE_NOTIFICATION_HEADING_TAGS.join()}))`]: addImportantToEachRule({
7205
+ all: 'unset',
7206
+ }),
7195
7207
  'slot[name="heading"]': getHeadingJssStyle,
7196
7208
  },
7197
7209
  heading: getHeadingJssStyle,
@@ -7515,8 +7527,8 @@ const getComponentCss$H = (disabled, loading, hideLabel, state, compact, readOnl
7515
7527
  /**
7516
7528
  * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
7517
7529
  */
7518
- const getComponentCss$G = (icon, iconSource, active, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor) => {
7519
- return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, false, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor), hasSlottedAnchor && {
7530
+ const getComponentCss$G = (icon, iconSource, active, stretch, size, color, hideLabel, alignLabel, underline, hasSlottedAnchor) => {
7531
+ return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, false, stretch, size, color, hideLabel, alignLabel, underline, hasSlottedAnchor), hasSlottedAnchor && {
7520
7532
  '@global': addImportantToEachRule({
7521
7533
  '::slotted': {
7522
7534
  '&(a)': {
@@ -7543,6 +7555,10 @@ const anchorJssStyle = {
7543
7555
  inset: 0,
7544
7556
  zIndex: 1, // necessary to be on top of img
7545
7557
  borderRadius: `var(${legacyRadiusLarge}, ${radius4Xl})`,
7558
+ ...forcedColorsMediaQuery({
7559
+ forcedColorAdjust: 'none',
7560
+ boxShadow: 'inset 0 0 0 2px LinkText',
7561
+ }),
7546
7562
  };
7547
7563
  const getMultilineEllipsis = (lineClamp) => {
7548
7564
  return {
@@ -7740,10 +7756,10 @@ const getComponentCss$E = (aspectRatio, size, weight, align, compact, hasGradien
7740
7756
  ...textMediumStyle,
7741
7757
  color: colorPrimary,
7742
7758
  hyphens: 'inherit',
7743
- ...mergeDeep(buildResponsiveStyles(size, (sizeValue) => ({
7744
- fontSize: getFontSizeText(sizeValue),
7745
- })), buildResponsiveStyles(weight, (weightValue) => ({
7746
- fontWeight: getFontWeight(weightValue),
7759
+ ...mergeDeep(buildResponsiveStyles(size, (v) => ({
7760
+ fontSize: sizeMap$1[v],
7761
+ })), buildResponsiveStyles(weight, (v) => ({
7762
+ fontWeight: weightMap[v],
7747
7763
  }))),
7748
7764
  },
7749
7765
  },
@@ -8110,9 +8126,6 @@ const getComponentCss$y = (isOpen, isDisabled, hideLabel, state, isCompact) => {
8110
8126
 
8111
8127
  const mediaQueryMinS = getMediaQueryMin('s');
8112
8128
  const mediaQueryMaxS = getMediaQueryMax('s');
8113
- // button size needs to be fluid between 320px and 360px viewport width, so that the pagination fits into 320px viewport
8114
- // and text scale 200% works (almost) on mobile viewports too
8115
- const buttonSize = `clamp(36px, calc(${fontLineHeight} + 10vw - 20px), 40px)`;
8116
8129
  const disabledCursorStyle = {
8117
8130
  cursor: 'default',
8118
8131
  pointerEvents: 'none', // prevents :hover (has no effect when forced), maybe we can remove it since CSS selectors already cover desired behavior
@@ -8166,10 +8179,6 @@ const getComponentCss$x = (activePage, pageTotal, showLastPage) => {
8166
8179
  },
8167
8180
  }),
8168
8181
  [mediaQueryMinS]: {
8169
- // prev
8170
- '&:first-child': { marginInlineEnd: spacingStaticSmall },
8171
- // next
8172
- '&:last-child': { marginInlineStart: spacingStaticSmall },
8173
8182
  ...(pageTotal < 8
8174
8183
  ? { '&.ellip': hiddenStyle }
8175
8184
  : // max 7 items including ellipsis at the same time on tablet
@@ -8187,32 +8196,40 @@ const getComponentCss$x = (activePage, pageTotal, showLastPage) => {
8187
8196
  display: 'flex',
8188
8197
  justifyContent: 'center',
8189
8198
  alignItems: 'center',
8190
- transition: `${getTransition('background-color')}, ${getTransition('border-color')}, ${getTransition('color')}`, // for smooth transition between states
8199
+ transition: `${getTransition('background-color')}, ${getTransition('color')}`, // for smooth transition between states
8191
8200
  position: 'relative',
8192
- width: buttonSize,
8193
- height: buttonSize,
8201
+ padding: '0 6px',
8202
+ minWidth: '2.25rem',
8203
+ height: '2.25rem',
8194
8204
  boxSizing: 'border-box',
8195
8205
  ...textSmallStyle,
8196
8206
  whiteSpace: 'nowrap',
8197
8207
  cursor: 'pointer',
8208
+ backgroundColor: 'transparent',
8198
8209
  color: colorPrimary,
8199
- borderRadius: `var(${legacyRadiusSmall}, ${radiusSm})`,
8210
+ borderRadius: `var(${legacyRadiusSmall}, ${radiusFull})`,
8200
8211
  borderColor: 'transparent', // default value is needed for smooth transition
8201
8212
  outline: 0, // TODO: only relevant for VRT testing with forced states - prevents :focus style
8202
8213
  ...hoverMediaQuery({
8203
8214
  '&:not([aria-disabled]):not(.ellipsis):hover': {
8204
8215
  ...frostedGlassStyle,
8205
8216
  background: colorFrosted,
8217
+ ...forcedColorsMediaQuery({
8218
+ outline: '2px solid CanvasText',
8219
+ outlineOffset: '-2px',
8220
+ }),
8206
8221
  },
8207
8222
  }),
8208
8223
  '&[aria-current]': {
8209
8224
  ...disabledCursorStyle,
8210
- color: colorPrimary,
8211
- border: `${borderWidthBase} solid ${colorPrimary}`,
8225
+ backgroundColor: colorFrostedStrong,
8226
+ ...forcedColorsMediaQuery({
8227
+ border: '2px solid CanvasText',
8228
+ }),
8212
8229
  },
8213
8230
  '&[aria-disabled]': {
8214
- ...getDisabledBaseStyles(),
8215
8231
  ...disabledCursorStyle,
8232
+ ...getDisabledBaseStyles(),
8216
8233
  },
8217
8234
  // TODO :not(.ellipsis) is only needed for VRT states tests to work properly
8218
8235
  '&:not(.ellipsis):focus-visible': getFocusBaseStyles(),
@@ -8299,8 +8316,6 @@ const getComponentCss$w = (hideLabel, state, isDisabled, isLoading, length, isCo
8299
8316
  top: '50%',
8300
8317
  left: '50%',
8301
8318
  transform: 'translate(-50%, -50%)',
8302
- width: inputDimension,
8303
- height: inputDimension,
8304
8319
  pointerEvents: 'none',
8305
8320
  },
8306
8321
  }),
@@ -8465,10 +8480,12 @@ const getComponentCss$u = (disabled, loading, state) => {
8465
8480
  gridArea: '1/1',
8466
8481
  },
8467
8482
  '&:checked::before': {
8468
- forcedColorAdjust: 'none',
8469
8483
  WebkitMask: `${checkedIcon} center/contain no-repeat`, // necessary for Sogou browser support :-)
8470
8484
  mask: `${checkedIcon} center/contain no-repeat`,
8471
8485
  backgroundColor: state === 'none' ? colorPrimary : formStateBorderColor,
8486
+ ...forcedColorsMediaQuery({
8487
+ background: 'CanvasText',
8488
+ }),
8472
8489
  },
8473
8490
  '&::after': {
8474
8491
  // Ensures the touch target is at least 24px, even if the checkbox is smaller than the minimum touch target size.
@@ -8495,13 +8512,11 @@ const getComponentCss$u = (disabled, loading, state) => {
8495
8512
  },
8496
8513
  ...(loading && {
8497
8514
  spinner: {
8515
+ '--p-spinner-size': `calc(${radioDimension} - 2px)`, // compensates the 1px border of the radio button
8498
8516
  position: 'absolute',
8499
8517
  top: '50%',
8500
8518
  left: '50%',
8501
8519
  transform: 'translate(-50%,-50%)',
8502
- width: radioDimension,
8503
- height: radioDimension,
8504
- font: `${fontSizeTextSmall} ${fontFamily}`, // needed for correct width and height definition based on ex-unit
8505
8520
  },
8506
8521
  }),
8507
8522
  // .label / .required
@@ -8533,7 +8548,6 @@ const getRadioGroupDirectionJssStyles = (direction) => {
8533
8548
  * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
8534
8549
  */
8535
8550
  const getComponentCss$t = (isDisabled, isLoading, hideLabel, state, isCompact, direction) => {
8536
- const radioDimension = `calc(var(${cssVarInternalRadioGroupScaling}) * 1.75rem)`;
8537
8551
  const columnGap = `calc(22.4px * (var(${cssVarInternalRadioGroupScaling}) - 0.64285714) + 8px)`;
8538
8552
  const rowGap = `calc(11.2px * (var(${cssVarInternalRadioGroupScaling}) - 0.64285714) + 4px)`;
8539
8553
  return getCss({
@@ -8573,8 +8587,6 @@ const getComponentCss$t = (isDisabled, isLoading, hideLabel, state, isCompact, d
8573
8587
  top: '50%',
8574
8588
  left: '50%',
8575
8589
  transform: 'translate(-50%, -50%)',
8576
- width: radioDimension,
8577
- height: radioDimension,
8578
8590
  pointerEvents: 'none',
8579
8591
  },
8580
8592
  }),
@@ -8590,116 +8602,170 @@ const getComponentCss$t = (isDisabled, isLoading, hideLabel, state, isCompact, d
8590
8602
  });
8591
8603
  };
8592
8604
 
8593
- const prevNextWrapperWidth = `calc(${fontLineHeight} + 24px)`;
8594
- const getComponentCss$s = (isNextHidden, isPrevHidden, alignScrollIndicator, hasScrollbar) => {
8595
- const actionPrevNextStyles = {
8596
- position: 'absolute',
8597
- top: 0,
8598
- bottom: 0,
8599
- direction: 'ltr',
8600
- width: prevNextWrapperWidth,
8601
- padding: '4px 0',
8602
- display: 'flex',
8603
- alignItems: alignScrollIndicator === 'center' ? 'center' : 'flex-start',
8605
+ /**
8606
+ * Generates a CSS linear-gradient mask string for smooth edge fading
8607
+ * using smoothstep easing.
8608
+ *
8609
+ * @param fadeEdges - Which edges to fade.
8610
+ * @param edgeLength - Size of the fully transparent area at the edge (px).
8611
+ * @param fadeLength - Size of the transition area (px).
8612
+ * @param steps - Number of gradient stops (more = smoother, 8–12 is plenty).
8613
+ * @returns CSS linear-gradient string.
8614
+ */
8615
+ const getSmoothMask = (fadeEdges, edgeLength = 24, fadeLength = 96, steps = 20) => {
8616
+ if (fadeEdges === 'none') {
8617
+ return 'linear-gradient(black,black)';
8618
+ }
8619
+ const fullLength = edgeLength + fadeLength;
8620
+ const leftStops = [];
8621
+ const rightStops = [];
8622
+ for (let i = 1; i < steps; i++) {
8623
+ const t = i / steps;
8624
+ const alpha = t * t * t * (t * (t * 6 - 15) + 10);
8625
+ leftStops.push(`rgb(0 0 0/${alpha.toFixed(3)}) ${(edgeLength + fadeLength * t).toFixed(0)}px`);
8626
+ rightStops.push(`rgb(0 0 0/${(1 - alpha).toFixed(3)}) calc(100% - ${(fullLength - fadeLength * t).toFixed(0)}px)`);
8627
+ }
8628
+ const left = `transparent 0px,transparent ${edgeLength}px,${leftStops.join(',')},black ${fullLength}px`;
8629
+ const right = `black calc(100% - ${fullLength}px),${rightStops.join(',')},transparent calc(100% - ${edgeLength}px),transparent 100%`;
8630
+ const gradients = {
8631
+ left: `linear-gradient(to right,${left},black 100%)`,
8632
+ right: `linear-gradient(to right,black 0%,${right})`,
8633
+ both: `linear-gradient(to right,${left},${right})`,
8634
+ };
8635
+ return gradients[fadeEdges];
8636
+ };
8637
+
8638
+ /**
8639
+ * @css-variable {"name": "--p-scroller-gap", "description": "Defines the gap between slotted nodes.", "defaultValue": "8px"}
8640
+ */
8641
+ const cssVarGap = '--p-scroller-gap';
8642
+ /**
8643
+ * @css-variable {"name": "--p-scroller-indicator-top", "description": "Defines the distance from the top of the viewport at which the indicator sticks when scrolling down and `sticky` is enabled.", "defaultValue": "0px"}
8644
+ */
8645
+ const cssVarIndicatorTop = '--p-scroller-indicator-top';
8646
+ /**
8647
+ * @css-variable {"name": "--p-scroller-indicator-bottom", "description": "Defines the distance from the bottom of the viewport at which the indicator sticks when scrolling up and `sticky` is enabled.", "defaultValue": "0px"}
8648
+ */
8649
+ const cssVarIndicatorBottom = '--p-scroller-indicator-bottom';
8650
+ const iconPrev = getInlineSVGBackgroundImage(`<path d="m8.875 12v-.001l.006-.005 5.476-6.494.768.642-4.94 5.858 4.939 5.858-.768.642-5.477-6.497z"/>`);
8651
+ const iconNext = getInlineSVGBackgroundImage(`<path d="m15.121 11.997-5.477-6.497-.769.642 4.94 5.858-4.94 5.858.768.642 5.476-6.494.006-.005v-.001z"/>`);
8652
+ const scrollbarWidth = '12px';
8653
+ const safeZone = '4px';
8654
+ const getScrollIndicatorStyles = (direction, isVisible, isSticky, hasScrollbar, isCompact) => {
8655
+ const isPrev = direction === 'prev';
8656
+ const iconMask = `${isPrev ? iconPrev : iconNext} center/contain no-repeat`;
8657
+ return {
8658
+ gridArea: isPrev ? '1/1' : '1/3',
8659
+ zIndex: 1, // ensure that indicators are above the scroll area
8660
+ ...(isSticky && {
8661
+ position: 'sticky',
8662
+ top: `var(${cssVarIndicatorTop},0px)`,
8663
+ bottom: `var(${cssVarIndicatorBottom},0px)`,
8664
+ }),
8665
+ ...(hasScrollbar && {
8666
+ marginTop: `calc(-1 * ${scrollbarWidth})`,
8667
+ }),
8668
+ display: 'grid',
8669
+ alignSelf: 'center',
8670
+ width: '1.5rem',
8671
+ height: '1.5rem',
8672
+ ...(!isCompact && {
8673
+ padding: spacingStaticXs$1,
8674
+ }),
8675
+ cursor: 'pointer',
8676
+ opacity: isVisible ? 1 : 0,
8677
+ visibility: isVisible ? 'inherit' : 'hidden',
8678
+ transform: `translate3d(${isVisible ? '0' : `${isPrev ? `calc(-1 * ${spacingStaticSm$1})` : spacingStaticSm$1}`},0,0)`,
8679
+ transition: `${getTransition('transform')},${getTransition('opacity')},visibility 0s linear ${isVisible ? '0s' : `var(${cssVariableTransitionDuration},${durationSm})`}`,
8680
+ '&:dir(rtl)': {
8681
+ gridArea: isPrev ? '1/3' : '1/1',
8682
+ },
8683
+ ...hoverMediaQuery({
8684
+ '&:hover::after': {
8685
+ // do the transform on the pseudo-element to prevent the click area from moving when hovered
8686
+ transform: `translate3d(${isPrev ? `calc(-1 * ${spacingStaticXs$1})` : spacingStaticXs$1},0,0)`,
8687
+ },
8688
+ }),
8689
+ '&::after': {
8690
+ content: '""',
8691
+ WebkitMask: iconMask, // necessary for Sogou browser support :-)
8692
+ mask: iconMask,
8693
+ background: colorPrimary,
8694
+ transition: getTransition('transform'),
8695
+ ...forcedColorsMediaQuery({
8696
+ background: 'CanvasText',
8697
+ }),
8698
+ },
8604
8699
  };
8700
+ };
8701
+ const getComponentCss$s = (isIndicatorPrevVisible, // can be undefined in ssr context
8702
+ isIndicatorNextVisible, // can be undefined in ssr context
8703
+ isSticky, hasScrollbar, isCompact) => {
8704
+ const fadeEdges = !isIndicatorPrevVisible && !isIndicatorNextVisible
8705
+ ? 'none'
8706
+ : !isIndicatorPrevVisible
8707
+ ? 'right'
8708
+ : !isIndicatorNextVisible
8709
+ ? 'left'
8710
+ : 'both';
8711
+ const mask = `${getSmoothMask(fadeEdges)} 0 0/auto no-repeat${hasScrollbar ? `,linear-gradient(black,black) 0 bottom/auto ${scrollbarWidth} no-repeat` : ''}`;
8605
8712
  return getCss({
8606
8713
  '@global': {
8607
8714
  ':host': {
8608
8715
  display: 'block',
8716
+ borderRadius: `var(${legacyRadiusSmall},${radiusLg})`, // needs to be overwritable by tabs-bar to improve focus appearance
8609
8717
  ...addImportantToEachRule({
8610
- height: 'inherit',
8611
8718
  ...hostHiddenStyles,
8612
8719
  }),
8613
8720
  },
8614
- ...preventFoucOfNestedElementsStyles,
8721
+ slot: {
8722
+ gridArea: '1/2',
8723
+ position: 'relative', // necessary for tabs bar animation
8724
+ display: 'inline-flex',
8725
+ gap: `var(${cssVarGap},${isCompact ? spacingStaticXs$1 : spacingStaticSm$1})`,
8726
+ },
8615
8727
  },
8616
8728
  root: {
8617
- position: 'relative',
8618
8729
  display: 'grid',
8619
- gridTemplateColumns: `${prevNextWrapperWidth} minmax(0, 1fr) ${prevNextWrapperWidth}`,
8620
- margin: '0 -4px',
8621
- height: 'inherit',
8730
+ gridTemplateColumns: `auto minmax(0,1fr) auto`,
8731
+ alignItems: 'center',
8732
+ borderRadius: 'inherit',
8733
+ '&:has(.scroll:focus-visible)': getFocusBaseStyles(), // delegating the focus ensures mask does not cut off the focus ring
8622
8734
  },
8623
- 'scroll-area': {
8624
- gridArea: '1 / 1 / 1 / -1',
8625
- padding: '4px',
8735
+ scroll: {
8736
+ gridArea: '1/1/1/-1',
8737
+ zIndex: 0, // ensure that scroll area is behind the indicators
8738
+ display: 'grid',
8739
+ gridTemplateColumns: `${safeZone} minmax(auto,1fr) ${safeZone}`,
8740
+ margin: `calc(-1 * ${safeZone})`, // compensate padding to ensure that `:host` is aligned with other elements
8741
+ padding: `${safeZone} 0px${hasScrollbar ? ` calc(${safeZone} + ${scrollbarWidth})` : ''}`, // ensure enough space is available for focus ring of slotted elements (horizontal space is given by `.sentinel`)
8742
+ outline: 'none', // focus ring is applied to `.root`, it would be cut off by the mask if applied to `.scroll`
8626
8743
  overflow: 'auto hidden',
8627
- ...((!isPrevHidden || !isNextHidden) && {
8628
- mask: isNextHidden
8629
- ? 'linear-gradient(90deg,#0000 8px,#000 40px) alpha'
8630
- : isPrevHidden
8631
- ? 'linear-gradient(90deg,#000 calc(100% - 40px), #0000 calc(100% - 8px)) alpha'
8632
- : 'linear-gradient(90deg,#0000 8px,#000 40px calc(100% - 40px),#0000 calc(100% - 8px)) alpha',
8633
- }),
8634
- ...(!hasScrollbar && {
8635
- // If scrollbar is disabled - hide scrollbar
8636
- msOverflowStyle: 'none' /* IE and Edge */,
8637
- scrollbarWidth: 'none' /* Firefox */,
8638
- '&::-webkit-scrollbar': {
8639
- display: 'none',
8640
- },
8744
+ ...(fadeEdges !== 'none' && {
8745
+ WebkitMask: mask, // necessary for Sogou browser support :-)
8746
+ mask,
8641
8747
  }),
8748
+ scrollbarWidth: hasScrollbar ? 'thin' : 'none',
8642
8749
  },
8643
- // Extra wrapper needed to compensate different offset parent calculation depending on browser.
8644
- // Needed for position of status bar.
8645
- 'scroll-wrapper': {
8646
- position: 'relative',
8647
- display: 'inline-flex',
8648
- minHeight: '28px',
8649
- minWidth: '100%',
8650
- verticalAlign: 'top',
8651
- borderRadius: `var(${legacyRadiusSmall}, ${radiusSm})`,
8652
- '&:focus-visible': getFocusBaseStyles(),
8653
- },
8654
- trigger: {
8655
- position: 'absolute',
8656
- inset: '0 auto',
8657
- width: '1px',
8750
+ // as soon as `@container scroll-state(scrollable: left)` has better browser support we can get rid of sentinel and IntersectionObserver
8751
+ sentinel: {
8752
+ width: safeZone,
8658
8753
  visibility: 'hidden',
8659
- '&:first-of-type': {
8660
- left: 0,
8661
- },
8662
- '&:last-of-type': {
8663
- right: 0,
8754
+ '&:first-of-type:dir(rtl)': {
8755
+ gridArea: '1/3',
8664
8756
  },
8665
- },
8666
- 'action-prev': {
8667
- ...actionPrevNextStyles,
8668
- left: '-1px', // ensures that the gradient always overlays the content (e.g. when zoomed)
8669
- justifyContent: 'flex-start',
8670
- visibility: isPrevHidden ? 'hidden' : 'inherit',
8671
- '& .action-button': {
8672
- marginLeft: '8px',
8673
- // hide buttons on mobile (actually devices not supporting hover)
8674
- ...hoverMediaQuery({
8675
- visibility: isPrevHidden ? 'hidden' : 'inherit',
8676
- }),
8677
- },
8678
- },
8679
- 'action-next': {
8680
- ...actionPrevNextStyles,
8681
- right: '-1px', // ensures that the gradient always overlays the content (e.g. when zoomed)
8682
- justifyContent: 'flex-end',
8683
- visibility: isNextHidden ? 'hidden' : 'inherit',
8684
- '& .action-button': {
8685
- marginRight: '8px',
8686
- // hide buttons on mobile (actually devices not supporting hover)
8687
- ...hoverMediaQuery({
8688
- visibility: isNextHidden ? 'hidden' : 'inherit',
8689
- }),
8757
+ '&:last-of-type:dir(rtl)': {
8758
+ gridArea: '1/1',
8690
8759
  },
8691
8760
  },
8692
- 'action-button': {
8693
- ...dismissButtonJssStyle,
8694
- ...dropShadowLowStyle,
8695
- },
8761
+ prev: getScrollIndicatorStyles('prev', !!isIndicatorPrevVisible, isSticky, hasScrollbar, isCompact),
8762
+ next: getScrollIndicatorStyles('next', !!isIndicatorNextVisible, isSticky, hasScrollbar, isCompact),
8696
8763
  });
8697
8764
  };
8698
8765
 
8699
8766
  const cssVarInternalSegmentedControlScaling = '--p-internal-segmented-control-scaling';
8700
8767
  const getScalingVar = (compact) => `var(${cssVarInternalSegmentedControlScaling}, ${compact ? 0.5 : 1})`;
8701
8768
  const ICON_OFFSET = '4px';
8702
- const { font: BUTTON_FONT } = textSmallStyle;
8703
8769
  const ICON_SIZE = '1.5rem';
8704
8770
  const ICON_MARGIN = '.25rem';
8705
8771
  const getScalableItemStyles = (hasIconAndSlottedContent, compact) => {
@@ -8954,18 +9020,22 @@ const getComponentCss$n = (isOpen, background, hasDismissButton) => {
8954
9020
  });
8955
9021
  };
8956
9022
 
8957
- const sizeSmall = '48px';
8958
- const sizeMedium = '72px';
8959
- const sizeLarge = '104px';
8960
- const sizeMap$1 = {
8961
- small: { height: sizeSmall, width: sizeSmall },
8962
- medium: { height: sizeMedium, width: sizeMedium },
8963
- large: { height: sizeLarge, width: sizeLarge },
8964
- inherit: { height: 'inherit', width: 'inherit' },
8965
- };
8966
- const getComponentCss$m = (size) => {
8967
- const strokeDasharray = '57'; // C = 2πR
8968
- const animationDuration = `var(${cssVariableAnimationDuration}, ${motionDurationVeryLong})`;
9023
+ /**
9024
+ * @css-variable {"name": "--p-spinner-size", "description": "Defines the width and height of the spinner. Overrides the `size` property when set.", "defaultValue": ""}
9025
+ */
9026
+ const cssVarSize = '--p-spinner-size';
9027
+ /**
9028
+ * @css-variable {"name": "--p-spinner-color", "description": "Defines the foreground color. Overrides the `color` property when set.", "defaultValue": ""}
9029
+ */
9030
+ const cssVarColor = '--p-spinner-color';
9031
+ /**
9032
+ * @css-variable {"name": "--p-spinner-track-color", "description": "Defines the track/background color. Overrides the `color` property when set.", "defaultValue": ""}
9033
+ */
9034
+ const cssVarTrackColor = '--p-spinner-track-color';
9035
+ const getComponentCss$m = (color, size) => {
9036
+ const dimension = `var(${cssVarSize},${leadingNormal})`;
9037
+ const strokeDasharray = '69'; // C = 2πR
9038
+ const animationDuration = `var(${cssVariableAnimationDuration}, ${durationXl})`;
8969
9039
  return getCss({
8970
9040
  '@global': {
8971
9041
  '@keyframes rotate': {
@@ -8978,49 +9048,61 @@ const getComponentCss$m = (size) => {
8978
9048
  },
8979
9049
  '@keyframes dash': {
8980
9050
  '0%': {
8981
- strokeDashoffset: 57,
9051
+ strokeDashoffset: 69,
8982
9052
  transform: 'rotateZ(0)',
8983
9053
  },
8984
9054
  '50%, 75%': {
8985
- strokeDashoffset: 20,
9055
+ strokeDashoffset: 24,
8986
9056
  transform: 'rotateZ(80deg)',
8987
9057
  },
8988
9058
  '100%': {
8989
- strokeDashoffset: 57,
9059
+ strokeDashoffset: 69,
8990
9060
  transform: 'rotateZ(360deg)',
8991
9061
  },
8992
9062
  },
8993
9063
  ':host': {
8994
9064
  display: 'inline-flex',
8995
- color: colorPrimary,
9065
+ verticalAlign: 'top',
8996
9066
  ...addImportantToEachRule({
8997
- verticalAlign: 'top',
8998
9067
  ...hostHiddenStyles,
8999
9068
  }),
9000
9069
  },
9070
+ div: {
9071
+ width: dimension,
9072
+ height: dimension,
9073
+ fontFamily: fontPorscheNext, // needed for correct width/height definition based on ex-unit
9074
+ ...buildResponsiveStyles(size, (s) => ({
9075
+ fontSize: sizeMap$1[s], // needed for correct width/height definition based on ex-unit
9076
+ })),
9077
+ },
9001
9078
  svg: {
9002
9079
  display: 'block', // for correct vertical alignment
9003
9080
  fill: 'none',
9004
- animation: `$rotate ${animationDuration} steps(50) infinite`,
9081
+ strokeWidth: 1.5,
9082
+ animation: `rotate ${animationDuration} steps(50) infinite`,
9005
9083
  },
9006
9084
  circle: {
9007
9085
  '&:first-child': {
9008
- stroke: colorContrastLower,
9086
+ stroke: `var(${cssVarTrackColor},${colorContrastLower})`,
9087
+ '@supports (color: oklch(from red l c h))': {
9088
+ stroke: `var(${cssVarTrackColor},oklch(from var(${cssVarColor},${colorMap$3[color]}) l c h/.2))`,
9089
+ },
9090
+ ...forcedColorsMediaQuery({
9091
+ stroke: addImportantToRule('none'),
9092
+ }),
9009
9093
  },
9010
9094
  '&:last-child': {
9011
- animation: `$dash ${animationDuration} steps(50) infinite`,
9012
- stroke: 'currentcolor', // necessary for proper color inheritance
9095
+ stroke: `var(${cssVarColor},${colorMap$3[color]})`,
9096
+ ...forcedColorsMediaQuery({
9097
+ stroke: 'CanvasText',
9098
+ }),
9013
9099
  strokeDasharray: strokeDasharray
9014
9100
  ,
9015
9101
  strokeLinecap: 'round',
9102
+ animation: `dash ${animationDuration} steps(50) infinite`,
9016
9103
  },
9017
9104
  },
9018
9105
  },
9019
- root: {
9020
- display: 'block',
9021
- ...buildResponsiveStyles(size, (s) => sizeMap$1[s]),
9022
- strokeWidth: 1.5,
9023
- },
9024
9106
  'sr-only': getHiddenTextJssStyle(),
9025
9107
  });
9026
9108
  };
@@ -9051,9 +9133,6 @@ const getComponentCss$l = (state, disabled) => {
9051
9133
  fontSize: 'inherit',
9052
9134
  ...hostHiddenStyles,
9053
9135
  ...(isDisabled && getDisabledBaseStyles()),
9054
- '&(:not(:last-of-type))': {
9055
- marginInlineEnd: spacingFluidXSmall,
9056
- },
9057
9136
  }),
9058
9137
  },
9059
9138
  ...preventFoucOfNestedElementsStyles,
@@ -9083,6 +9162,15 @@ const getComponentCss$l = (state, disabled) => {
9083
9162
  },
9084
9163
  })),
9085
9164
  '&:focus-visible': getFocusBaseStyles(),
9165
+ ...forcedColorsMediaQuery({
9166
+ ...(isStateCurrent && {
9167
+ outline: '1px solid CanvasText',
9168
+ }),
9169
+ ...(isDisabled && {
9170
+ color: 'GrayText',
9171
+ borderColor: 'GrayText',
9172
+ }),
9173
+ }),
9086
9174
  },
9087
9175
  },
9088
9176
  icon: {
@@ -9090,9 +9178,15 @@ const getComponentCss$l = (state, disabled) => {
9090
9178
  fontSize: 'inherit', // necessary because of all: unset
9091
9179
  width: fontLineHeight,
9092
9180
  height: fontLineHeight,
9181
+ forcedColorAdjust: 'none',
9093
9182
  ...(isStateCurrentOrUndefined && {
9094
9183
  display: 'grid',
9095
9184
  backgroundImage: `radial-gradient(circle, ${colorPrimary} 60%, transparent 62%)`,
9185
+ ...(isDisabled && {
9186
+ ...forcedColorsMediaQuery({
9187
+ backgroundImage: 'radial-gradient(circle, GrayText 60%, transparent 62%)',
9188
+ }),
9189
+ }),
9096
9190
  '&::before': {
9097
9191
  content: '""',
9098
9192
  ...Array.from(new Array(9)).reduce((result, _, i) => ({
@@ -9114,7 +9208,7 @@ const getComponentCss$k = (size) => {
9114
9208
  return getCss({
9115
9209
  '@global': {
9116
9210
  ':host': {
9117
- display: 'block',
9211
+ display: 'grid',
9118
9212
  ...addImportantToEachRule({
9119
9213
  ...hostHiddenStyles,
9120
9214
  }),
@@ -9122,8 +9216,9 @@ const getComponentCss$k = (size) => {
9122
9216
  ...preventFoucOfNestedElementsStyles,
9123
9217
  },
9124
9218
  scroller: {
9219
+ placeSelf: 'flex-start', // ensures scroller doesn't get stretched in x- or y-axis in case the stepper-horizontal is taller than the scroller (e.g. when placed in flex or grid context)
9125
9220
  ...textSmallStyle,
9126
- ...buildResponsiveStyles(size, (s) => ({ fontSize: fontSizeText[s] })),
9221
+ ...buildResponsiveStyles(size, (s) => ({ fontSize: fontSizeText$1[s] })),
9127
9222
  },
9128
9223
  });
9129
9224
  };
@@ -9154,7 +9249,6 @@ const getComponentCss$j = (alignLabel, hideLabel, isStretched, isChecked, isDisa
9154
9249
  const labelPaddingTop = `max(0px, calc((${buttonHeight} - ${fontLineHeight}) / 2))`; // Vertically centers the switch label relative to the switch size (depending on which is smaller).
9155
9250
  const toggleDimension = `calc(var(${cssVarInternalSwitchScaling}) * 1.25rem)`;
9156
9251
  const toggleTranslateX = `calc(var(${cssVarInternalSwitchScaling}) * .1875rem)`;
9157
- const spinnerDimension = buttonHeight;
9158
9252
  return getCss({
9159
9253
  '@global': {
9160
9254
  ':host': {
@@ -9229,7 +9323,6 @@ const getComponentCss$j = (alignLabel, hideLabel, isStretched, isChecked, isDisa
9229
9323
  },
9230
9324
  },
9231
9325
  toggle: {
9232
- forcedColorAdjust: 'none',
9233
9326
  display: 'flex',
9234
9327
  placeItems: 'center',
9235
9328
  placeContent: 'center',
@@ -9239,14 +9332,16 @@ const getComponentCss$j = (alignLabel, hideLabel, isStretched, isChecked, isDisa
9239
9332
  background: toggleBackgroundColor,
9240
9333
  transition: getTransition('transform'),
9241
9334
  transform: `translate3d(${isChecked ? `calc(${buttonWidth} - ${buttonBorderWidth} * 2 - 100% - ${toggleTranslateX})` : toggleTranslateX}, 0, 0)`,
9335
+ ...forcedColorsMediaQuery({
9336
+ background: 'CanvasText',
9337
+ }),
9242
9338
  '&:dir(rtl)': {
9243
9339
  transform: `translate3d(calc(${isChecked ? `calc(${buttonWidth} - ${buttonBorderWidth} * 2 - 100% - ${toggleTranslateX})` : toggleTranslateX} * -1), 0, 0)`,
9244
9340
  },
9245
9341
  },
9246
9342
  ...(isLoading && {
9247
9343
  spinner: {
9248
- width: spinnerDimension,
9249
- height: spinnerDimension,
9344
+ '--p-spinner-size': buttonHeight,
9250
9345
  },
9251
9346
  }),
9252
9347
  // .loading
@@ -9265,19 +9360,31 @@ const getComponentCss$i = () => {
9265
9360
  });
9266
9361
  };
9267
9362
 
9363
+ /**
9364
+ * @css-variable {"name": "--p-table-scroll-indicator-top", "description": "Defines the distance from the top of the viewport at which the scroll indicator sticks when scrolling down and `sticky` is enabled.", "defaultValue": "0px"}
9365
+ */
9366
+ const cssVarScrollIndicatorTop = '--p-table-scroll-indicator-top';
9367
+ /**
9368
+ * @css-variable {"name": "--p-table-scroll-indicator-bottom", "description": "Defines the distance from the bottom of the viewport at which the scroll indicator sticks when scrolling up and `sticky` is enabled.", "defaultValue": "0px"}
9369
+ */
9370
+ const cssVarScrollIndicatorBottom = '--p-table-scroll-indicator-bottom';
9268
9371
  const cssVariableTablePadding = '--_a';
9269
9372
  const cssVariableTableHoverColor = '--_b';
9270
9373
  const cssVariableTableBorderColor = '--_c';
9271
9374
  const cssVariableTableBorderWidth = '--_d';
9272
- const getComponentCss$h = (compact, layout) => {
9375
+ const getComponentCss$h = (isCompact, layout) => {
9273
9376
  return getCss({
9274
9377
  '@global': {
9275
9378
  ':host': {
9276
9379
  display: 'block',
9277
9380
  ...addImportantToEachRule({
9381
+ '--p-scroller-indicator-top': `var(${cssVarScrollIndicatorTop},0px)`,
9382
+ '--p-scroller-indicator-bottom': `var(${cssVarScrollIndicatorBottom},0px)`,
9278
9383
  [cssVariableTableHoverColor]: colorFrosted,
9279
9384
  [cssVariableTableBorderColor]: colorContrastLow,
9280
- ...(compact && { [cssVariableTablePadding]: spacingStaticSmall }),
9385
+ ...(isCompact && {
9386
+ [cssVariableTablePadding]: spacingStaticSmall,
9387
+ }),
9281
9388
  ...hostHiddenStyles,
9282
9389
  ...textSmallStyle,
9283
9390
  color: colorPrimary,
@@ -9457,105 +9564,100 @@ const getComponentCss$c = () => {
9457
9564
  });
9458
9565
  };
9459
9566
 
9460
- const scrollerAnimatedCssClass = 'scroller--animated';
9461
- const targetSelectors = ['a', 'button'];
9462
- const transformSelector = (selector) => targetSelectors.map((tag) => selector.replace(/\[role]/g, tag)).join();
9463
- const barJssStyle = {
9464
- position: 'absolute',
9465
- height: '2px',
9466
- left: 0,
9467
- background: colorPrimary,
9468
- ...forcedColorsMediaQuery({
9469
- background: 'ActiveBorder',
9470
- }),
9567
+ const backgroundMap = {
9568
+ canvas: colorCanvas,
9569
+ surface: colorSurface,
9570
+ frosted: colorFrosted,
9571
+ };
9572
+ const fontSizeText = {
9573
+ small: typescaleSm,
9574
+ medium: typescaleMd,
9471
9575
  };
9472
- const getComponentCss$b = (size, weight) => {
9576
+ const getComponentCss$b = (background, size, isCompact) => {
9473
9577
  return getCss({
9474
9578
  '@global': {
9475
9579
  ':host': {
9476
- display: 'block',
9580
+ display: 'grid',
9477
9581
  ...addImportantToEachRule({
9478
- position: 'relative',
9582
+ position: 'relative', // necessary for the bar animation to calculate the tab items position correctly
9479
9583
  ...hostHiddenStyles,
9480
9584
  }),
9481
9585
  },
9482
9586
  ...preventFoucOfNestedElementsStyles,
9483
9587
  ...addImportantToEachRule({
9484
- '::slotted(:is(a,button):focus-visible)': getFocusBaseStyles(),
9485
- // would be nice to use shared selector like '::slotted([role])'
9486
- // but this doesn't work reliably when rendering in browser
9487
- // TODO: might work with ::slotted(:is(a,button)) in the meantime?
9488
- [transformSelector('::slotted([role])')]: {
9489
- all: 'unset',
9490
- display: 'inline-block',
9491
- position: 'relative',
9492
- margin: `0 0 ${spacingStaticXs} 0`,
9493
- verticalAlign: 'top',
9494
- whiteSpace: 'nowrap',
9495
- boxSizing: 'border-box',
9496
- textAlign: 'start',
9497
- color: colorPrimary,
9498
- cursor: 'pointer',
9499
- borderRadius: `var(${legacyRadiusSmall}, ${radiusSm})`,
9500
- zIndex: 0, // needed for ::before pseudo-element to be visible
9588
+ '::slotted': {
9589
+ '&(a),&(button)': {
9590
+ all: 'unset',
9591
+ padding: isCompact ? `2px ${spacingStaticSm$1}` : `12px ${spacingStaticMd}`,
9592
+ whiteSpace: 'nowrap',
9593
+ cursor: 'pointer',
9594
+ borderRadius: `var(${legacyRadiusSmall}, ${radiusFull})`,
9595
+ ...(background === 'none' && {
9596
+ background: colorFrosted,
9597
+ }),
9598
+ font: `${typescaleSm} / ${leadingNormal} ${fontPorscheNext}`,
9599
+ ...buildResponsiveStyles(size, (sizeValue) => ({
9600
+ fontSize: fontSizeText[sizeValue],
9601
+ })),
9602
+ color: colorPrimary,
9603
+ transition: `${getTransition('color', 'moderate')}, ${getTransition('background-color')}`,
9604
+ },
9605
+ '&(a:focus-visible),&(button:focus-visible)': getFocusBaseStyles(),
9501
9606
  ...hoverMediaQuery({
9502
- '&::before': {
9503
- content: '""',
9504
- position: 'absolute',
9505
- inset: '-2px -4px',
9506
- borderRadius: `var(${legacyRadiusSmall}, ${radiusSm})`,
9507
- zIndex: -1, // Stack the pseudo-element behind the button to avoid overlay of frosted-glass effect with label text
9508
- transition: getTransition('background-color'),
9607
+ '&(a:not([aria-current="true"]):hover),&(button:not([aria-selected="true"]):hover)': {
9608
+ background: colorFrostedStrong,
9509
9609
  },
9510
9610
  }),
9511
- },
9512
- ...hoverMediaQuery({
9513
- [transformSelector('::slotted([role]:hover)::before')]: {
9514
- ...frostedGlassStyle,
9515
- background: colorFrosted,
9611
+ '&(a[aria-current="true"]),&(button[aria-selected="true"])': {
9612
+ color: colorCanvas,
9613
+ background: colorPrimary,
9614
+ transition: `${getTransition('color', 'moderate')}, background-color 0s linear ${durationMd}`, // the background shall be changed immediately after the bar transition has finished
9516
9615
  },
9517
- }),
9518
- // basic invisible bar, that will be delayed via transition: visibility
9519
- [transformSelector('::slotted([role])::after')]: {
9520
- content: '""',
9521
- visibility: 'hidden',
9522
- },
9523
- // visible bar for selected tab
9524
- [transformSelector('::slotted([role][aria-selected="true"])::after, ::slotted([role][aria-current="true"])::after')]: {
9525
- ...barJssStyle,
9526
- right: '0px',
9527
- bottom: isHighContrastMode ? '-4px' : '-6px',
9528
- visibility: 'inherit',
9529
- },
9530
- [transformSelector('::slotted([role]:not(:last-child))')]: {
9531
- marginInlineEnd: spacingStaticMedium,
9616
+ ...forcedColorsMediaQuery({
9617
+ '&(a),&(button)': {
9618
+ forcedColorAdjust: 'none',
9619
+ background: 'Canvas',
9620
+ },
9621
+ '&(a)': {
9622
+ color: 'LinkText',
9623
+ boxShadow: 'inset 0 0 0 2px LinkText',
9624
+ },
9625
+ '&(button)': {
9626
+ color: 'ButtonText',
9627
+ boxShadow: 'inset 0 0 0 2px ButtonBorder',
9628
+ },
9629
+ '&(a[aria-current="true"]),&(button[aria-selected="true"])': {
9630
+ transition: 'unset',
9631
+ },
9632
+ }),
9532
9633
  },
9533
9634
  }),
9534
9635
  },
9535
9636
  scroller: {
9536
- ...textSmallStyle,
9537
- fontWeight: getFontWeight(weight),
9538
- ...buildResponsiveStyles(size, (s) => ({ fontSize: fontSizeText[s] })),
9539
- },
9540
- // conditionally applied and removed based on if activeTabIndex exists
9541
- [scrollerAnimatedCssClass]: {
9542
- [`& ${transformSelector('::slotted([role][aria-selected="true"])::after, ::slotted([role][aria-current="true"])::after')}`]: {
9543
- transition: addImportantToRule(`visibility 0s linear var(${cssVariableTransitionDuration}, ${motionDurationModerate})`), // bar appears after transition
9544
- },
9637
+ placeSelf: 'flex-start', // ensures scroller doesn't get stretched in x- or y-axis in case the tabs-bar is taller than the scroller (e.g. when placed in flex or grid context)
9638
+ borderRadius: `var(${legacyRadiusSmall}, ${radiusFull})`,
9639
+ ...(background !== 'none' && {
9640
+ background: backgroundMap[background],
9641
+ padding: spacingStaticXs$1,
9642
+ ...forcedColorsMediaQuery({
9643
+ forcedColorAdjust: 'none',
9644
+ outline: '1px solid CanvasText',
9645
+ }),
9646
+ }),
9647
+ ...(background === 'frosted' && {
9648
+ WebkitBackdropFilter: blurFrosted,
9649
+ backdropFilter: blurFrosted,
9650
+ }),
9545
9651
  },
9546
- // moving bar
9547
9652
  bar: {
9548
- ...barJssStyle,
9549
- width: 0, // actual width and transform is set via inline css
9550
- bottom: isHighContrastMode ? '0' : '-2px',
9551
- visibility: 'inherit',
9552
- transition: `${getTransition('transform', 'moderate')}, ${getTransition('width', 'moderate')}`,
9553
- animation: `$hide 0s var(${cssVariableAnimationDuration},0.5s) forwards`, // auto hide bar after transition, needs to be a little longer in Safari
9554
- },
9555
- '@keyframes hide': {
9556
- to: {
9557
- visibility: 'hidden',
9558
- },
9653
+ position: 'absolute',
9654
+ insetInlineStart: 0, // necessary for the bar animation to calculate the tab items position correctly in rtl mode
9655
+ width: '0px', // ensures element is not visible after `.animate()` has finished
9656
+ height: '100%',
9657
+ zIndex: -1,
9658
+ pointerEvents: 'none',
9659
+ borderRadius: `var(${legacyRadiusSmall}, ${radiusFull})`,
9660
+ background: colorPrimary,
9559
9661
  },
9560
9662
  });
9561
9663
  };
@@ -9588,7 +9690,7 @@ const getComponentCss$9 = () => {
9588
9690
  ...preventFoucOfNestedElementsStyles,
9589
9691
  },
9590
9692
  root: {
9591
- marginBottom: spacingStaticSmall,
9693
+ marginBottom: spacingStaticSm$1,
9592
9694
  },
9593
9695
  });
9594
9696
  };
@@ -9725,6 +9827,7 @@ const getComponentCss$7 = (variant, compact, isFocusable, hasIcon) => {
9725
9827
  outline: '2px solid CanvasText',
9726
9828
  outlineOffset: '-2px',
9727
9829
  backgroundColor: 'Canvas',
9830
+ color: 'CanvasText',
9728
9831
  }),
9729
9832
  },
9730
9833
  '::slotted': addImportantToEachRule({
@@ -9843,18 +9946,6 @@ const getComponentCss$5 = () => {
9843
9946
 
9844
9947
  const TEXT_TAGS = ['p', 'span', 'div', 'address', 'blockquote', 'figcaption', 'cite', 'time', 'legend'];
9845
9948
 
9846
- const sizeMap = {
9847
- 'xx-small': fontSizeTextXXSmall,
9848
- 'x-small': fontSizeTextXSmall,
9849
- small: fontSizeTextSmall,
9850
- medium: fontSizeTextMedium,
9851
- large: fontSizeTextLarge,
9852
- 'x-large': fontSizeTextXLarge,
9853
- };
9854
- // CSS Variable defined in fontHyphenationStyle
9855
- /**
9856
- * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
9857
- */
9858
9949
  const getComponentCss$4 = (size, weight, align, color, ellipsis) => {
9859
9950
  return getCss({
9860
9951
  '@global': {
@@ -9864,12 +9955,26 @@ const getComponentCss$4 = (size, weight, align, color, ellipsis) => {
9864
9955
  ...hostHiddenStyles,
9865
9956
  }),
9866
9957
  },
9867
- [`::slotted(:is(${TEXT_TAGS.join()}))`]: addImportantToEachRule(getTypographySlottedJssStyle()),
9958
+ [`::slotted(:is(${TEXT_TAGS.join()}))`]: addImportantToEachRule({
9959
+ all: 'unset',
9960
+ }),
9961
+ },
9962
+ root: {
9963
+ all: 'unset',
9964
+ display: 'block',
9965
+ font: `${weightMap[weight]} ${typescaleSm}/${leadingNormal} ${fontPorscheNext}`,
9966
+ ...buildResponsiveStyles(size, (v) => ({
9967
+ fontSize: sizeMap$1[v],
9968
+ })),
9969
+ color: colorMap$3[color],
9970
+ textAlign: align,
9971
+ ...(ellipsis && {
9972
+ maxWidth: '100%',
9973
+ overflow: 'hidden',
9974
+ textOverflow: 'ellipsis',
9975
+ whiteSpace: 'nowrap',
9976
+ }),
9868
9977
  },
9869
- root: getTypographyRootJssStyle(textSmallStyle, buildResponsiveStyles(size, (sizeValue) => ({
9870
- fontSize: sizeValue === 'inherit' ? sizeValue : sizeMap[sizeValue],
9871
- fontWeight: getFontWeight(weight),
9872
- })), align, color, ellipsis),
9873
9978
  });
9874
9979
  };
9875
9980
 
@@ -10066,6 +10171,9 @@ const getComponentCss = (size) => {
10066
10171
  svg: {
10067
10172
  ...sizingStyles,
10068
10173
  fill: colorPrimary,
10174
+ ...forcedColorsMediaQuery({
10175
+ fill: 'CanvasText',
10176
+ }),
10069
10177
  },
10070
10178
  },
10071
10179
  });