@porsche-design-system/components-react 4.0.0-beta.2 → 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 (178) hide show
  1. package/CHANGELOG.md +293 -1
  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/spinner.wrapper.cjs +3 -3
  9. package/cjs/lib/components/text.wrapper.cjs +1 -1
  10. package/esm/lib/components/accordion.wrapper.d.ts +8 -8
  11. package/esm/lib/components/button-pure.wrapper.d.ts +15 -7
  12. package/esm/lib/components/button-pure.wrapper.mjs +3 -3
  13. package/esm/lib/components/button-tile.wrapper.d.ts +2 -2
  14. package/esm/lib/components/button.wrapper.d.ts +6 -6
  15. package/esm/lib/components/carousel.wrapper.d.ts +10 -10
  16. package/esm/lib/components/checkbox.wrapper.d.ts +6 -6
  17. package/esm/lib/components/crest.wrapper.d.ts +6 -6
  18. package/esm/lib/components/display.wrapper.d.ts +1 -0
  19. package/esm/lib/components/display.wrapper.mjs +1 -0
  20. package/esm/lib/components/drilldown-link.wrapper.d.ts +8 -8
  21. package/esm/lib/components/drilldown.wrapper.d.ts +8 -8
  22. package/esm/lib/components/fieldset.wrapper.d.ts +6 -6
  23. package/esm/lib/components/flag.wrapper.d.ts +5 -5
  24. package/esm/lib/components/flag.wrapper.mjs +1 -1
  25. package/esm/lib/components/flyout.wrapper.d.ts +2 -2
  26. package/esm/lib/components/heading.wrapper.d.ts +19 -11
  27. package/esm/lib/components/heading.wrapper.mjs +3 -3
  28. package/esm/lib/components/icon.wrapper.d.ts +7 -7
  29. package/esm/lib/components/icon.wrapper.mjs +1 -1
  30. package/esm/lib/components/input-date.wrapper.d.ts +12 -12
  31. package/esm/lib/components/input-email.wrapper.d.ts +8 -8
  32. package/esm/lib/components/input-month.wrapper.d.ts +12 -12
  33. package/esm/lib/components/input-number.wrapper.d.ts +8 -8
  34. package/esm/lib/components/input-password.wrapper.d.ts +6 -6
  35. package/esm/lib/components/input-search.wrapper.d.ts +6 -6
  36. package/esm/lib/components/input-tel.wrapper.d.ts +6 -6
  37. package/esm/lib/components/input-text.wrapper.d.ts +6 -6
  38. package/esm/lib/components/input-time.wrapper.d.ts +14 -14
  39. package/esm/lib/components/input-url.wrapper.d.ts +16 -16
  40. package/esm/lib/components/input-week.wrapper.d.ts +14 -14
  41. package/esm/lib/components/link-pure.wrapper.d.ts +23 -15
  42. package/esm/lib/components/link-pure.wrapper.mjs +3 -3
  43. package/esm/lib/components/link-tile-product.wrapper.d.ts +8 -8
  44. package/esm/lib/components/link-tile.wrapper.d.ts +8 -8
  45. package/esm/lib/components/link.wrapper.d.ts +14 -14
  46. package/esm/lib/components/modal.wrapper.d.ts +2 -2
  47. package/esm/lib/components/model-signature.wrapper.d.ts +2 -2
  48. package/esm/lib/components/multi-select.wrapper.d.ts +10 -10
  49. package/esm/lib/components/pin-code.wrapper.d.ts +8 -8
  50. package/esm/lib/components/popover.wrapper.d.ts +6 -6
  51. package/esm/lib/components/radio-group-option.wrapper.d.ts +2 -2
  52. package/esm/lib/components/radio-group.wrapper.d.ts +8 -8
  53. package/esm/lib/components/segmented-control-item.wrapper.d.ts +4 -4
  54. package/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
  55. package/esm/lib/components/select.wrapper.d.ts +10 -10
  56. package/esm/lib/components/sheet.wrapper.d.ts +2 -2
  57. package/esm/lib/components/spinner.wrapper.d.ts +13 -5
  58. package/esm/lib/components/spinner.wrapper.mjs +3 -3
  59. package/esm/lib/components/switch.wrapper.d.ts +6 -6
  60. package/esm/lib/components/table-cell.wrapper.d.ts +2 -2
  61. package/esm/lib/components/table-head-cell.wrapper.d.ts +4 -4
  62. package/esm/lib/components/tabs-bar.wrapper.d.ts +2 -2
  63. package/esm/lib/components/tabs.wrapper.d.ts +2 -2
  64. package/esm/lib/components/tag-dismissible.wrapper.d.ts +6 -6
  65. package/esm/lib/components/tag.wrapper.d.ts +2 -2
  66. package/esm/lib/components/text.wrapper.d.ts +12 -12
  67. package/esm/lib/components/text.wrapper.mjs +1 -1
  68. package/esm/lib/components/textarea.wrapper.d.ts +6 -6
  69. package/esm/lib/components/wordmark.wrapper.d.ts +8 -8
  70. package/esm/lib/types.d.ts +322 -141
  71. package/global-styles/cn/index.css +3 -7
  72. package/global-styles/index.css +3 -7
  73. package/global-styles/variables.css +3 -7
  74. package/package.json +6 -2
  75. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +341 -319
  76. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +18 -8
  77. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/button-pure.wrapper.cjs +4 -4
  78. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/display.wrapper.cjs +1 -0
  79. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/flag.wrapper.cjs +1 -1
  80. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/heading.wrapper.cjs +4 -4
  81. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/icon.wrapper.cjs +1 -1
  82. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/link-pure.wrapper.cjs +4 -4
  83. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/spinner.wrapper.cjs +4 -4
  84. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/text.wrapper.cjs +1 -1
  85. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.cjs +3 -2
  86. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.cjs +2 -2
  87. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.cjs +1 -1
  88. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.cjs +2 -0
  89. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-item.cjs +2 -2
  90. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.cjs +1 -1
  91. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.cjs +1 -1
  92. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.cjs +1 -1
  93. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.cjs +1 -1
  94. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group-option.cjs +1 -1
  95. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.cjs +1 -1
  96. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/spinner.cjs +2 -2
  97. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.cjs +1 -1
  98. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +341 -319
  99. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +18 -8
  100. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/button-pure.wrapper.mjs +4 -4
  101. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/display.wrapper.mjs +1 -0
  102. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/flag.wrapper.mjs +1 -1
  103. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/heading.wrapper.mjs +4 -4
  104. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/icon.wrapper.mjs +1 -1
  105. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/link-pure.wrapper.mjs +4 -4
  106. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/spinner.wrapper.mjs +4 -4
  107. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/text.wrapper.mjs +1 -1
  108. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +3 -2
  109. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +2 -2
  110. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.mjs +1 -1
  111. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.mjs +2 -0
  112. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-item.mjs +2 -2
  113. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +1 -1
  114. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.mjs +1 -1
  115. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.mjs +1 -1
  116. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.mjs +1 -1
  117. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group-option.mjs +1 -1
  118. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.mjs +1 -1
  119. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/spinner.mjs +2 -2
  120. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.mjs +1 -1
  121. package/ssr/esm/lib/components/accordion.wrapper.d.ts +8 -8
  122. package/ssr/esm/lib/components/button-pure.wrapper.d.ts +15 -7
  123. package/ssr/esm/lib/components/button-tile.wrapper.d.ts +2 -2
  124. package/ssr/esm/lib/components/button.wrapper.d.ts +6 -6
  125. package/ssr/esm/lib/components/carousel.wrapper.d.ts +10 -10
  126. package/ssr/esm/lib/components/checkbox.wrapper.d.ts +6 -6
  127. package/ssr/esm/lib/components/crest.wrapper.d.ts +6 -6
  128. package/ssr/esm/lib/components/display.wrapper.d.ts +1 -0
  129. package/ssr/esm/lib/components/drilldown-link.wrapper.d.ts +8 -8
  130. package/ssr/esm/lib/components/drilldown.wrapper.d.ts +8 -8
  131. package/ssr/esm/lib/components/fieldset.wrapper.d.ts +6 -6
  132. package/ssr/esm/lib/components/flag.wrapper.d.ts +5 -5
  133. package/ssr/esm/lib/components/flyout.wrapper.d.ts +2 -2
  134. package/ssr/esm/lib/components/heading.wrapper.d.ts +19 -11
  135. package/ssr/esm/lib/components/icon.wrapper.d.ts +7 -7
  136. package/ssr/esm/lib/components/input-date.wrapper.d.ts +12 -12
  137. package/ssr/esm/lib/components/input-email.wrapper.d.ts +8 -8
  138. package/ssr/esm/lib/components/input-month.wrapper.d.ts +12 -12
  139. package/ssr/esm/lib/components/input-number.wrapper.d.ts +8 -8
  140. package/ssr/esm/lib/components/input-password.wrapper.d.ts +6 -6
  141. package/ssr/esm/lib/components/input-search.wrapper.d.ts +6 -6
  142. package/ssr/esm/lib/components/input-tel.wrapper.d.ts +6 -6
  143. package/ssr/esm/lib/components/input-text.wrapper.d.ts +6 -6
  144. package/ssr/esm/lib/components/input-time.wrapper.d.ts +14 -14
  145. package/ssr/esm/lib/components/input-url.wrapper.d.ts +16 -16
  146. package/ssr/esm/lib/components/input-week.wrapper.d.ts +14 -14
  147. package/ssr/esm/lib/components/link-pure.wrapper.d.ts +23 -15
  148. package/ssr/esm/lib/components/link-tile-product.wrapper.d.ts +8 -8
  149. package/ssr/esm/lib/components/link-tile.wrapper.d.ts +8 -8
  150. package/ssr/esm/lib/components/link.wrapper.d.ts +14 -14
  151. package/ssr/esm/lib/components/modal.wrapper.d.ts +2 -2
  152. package/ssr/esm/lib/components/model-signature.wrapper.d.ts +2 -2
  153. package/ssr/esm/lib/components/multi-select.wrapper.d.ts +10 -10
  154. package/ssr/esm/lib/components/pin-code.wrapper.d.ts +8 -8
  155. package/ssr/esm/lib/components/popover.wrapper.d.ts +6 -6
  156. package/ssr/esm/lib/components/radio-group-option.wrapper.d.ts +2 -2
  157. package/ssr/esm/lib/components/radio-group.wrapper.d.ts +8 -8
  158. package/ssr/esm/lib/components/segmented-control-item.wrapper.d.ts +4 -4
  159. package/ssr/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
  160. package/ssr/esm/lib/components/select.wrapper.d.ts +10 -10
  161. package/ssr/esm/lib/components/sheet.wrapper.d.ts +2 -2
  162. package/ssr/esm/lib/components/spinner.wrapper.d.ts +13 -5
  163. package/ssr/esm/lib/components/switch.wrapper.d.ts +6 -6
  164. package/ssr/esm/lib/components/table-cell.wrapper.d.ts +2 -2
  165. package/ssr/esm/lib/components/table-head-cell.wrapper.d.ts +4 -4
  166. package/ssr/esm/lib/components/tabs-bar.wrapper.d.ts +2 -2
  167. package/ssr/esm/lib/components/tabs.wrapper.d.ts +2 -2
  168. package/ssr/esm/lib/components/tag-dismissible.wrapper.d.ts +6 -6
  169. package/ssr/esm/lib/components/tag.wrapper.d.ts +2 -2
  170. package/ssr/esm/lib/components/text.wrapper.d.ts +12 -12
  171. package/ssr/esm/lib/components/textarea.wrapper.d.ts +6 -6
  172. package/ssr/esm/lib/components/wordmark.wrapper.d.ts +8 -8
  173. package/ssr/esm/lib/dsr-components/carousel.d.ts +2 -2
  174. package/ssr/esm/lib/dsr-components/display.d.ts +2 -0
  175. package/ssr/esm/lib/dsr-components/drilldown-item.d.ts +2 -2
  176. package/ssr/esm/lib/dsr-components/flyout.d.ts +1 -1
  177. package/ssr/esm/lib/types.d.ts +322 -141
  178. package/tailwindcss/index.css +19 -4
