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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/CHANGELOG.md +344 -1
  2. package/bin/patchRemixRunProcessBrowserGlobalIdentifier.js +0 -0
  3. package/cjs/lib/components/accordion.wrapper.cjs +3 -3
  4. package/cjs/lib/components/canvas.wrapper.cjs +3 -3
  5. package/{styles → emotion}/cjs/index.cjs +3 -3
  6. package/emotion/esm/index.d.ts +1 -0
  7. package/emotion/esm/index.mjs +1 -0
  8. package/{styles → emotion}/package.json +0 -5
  9. package/esm/lib/components/accordion.wrapper.d.ts +29 -13
  10. package/esm/lib/components/accordion.wrapper.mjs +3 -3
  11. package/esm/lib/components/canvas.wrapper.d.ts +9 -1
  12. package/esm/lib/components/canvas.wrapper.mjs +3 -3
  13. package/esm/lib/components/display.wrapper.d.ts +2 -2
  14. package/esm/lib/components/divider.wrapper.d.ts +2 -2
  15. package/esm/lib/components/heading.wrapper.d.ts +2 -2
  16. package/esm/lib/components/icon.wrapper.d.ts +2 -2
  17. package/esm/lib/components/radio-group-option.wrapper.d.ts +2 -0
  18. package/esm/lib/components/text.wrapper.d.ts +2 -2
  19. package/esm/lib/components/textarea.wrapper.d.ts +2 -2
  20. package/esm/lib/types.d.ts +124 -103
  21. package/global-styles/cn/font-face.css +1 -1
  22. package/global-styles/cn/index.css +264 -115
  23. package/global-styles/color-scheme.css +135 -0
  24. package/global-styles/font-face.css +1 -1
  25. package/global-styles/index.css +264 -115
  26. package/global-styles/variables.css +158 -144
  27. package/package.json +27 -14
  28. package/scss/_index.scss +1 -0
  29. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +1029 -737
  30. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +37 -29
  31. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/accordion.wrapper.cjs +4 -4
  32. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/canvas.wrapper.cjs +4 -4
  33. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group-option.wrapper.cjs +3 -2
  34. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.cjs +15 -10
  35. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.cjs +5 -4
  36. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.cjs +2 -13
  37. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.cjs +5 -3
  38. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.cjs +2 -1
  39. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-date.cjs +2 -1
  40. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-email.cjs +1 -0
  41. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-month.cjs +2 -1
  42. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-number.cjs +1 -0
  43. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-password.cjs +2 -1
  44. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-search.cjs +1 -0
  45. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-tel.cjs +1 -0
  46. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.cjs +1 -0
  47. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-time.cjs +2 -1
  48. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-url.cjs +1 -0
  49. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-week.cjs +2 -1
  50. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/label.cjs +4 -2
  51. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.cjs +5 -4
  52. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +3 -2
  53. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +3 -2
  54. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group-option.cjs +11 -3
  55. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.cjs +3 -4
  56. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.cjs +2 -1
  57. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.cjs +4 -2
  58. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +2 -1
  59. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.cjs +1 -1
  60. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea.cjs +1 -0
  61. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +1029 -738
  62. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +37 -29
  63. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/accordion.wrapper.mjs +4 -4
  64. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/canvas.wrapper.mjs +4 -4
  65. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group-option.wrapper.mjs +3 -2
  66. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.mjs +15 -10
  67. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +5 -4
  68. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.mjs +2 -13
  69. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.mjs +5 -3
  70. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.mjs +2 -1
  71. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-date.mjs +2 -1
  72. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-email.mjs +1 -0
  73. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-month.mjs +2 -1
  74. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-number.mjs +1 -0
  75. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-password.mjs +2 -1
  76. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-search.mjs +1 -0
  77. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-tel.mjs +1 -0
  78. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.mjs +1 -0
  79. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-time.mjs +2 -1
  80. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-url.mjs +1 -0
  81. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-week.mjs +2 -1
  82. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/label.mjs +4 -2
  83. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.mjs +5 -4
  84. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +3 -2
  85. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +5 -4
  86. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group-option.mjs +12 -4
  87. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.mjs +4 -5
  88. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +2 -1
  89. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.mjs +4 -2
  90. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +2 -1
  91. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.mjs +1 -1
  92. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea.mjs +1 -0
  93. package/ssr/esm/lib/components/accordion.wrapper.d.ts +29 -13
  94. package/ssr/esm/lib/components/canvas.wrapper.d.ts +9 -1
  95. package/ssr/esm/lib/components/display.wrapper.d.ts +2 -2
  96. package/ssr/esm/lib/components/divider.wrapper.d.ts +2 -2
  97. package/ssr/esm/lib/components/heading.wrapper.d.ts +2 -2
  98. package/ssr/esm/lib/components/icon.wrapper.d.ts +2 -2
  99. package/ssr/esm/lib/components/radio-group-option.wrapper.d.ts +2 -0
  100. package/ssr/esm/lib/components/text.wrapper.d.ts +2 -2
  101. package/ssr/esm/lib/components/textarea.wrapper.d.ts +2 -2
  102. package/ssr/esm/lib/dsr-components/accordion.d.ts +8 -2
  103. package/ssr/esm/lib/dsr-components/canvas.d.ts +0 -3
  104. package/ssr/esm/lib/dsr-components/checkbox.d.ts +4 -2
  105. package/ssr/esm/lib/dsr-components/input-date.d.ts +1 -0
  106. package/ssr/esm/lib/dsr-components/input-email.d.ts +1 -0
  107. package/ssr/esm/lib/dsr-components/input-month.d.ts +1 -0
  108. package/ssr/esm/lib/dsr-components/input-number.d.ts +1 -0
  109. package/ssr/esm/lib/dsr-components/input-password.d.ts +1 -0
  110. package/ssr/esm/lib/dsr-components/input-search.d.ts +1 -0
  111. package/ssr/esm/lib/dsr-components/input-tel.d.ts +1 -0
  112. package/ssr/esm/lib/dsr-components/input-text.d.ts +1 -0
  113. package/ssr/esm/lib/dsr-components/input-time.d.ts +1 -0
  114. package/ssr/esm/lib/dsr-components/input-url.d.ts +1 -0
  115. package/ssr/esm/lib/dsr-components/input-week.d.ts +1 -0
  116. package/ssr/esm/lib/dsr-components/label.d.ts +1 -0
  117. package/ssr/esm/lib/dsr-components/multi-select.d.ts +2 -1
  118. package/ssr/esm/lib/dsr-components/pin-code.d.ts +2 -1
  119. package/ssr/esm/lib/dsr-components/radio-group-option.d.ts +4 -0
  120. package/ssr/esm/lib/dsr-components/radio-group.d.ts +2 -1
  121. package/ssr/esm/lib/dsr-components/segmented-control.d.ts +2 -1
  122. package/ssr/esm/lib/dsr-components/select.d.ts +2 -1
  123. package/ssr/esm/lib/dsr-components/textarea.d.ts +1 -0
  124. package/ssr/esm/lib/types.d.ts +124 -103
  125. package/tailwindcss/index.css +223 -135
  126. package/{styles/vanilla-extract → vanilla-extract}/cjs/index.cjs +1 -1
  127. package/vanilla-extract/esm/index.d.ts +1 -0
  128. package/vanilla-extract/esm/index.mjs +1 -0
  129. package/vanilla-extract/package.json +13 -0
  130. package/ssr/esm/lib/dsr-components/legacy-label.d.ts +0 -14
  131. package/styles/_index.scss +0 -1
  132. package/styles/esm/index.d.ts +0 -1
  133. package/styles/esm/index.mjs +0 -1
  134. package/styles/vanilla-extract/esm/index.d.ts +0 -1
  135. package/styles/vanilla-extract/esm/index.mjs +0 -1
package/CHANGELOG.md CHANGED
@@ -14,6 +14,263 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
14
14
 
15
15
  ## [Unreleased]
16
16
 
17
+ ## [4.0.0-beta.1] - 2026-03-02
18
+
19
+ ### Added
20
+
21
+ - `SCSS`, `Emotion`, `Vanilla Extract`: bring back PDS v3 import paths for better DX and backward compatibility.
22
+ - `Accordion`:
23
+ - Slot `summary` ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
24
+ - Slot `summary-before` ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
25
+ - Slot `summary-after` ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
26
+ - Prop `background` with values `canvas | surface | frosted | none (default)`
27
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
28
+ - Prop `align-marker` with values `start | end (default)`
29
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
30
+ - CSS Variable `--p-accordion-px` to control the horizontal padding
31
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
32
+ - CSS Variable `--p-accordion-py` to control the vertical padding
33
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
34
+ - CSS Variable `--p-accordion-summary-top` to control the optional sticky top position
35
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
36
+
37
+ ### Changed
38
+
39
+ - `Accordion`:
40
+ - Modernize visual appearance ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
41
+ - Use semantic HTML element `<details>` and `<summary>` internally (instead of divs and buttons) for better
42
+ accessibility and native behavior
43
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
44
+ - `Input Date`, `Input Email`, `Input Number`, `Input Password`, `Input Search`, `Input Tel`, `Input Text`,
45
+ `Input Time`, `Input Url`, `Textarea`: `value` sync with the underlying native `<input />` or `<textarea />` element
46
+ - `Checkbox`, `Input-*`, `Multi-Select`, `Pin Code`, `Radio Button Group`, `Segmented-Control`, `Select`, `Textarea`:
47
+ Slot `label-after` is not affected by `disbaled` states anymore
48
+ ([#4181](https://github.com/porsche-design-system/porsche-design-system/pull/4181))
49
+ - **Vue:** All component events now emit the full `CustomEvent` instead of just the event detail. The event detail must
50
+ be accessed via `event.detail`. Props and other component data can be accessed directly via `event.target`.
51
+
52
+ ```diff
53
+ <script setup lang="ts">
54
+ import { type AccordionUpdateEventDetail, PAccordion } from '@porsche-design-system/components-vue';
55
+ import { ref } from 'vue';
56
+
57
+ const isOpen = ref(false);
58
+
59
+ - const onUpdate = (event: AccordionUpdateEventDetail): void => {
60
+ + const onUpdate = (event: CustomEvent<AccordionUpdateEventDetail>): void => {
61
+ - isOpen1.value = event.open;
62
+ + isOpen1.value = event.detail.open; // You can also access the value from the component itself via e.target, e.g. e.target.open
63
+ };
64
+ </script>
65
+
66
+ <template>
67
+ <PAccordion :open="isOpen" @update="onUpdate">
68
+ ...
69
+ </PAccordion>
70
+ </template>
71
+ ```
72
+
73
+ ### Removed
74
+
75
+ - `Accordion`:
76
+ - Prop `tag` use `heading-tag` (deprecated with v4 now) instead or make use of `slot="summary"` for more flexibility
77
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
78
+ ```diff
79
+ - <p-acccordion heading="Some summary" tag="h3">
80
+ <p-text>Some details</p-text>
81
+ </p-accordion>
82
+ + <p-accordion>
83
+ + <p-heading slot="summary" tag="h3" size="small">Some summary</p-heading>
84
+ <p-text>Some details</p-text>
85
+ </p-accordion>
86
+ ```
87
+
88
+ ### Deprecated
89
+
90
+ - `SCSS`: Import path for npm package:
91
+
92
+ ```diff
93
+ - @use '@porsche-design-system/components-{js|angular|react|vue}/styles' as *;
94
+ + @use '@porsche-design-system/components-{js|angular|react|vue}/scss' as *;
95
+ ```
96
+
97
+ - `Emotion`: Import path for npm package:
98
+
99
+ ```diff
100
+ - import { … } from '@porsche-design-system/components-{js|angular|react|vue}/styles';
101
+ + import { … } from '@porsche-design-system/components-{js|angular|react|vue}/emotion';
102
+ ```
103
+
104
+ - `Vanilla Extract`: Import path for npm package:
105
+
106
+ ```diff
107
+ - import { … } from '@porsche-design-system/components-{js|angular|react|vue}/styles/vanilla-extract';
108
+ + import { … } from '@porsche-design-system/components-{js|angular|react|vue}/vanilla-extract';
109
+ ```
110
+
111
+ - `Accordion`:
112
+ - Prop `heading`, `heading-tag` and `size` in favor of `slot="summary"` for more flexibility
113
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
114
+ ```diff
115
+ - <p-acccordion heading="Some summary" heading-tag="h3" size="small">
116
+ <p-text>Some details</p-text>
117
+ </p-accordion>
118
+ + <p-accordion>
119
+ + <p-heading slot="summary" tag="h3" size="small">Some summary</p-heading>
120
+ <p-text>Some details</p-text>
121
+ </p-accordion>
122
+ ```
123
+ - Slot `heading` in favor of `slot="summary"`
124
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
125
+ ```diff
126
+ <p-acccordion>
127
+ - <span slot="heading">Some summary</span>
128
+ <p-text>Some details</p-text>
129
+ </p-accordion>
130
+ <p-accordion>
131
+ + <p-heading slot="summary" tag="h3" size="small">Some summary</p-heading>
132
+ <p-text>Some details</p-text>
133
+ </p-accordion>
134
+ ```
135
+ - CSS Variable `--p-accordion-position-sticky-top`, use `--p-accordion-summary-top` instead
136
+ ([#4201](https://github.com/porsche-design-system/porsche-design-system/pull/4201))
137
+
138
+ ## [4.0.0-beta.0] - 2026-02-12
139
+
140
+ ### Added
141
+
142
+ - `Checkbox` (🧪Experimental): Supports now being wrapped inside a native `label` element to provide more flexibility in
143
+ positioning a custom label ([#4124](https://github.com/porsche-design-system/porsche-design-system/pull/4124))
144
+ - `Canvas`: prop `background` to set the background color to `canvas | surface`
145
+ - `Carousel`:
146
+ - `width` prop now supports `wide` and `full` values
147
+ ([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
148
+ - `--p-carousel-px` CSS custom property introduced to control horizontal padding (when used, the `width` prop has no
149
+ effect anymore) ([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
150
+ - `--p-carousel-ps`, `--p-carousel-pe` CSS custom property introduced to control the logical inline start/end padding
151
+ ([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
152
+ - `Angular`: Bumped peer dependency to support Angular new major version 21
153
+ ([#4178](https://github.com/porsche-design-system/porsche-design-system/pull/4178))
154
+ - `AG Grid`:
155
+ - Bumped peer dependency to support AG Grid new major version 35
156
+ ([#4143](https://github.com/porsche-design-system/porsche-design-system/issues/4143))
157
+ - Refreshed visuals to reflect new color tokens
158
+ - `Tailwind CSS`:
159
+ - `--transition-duration-sm`, `--transition-duration-md`, `--transition-duration-lg`, `--transition-duration-xl`,
160
+ `--shadow-sm`, `--shadow-md`, `--shadow-lg`, `--radius-xs`, `--radius-xl`, `--radius-2xl`, `--radius-3xl`,
161
+ `--radius-4xl`, `--radius-full`, `--border-width-1`, `--border-width-2`, `--color-frosted-strong`
162
+ - `SCSS`:
163
+ - Common hint: Previous variables are still available as alias and mapped to the new ones for backward compatibility.
164
+ - Breakpoint: `$breakpoint-xs`, `$breakpoint-sm`, `$breakpoint-md`, `$breakpoint-lg`, `$breakpoint-xl` and
165
+ `$breakpoint-2xl`
166
+ - Blur: `$blur-frosted`
167
+ - Border: `$radius-xs`, `$radius-sm`, `$radius-md`, `$radius-lg`, `$radius-xl`, `$radius-2xl`, `$radius-3xl`,
168
+ `$radius-4xl` and `$radius-full`
169
+ - Color Scheme: `@mixin color-scheme()`
170
+ - Color: `$color-focus`,`$color-canvas`, `$color-surface`, `$color-frosted`, `$color-frosted-soft`,
171
+ `$color-frosted-strong`, `$color-backdrop`, `$color-contrast-lower`, `$color-contrast-low`,
172
+ `$color-contrast-medium`, `$color-contrast-high`, `$color-contrast-higher`, `$color-primary`, `$color-success`,
173
+ `$color-success-low`, `$color-success-medium`, `$color-success-frosted`, `$color-success-frosted-soft`,
174
+ `$color-warning`, `$color-warning-low`, `$color-warning-medium`, `$color-warning-frosted`,
175
+ `$color-warning-frosted-soft`,`$color-error`, `$color-error-low`, `$color-error-medium`,
176
+ `$color-error-frosted`,`$color-error-frosted-soft`, `$color-info`, `$color-info-low`, `$color-info-medium`,
177
+ `$color-info-frosted`, `$color-info-frosted-soft`
178
+ - Focus: `@mixin focus-visible()`
179
+ - Gradient: `$gradient-stops-fade-dark`
180
+ - Skeleton: `@mixin skeleton()`
181
+ - Media Query: `@mixin media-query-min()`, `@mixin media-query-max()` and `@mixin media-query-min-max()`
182
+ - Motion: `$duration-sm`, `$duration-md`, `$duration-lg`, `$duration-xl`, `$ease-in-out`, `$ease-in` and `$ease-out`
183
+ - Shadow: `$shadow-sm`, `$shadow-md` and `$shadow-lg`
184
+ - Spacing: `$spacing-fluid-xs`, `$spacing-fluid-sm`, `$spacing-fluid-md`, `$spacing-fluid-lg`, `$spacing-fluid-xl`,
185
+ `$spacing-fluid-2xl`, `$spacing-static-xs`, `$spacing-static-sm`, `$spacing-static-md`, `$spacing-static-lg`,
186
+ `$spacing-static-xl` and `$spacing-static-2xl`
187
+ - Typography: `@mixin prose-display-lg()`, `@mixin prose-display-md()`, `@mixin prose-display-sm()`,
188
+ `@mixin prose-heading-2xl()`, `@mixin prose-heading-xl()`, `@mixin prose-heading-lg()`, `@mixin prose-heading-md()`,
189
+ `@mixin prose-heading-sm()`, `@mixin prose-text-xl()`, `@mixin prose-text-lg()`, `@mixin prose-text-md()`,
190
+ `@mixin prose-text-sm()`, `@mixin prose-text-xs()` `@mixin prose-text-2xs()`, `$font-porsche-next`,
191
+ `$leading-normal`, `$typescale-2xs`, `$typescale-xs`, `$typescale-sm`, `$typescale-md`, `$typescale-lg`,
192
+ `$typescale-xl`, `$typescale-2xl`, `$font-weight-normal`, `$font-weight-semibold` and `$font-weight-bold`
193
+ - Emotion, Vanilla-Extract:
194
+ - Blur: `blurFrosted`
195
+ - Border: `radiusXs`, `radiusSm`, `radiusMd`, `radiusLg`, `radiusXl`, `radius2xl`, `radius3xl`, `radius4xl` and
196
+ `radiusFull`
197
+ - Color: `colorCanvas`, `colorSurface`, `colorFrosted`, `colorFrostedSoft`, `colorFrostedStrong`,
198
+ `colorBackdrop`,`colorPrimary`, `colorContrastHigher`, `colorContrastHigh`, `colorContrastMedium`,
199
+ `colorContrastLow`, `colorContrastLower`, `colorInfo`, `colorInfoMedium`, `colorInfoLow`, `colorInfoFrosted`,
200
+ `colorInfoFrostedSoft`, `colorSuccess`, `colorSuccessMedium`, `colorSuccessLow`, `colorSuccessFrosted`,
201
+ `colorSuccessFrostedSoft`, `colorWarning`, `colorWarningMedium`, `colorWarningLow`, `colorWarningFrosted`,
202
+ `colorWarningFrostedSoft`, `colorError`, `colorErrorMedium`, `colorErrorLow`, `colorErrorFrosted`,
203
+ `colorErrorFrostedSoft`, `colorFocus`,
204
+ - Color Scheme: `colorSchemeStyles()`
205
+ - Focus: `getFocusVisibleStyle()`
206
+ - Gradient: `gradientStopsFadeDark`,
207
+ - Motion: `durationSm`, `durationMd`, `durationLg`, `durationXl`, `easeInOut`, `easeIn` and `easeOut`
208
+ - Shadow: `shadowSm`, `shadowMd` and `shadowLg`
209
+ - Spacing: `spacingFluidXs`, `spacingFluidSm`, `spacingFluidMd`, `spacingFluidLg`, `spacingFluidXl`,
210
+ `spacingFluid2xl`, `spacingStaticXs`, `spacingStaticSm`, `spacingStaticMd`, `spacingStaticLg`, `spacingStaticXl` and
211
+ `spacingStatic2xl`
212
+ - Typography: `proseDisplayLg()`, `proseDisplayMd()`, `proseDisplaySm()`, `proseHeading2Xl()`, `proseHeadingXl()`,
213
+ `proseHeadingLg()`, `proseHeadingMd()`, `proseHeadingSm()`, `proseTextXl()`, `proseTextLg()`, `proseTextMd()`,
214
+ `proseTextSm()`, `proseTextXs()`, `proseText2Xs()`, `fontPorscheNext`, `leadingNormal`, `typescale2Xs`,
215
+ `typescaleXs`, `typescaleSm`, `typescaleMd`, `typescaleLg`, `typescaleXl`, `typescale2xl`, `fontWeightNormal` and
216
+ `fontWeightSemibold`
217
+
218
+ ### Changed
219
+
220
+ - Remove theme prop since it's handled by CSS variables which can be controlled by `.scheme-light`, `.scheme-dark` or
221
+ `.scheme-light-dark` CSS class, e.g. `<p-button>Some label</p-button>` inside `<div class="scheme-dark">…</div>` will
222
+ render the dark theme.
223
+ - `Link Tile`, `Button Tile`: uses `color-scheme: dark` by default
224
+ - `Tailwind CSS`:
225
+ - Reset `--text-*`, `--breakpoint-*`, `--radius-*` and `--shadow-*`
226
+ - Rename theme CSS classes `.light` to `.scheme-light`, `.dark` to `.scheme-dark` and `.auto` to `.scheme-light-dark`
227
+ - `Canvas`: visual appearance on mobile view
228
+ - `Styles`: Import paths for npm package:
229
+
230
+ ```diff
231
+ - import { … } from '@porsche-design-system/components-{js|angular|react|vue}/styles';
232
+ + import { … } from '@porsche-design-system/components-{js|angular|react|vue}/emotion';
233
+ ```
234
+
235
+ ```diff
236
+ - import { … } from '@porsche-design-system/components-{js|angular|react|vue}/styles/vanilla-extract';
237
+ + import { … } from '@porsche-design-system/components-{js|angular|react|vue}/vanilla-extract';
238
+ ```
239
+
240
+ ```diff
241
+ - @use '@porsche-design-system/components-{js|angular|react|vue}/styles' as *;
242
+ + @use '@porsche-design-system/components-{js|angular|react|vue}/scss' as *;
243
+ ```
244
+
245
+ ### Fixed
246
+
247
+ - `Vanilla Extract`: grid style media query not working
248
+ - `Radio Group Option`: missing `delegatesFocus`
249
+ ([#4135](https://github.com/porsche-design-system/porsche-design-system/pull/4135))
250
+
251
+ ### Removed
252
+
253
+ - Styles (SCSS, Emotion, Vanilla-Extract): `getHoverStyle`/`pds-hover`
254
+
255
+ - Tailwind CSS: `--color-disabled`
256
+
257
+ - Emotion: `opts` parameter in `getSkeletonStyle()` including `theme` (New skeleton style works with `light-dark()` CSS
258
+ color function)
259
+
260
+ ```diff
261
+ - getSkeletonStyle({ theme: 'light|dark' })
262
+ + getSkeletonStyle()
263
+ ```
264
+
265
+ - Vanilla Extract: `opts` parameter in `getSkeletonStyle()` including `theme` (New skeleton style works with
266
+ `light-dark()` CSS color function)
267
+
268
+ ```diff
269
+ const skeletonAnimation = keyframes(skeletonKeyframes);
270
+ - const Skeleton = style(getSkeletonStyle(skeletonAnimation, { theme: 'light|dark' }));
271
+ + const Skeleton = style(getSkeletonStyle(skeletonAnimation));
272
+ ```
273
+
17
274
  ## [4.0.0-alpha.0] - 2025-12-12
18
275
 
19
276
  See the full [migration guide](/news/migration-guide/porsche-design-system/) for a detailed explanation of all changes
@@ -28,7 +285,6 @@ and migration steps.
28
285
  `@porsche-design-system/components-{js|angular|react|vue}/legacy-radius.css`
29
286
 
30
287
  - `Divider`: value `contrast-lower` for prop `color`
31
-
32
288
  - `Multi Select, Select`:
33
289
  - `selected` slot for custom selection rendering and enabling complex options
34
290
  - `options-status` slot for loading, error and no results states when using custom filtering
@@ -116,6 +372,10 @@ and migration steps.
116
372
  - Reset all default Tailwind color tokens
117
373
  - Remove -light and -dark color tokens, instead control theming via `.light`, `.dark` or `.auto` CSS class only
118
374
 
375
+ - Styles (SCSS, Emotion, Vanilla-Extract)
376
+ - heading styles use a regular instead of semi-bold font-weight
377
+ - border-radius large was changed from `12px` to `8px`, since more radius styles are now available
378
+
119
379
  ### Removed
120
380
 
121
381
  - `Partials`:
@@ -262,6 +522,89 @@ and migration steps.
262
522
  - `Multi Select`, `Pin Code`, `Radio Group`, `Textarea`: disabled prop is not mutable
263
523
  ([#4118](https://github.com/porsche-design-system/porsche-design-system/pull/4118))
264
524
  ([#4121](https://github.com/porsche-design-system/porsche-design-system/pull/4121))
525
+ - `Multi Select`: trim whitespace of selected options text
526
+ ([#4132](https://github.com/porsche-design-system/porsche-design-system/pull/4132))
527
+
528
+ ## [3.32.1] - 2026-02-24
529
+
530
+ ## [3.32.1-rc.0] - 2026-02-20
531
+
532
+ ### Fixed
533
+
534
+ - `Input Email`, `Input Password`, `Input Tel`, `Pin Code`: optimize input direction and behavior in RTL mode
535
+ ([#4209](https://github.com/porsche-design-system/porsche-design-system/pull/4209))
536
+
537
+ ## [3.32.0] - 2026-02-04
538
+
539
+ ## [3.32.0-rc.2] - 2026-02-03
540
+
541
+ ### Added
542
+
543
+ - `Checkbox`, `Input-*`, `Multi-Select`, `Pin Code`, `Radio Button Group`, `Segmented-Control`, `Select`, `Textarea`:
544
+ New slot `label-after` to add custom content (e.g. `Popover`) after the `label` element
545
+ ([#4181](https://github.com/porsche-design-system/porsche-design-system/pull/4181))
546
+ - `Angular`: Bumped peer dependency to support Angular new major version 21
547
+ ([#4178](https://github.com/porsche-design-system/porsche-design-system/pull/4178))
548
+ - `Carousel`:
549
+ - `width` prop now supports `wide` and `full` values
550
+ ([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
551
+ - `--p-carousel-px` CSS custom property introduced to control horizontal padding (when used, the `width` prop has no
552
+ effect anymore) ([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
553
+
554
+ ## [3.32.0-rc.1] - 2026-01-12
555
+
556
+ ### Added
557
+
558
+ - `AG Grid`: Bumped peer dependency to support AG Grid new major version 35
559
+ ([#4143](https://github.com/porsche-design-system/porsche-design-system/issues/4143))
560
+
561
+ ### Fixed
562
+
563
+ - `Radio Group Option`: missing `delegatesFocus`
564
+ ([#4135](https://github.com/porsche-design-system/porsche-design-system/pull/4135))
565
+
566
+ ## [3.32.0-rc.0] - 2025-12-16
567
+
568
+ ### Added
569
+
570
+ - `Multi Select, Select`:
571
+ - `selected` slot for custom selection rendering and enabling complex options
572
+ - `options-status` slot for loading, error and no results states when using custom filtering
573
+ ([#4111](https://github.com/porsche-design-system/porsche-design-system/pull/4111))
574
+ - `Multi Select, Select`:
575
+ - `filter` slot to allow custom asynchronous filtering
576
+ - `toggle` event when opening/closing the dropdown
577
+ ([#4089](https://github.com/porsche-design-system/porsche-design-system/pull/4089))
578
+ - `Segmented Control`: add `state` and `message` props to enable visual validation states
579
+ ([#4023](https://github.com/porsche-design-system/porsche-design-system/pull/4023)) `Segmented Control`: add `label`,
580
+ - `Segmented Control`: `label`, `desription`, `hideLabel` and `required` props for better form integration
581
+ ([#4023](https://github.com/porsche-design-system/porsche-design-system/pull/4023))
582
+ - `Textarea`: `compact` prop to enable a smaller, space-saving version for compact layouts
583
+ ([#4102](https://github.com/porsche-design-system/porsche-design-system/pull/4102))
584
+ - `Tag Dismissible`: `compact` prop to enable a smaller, space-saving version for compact layouts
585
+ ([#4114](https://github.com/porsche-design-system/porsche-design-system/pull/4114))
586
+ - Flags: added `AL, BD, RE` flags ([#4128](https://github.com/porsche-design-system/porsche-design-system/pull/4128))
587
+ - `Input Month`, `Input Week`: ([#4126](https://github.com/porsche-design-system/porsche-design-system/pull/4126))
588
+ - `Input Search`: `maxLength` & `minLength` prop to specify the maximum and minimum number of characters the user can
589
+ enter ([#4131](https://github.com/porsche-design-system/porsche-design-system/pull/4131))
590
+ - `Textarea`: add CSS Variables for `fieldSizing`, `minWidth`, `maxWidth`, `minHeight`, `maxHeight` to control the
591
+ intrinsic sizing behavior ([#4132](https://github.com/porsche-design-system/porsche-design-system/pull/4132))
592
+
593
+ ### Fixed
594
+
595
+ - `Checkbox`: missing deprecation for `CheckboxUpdateEventDetail` event & disabled prop is not mutable
596
+ - `Input Date`, `Input Email`, `Input Number`, `Input Password`, `Input Search`, `Input Tel`, `Input Text`,
597
+ `Input Time`, `Input Url`, `Textarea`: disabled prop is not mutable & error when disabled and invalid
598
+ - `Multi Select`, `Pin Code`, `Radio Group`, `Textarea`: disabled prop is not mutable
599
+ ([#4118](https://github.com/porsche-design-system/porsche-design-system/pull/4118))
600
+ ([#4121](https://github.com/porsche-design-system/porsche-design-system/pull/4121))
601
+ - `Multi Select`: trim whitespace of selected options text
602
+ ([#4132](https://github.com/porsche-design-system/porsche-design-system/pull/4132))
603
+
604
+ ### Changed
605
+
606
+ - `Link Tile`, `Button Tile`: appearance in compact mode
607
+ - `Canvas`: appearance on mobile view
265
608
 
266
609
  ## [3.31.0] - 2025-11-13
267
610
 
@@ -6,14 +6,14 @@ var react = require('react');
6
6
  var hooks = require('../../hooks.cjs');
7
7
  var utils = require('../../utils.cjs');
8
8
 
9
- const PAccordion = /*#__PURE__*/ react.forwardRef(({ compact, heading, headingTag = 'h2', onUpdate, open, size = 'small', sticky, className, ...rest }, ref) => {
9
+ const PAccordion = /*#__PURE__*/ react.forwardRef(({ alignMarker = 'end', background = 'none', compact, heading, headingTag = 'h2', onUpdate, open, size = 'small', sticky, className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  hooks.useEventCallback(elementRef, 'update', onUpdate);
12
12
  const WebComponentTag = hooks.usePrefix('p-accordion');
13
- const propsToSync = [compact, heading, headingTag, open, size, sticky];
13
+ const propsToSync = [alignMarker, background, compact, heading, headingTag, open, size, sticky];
14
14
  hooks.useBrowserLayoutEffect(() => {
15
15
  const { current } = elementRef;
16
- ['compact', 'heading', 'headingTag', 'open', 'size', 'sticky'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
+ ['alignMarker', 'background', 'compact', 'heading', 'headingTag', 'open', 'size', 'sticky'].forEach((propName, i) => (current[propName] = propsToSync[i]));
17
17
  }, propsToSync);
18
18
  const props = {
19
19
  ...rest,
@@ -6,15 +6,15 @@ var react = require('react');
6
6
  var hooks = require('../../hooks.cjs');
7
7
  var utils = require('../../utils.cjs');
8
8
 
9
- const PCanvas = /*#__PURE__*/ react.forwardRef(({ onSidebarEndDismiss, onSidebarStartUpdate, sidebarEndOpen = false, sidebarStartOpen = false, className, ...rest }, ref) => {
9
+ const PCanvas = /*#__PURE__*/ react.forwardRef(({ background = 'canvas', onSidebarEndDismiss, onSidebarStartUpdate, sidebarEndOpen = false, sidebarStartOpen = false, className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  hooks.useEventCallback(elementRef, 'sidebarEndDismiss', onSidebarEndDismiss);
12
12
  hooks.useEventCallback(elementRef, 'sidebarStartUpdate', onSidebarStartUpdate);
13
13
  const WebComponentTag = hooks.usePrefix('p-canvas');
14
- const propsToSync = [sidebarEndOpen, sidebarStartOpen];
14
+ const propsToSync = [background, sidebarEndOpen, sidebarStartOpen];
15
15
  hooks.useBrowserLayoutEffect(() => {
16
16
  const { current } = elementRef;
17
- ['sidebarEndOpen', 'sidebarStartOpen'].forEach((propName, i) => (current[propName] = propsToSync[i]));
17
+ ['background', 'sidebarEndOpen', 'sidebarStartOpen'].forEach((propName, i) => (current[propName] = propsToSync[i]));
18
18
  }, propsToSync);
19
19
  const props = {
20
20
  ...rest,
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var styles = require('@porsche-design-system/components-js/styles');
3
+ var emotion = require('@porsche-design-system/components-js/emotion');
4
4
 
5
5
 
6
6
 
7
- Object.keys(styles).forEach(function (k) {
7
+ Object.keys(emotion).forEach(function (k) {
8
8
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
9
9
  enumerable: true,
10
- get: function () { return styles[k]; }
10
+ get: function () { return emotion[k]; }
11
11
  });
12
12
  });
@@ -0,0 +1 @@
1
+ export * from '@porsche-design-system/components-js/emotion';
@@ -0,0 +1 @@
1
+ export * from '@porsche-design-system/components-js/emotion';
@@ -8,11 +8,6 @@
8
8
  "types": "./esm/index.d.ts",
9
9
  "import": "./esm/index.mjs",
10
10
  "default": "./cjs/index.cjs"
11
- },
12
- "./vanilla-extract": {
13
- "types": "./vanilla-extract/esm/index.d.ts",
14
- "import": "./vanilla-extract/esm/index.mjs",
15
- "default": "./vanilla-extract/cjs/index.cjs"
16
11
  }
17
12
  }
18
13
  }
@@ -1,16 +1,24 @@
1
1
  import type { BaseProps } from '../../BaseProps';
2
- import type { AccordionHeadingTag, AccordionUpdateEventDetail, BreakpointCustomizable, AccordionSize } from '../types';
2
+ import type { AccordionAlignMarker, AccordionBackground, AccordionHeadingTag, AccordionUpdateEventDetail, BreakpointCustomizable, AccordionSize } from '../types';
3
3
  export type PAccordionProps = BaseProps & {
4
4
  /**
5
- * Displays the Accordion as compact version with thinner border and smaller paddings.
5
+ * Aligns the marker within the summary section.
6
+ */
7
+ alignMarker?: AccordionAlignMarker;
8
+ /**
9
+ * Defines the background color. Use `frosted` only on images, videos or gradients.
10
+ */
11
+ background?: AccordionBackground;
12
+ /**
13
+ * Displays the accordion in compact mode.
6
14
  */
7
15
  compact?: boolean;
8
16
  /**
9
- * Defines the heading used in accordion.
17
+ * @deprecated , will be removed in the next major release. Use the `summary` slot instead. Sets the heading text within the summary section.
10
18
  */
11
19
  heading?: string;
12
20
  /**
13
- * Sets a heading tag, so it fits correctly within the outline of the page.
21
+ * @deprecated , will be removed in the next major release. Use the `summary` slot instead. Sets the heading tag for proper semantic structure within the page.
14
22
  */
15
23
  headingTag?: AccordionHeadingTag;
16
24
  /**
@@ -18,29 +26,37 @@ export type PAccordionProps = BaseProps & {
18
26
  */
19
27
  onUpdate?: (event: CustomEvent<AccordionUpdateEventDetail>) => void;
20
28
  /**
21
- * Defines if accordion is open.
29
+ * Controls whether the accordion is open or closed.
22
30
  */
23
31
  open?: boolean;
24
32
  /**
25
- * The text size.
33
+ * @deprecated , will be removed in the next major release. Use the `summary` slot instead. Controls the heading size in the summary section (only applies when using the `heading` prop or `heading` slot).
26
34
  */
27
35
  size?: BreakpointCustomizable<AccordionSize>;
28
36
  /**
29
- * @experimental Sticks the Accordion heading at the top, fixed while scrolling
37
+ * @experimental Makes the summary section sticky at the top while scrolling. Only works with `background="canvas"` or `background="surface"`. Not compatible with `summary-before` or `summary-after` slots.
30
38
  */
31
39
  sticky?: boolean;
32
40
  };
33
41
  export declare const PAccordion: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
34
42
  /**
35
- * Displays the Accordion as compact version with thinner border and smaller paddings.
43
+ * Aligns the marker within the summary section.
44
+ */
45
+ alignMarker?: AccordionAlignMarker;
46
+ /**
47
+ * Defines the background color. Use `frosted` only on images, videos or gradients.
48
+ */
49
+ background?: AccordionBackground;
50
+ /**
51
+ * Displays the accordion in compact mode.
36
52
  */
37
53
  compact?: boolean;
38
54
  /**
39
- * Defines the heading used in accordion.
55
+ * @deprecated , will be removed in the next major release. Use the `summary` slot instead. Sets the heading text within the summary section.
40
56
  */
41
57
  heading?: string;
42
58
  /**
43
- * Sets a heading tag, so it fits correctly within the outline of the page.
59
+ * @deprecated , will be removed in the next major release. Use the `summary` slot instead. Sets the heading tag for proper semantic structure within the page.
44
60
  */
45
61
  headingTag?: AccordionHeadingTag;
46
62
  /**
@@ -48,15 +64,15 @@ export declare const PAccordion: import("react").ForwardRefExoticComponent<Omit<
48
64
  */
49
65
  onUpdate?: (event: CustomEvent<AccordionUpdateEventDetail>) => void;
50
66
  /**
51
- * Defines if accordion is open.
67
+ * Controls whether the accordion is open or closed.
52
68
  */
53
69
  open?: boolean;
54
70
  /**
55
- * The text size.
71
+ * @deprecated , will be removed in the next major release. Use the `summary` slot instead. Controls the heading size in the summary section (only applies when using the `heading` prop or `heading` slot).
56
72
  */
57
73
  size?: BreakpointCustomizable<AccordionSize>;
58
74
  /**
59
- * @experimental Sticks the Accordion heading at the top, fixed while scrolling
75
+ * @experimental Makes the summary section sticky at the top while scrolling. Only works with `background="canvas"` or `background="surface"`. Not compatible with `summary-before` or `summary-after` slots.
60
76
  */
61
77
  sticky?: boolean;
62
78
  } & {
@@ -4,14 +4,14 @@ import { forwardRef, useRef } from 'react';
4
4
  import { useEventCallback, usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
 
7
- const PAccordion = /*#__PURE__*/ forwardRef(({ compact, heading, headingTag = 'h2', onUpdate, open, size = 'small', sticky, className, ...rest }, ref) => {
7
+ const PAccordion = /*#__PURE__*/ forwardRef(({ alignMarker = 'end', background = 'none', compact, heading, headingTag = 'h2', onUpdate, open, size = 'small', sticky, className, ...rest }, ref) => {
8
8
  const elementRef = useRef(undefined);
9
9
  useEventCallback(elementRef, 'update', onUpdate);
10
10
  const WebComponentTag = usePrefix('p-accordion');
11
- const propsToSync = [compact, heading, headingTag, open, size, sticky];
11
+ const propsToSync = [alignMarker, background, compact, heading, headingTag, open, size, sticky];
12
12
  useBrowserLayoutEffect(() => {
13
13
  const { current } = elementRef;
14
- ['compact', 'heading', 'headingTag', 'open', 'size', 'sticky'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
+ ['alignMarker', 'background', 'compact', 'heading', 'headingTag', 'open', 'size', 'sticky'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
15
  }, propsToSync);
16
16
  const props = {
17
17
  ...rest,
@@ -1,6 +1,10 @@
1
1
  import type { BaseProps } from '../../BaseProps';
2
- import type { CanvasSidebarStartUpdateEventDetail } from '../types';
2
+ import type { CanvasBackground, CanvasSidebarStartUpdateEventDetail } from '../types';
3
3
  export type PCanvasProps = BaseProps & {
4
+ /**
5
+ * Defines the background color of the main section and auto adjust it for the sidebar
6
+ */
7
+ background?: CanvasBackground;
4
8
  /**
5
9
  * Emitted when the sidebar end requests to be dismissed.
6
10
  */
@@ -19,6 +23,10 @@ export type PCanvasProps = BaseProps & {
19
23
  sidebarStartOpen?: boolean;
20
24
  };
21
25
  export declare const PCanvas: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
26
+ /**
27
+ * Defines the background color of the main section and auto adjust it for the sidebar
28
+ */
29
+ background?: CanvasBackground;
22
30
  /**
23
31
  * Emitted when the sidebar end requests to be dismissed.
24
32
  */
@@ -4,15 +4,15 @@ import { forwardRef, useRef } from 'react';
4
4
  import { useEventCallback, usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
 
7
- const PCanvas = /*#__PURE__*/ forwardRef(({ onSidebarEndDismiss, onSidebarStartUpdate, sidebarEndOpen = false, sidebarStartOpen = false, className, ...rest }, ref) => {
7
+ const PCanvas = /*#__PURE__*/ forwardRef(({ background = 'canvas', onSidebarEndDismiss, onSidebarStartUpdate, sidebarEndOpen = false, sidebarStartOpen = false, className, ...rest }, ref) => {
8
8
  const elementRef = useRef(undefined);
9
9
  useEventCallback(elementRef, 'sidebarEndDismiss', onSidebarEndDismiss);
10
10
  useEventCallback(elementRef, 'sidebarStartUpdate', onSidebarStartUpdate);
11
11
  const WebComponentTag = usePrefix('p-canvas');
12
- const propsToSync = [sidebarEndOpen, sidebarStartOpen];
12
+ const propsToSync = [background, sidebarEndOpen, sidebarStartOpen];
13
13
  useBrowserLayoutEffect(() => {
14
14
  const { current } = elementRef;
15
- ['sidebarEndOpen', 'sidebarStartOpen'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
+ ['background', 'sidebarEndOpen', 'sidebarStartOpen'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
16
  }, propsToSync);
17
17
  const props = {
18
18
  ...rest,
@@ -6,7 +6,7 @@ export type PDisplayProps = BaseProps & {
6
6
  */
7
7
  align?: DisplayAlign;
8
8
  /**
9
- * Basic text color variations depending on theme property.
9
+ * Basic text color variations.
10
10
  */
11
11
  color?: DisplayColor;
12
12
  /**
@@ -28,7 +28,7 @@ export declare const PDisplay: import("react").ForwardRefExoticComponent<Omit<im
28
28
  */
29
29
  align?: DisplayAlign;
30
30
  /**
31
- * Basic text color variations depending on theme property.
31
+ * Basic text color variations.
32
32
  */
33
33
  color?: DisplayColor;
34
34
  /**
@@ -2,7 +2,7 @@ import type { BaseProps } from '../../BaseProps';
2
2
  import type { DividerColor, BreakpointCustomizable, DividerDirection } from '../types';
3
3
  export type PDividerProps = BaseProps & {
4
4
  /**
5
- * Defines color depending on theme.
5
+ * Defines color.
6
6
  */
7
7
  color?: DividerColor;
8
8
  /**
@@ -12,7 +12,7 @@ export type PDividerProps = BaseProps & {
12
12
  };
13
13
  export declare const PDivider: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
14
14
  /**
15
- * Defines color depending on theme.
15
+ * Defines color.
16
16
  */
17
17
  color?: DividerColor;
18
18
  /**