@@ -24,16 +24,7 @@ const leadingNormal$1 = 'calc(6px + 2.125ex)';
24
24
  /** @deprecated since v4.0.0, will be removed with next major release. Use leadingNormal instead */
25
25
  const fontLineHeight = leadingNormal$1;
26
26
 
27
- const fontSizeDisplayLarge = 'clamp(2.28rem, 5.2vw + 1.24rem, 7.48rem)';
28
-
29
- const fontSizeDisplayMedium = 'clamp(2.03rem, 3.58vw + 1.31rem, 5.61rem)';
30
-
31
- const fontSizeDisplaySmall = 'clamp(1.8rem, 2.41vw + 1.32rem, 4.21rem)';
32
-
33
- const typescaleLg = 'clamp(1.27rem, 0.51vw + 1.16rem, 1.78rem)';
34
-
35
- /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleLg instead. */
36
- const fontSizeHeadingLarge = typescaleLg;
27
+ const typescaleLg$1 = 'clamp(1.27rem, 0.51vw + 1.16rem, 1.78rem)';
37
28
 
38
29
  const typescaleMd$1 = 'clamp(1.13rem, 0.21vw + 1.08rem, 1.33rem)';
39
30
 
@@ -45,18 +36,18 @@ const typescaleSm$1 = '1rem';
45
36
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleSm instead. */
46
37
  const fontSizeHeadingSmall = typescaleSm$1;
47
38
 
48
- const typescaleXl = 'clamp(1.42rem, 0.94vw + 1.23rem, 2.37rem)';
39
+ const typescaleXl$1 = 'clamp(1.42rem, 0.94vw + 1.23rem, 2.37rem)';
49
40
 
50
41
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleXl instead. */
51
- const fontSizeHeadingXLarge = typescaleXl;
42
+ const fontSizeHeadingXLarge = typescaleXl$1;
52
43
 
53
- const typescale2Xl = 'clamp(1.6rem, 1.56vw + 1.29rem, 3.16rem)';
44
+ const typescale2Xl$1 = 'clamp(1.6rem, 1.56vw + 1.29rem, 3.16rem)';
54
45
 
55
46
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescale2Xl instead. */
56
- const fontSizeHeadingXXLarge = typescale2Xl;
47
+ const fontSizeHeadingXXLarge = typescale2Xl$1;
57
48
 
58
49
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleLg instead. */
59
- const fontSizeTextLarge = typescaleLg;
50
+ const fontSizeTextLarge = typescaleLg$1;
60
51
 
61
52
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleMd instead. */
62
53
  const fontSizeTextMedium = typescaleMd$1;
@@ -65,17 +56,17 @@ const fontSizeTextMedium = typescaleMd$1;
65
56
  const fontSizeTextSmall = typescaleSm$1;
66
57
 
67
58
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleXl instead. */
68
- const fontSizeTextXLarge = typescaleXl;
59
+ const fontSizeTextXLarge = typescaleXl$1;
69
60
 
70
- const typescaleXs$1 = 'clamp(0.81rem, 0.23vw + 0.77rem, 0.88rem)';
61
+ const typescaleXs$2 = 'clamp(0.81rem, 0.23vw + 0.77rem, 0.88rem)';
71
62
 
72
63
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescaleXs instead. */
73
- const fontSizeTextXSmall = typescaleXs$1;
64
+ const fontSizeTextXSmall = typescaleXs$2;
74
65
 
75
- const typescale2Xs = '.75rem';
66
+ const typescale2Xs$1 = '.75rem';
76
67
 
77
68
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescale2Xs instead. */
78
- const fontSizeTextXXSmall = typescale2Xs;
69
+ const fontSizeTextXXSmall = typescale2Xs$1;
79
70
 
80
71
  /** @deprecated since v4.0.0, will be removed with next major release. Use typescale variables instead. */
81
72
  const fontSizeText$1 = {
@@ -93,20 +84,16 @@ const fontStyleNormal = 'normal';
93
84
  /** @deprecated since v4.0.0, will be removed with next major release. Use 'normal' instead. */
94
85
  const fontVariant = 'normal';
95
86
 
96
- const fontWeightNormal = 400;
87
+ const fontWeightNormal$1 = 400;
97
88
 
98
89
  /** @deprecated since v4.0.0, will be removed with next major release. Use fontWeightNormal instead. */
99
- const fontWeightRegular = fontWeightNormal;
90
+ const fontWeightRegular = fontWeightNormal$1;
100
91
 
101
92
  const fontWeightSemibold$1 = 600;
102
93
 
103
94
  /** @deprecated since v4.0.0, will be removed with next major release. Use fontWeightSemibold instead. */
104
95
  const fontWeightSemiBold = fontWeightSemibold$1;
105
96
 
106
- const fontWeightBold$1 = 700;
107
-
108
- const fontWeightBold = fontWeightBold$1;
109
-
110
97
  const fontHyphenationStyle = {
111
98
  overflowWrap: 'break-word',
112
99
  // @ts-ignore
@@ -263,10 +250,10 @@ const durationSm$1 = '.25s';
263
250
  /** @deprecated since v4.0.0, will be removed with next major release. Use durationSm instead. */
264
251
  const motionDurationShort = durationSm$1;
265
252
 
266
- const durationXl = '1.2s';
253
+ const durationXl$1 = '1.2s';
267
254
 
268
255
  /** @deprecated since v4.0.0, will be removed with next major release. Use durationXl instead. */
269
- const motionDurationVeryLong = durationXl;
256
+ const motionDurationVeryLong = durationXl$1;
270
257
 
271
258
  const easeInOut = 'cubic-bezier(.25,.1,.25,1)';
272
259
 
@@ -322,14 +309,6 @@ const spacingStaticXSmall = spacingStaticXs$3;
322
309
 
323
310
  const spacingStaticXs$2 = spacingStaticXs$3;
324
311
 
325
- const _displayFontPartA = `${fontStyleNormal} ${fontVariant} ${fontWeightRegular} `;
326
- const _displayFontPartB = `/${fontLineHeight} ${fontFamily}`;
327
-
328
- /** @deprecated since v4.0.0, will be removed with next major release. Use proseDisplayLg instead. */
329
- const displayLargeStyle = {
330
- font: `${_displayFontPartA}${fontSizeDisplayLarge}${_displayFontPartB}`,
331
- };
332
-
333
312
  const _headingFontPartA = `${fontStyleNormal} ${fontVariant} ${fontWeightRegular} `;
334
313
  const _headingFontPartB = `/${fontLineHeight} ${fontFamily}`;
335
314
 
@@ -381,7 +360,7 @@ const textMediumStyle = {
381
360
  };
382
361
 
383
362
  const proseTextSmStyle = {
384
- font: `normal normal ${fontWeightNormal} ${typescaleSm$1} / ${leadingNormal$1} ${fontPorscheNext$1}`,
363
+ font: `normal normal ${fontWeightNormal$1} ${typescaleSm$1} / ${leadingNormal$1} ${fontPorscheNext$1}`,
385
364
  ...fontHyphenationStyle,
386
365
  };
387
366
 
@@ -427,6 +406,8 @@ const colorSurface = 'var(--p-color-surface)';
427
406
 
428
407
  const colorContrastHigh = 'var(--p-color-contrast-high)';
429
408
 
409
+ const colorContrastHigher = 'var(--p-color-contrast-higher)';
410
+
430
411
  const colorContrastLow = 'var(--p-color-contrast-low)';
431
412
 
432
413
  const colorContrastLower = 'var(--p-color-contrast-lower)';
@@ -465,16 +446,38 @@ const fontPorscheNext = 'var(--p-font-porsche-next)';
465
446
 
466
447
  const leadingNormal = 'var(--p-leading-normal)';
467
448
 
449
+ const typescale2Xl = 'var(--p-typescale-2xl)';
450
+
451
+ const typescale2Xs = 'var(--p-typescale-2xs)';
452
+
453
+ const typescale3Xl = 'var(--p-typescale-3xl)';
454
+
455
+ const typescale4Xl = 'var(--p-typescale-4xl)';
456
+
457
+ const typescale5Xl = 'var(--p-typescale-5xl)';
458
+
459
+ const typescaleLg = 'var(--p-typescale-lg)';
460
+
468
461
  const typescaleMd = 'var(--p-typescale-md)';
469
462
 
470
463
  const typescaleSm = 'var(--p-typescale-sm)';
471
464
 
465
+ const typescaleXl = 'var(--p-typescale-xl)';
466
+
467
+ const typescaleXs$1 = 'var(--p-typescale-xs)';
468
+
469
+ const fontWeightBold = 'var(--p-font-weight-bold)';
470
+
471
+ const fontWeightNormal = 'var(--p-font-weight-normal)';
472
+
472
473
  const fontWeightSemibold = 'var(--p-font-weight-semibold)';
473
474
 
474
475
  const durationMd = 'var(--p-duration-md)';
475
476
 
476
477
  const durationSm = 'var(--p-duration-sm)';
477
478
 
479
+ const durationXl = 'var(--p-duration-xl)';
480
+
478
481
  const spacingStaticMd = 'var(--p-spacing-static-md)';
479
482
 
480
483
  const spacingStaticSm$1 = 'var(--p-spacing-static-sm)';
@@ -482,7 +485,7 @@ const spacingStaticSm$1 = 'var(--p-spacing-static-sm)';
482
485
  const spacingStaticXs$1 = 'var(--p-spacing-static-xs)';
483
486
 
484
487
  const forcedColorsMediaQuery = (style) => {
485
- return { '@media (forced-colors: active)': style };
488
+ return { '@media(forced-colors:active)': style };
486
489
  };
487
490
 
488
491
  const motionDurationMap = {
@@ -584,7 +587,9 @@ const preventFoucOfNestedElementsStyles = {
584
587
  * utility to wrap jss styles parameter in `@media (hover: hover)`
585
588
  * which is used to not have hover styles on touch devices
586
589
  */
587
- const hoverMediaQuery = (style) => ({ '@media(hover:hover)': style });
590
+ const hoverMediaQuery = (style) => {
591
+ return { '@media(hover:hover)': style };
592
+ };
588
593
 
589
594
  function _extends() {
590
595
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -3907,14 +3912,12 @@ const OPTION_LIST_SAFE_ZONE = 6;
3907
3912
 
3908
3913
  const getCDNBaseURL = () => global.PORSCHE_DESIGN_SYSTEM_CDN_URL + "/porsche-design-system";
3909
3914
 
3910
- const prefix = `[Porsche Design System v${"4.0.0-beta.2"}]` // this part isn't covered by unit tests
3915
+ const prefix = `[Porsche Design System v${"4.0.0-beta.3"}]` // this part isn't covered by unit tests
3911
3916
  ;
3912
3917
  const consoleError = (...messages) => {
3913
3918
  console.error(prefix, ...messages);
3914
3919
  };
3915
3920
 
3916
- const HEADING_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
3917
-
3918
3921
  const headerSlot = 'header';
3919
3922
  const anchorSlot = 'anchor';
3920
3923
 
@@ -4233,6 +4236,9 @@ const cssVariableBottom = '--p-banner-position-bottom';
4233
4236
  const cssVariableZIndex = '--p-internal-banner-z-index';
4234
4237
  const topBottomFallback = '56px';
4235
4238
  const getComponentCss$18 = (isOpen) => {
4239
+ const easing = isOpen ? 'in' : 'out';
4240
+ const transition = `visibility 0s linear var(${cssVariableTransitionDuration}, ${isOpen ? '0s' : motionDurationLong}), ${getTransition('transform', 'moderate', easing)}`;
4241
+ const transitionChild = `${getTransition('opacity', 'moderate', easing)}`;
4236
4242
  return getCss({
4237
4243
  '@global': {
4238
4244
  ':host': {
@@ -4242,32 +4248,42 @@ const getComponentCss$18 = (isOpen) => {
4242
4248
  ...getBannerPopoverResetStyles(),
4243
4249
  inset: `auto ${gridExtendedOffsetBase} var(${cssVariableBottom},${topBottomFallback})`,
4244
4250
  zIndex: `var(${cssVariableZIndex},${BANNER_Z_INDEX})`,
4245
- ...dropShadowHighStyle,
4246
4251
  borderRadius: `var(${legacyRadiusMedium}, ${radiusXl})`, // needed for rounded box-shadow
4247
4252
  '&::backdrop': {
4248
4253
  display: 'none',
4249
4254
  },
4255
+ '& > :first-child': {
4256
+ opacity: 0,
4257
+ ...dropShadowHighStyle,
4258
+ ...(isOpen
4259
+ ? {
4260
+ opacity: 1,
4261
+ }
4262
+ : {
4263
+ opacity: 0,
4264
+ }),
4265
+ transition: transitionChild,
4266
+ // // 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)
4267
+ '@supports (transition-behavior: allow-discrete)': {
4268
+ transition: `${transitionChild}, overlay var(${cssVariableTransitionDuration}, ${motionDurationModerate}) ${motionEasingOut} allow-discrete`,
4269
+ },
4270
+ },
4250
4271
  ...(isOpen
4251
4272
  ? {
4252
- opacity: 1,
4253
4273
  visibility: 'inherit',
4254
4274
  pointerEvents: 'inherit',
4255
4275
  transform: 'translate3d(0,0,0)',
4256
- transition: `${getTransition('transform', 'moderate', 'in')}, ${getTransition('opacity', 'moderate', 'in')}`,
4257
4276
  }
4258
4277
  : {
4259
- opacity: 0,
4260
4278
  visibility: 'hidden',
4261
4279
  pointerEvents: 'none',
4262
4280
  transform: `translate3d(0,calc(var(${cssVariableBottom},${topBottomFallback}) + 100%),0)`,
4263
- '&(.hydrated),&(.ssr)': {
4264
- transition: `visibility 0s linear var(${cssVariableTransitionDuration}, ${motionDurationLong}), ${getTransition('transform', 'moderate', 'out')}, ${getTransition('opacity', 'moderate', 'out')}`,
4265
- // 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)
4266
- '@supports (transition-behavior: allow-discrete)': {
4267
- transition: `visibility 0s linear var(${cssVariableTransitionDuration}, ${motionDurationLong}), ${getTransition('transform', 'moderate', 'out')}, ${getTransition('opacity', 'moderate', 'out')}, overlay var(${cssVariableTransitionDuration}, ${motionDurationModerate}) ${motionEasingOut} allow-discrete`,
4268
- },
4269
- },
4270
4281
  }),
4282
+ transition,
4283
+ // 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)
4284
+ '@supports (transition-behavior: allow-discrete)': {
4285
+ transition: `${transition}, overlay var(${cssVariableTransitionDuration}, ${motionDurationModerate}) ${motionEasingOut} allow-discrete`,
4286
+ },
4271
4287
  [getMediaQueryMin('s')]: {
4272
4288
  inset: `var(${cssVariableTop},${topBottomFallback}) ${gridExtendedOffsetS} auto`,
4273
4289
  ...(!isOpen && { transform: `translate3d(0,calc(-100% - var(${cssVariableTop},${topBottomFallback})),0)` }),
@@ -4283,17 +4299,47 @@ const getComponentCss$18 = (isOpen) => {
4283
4299
  });
4284
4300
  };
4285
4301
 
4286
- const fontSizeTextMap = {
4287
- 'xx-small': fontSizeTextXXSmall,
4288
- 'x-small': fontSizeTextXSmall,
4289
- small: fontSizeTextSmall,
4290
- medium: fontSizeTextMedium,
4291
- large: fontSizeTextLarge,
4292
- 'x-large': fontSizeTextXLarge,
4302
+ const colorMap$3 = {
4303
+ primary: colorPrimary,
4304
+ 'contrast-higher': colorContrastHigher,
4305
+ 'contrast-high': colorContrastHigh,
4306
+ 'contrast-medium': colorContrastMedium,
4307
+ 'contrast-low': colorContrastLow,
4308
+ 'contrast-lower': colorContrastLower,
4309
+ success: colorSuccess,
4310
+ warning: colorWarning,
4311
+ error: colorError,
4312
+ info: colorInfo,
4313
+ inherit: 'currentcolor',
4314
+ };
4315
+
4316
+ const sizeMap$1 = {
4317
+ 'xx-small': typescale2Xs, // deprecated (alias)
4318
+ 'x-small': typescaleXs$1, // deprecated (alias)
4319
+ small: typescaleSm, // deprecated (alias)
4320
+ medium: typescaleMd, // deprecated (alias)
4321
+ large: typescaleLg, // deprecated (alias)
4322
+ 'x-large': typescaleXl, // deprecated (alias)
4323
+ 'xx-large': typescale2Xl, // deprecated (alias)
4324
+ '2xs': typescale2Xs,
4325
+ xs: typescaleXs$1,
4326
+ sm: typescaleSm,
4327
+ md: typescaleMd,
4328
+ lg: typescaleLg,
4329
+ xl: typescaleXl,
4330
+ '2xl': typescale2Xl,
4331
+ '3xl': typescale3Xl,
4332
+ '4xl': typescale4Xl,
4333
+ '5xl': typescale5Xl,
4293
4334
  inherit: 'inherit',
4294
4335
  };
4295
- const getFontSizeText = (size) => {
4296
- return fontSizeTextMap[size];
4336
+
4337
+ const weightMap = {
4338
+ regular: fontWeightNormal, // deprecated
4339
+ 'semi-bold': fontWeightSemibold, // deprecated
4340
+ normal: fontWeightNormal,
4341
+ semibold: fontWeightSemibold,
4342
+ bold: fontWeightBold,
4297
4343
  };
4298
4344
 
4299
4345
  // 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.
@@ -4312,7 +4358,7 @@ const getVisibilityJssStyle = (hideLabel) => {
4312
4358
  };
4313
4359
  const offsetVertical = '-2px';
4314
4360
  const offsetHorizontal = '-4px';
4315
- const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor) => {
4361
+ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading, stretch, size, color, hideLabel, alignLabel, underline, hasSlottedAnchor) => {
4316
4362
  const hasIcon = hasVisibleIcon(icon, iconSource);
4317
4363
  return {
4318
4364
  '@global': {
@@ -4334,16 +4380,16 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4334
4380
  display: 'flex',
4335
4381
  width: '100%',
4336
4382
  cursor: 'pointer',
4337
- color: colorPrimary,
4383
+ color: colorMap$3[color],
4338
4384
  textDecoration: underline ? 'underline' : 'none',
4339
- ...textSmallStyle,
4385
+ font: `${fontWeightNormal} ${typescaleSm}/${leadingNormal} ${fontPorscheNext}`,
4340
4386
  ...mergeDeep(buildResponsiveStyles(hideLabel, (hidelabelValue) => ({
4341
- gap: hidelabelValue ? 0 : spacingStaticXSmall,
4387
+ gap: hidelabelValue ? 0 : spacingStaticXs$1,
4342
4388
  })), buildResponsiveStyles(stretch, (stretchValue) => ({
4343
4389
  justifyContent: stretchValue ? 'space-between' : 'flex-start',
4344
4390
  alignItems: stretchValue ? 'center' : 'flex-start',
4345
- })), buildResponsiveStyles(size, (sizeValue) => ({
4346
- fontSize: getFontSizeText(sizeValue),
4391
+ })), buildResponsiveStyles(size, (v) => ({
4392
+ fontSize: sizeMap$1[v],
4347
4393
  }))),
4348
4394
  ...forcedColorsMediaQuery({
4349
4395
  color: 'LinkText',
@@ -4363,14 +4409,16 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4363
4409
  })),
4364
4410
  transition: getTransition('background-color'),
4365
4411
  ...(active && {
4366
- ...frostedGlassStyle,
4412
+ WebkitBackdropFilter: blurFrosted,
4413
+ backdropFilter: blurFrosted,
4367
4414
  backgroundColor: colorFrosted,
4368
4415
  }),
4369
4416
  },
4370
4417
  ...(!isDisabledOrLoading &&
4371
4418
  hoverMediaQuery({
4372
4419
  '&:hover::before': {
4373
- ...frostedGlassStyle,
4420
+ WebkitBackdropFilter: blurFrosted,
4421
+ backdropFilter: blurFrosted,
4374
4422
  backgroundColor: colorFrostedStrong,
4375
4423
  },
4376
4424
  })),
@@ -4383,15 +4431,6 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
4383
4431
  icon: {
4384
4432
  position: 'relative',
4385
4433
  flexShrink: '0',
4386
- fontSize: 'inherit', // inherit font size from root
4387
- width: fontLineHeight,
4388
- height: fontLineHeight,
4389
- // workaround for Safari to optimize vertical alignment of icons
4390
- // TODO: check if this is still needed after optimized icons are included
4391
- '@supports (width: round(down, 1px, 1px))': {
4392
- width: `round(down, ${fontLineHeight}, 1px)`,
4393
- height: `round(down, ${fontLineHeight}, 1px)`,
4394
- },
4395
4434
  },
4396
4435
  label: mergeDeep({ zIndex: '1' }, // fix Firefox bug on :hover (#2583) & pure-link with nested anchor & hidden label (#3349)
4397
4436
  buildResponsiveStyles(hideLabel, getVisibilityJssStyle), buildResponsiveStyles(alignLabel, (alignLabelValue) => ({
@@ -4416,9 +4455,9 @@ const getFunctionalComponentLoadingMessageStyles = () => {
4416
4455
  /**
4417
4456
  * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
4418
4457
  */
4419
- const getComponentCss$17 = (icon, iconSource, active, isDisabled, isLoading, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, underline) => {
4458
+ const getComponentCss$17 = (icon, iconSource, active, isDisabled, isLoading, isDisabledOrLoading, stretch, size, color, hideLabel, alignLabel, underline) => {
4420
4459
  const hasIcon = hasVisibleIcon(icon, iconSource);
4421
- return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, underline, false), {
4460
+ return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, isDisabledOrLoading, stretch, size, color, hideLabel, alignLabel, underline, false), {
4422
4461
  root: {
4423
4462
  ...(isDisabled && {
4424
4463
  color: colorContrastLow,
@@ -4435,9 +4474,7 @@ const getComponentCss$17 = (icon, iconSource, active, isDisabled, isLoading, isD
4435
4474
  icon: {
4436
4475
  position: 'absolute',
4437
4476
  top: 0,
4438
- left: `calc(50% - ${fontLineHeight} / 2)`,
4439
- width: fontLineHeight,
4440
- height: fontLineHeight,
4477
+ left: `calc(50% - ${leadingNormal} / 2)`,
4441
4478
  },
4442
4479
  }),
4443
4480
  // .loading
@@ -4445,15 +4482,6 @@ const getComponentCss$17 = (icon, iconSource, active, isDisabled, isLoading, isD
4445
4482
  }));
4446
4483
  };
4447
4484
 
4448
- const fontWeightMap = {
4449
- regular: fontWeightRegular,
4450
- 'semi-bold': fontWeightSemiBold,
4451
- bold: fontWeightBold,
4452
- };
4453
- const getFontWeight = (weight) => {
4454
- return fontWeightMap[weight];
4455
- };
4456
-
4457
4485
  // CSS Variable defined in fontHyphenationStyle
4458
4486
  /**
4459
4487
  * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
@@ -4512,10 +4540,10 @@ const getComponentCss$16 = (isDisabledOrLoading, aspectRatio, size, weight, alig
4512
4540
  ...textMediumStyle,
4513
4541
  color: colorPrimary,
4514
4542
  hyphens: 'inherit',
4515
- ...mergeDeep(buildResponsiveStyles(size, (sizeValue) => ({
4516
- fontSize: getFontSizeText(sizeValue),
4517
- })), buildResponsiveStyles(weight, (weightValue) => ({
4518
- fontWeight: getFontWeight(weightValue),
4543
+ ...mergeDeep(buildResponsiveStyles(size, (v) => ({
4544
+ fontSize: sizeMap$1[v],
4545
+ })), buildResponsiveStyles(weight, (v) => ({
4546
+ fontWeight: weightMap[v],
4519
4547
  }))),
4520
4548
  },
4521
4549
  },
@@ -4724,7 +4752,9 @@ const getComponentCss$15 = (icon, iconSource, variant, hideLabel, isDisabled, is
4724
4752
  top: '50%',
4725
4753
  left: '50%',
4726
4754
  transform: 'translate(-50%, -50%)',
4727
- color: 'inherit',
4755
+ ...(variant === 'primary' && {
4756
+ '--p-spinner-color': 'currentcolor',
4757
+ }),
4728
4758
  },
4729
4759
  }),
4730
4760
  label: {
@@ -5396,7 +5426,7 @@ const colorBorderHoverMap = {
5396
5426
  error: colorError,
5397
5427
  none: colorPrimary,
5398
5428
  };
5399
- const colorMap$4 = {
5429
+ const colorMap$2 = {
5400
5430
  success: colorSuccess,
5401
5431
  error: colorError,
5402
5432
  none: undefined,
@@ -5406,7 +5436,7 @@ const getThemedFormStateColors = (state) => {
5406
5436
  formStateBackgroundColor: colorBackgroundMap$1[state],
5407
5437
  formStateBorderColor: colorBorderMap[state],
5408
5438
  formStateBorderHoverColor: colorBorderHoverMap[state],
5409
- formStateColor: colorMap$4[state],
5439
+ formStateColor: colorMap$2[state],
5410
5440
  };
5411
5441
  };
5412
5442
 
@@ -5470,10 +5500,12 @@ const getCheckboxCheckedBaseStyles = (isLoading, state) => {
5470
5500
  }
5471
5501
  return {
5472
5502
  '&::before': {
5473
- forcedColorAdjust: 'none',
5474
5503
  WebkitMask: `${checkedIcon$1} center/contain no-repeat`, // necessary for Sogou browser support :-)
5475
5504
  mask: `${checkedIcon$1} center/contain no-repeat`,
5476
5505
  backgroundColor: `var(${cssVarCheckboxIconColor}, ${state === 'none' ? colorPrimary : formStateBorderColor})`,
5506
+ ...forcedColorsMediaQuery({
5507
+ background: 'CanvasText',
5508
+ }),
5477
5509
  },
5478
5510
  };
5479
5511
  };
@@ -5486,10 +5518,12 @@ const getCheckboxIndeterminateBaseStyles = (isLoading, state) => {
5486
5518
  }
5487
5519
  return {
5488
5520
  '&::before': {
5489
- forcedColorAdjust: 'none',
5490
5521
  WebkitMask: `${indeterminateIcon} center/contain no-repeat`,
5491
5522
  mask: `${indeterminateIcon} center/contain no-repeat`,
5492
5523
  backgroundColor: state === 'none' ? colorPrimary : formStateBorderColor,
5524
+ ...forcedColorsMediaQuery({
5525
+ background: 'CanvasText',
5526
+ }),
5493
5527
  },
5494
5528
  };
5495
5529
  };
@@ -5632,13 +5666,11 @@ const getComponentCss$12 = (hideLabel, state, isDisabled, isLoading, isCompact)
5632
5666
  },
5633
5667
  ...(isLoading && {
5634
5668
  spinner: {
5669
+ '--p-spinner-size': `calc(${checkboxDimension} - 2px)`, // compensates the 1px border of the checkbox
5635
5670
  position: 'absolute',
5636
5671
  top: '50%',
5637
5672
  left: '50%',
5638
5673
  transform: 'translate(-50%,-50%)',
5639
- width: checkboxDimension,
5640
- height: checkboxDimension,
5641
- font: `${fontSizeTextSmall} ${fontFamily}`, // needed for correct width and height definition based on ex-unit
5642
5674
  },
5643
5675
  }),
5644
5676
  // .label / .required
@@ -5751,13 +5783,6 @@ const getFunctionalComponentInputBaseStyles = (isDisabled, isLoading, hideLabel,
5751
5783
  },
5752
5784
  })),
5753
5785
  },
5754
- ...(isLoading && {
5755
- spinner: {
5756
- font: textSmallStyle.font,
5757
- width: fontLineHeight,
5758
- height: fontLineHeight,
5759
- },
5760
- }),
5761
5786
  // .label / .required
5762
5787
  ...getFunctionalComponentLabelStyles(isDisabled, isLoading, hideLabel),
5763
5788
  // .message
@@ -6009,54 +6034,13 @@ const getComponentCss$11 = () => {
6009
6034
  });
6010
6035
  };
6011
6036
 
6012
- const colorMap$3 = {
6013
- primary: colorPrimary,
6014
- 'contrast-high': colorContrastHigh,
6015
- 'contrast-medium': colorContrastMedium,
6016
- 'contrast-low': colorContrastLow,
6017
- success: colorSuccess,
6018
- warning: colorWarning,
6019
- error: colorError,
6020
- info: colorInfo,
6021
- inherit: 'currentColor',
6022
- };
6023
- const getThemedTypographyColor = (textColor) => {
6024
- return colorMap$3[textColor];
6025
- };
6026
-
6027
- const getTypographyRootJssStyle = (baseTextStyle, responsiveStyle, align, // eslint-disable-line @typescript-eslint/no-duplicate-type-constituents
6028
- color, // eslint-disable-line @typescript-eslint/no-duplicate-type-constituents
6029
- ellipsis) => {
6030
- return {
6031
- all: 'unset',
6032
- display: 'block',
6033
- ...baseTextStyle,
6034
- color: getThemedTypographyColor(color),
6035
- textAlign: align,
6036
- letterSpacing: 'normal',
6037
- listStyleType: 'none',
6038
- whiteSpace: 'inherit',
6039
- ...(ellipsis && {
6040
- maxWidth: '100%',
6041
- overflow: 'hidden',
6042
- textOverflow: 'ellipsis',
6043
- whiteSpace: 'nowrap',
6044
- }),
6045
- ...responsiveStyle,
6046
- };
6047
- };
6048
- const getTypographySlottedJssStyle = () => {
6049
- return {
6050
- all: 'unset',
6051
- };
6052
- };
6053
-
6054
6037
  const DISPLAY_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
6055
6038
 
6056
- const sizeMap$5 = {
6057
- small: fontSizeDisplaySmall,
6058
- medium: fontSizeDisplayMedium,
6059
- large: fontSizeDisplayLarge,
6039
+ const sizeMap = {
6040
+ small: typescale3Xl,
6041
+ medium: typescale4Xl,
6042
+ large: typescale5Xl,
6043
+ inherit: 'inherit',
6060
6044
  };
6061
6045
  const getComponentCss$10 = (size, align, color, ellipsis) => {
6062
6046
  return getCss({
@@ -6067,15 +6051,30 @@ const getComponentCss$10 = (size, align, color, ellipsis) => {
6067
6051
  ...hostHiddenStyles,
6068
6052
  }),
6069
6053
  },
6070
- [`::slotted(:is(${DISPLAY_TAGS.join()}))`]: addImportantToEachRule(getTypographySlottedJssStyle()),
6054
+ [`::slotted(:is(${DISPLAY_TAGS.join()}))`]: addImportantToEachRule({
6055
+ all: 'unset',
6056
+ }),
6057
+ },
6058
+ root: {
6059
+ all: 'unset',
6060
+ display: 'block',
6061
+ font: `${fontWeightNormal} ${typescale5Xl}/${leadingNormal} ${fontPorscheNext}`,
6062
+ ...buildResponsiveStyles(size, (v) => ({
6063
+ fontSize: sizeMap[v],
6064
+ })),
6065
+ color: colorMap$3[color],
6066
+ textAlign: align,
6067
+ ...(ellipsis && {
6068
+ maxWidth: '100%',
6069
+ overflow: 'hidden',
6070
+ textOverflow: 'ellipsis',
6071
+ whiteSpace: 'nowrap',
6072
+ }),
6071
6073
  },
6072
- root: getTypographyRootJssStyle(displayLargeStyle, buildResponsiveStyles(size, (sizeValue) => ({
6073
- fontSize: sizeValue === 'inherit' ? sizeValue : sizeMap$5[sizeValue],
6074
- })), align, color, ellipsis),
6075
6074
  });
6076
6075
  };
6077
6076
 
6078
- const colorMap$2 = {
6077
+ const colorMap$1 = {
6079
6078
  'contrast-lower': colorContrastLower,
6080
6079
  'contrast-low': colorContrastLow,
6081
6080
  'contrast-medium': colorContrastMedium,
@@ -6093,7 +6092,10 @@ const getComponentCss$$ = (color, orientation) => {
6093
6092
  hr: {
6094
6093
  all: 'unset',
6095
6094
  display: 'block',
6096
- background: colorMap$2[color],
6095
+ background: colorMap$1[color],
6096
+ ...forcedColorsMediaQuery({
6097
+ background: 'CanvasText',
6098
+ }),
6097
6099
  ...buildResponsiveStyles(orientation, (o) => o === 'horizontal' ? { height: '1px', width: '100%' } : { height: '100%', width: '1px' }),
6098
6100
  },
6099
6101
  },
@@ -6668,40 +6670,36 @@ const getComponentCss$X = (state, labelSize, hasLabel) => {
6668
6670
  });
6669
6671
  };
6670
6672
 
6671
- const sizeMap$4 = {
6672
- 'xx-small': fontSizeTextXXSmall,
6673
- 'x-small': fontSizeTextXSmall,
6674
- small: fontSizeTextSmall,
6675
- medium: fontSizeTextMedium,
6676
- large: fontSizeTextLarge,
6677
- 'x-large': fontSizeTextXLarge,
6678
- };
6673
+ /**
6674
+ * @css-variable {"name": "--p-flag-size", "description": "Defines the width and height of the flag. Overrides the `size` property when set.", "defaultValue": ""}
6675
+ */
6676
+ const cssVarSize$2 = '--p-flag-size';
6679
6677
  const getComponentCss$W = (size) => {
6678
+ const dimension = `var(${cssVarSize$2},${leadingNormal})`;
6680
6679
  return getCss({
6681
6680
  '@global': {
6682
6681
  ':host': {
6683
- display: 'inline-block',
6682
+ display: 'inline-flex',
6684
6683
  verticalAlign: 'top',
6685
6684
  ...addImportantToEachRule({
6686
6685
  ...hostHiddenStyles,
6687
6686
  }),
6688
6687
  },
6689
6688
  img: {
6690
- all: 'unset',
6691
6689
  display: 'block', // without display, img tag gets some extra spacing
6690
+ margin: 0,
6692
6691
  padding: '1px', // add safe-zone to be visually in sync with <p-icon />
6692
+ border: 0,
6693
+ outline: 0,
6694
+ overflow: 'hidden', // clip the image
6693
6695
  boxSizing: 'border-box',
6694
6696
  pointerEvents: 'none', // disable dragging/ghosting of images
6695
- ...(size === 'inherit'
6696
- ? {
6697
- width: size,
6698
- height: size,
6699
- }
6700
- : {
6701
- width: fontLineHeight,
6702
- height: fontLineHeight,
6703
- font: `${sizeMap$4[size]} ${fontFamily}`,
6704
- }),
6697
+ width: dimension,
6698
+ height: dimension,
6699
+ fontFamily: fontPorscheNext, // needed for correct width/height definition based on ex-unit
6700
+ ...buildResponsiveStyles(size, (s) => ({
6701
+ fontSize: sizeMap$1[s], // needed for correct width/height definition based on ex-unit
6702
+ })),
6705
6703
  },
6706
6704
  },
6707
6705
  });
@@ -7008,14 +7006,9 @@ const getComponentCss$V = (isOpen, background, backdrop, position, hasHeader, ha
7008
7006
  });
7009
7007
  };
7010
7008
 
7011
- const sizeMap$3 = {
7012
- small: fontSizeHeadingSmall,
7013
- medium: fontSizeHeadingMedium,
7014
- large: fontSizeHeadingLarge,
7015
- 'x-large': fontSizeHeadingXLarge,
7016
- 'xx-large': fontSizeHeadingXXLarge,
7017
- };
7018
- const getComponentCss$U = (size, align, color, ellipsis) => {
7009
+ const HEADING_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
7010
+
7011
+ const getComponentCss$U = (size, weight, align, color, ellipsis) => {
7019
7012
  return getCss({
7020
7013
  '@global': {
7021
7014
  ':host': {
@@ -7024,12 +7017,26 @@ const getComponentCss$U = (size, align, color, ellipsis) => {
7024
7017
  ...hostHiddenStyles,
7025
7018
  }),
7026
7019
  },
7027
- [`::slotted(:is(${HEADING_TAGS.join()}))`]: addImportantToEachRule(getTypographySlottedJssStyle()),
7020
+ [`::slotted(:is(${HEADING_TAGS.join()}))`]: addImportantToEachRule({
7021
+ all: 'unset',
7022
+ }),
7023
+ },
7024
+ root: {
7025
+ all: 'unset',
7026
+ display: 'block',
7027
+ font: `${weightMap[weight]} ${typescale2Xl}/${leadingNormal} ${fontPorscheNext}`,
7028
+ ...buildResponsiveStyles(size, (v) => ({
7029
+ fontSize: sizeMap$1[v],
7030
+ })),
7031
+ color: colorMap$3[color],
7032
+ textAlign: align,
7033
+ ...(ellipsis && {
7034
+ maxWidth: '100%',
7035
+ overflow: 'hidden',
7036
+ textOverflow: 'ellipsis',
7037
+ whiteSpace: 'nowrap',
7038
+ }),
7028
7039
  },
7029
- root: getTypographyRootJssStyle(headingXXLargeStyle, buildResponsiveStyles(size, (sizeValue) => ({
7030
- fontSize: sizeValue === 'inherit' ? sizeValue : sizeMap$3[sizeValue],
7031
- fontWeight: sizeValue === 'small' ? fontWeightSemiBold : fontWeightRegular,
7032
- })), align, color, ellipsis),
7033
7040
  });
7034
7041
  };
7035
7042
 
@@ -7049,25 +7056,14 @@ const buildIconUrl = (iconNameOrSource = DEFAULT_ICON_NAME) => {
7049
7056
  return buildIconUrl(DEFAULT_ICON_NAME);
7050
7057
  };
7051
7058
 
7052
- const colorMap$1 = {
7053
- primary: colorPrimary,
7054
- 'contrast-high': colorContrastHigh,
7055
- 'contrast-medium': colorContrastMedium,
7056
- 'contrast-low': colorContrastLow,
7057
- success: colorSuccess,
7058
- warning: colorWarning,
7059
- error: colorError,
7060
- info: colorInfo,
7061
- inherit: 'inherit',
7062
- };
7063
- const sizeMap$2 = {
7064
- 'xx-small': fontSizeTextXXSmall,
7065
- 'x-small': fontSizeTextXSmall,
7066
- small: fontSizeTextSmall,
7067
- medium: fontSizeTextMedium,
7068
- large: fontSizeTextLarge,
7069
- 'x-large': fontSizeTextXLarge,
7070
- };
7059
+ /**
7060
+ * @css-variable {"name": "--p-icon-size", "description": "Defines the width and height of the icon. Overrides the `size` property when set.", "defaultValue": ""}
7061
+ */
7062
+ const cssVarSize$1 = '--p-icon-size';
7063
+ /**
7064
+ * @css-variable {"name": "--p-icon-color", "description": "Defines the icon color. Overrides the `color` property when set.", "defaultValue": ""}
7065
+ */
7066
+ const cssVarColor$1 = '--p-icon-color';
7071
7067
  const isFlippableIcon = (name, source) => {
7072
7068
  return (!source &&
7073
7069
  (name === 'arrow-compact-left' ||
@@ -7091,41 +7087,44 @@ const isFlippableIcon = (name, source) => {
7091
7087
  name === 'send'));
7092
7088
  };
7093
7089
  const getComponentCss$T = (name, source, color, size) => {
7094
- const isSizeInherit = size === 'inherit';
7095
- const dimension = isSizeInherit ? 'inherit' : fontLineHeight;
7090
+ const dimension = `var(${cssVarSize$1},${leadingNormal})`;
7091
+ const mask = `url("${buildIconUrl(source || name)}") center/contain no-repeat`;
7096
7092
  return getCss({
7097
7093
  '@global': {
7098
7094
  ':host': {
7099
- display: 'inline-block',
7095
+ display: 'inline-flex',
7100
7096
  verticalAlign: 'top',
7101
- maxWidth: '100%',
7102
- maxHeight: '100%',
7103
- width: dimension,
7104
- height: dimension,
7105
- font: `${isSizeInherit ? sizeMap$2.small : sizeMap$2[size]} ${fontFamily}`,
7106
- color: colorMap$1[color],
7107
7097
  ...addImportantToEachRule({
7108
- WebkitMask: `url("${buildIconUrl(source || name)}") center/contain no-repeat`, // necessary for Sogou browser support :-)
7109
- mask: `url("${buildIconUrl(source || name)}") center/contain no-repeat`,
7110
- aspectRatio: '1/1',
7111
- background: 'currentcolor', // necessary for proper color inheritance
7112
- forcedColorAdjust: 'none',
7113
- ...(isFlippableIcon(name, source) && {
7114
- '&(:dir(rtl))': {
7115
- transform: 'scaleX(-1)',
7116
- },
7117
- }),
7118
7098
  ...hostHiddenStyles,
7119
7099
  }),
7120
7100
  },
7121
- // the <img /> is only needed for a11y compliance because of alt text and to handle the fetch priority
7101
+ // the <img /> is needed for a11y compliance because of alt text and to handle the fetch priority
7122
7102
  img: {
7123
- all: 'unset',
7124
- position: 'absolute', // prevents unintended bottom white-space
7125
- opacity: 0,
7126
- width: '1px',
7127
- height: '1px',
7103
+ display: 'block', // without display, img tag gets some extra spacing
7104
+ margin: 0,
7105
+ padding: 0,
7106
+ border: 0,
7107
+ outline: 0,
7108
+ overflow: 'hidden', // clip the image
7109
+ objectPosition: '-9999px -9999px', // hide the actual image content, the mask + background still renders the icon
7128
7110
  pointerEvents: 'none', // disable dragging/ghosting of images
7111
+ width: dimension,
7112
+ height: dimension,
7113
+ fontFamily: fontPorscheNext, // needed for correct width/height definition based on ex-unit
7114
+ ...buildResponsiveStyles(size, (s) => ({
7115
+ fontSize: sizeMap$1[s], // needed for correct width/height definition based on ex-unit
7116
+ })),
7117
+ WebkitMask: mask, // necessary for Sogou browser support :-)
7118
+ mask,
7119
+ background: `var(${cssVarColor$1},${colorMap$3[color]})`,
7120
+ ...forcedColorsMediaQuery({
7121
+ background: 'CanvasText',
7122
+ }),
7123
+ ...(isFlippableIcon(name, source) && {
7124
+ '&:dir(rtl)': {
7125
+ transform: 'scaleX(-1)',
7126
+ },
7127
+ }),
7129
7128
  },
7130
7129
  },
7131
7130
  });
@@ -7178,6 +7177,8 @@ const getNotificationContentJssStyle = () => ({
7178
7177
  },
7179
7178
  });
7180
7179
 
7180
+ const INLINE_NOTIFICATION_HEADING_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
7181
+
7181
7182
  const mediaQueryMaxS$1 = getMediaQueryMax('s');
7182
7183
  const getTextJssStyle = {
7183
7184
  margin: 0,
@@ -7202,7 +7203,9 @@ const getComponentCss$S = (state, hasAction, hasClose) => {
7202
7203
  }),
7203
7204
  },
7204
7205
  ...preventFoucOfNestedElementsStyles,
7205
- [`::slotted(:is(${HEADING_TAGS.join()}))`]: addImportantToEachRule(getTypographySlottedJssStyle()),
7206
+ [`::slotted(:is(${INLINE_NOTIFICATION_HEADING_TAGS.join()}))`]: addImportantToEachRule({
7207
+ all: 'unset',
7208
+ }),
7206
7209
  'slot[name="heading"]': getHeadingJssStyle,
7207
7210
  },
7208
7211
  heading: getHeadingJssStyle,
@@ -7526,8 +7529,8 @@ const getComponentCss$H = (disabled, loading, hideLabel, state, compact, readOnl
7526
7529
  /**
7527
7530
  * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
7528
7531
  */
7529
- const getComponentCss$G = (icon, iconSource, active, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor) => {
7530
- return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, false, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor), hasSlottedAnchor && {
7532
+ const getComponentCss$G = (icon, iconSource, active, stretch, size, color, hideLabel, alignLabel, underline, hasSlottedAnchor) => {
7533
+ return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, false, stretch, size, color, hideLabel, alignLabel, underline, hasSlottedAnchor), hasSlottedAnchor && {
7531
7534
  '@global': addImportantToEachRule({
7532
7535
  '::slotted': {
7533
7536
  '&(a)': {
@@ -7755,10 +7758,10 @@ const getComponentCss$E = (aspectRatio, size, weight, align, compact, hasGradien
7755
7758
  ...textMediumStyle,
7756
7759
  color: colorPrimary,
7757
7760
  hyphens: 'inherit',
7758
- ...mergeDeep(buildResponsiveStyles(size, (sizeValue) => ({
7759
- fontSize: getFontSizeText(sizeValue),
7760
- })), buildResponsiveStyles(weight, (weightValue) => ({
7761
- fontWeight: getFontWeight(weightValue),
7761
+ ...mergeDeep(buildResponsiveStyles(size, (v) => ({
7762
+ fontSize: sizeMap$1[v],
7763
+ })), buildResponsiveStyles(weight, (v) => ({
7764
+ fontWeight: weightMap[v],
7762
7765
  }))),
7763
7766
  },
7764
7767
  },
@@ -8125,9 +8128,6 @@ const getComponentCss$y = (isOpen, isDisabled, hideLabel, state, isCompact) => {
8125
8128
 
8126
8129
  const mediaQueryMinS = getMediaQueryMin('s');
8127
8130
  const mediaQueryMaxS = getMediaQueryMax('s');
8128
- // button size needs to be fluid between 320px and 360px viewport width, so that the pagination fits into 320px viewport
8129
- // and text scale 200% works (almost) on mobile viewports too
8130
- const buttonSize = `clamp(36px, calc(${fontLineHeight} + 10vw - 20px), 40px)`;
8131
8131
  const disabledCursorStyle = {
8132
8132
  cursor: 'default',
8133
8133
  pointerEvents: 'none', // prevents :hover (has no effect when forced), maybe we can remove it since CSS selectors already cover desired behavior
@@ -8181,10 +8181,6 @@ const getComponentCss$x = (activePage, pageTotal, showLastPage) => {
8181
8181
  },
8182
8182
  }),
8183
8183
  [mediaQueryMinS]: {
8184
- // prev
8185
- '&:first-child': { marginInlineEnd: spacingStaticSmall },
8186
- // next
8187
- '&:last-child': { marginInlineStart: spacingStaticSmall },
8188
8184
  ...(pageTotal < 8
8189
8185
  ? { '&.ellip': hiddenStyle }
8190
8186
  : // max 7 items including ellipsis at the same time on tablet
@@ -8202,32 +8198,40 @@ const getComponentCss$x = (activePage, pageTotal, showLastPage) => {
8202
8198
  display: 'flex',
8203
8199
  justifyContent: 'center',
8204
8200
  alignItems: 'center',
8205
- transition: `${getTransition('background-color')}, ${getTransition('border-color')}, ${getTransition('color')}`, // for smooth transition between states
8201
+ transition: `${getTransition('background-color')}, ${getTransition('color')}`, // for smooth transition between states
8206
8202
  position: 'relative',
8207
- width: buttonSize,
8208
- height: buttonSize,
8203
+ padding: '0 6px',
8204
+ minWidth: '2.25rem',
8205
+ height: '2.25rem',
8209
8206
  boxSizing: 'border-box',
8210
8207
  ...textSmallStyle,
8211
8208
  whiteSpace: 'nowrap',
8212
8209
  cursor: 'pointer',
8210
+ backgroundColor: 'transparent',
8213
8211
  color: colorPrimary,
8214
- borderRadius: `var(${legacyRadiusSmall}, ${radiusSm})`,
8212
+ borderRadius: `var(${legacyRadiusSmall}, ${radiusFull})`,
8215
8213
  borderColor: 'transparent', // default value is needed for smooth transition
8216
8214
  outline: 0, // TODO: only relevant for VRT testing with forced states - prevents :focus style
8217
8215
  ...hoverMediaQuery({
8218
8216
  '&:not([aria-disabled]):not(.ellipsis):hover': {
8219
8217
  ...frostedGlassStyle,
8220
8218
  background: colorFrosted,
8219
+ ...forcedColorsMediaQuery({
8220
+ outline: '2px solid CanvasText',
8221
+ outlineOffset: '-2px',
8222
+ }),
8221
8223
  },
8222
8224
  }),
8223
8225
  '&[aria-current]': {
8224
8226
  ...disabledCursorStyle,
8225
- color: colorPrimary,
8226
- border: `${borderWidthBase} solid ${colorPrimary}`,
8227
+ backgroundColor: colorFrostedStrong,
8228
+ ...forcedColorsMediaQuery({
8229
+ border: '2px solid CanvasText',
8230
+ }),
8227
8231
  },
8228
8232
  '&[aria-disabled]': {
8229
- ...getDisabledBaseStyles(),
8230
8233
  ...disabledCursorStyle,
8234
+ ...getDisabledBaseStyles(),
8231
8235
  },
8232
8236
  // TODO :not(.ellipsis) is only needed for VRT states tests to work properly
8233
8237
  '&:not(.ellipsis):focus-visible': getFocusBaseStyles(),
@@ -8314,8 +8318,6 @@ const getComponentCss$w = (hideLabel, state, isDisabled, isLoading, length, isCo
8314
8318
  top: '50%',
8315
8319
  left: '50%',
8316
8320
  transform: 'translate(-50%, -50%)',
8317
- width: inputDimension,
8318
- height: inputDimension,
8319
8321
  pointerEvents: 'none',
8320
8322
  },
8321
8323
  }),
@@ -8480,10 +8482,12 @@ const getComponentCss$u = (disabled, loading, state) => {
8480
8482
  gridArea: '1/1',
8481
8483
  },
8482
8484
  '&:checked::before': {
8483
- forcedColorAdjust: 'none',
8484
8485
  WebkitMask: `${checkedIcon} center/contain no-repeat`, // necessary for Sogou browser support :-)
8485
8486
  mask: `${checkedIcon} center/contain no-repeat`,
8486
8487
  backgroundColor: state === 'none' ? colorPrimary : formStateBorderColor,
8488
+ ...forcedColorsMediaQuery({
8489
+ background: 'CanvasText',
8490
+ }),
8487
8491
  },
8488
8492
  '&::after': {
8489
8493
  // Ensures the touch target is at least 24px, even if the checkbox is smaller than the minimum touch target size.
@@ -8510,13 +8514,11 @@ const getComponentCss$u = (disabled, loading, state) => {
8510
8514
  },
8511
8515
  ...(loading && {
8512
8516
  spinner: {
8517
+ '--p-spinner-size': `calc(${radioDimension} - 2px)`, // compensates the 1px border of the radio button
8513
8518
  position: 'absolute',
8514
8519
  top: '50%',
8515
8520
  left: '50%',
8516
8521
  transform: 'translate(-50%,-50%)',
8517
- width: radioDimension,
8518
- height: radioDimension,
8519
- font: `${fontSizeTextSmall} ${fontFamily}`, // needed for correct width and height definition based on ex-unit
8520
8522
  },
8521
8523
  }),
8522
8524
  // .label / .required
@@ -8548,7 +8550,6 @@ const getRadioGroupDirectionJssStyles = (direction) => {
8548
8550
  * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
8549
8551
  */
8550
8552
  const getComponentCss$t = (isDisabled, isLoading, hideLabel, state, isCompact, direction) => {
8551
- const radioDimension = `calc(var(${cssVarInternalRadioGroupScaling}) * 1.75rem)`;
8552
8553
  const columnGap = `calc(22.4px * (var(${cssVarInternalRadioGroupScaling}) - 0.64285714) + 8px)`;
8553
8554
  const rowGap = `calc(11.2px * (var(${cssVarInternalRadioGroupScaling}) - 0.64285714) + 4px)`;
8554
8555
  return getCss({
@@ -8588,8 +8589,6 @@ const getComponentCss$t = (isDisabled, isLoading, hideLabel, state, isCompact, d
8588
8589
  top: '50%',
8589
8590
  left: '50%',
8590
8591
  transform: 'translate(-50%, -50%)',
8591
- width: radioDimension,
8592
- height: radioDimension,
8593
8592
  pointerEvents: 'none',
8594
8593
  },
8595
8594
  }),
@@ -8695,6 +8694,9 @@ const getScrollIndicatorStyles = (direction, isVisible, isSticky, hasScrollbar,
8695
8694
  mask: iconMask,
8696
8695
  background: colorPrimary,
8697
8696
  transition: getTransition('transform'),
8697
+ ...forcedColorsMediaQuery({
8698
+ background: 'CanvasText',
8699
+ }),
8698
8700
  },
8699
8701
  };
8700
8702
  };
@@ -8766,7 +8768,6 @@ isSticky, hasScrollbar, isCompact) => {
8766
8768
  const cssVarInternalSegmentedControlScaling = '--p-internal-segmented-control-scaling';
8767
8769
  const getScalingVar = (compact) => `var(${cssVarInternalSegmentedControlScaling}, ${compact ? 0.5 : 1})`;
8768
8770
  const ICON_OFFSET = '4px';
8769
- const { font: BUTTON_FONT } = textSmallStyle;
8770
8771
  const ICON_SIZE = '1.5rem';
8771
8772
  const ICON_MARGIN = '.25rem';
8772
8773
  const getScalableItemStyles = (hasIconAndSlottedContent, compact) => {
@@ -9021,18 +9022,22 @@ const getComponentCss$n = (isOpen, background, hasDismissButton) => {
9021
9022
  });
9022
9023
  };
9023
9024
 
9024
- const sizeSmall = '48px';
9025
- const sizeMedium = '72px';
9026
- const sizeLarge = '104px';
9027
- const sizeMap$1 = {
9028
- small: { height: sizeSmall, width: sizeSmall },
9029
- medium: { height: sizeMedium, width: sizeMedium },
9030
- large: { height: sizeLarge, width: sizeLarge },
9031
- inherit: { height: 'inherit', width: 'inherit' },
9032
- };
9033
- const getComponentCss$m = (size) => {
9034
- const strokeDasharray = '57'; // C = 2πR
9035
- const animationDuration = `var(${cssVariableAnimationDuration}, ${motionDurationVeryLong})`;
9025
+ /**
9026
+ * @css-variable {"name": "--p-spinner-size", "description": "Defines the width and height of the spinner. Overrides the `size` property when set.", "defaultValue": ""}
9027
+ */
9028
+ const cssVarSize = '--p-spinner-size';
9029
+ /**
9030
+ * @css-variable {"name": "--p-spinner-color", "description": "Defines the foreground color. Overrides the `color` property when set.", "defaultValue": ""}
9031
+ */
9032
+ const cssVarColor = '--p-spinner-color';
9033
+ /**
9034
+ * @css-variable {"name": "--p-spinner-track-color", "description": "Defines the track/background color. Overrides the `color` property when set.", "defaultValue": ""}
9035
+ */
9036
+ const cssVarTrackColor = '--p-spinner-track-color';
9037
+ const getComponentCss$m = (color, size) => {
9038
+ const dimension = `var(${cssVarSize},${leadingNormal})`;
9039
+ const strokeDasharray = '69'; // C = 2πR
9040
+ const animationDuration = `var(${cssVariableAnimationDuration}, ${durationXl})`;
9036
9041
  return getCss({
9037
9042
  '@global': {
9038
9043
  '@keyframes rotate': {
@@ -9045,49 +9050,61 @@ const getComponentCss$m = (size) => {
9045
9050
  },
9046
9051
  '@keyframes dash': {
9047
9052
  '0%': {
9048
- strokeDashoffset: 57,
9053
+ strokeDashoffset: 69,
9049
9054
  transform: 'rotateZ(0)',
9050
9055
  },
9051
9056
  '50%, 75%': {
9052
- strokeDashoffset: 20,
9057
+ strokeDashoffset: 24,
9053
9058
  transform: 'rotateZ(80deg)',
9054
9059
  },
9055
9060
  '100%': {
9056
- strokeDashoffset: 57,
9061
+ strokeDashoffset: 69,
9057
9062
  transform: 'rotateZ(360deg)',
9058
9063
  },
9059
9064
  },
9060
9065
  ':host': {
9061
9066
  display: 'inline-flex',
9062
- color: colorPrimary,
9067
+ verticalAlign: 'top',
9063
9068
  ...addImportantToEachRule({
9064
- verticalAlign: 'top',
9065
9069
  ...hostHiddenStyles,
9066
9070
  }),
9067
9071
  },
9072
+ div: {
9073
+ width: dimension,
9074
+ height: dimension,
9075
+ fontFamily: fontPorscheNext, // needed for correct width/height definition based on ex-unit
9076
+ ...buildResponsiveStyles(size, (s) => ({
9077
+ fontSize: sizeMap$1[s], // needed for correct width/height definition based on ex-unit
9078
+ })),
9079
+ },
9068
9080
  svg: {
9069
9081
  display: 'block', // for correct vertical alignment
9070
9082
  fill: 'none',
9071
- animation: `$rotate ${animationDuration} steps(50) infinite`,
9083
+ strokeWidth: 1.5,
9084
+ animation: `rotate ${animationDuration} steps(50) infinite`,
9072
9085
  },
9073
9086
  circle: {
9074
9087
  '&:first-child': {
9075
- stroke: colorContrastLower,
9088
+ stroke: `var(${cssVarTrackColor},${colorContrastLower})`,
9089
+ '@supports (color: oklch(from red l c h))': {
9090
+ stroke: `var(${cssVarTrackColor},oklch(from var(${cssVarColor},${colorMap$3[color]}) l c h/.2))`,
9091
+ },
9092
+ ...forcedColorsMediaQuery({
9093
+ stroke: addImportantToRule('none'),
9094
+ }),
9076
9095
  },
9077
9096
  '&:last-child': {
9078
- animation: `$dash ${animationDuration} steps(50) infinite`,
9079
- stroke: 'currentcolor', // necessary for proper color inheritance
9097
+ stroke: `var(${cssVarColor},${colorMap$3[color]})`,
9098
+ ...forcedColorsMediaQuery({
9099
+ stroke: 'CanvasText',
9100
+ }),
9080
9101
  strokeDasharray: strokeDasharray
9081
9102
  ,
9082
9103
  strokeLinecap: 'round',
9104
+ animation: `dash ${animationDuration} steps(50) infinite`,
9083
9105
  },
9084
9106
  },
9085
9107
  },
9086
- root: {
9087
- display: 'block',
9088
- ...buildResponsiveStyles(size, (s) => sizeMap$1[s]),
9089
- strokeWidth: 1.5,
9090
- },
9091
9108
  'sr-only': getHiddenTextJssStyle(),
9092
9109
  });
9093
9110
  };
@@ -9234,7 +9251,6 @@ const getComponentCss$j = (alignLabel, hideLabel, isStretched, isChecked, isDisa
9234
9251
  const labelPaddingTop = `max(0px, calc((${buttonHeight} - ${fontLineHeight}) / 2))`; // Vertically centers the switch label relative to the switch size (depending on which is smaller).
9235
9252
  const toggleDimension = `calc(var(${cssVarInternalSwitchScaling}) * 1.25rem)`;
9236
9253
  const toggleTranslateX = `calc(var(${cssVarInternalSwitchScaling}) * .1875rem)`;
9237
- const spinnerDimension = buttonHeight;
9238
9254
  return getCss({
9239
9255
  '@global': {
9240
9256
  ':host': {
@@ -9309,7 +9325,6 @@ const getComponentCss$j = (alignLabel, hideLabel, isStretched, isChecked, isDisa
9309
9325
  },
9310
9326
  },
9311
9327
  toggle: {
9312
- forcedColorAdjust: 'none',
9313
9328
  display: 'flex',
9314
9329
  placeItems: 'center',
9315
9330
  placeContent: 'center',
@@ -9319,14 +9334,16 @@ const getComponentCss$j = (alignLabel, hideLabel, isStretched, isChecked, isDisa
9319
9334
  background: toggleBackgroundColor,
9320
9335
  transition: getTransition('transform'),
9321
9336
  transform: `translate3d(${isChecked ? `calc(${buttonWidth} - ${buttonBorderWidth} * 2 - 100% - ${toggleTranslateX})` : toggleTranslateX}, 0, 0)`,
9337
+ ...forcedColorsMediaQuery({
9338
+ background: 'CanvasText',
9339
+ }),
9322
9340
  '&:dir(rtl)': {
9323
9341
  transform: `translate3d(calc(${isChecked ? `calc(${buttonWidth} - ${buttonBorderWidth} * 2 - 100% - ${toggleTranslateX})` : toggleTranslateX} * -1), 0, 0)`,
9324
9342
  },
9325
9343
  },
9326
9344
  ...(isLoading && {
9327
9345
  spinner: {
9328
- width: spinnerDimension,
9329
- height: spinnerDimension,
9346
+ '--p-spinner-size': buttonHeight,
9330
9347
  },
9331
9348
  }),
9332
9349
  // .loading
@@ -9931,18 +9948,6 @@ const getComponentCss$5 = () => {
9931
9948
 
9932
9949
  const TEXT_TAGS = ['p', 'span', 'div', 'address', 'blockquote', 'figcaption', 'cite', 'time', 'legend'];
9933
9950
 
9934
- const sizeMap = {
9935
- 'xx-small': fontSizeTextXXSmall,
9936
- 'x-small': fontSizeTextXSmall,
9937
- small: fontSizeTextSmall,
9938
- medium: fontSizeTextMedium,
9939
- large: fontSizeTextLarge,
9940
- 'x-large': fontSizeTextXLarge,
9941
- };
9942
- // CSS Variable defined in fontHyphenationStyle
9943
- /**
9944
- * @css-variable {"name": "--p-hyphens", "description": "Sets the CSS `hyphens` property for text elements, controlling whether words can break and hyphenate automatically.", "defaultValue": "auto"}
9945
- */
9946
9951
  const getComponentCss$4 = (size, weight, align, color, ellipsis) => {
9947
9952
  return getCss({
9948
9953
  '@global': {
@@ -9952,12 +9957,26 @@ const getComponentCss$4 = (size, weight, align, color, ellipsis) => {
9952
9957
  ...hostHiddenStyles,
9953
9958
  }),
9954
9959
  },
9955
- [`::slotted(:is(${TEXT_TAGS.join()}))`]: addImportantToEachRule(getTypographySlottedJssStyle()),
9960
+ [`::slotted(:is(${TEXT_TAGS.join()}))`]: addImportantToEachRule({
9961
+ all: 'unset',
9962
+ }),
9963
+ },
9964
+ root: {
9965
+ all: 'unset',
9966
+ display: 'block',
9967
+ font: `${weightMap[weight]} ${typescaleSm}/${leadingNormal} ${fontPorscheNext}`,
9968
+ ...buildResponsiveStyles(size, (v) => ({
9969
+ fontSize: sizeMap$1[v],
9970
+ })),
9971
+ color: colorMap$3[color],
9972
+ textAlign: align,
9973
+ ...(ellipsis && {
9974
+ maxWidth: '100%',
9975
+ overflow: 'hidden',
9976
+ textOverflow: 'ellipsis',
9977
+ whiteSpace: 'nowrap',
9978
+ }),
9956
9979
  },
9957
- root: getTypographyRootJssStyle(textSmallStyle, buildResponsiveStyles(size, (sizeValue) => ({
9958
- fontSize: sizeValue === 'inherit' ? sizeValue : sizeMap[sizeValue],
9959
- fontWeight: getFontWeight(weight),
9960
- })), align, color, ellipsis),
9961
9980
  });
9962
9981
  };
9963
9982
 
@@ -10154,6 +10173,9 @@ const getComponentCss = (size) => {
10154
10173
  svg: {
10155
10174
  ...sizingStyles,
10156
10175
  fill: colorPrimary,
10176
+ ...forcedColorsMediaQuery({
10177
+ fill: 'CanvasText',
10178
+ }),
10157
10179
  },
10158
10180
  },
10159
10181
  });