@porsche-design-system/components-angular 3.31.0 → 4.0.0-alpha.0

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.
package/CHANGELOG.md CHANGED
@@ -14,6 +14,255 @@ 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-alpha.0] - 2025-12-12
18
+
19
+ See the full [migration guide](/news/migration-guide/porsche-design-system/) for a detailed explanation of all changes
20
+ and migration steps.
21
+
22
+ ### Added
23
+
24
+ - Global Styles: mandatory CSS styles (normalize, font-face and color variables)
25
+ - `@porsche-design-system/components-{js|angular|react|vue}/index.css`
26
+ - `@porsche-design-system/components-{js|angular|react|vue}/cn/index.css`
27
+ - to enable legacy radius styles (aligned with app) import
28
+ `@porsche-design-system/components-{js|angular|react|vue}/legacy-radius.css`
29
+
30
+ - `Divider`: value `contrast-lower` for prop `color`
31
+
32
+ - `Multi Select, Select`:
33
+ - `selected` slot for custom selection rendering and enabling complex options
34
+ - `options-status` slot for loading, error and no results states when using custom filtering
35
+ ([#4111](https://github.com/porsche-design-system/porsche-design-system/pull/4111))
36
+ - `Multi Select, Select`:
37
+ - `filter` slot to allow custom asynchronous filtering
38
+ - `toggle` event when opening/closing the dropdown
39
+ ([#4089](https://github.com/porsche-design-system/porsche-design-system/pull/4089))
40
+ - `Segmented Control`: add `state` and `message` props to enable visual validation states
41
+ ([#4023](https://github.com/porsche-design-system/porsche-design-system/pull/4023)) `Segmented Control`: add `label`,
42
+ - `Segmented Control`: `label`, `desription`, `hideLabel` and `required` props for better form integration
43
+ ([#4023](https://github.com/porsche-design-system/porsche-design-system/pull/4023))
44
+ - `Textarea`: `compact` prop to enable a smaller, space-saving version for compact layouts
45
+ ([#4102](https://github.com/porsche-design-system/porsche-design-system/pull/4102))
46
+ - `Tag Dismissible`: `compact` prop to enable a smaller, space-saving version for compact layouts
47
+ ([#4114](https://github.com/porsche-design-system/porsche-design-system/pull/4114))
48
+ - Flags: added `AL, BD, RE` flags ([#4128](https://github.com/porsche-design-system/porsche-design-system/pull/4128))
49
+ - `Input Month`, `Input Week`: ([#4126](https://github.com/porsche-design-system/porsche-design-system/pull/4126))
50
+ - `Input Search`: `maxLength` & `minLength` prop to specify the maximum and minimum number of characters the user can
51
+ enter ([#4131](https://github.com/porsche-design-system/porsche-design-system/pull/4131))
52
+
53
+ ### Changed
54
+
55
+ - In general all headings use regular as font-weight
56
+ - Remove theme prop since it's handled by CSS variables which can be controlled by `.light`, `.dark` or `.auto` CSS
57
+ class, e.g. `<p-input-text name="some-name"></p-input-text>` inside `<div class="dark">…</div>` will render the dark
58
+ theme.
59
+ - Remove **slotted** Anchor Styles entirely from all components.
60
+ - `Heading`: Uses a regular instead of semi-bold font-weight
61
+ - `Text` and `Icon`:
62
+ - value `'notification-success', 'notification-warning', 'notification-error', 'notification-info'` of prop `color`
63
+ (use `'success', 'warning', 'error', 'info'` instead)
64
+ - `Icon`:
65
+ - when `color="inherit"` is used no CSS filters are necessary anymore, instead a CSS color (e.g.
66
+ `p-icon { color: deeppink; }`) can be applied directly
67
+ - value `'state-disabled'` of prop color is removed
68
+ - `Model Signature`:
69
+ - when `color="inherit"` is used a CSS color (e.g. `p-model-signature { color: deeppink; }`) can be applied directly
70
+ - `Tag`:
71
+ - removed prop `color` and introduced prop `variant` with values `primary`, `secondary`, `success`, `warning`,
72
+ `error`, `info`
73
+ - `Button`, `Link`:
74
+ - removed prop value `ghost`, use `secondary` instead
75
+ - `Modal`
76
+ - visually changed footer slot: becomes frosted when it's sticky
77
+ - removed `.stretch-to-full-modal-width` use `-mt-(--ref-p-modal-pt) -mx-(--ref-p-modal-px) -mb-(--ref-p-modal-pb)`
78
+ instead
79
+ - added read only css variables `--ref-p-modal-pt`, `--ref-p-modal-pb`, `--ref-p-modal-px`
80
+ - added prop `background` with value `canvas | surface`
81
+ - `Flyout`
82
+ - removed CSS variable `--p-flyout-max-width` (use `--p-flyout-width` with a static value or `min()`, `max()` or
83
+ `clamp()` instead)
84
+ - visually changed footer slot: becomes frosted when it's sticky
85
+ - added read only css variables `--ref-p-flyout-pb`
86
+ - added prop `background` with value `canvas | surface`
87
+ - `Sheet`:
88
+ - added read only css variables `--ref-p-sheet-pt`, `--ref-p-sheet-px`, `--ref-p-sheet-pb`
89
+ - added prop `background` with value `canvas | surface`
90
+ - `Inline Notification`:
91
+ - removed max-width limitation for content
92
+ - `Banner`:
93
+ - added `state="success"`
94
+ - removed max-width limitation for content
95
+ - `Toast`:
96
+ - added `state="warning | error"`
97
+ - `Carousel`:
98
+ - removed CSS variable `--p-carousel-prev-next-filter`
99
+ - removed prop `gradient-color` (use `gradient="true"` instead)
100
+ - changed default value of prop `trim-space` from `true` to `false` (use `<p-carousel trim-space="true"></p-carousel>`
101
+ to enable trimming)
102
+ - changed default value of prop `pagination` from `true` to `false` (use `<p-carousel pagination="true"></p-carousel>`
103
+ to enable pagination)
104
+ - changed default value of prop `rewind` from `true` to `false` (use `<p-carousel rewind="true"></p-carousel>` to
105
+ enable rewind)
106
+ - `Link Tile`, `Button Tile`:
107
+ - changed default value of prop `gradient` from `true` to `false` (use `<p-link-tile gradient="true"></p-link-tile>`
108
+ to enable gradient)
109
+ - removed prop `background` (use CSS class `.light | .dark | .auto` on :host element instead)
110
+ - added an optional light gradient when used in light mode and gradient is enabled
111
+ - added value `auto` for prop `aspect-ratio`
112
+ - `Link Tile Product`:
113
+ - Values `3:4 | 9:16` of prop `aspect-ratio` (use `3/4 | 9/16` instead)
114
+
115
+ - Tailwind CSS:
116
+ - Reset all default Tailwind color tokens
117
+ - Remove -light and -dark color tokens, instead control theming via `.light`, `.dark` or `.auto` CSS class only
118
+
119
+ ### Removed
120
+
121
+ - `Partials`:
122
+ - Removed `getBrowserSupportFallbackScript()` and `getCookiesFallbackScript()` which are now in separate repo
123
+ `@porsche-design-system/fallbacks`
124
+ - Removed `getDSRPonyfill()` partial
125
+ - Removed `getFontFaceStyles()`, `getFontFaceStylesheet()` and `getInitialStyles()` partial in favor of CSS imports
126
+ from `@porsche-design-system/components-{js|angular|react|vue}`
127
+ - `@font-face` styles are no longer auto-injected, import of global styles is mandatory now
128
+ - Automatic FOUC handling in `getInitialStyles()`, must be implemented manually now
129
+
130
+ - `Accordion`:
131
+ - prop `tag` (use `heading-tag` instead)
132
+ - event `accordionChange` (use `update` instead)
133
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
134
+ - `Banner`:
135
+ - `slot="title"` (use `slot="heading"` instead)
136
+ - prop `persistent` (use `dismissButton` instead)
137
+ - prop `width`
138
+ - value `neutral` of prop `state` (use `info` instead)
139
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
140
+ - `Button`, `Link`:
141
+ - prop `tertiary`
142
+ - `Button Pure`:
143
+ - prop `weight` (can't be configured anymore)
144
+ - value `left | right` of prop `alignLabel` (use `start | end` instead)
145
+ - `Carousel`:
146
+ - prop `wrapContent` (has no effect anyway)
147
+ - prop `disablePagination` (use `pagination` instead)
148
+ - value `left` of prop `alignHeader` (use `start` instead)
149
+ - event `carouselChange` (use `update` instead)
150
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
151
+ - `Checkbox`:
152
+ - event `update` (use `change` instead)
153
+ - `Display`:
154
+ - value `left | right` of prop `align` (use `start | end` instead)
155
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
156
+ - `Divider`:
157
+ - prop `orientation` (use `direction` instead)
158
+ - value `neutral-contrast-{low|medium|high}` of prop `color` (use `contrast-{low|medium|high}` instead)
159
+ - `Flyout`:
160
+ - value `left | right` of prop `position` (use `start | end` instead)
161
+ - `Heading`:
162
+ - value `left | right` of prop `align` (use `start | end` instead)
163
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
164
+ - `Icon`:
165
+ - prop: `lazy`
166
+ - value
167
+ `brand | default | neutral-contrast-low | neutral-contrast-medium | neutral-contrast-high | notification-neutral` of
168
+ prop `color` (use `primary | contrast-low | contrast-medium | contrast-high | notification-info` instead)
169
+ - `Inline Notification`:
170
+ - prop `persistent` (use `dismissButton` instead)
171
+ - value `neutral` of prop `state` (use `info` instead)
172
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
173
+ - `Link Pure`:
174
+ - prop `weight` (can't be configured anymore)
175
+ - value `left | right` of prop `alignLabel` (use `start | end` instead)
176
+ - `Link Tile`, `Link Tile Model Signature`, `Button Tile`:
177
+ - Values `1:1 | 4:3 | 3:4 | 16:9 | 9:16` of prop `aspect-ratio` (use `1/1 | 4/3 | 3/4 | 16/9 | 9/16` instead)
178
+ - `Link Tile`, `Button Tile`:
179
+ - Value `default` of prop `size` (use `medium` instead)
180
+ - Value `semibold` of prop `weight` (use `semi-bold` instead)
181
+ - `Modal`:
182
+ - prop `disableCloseButton` (use `dismissButton` instead)
183
+ - prop `heading` (use `slot="header"` instead)
184
+ - slot `heading` (use `slot="header"` instead)
185
+ - event `close` (use `dismiss` instead)
186
+ - `Multi Select`:
187
+ - event `update` (use `change` instead)
188
+ - `Pagination`:
189
+ - prop `allyLabel` (use `intl.root` instead)
190
+ - prop `allyLabelPrev` (use `intl.prev` instead)
191
+ - prop `allyLabelPage` (use `intl.page` instead)
192
+ - prop `allyLabelNext` (use `intl.next` instead)
193
+ - prop `maxNumberOfPageLinks` (has no effect anyway)
194
+ - event `pageChange` (use `update` instead)
195
+ - `Pin Code`:
196
+ - event `update` (use `change` instead)
197
+ - `Scroller`:
198
+ - prop `gradientColorScheme` (has no effect anyway)
199
+ - prop `gradientColor` (has no effect anyway)
200
+ - prop `scrollIndicatorPosition` (use `alignScrollIndicator` instead)
201
+ - `Segmented Control`:
202
+ - prop `backgroundColor` (has no effect anyway)
203
+ - event `segmentedControlChange` (use `change` instead)
204
+ - event `update` (use `change` instead)
205
+ - `Select`:
206
+ - event `update` (use `change` instead)
207
+ - `Stepper Horizontal`:
208
+ - event `stepChange` (use `update` instead)
209
+ - `Switch`:
210
+ - value `left | right` of prop `alignLabel` (use `start | end` instead)
211
+ - event `switchChange` (use `update` instead)
212
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
213
+ - `Table`:
214
+ - event `sortingChange` (use `update` instead)
215
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
216
+ - `Tabs`, `Tabs Bar`:
217
+ - prop `gradientColorScheme` (has no effect anyway)
218
+ - prop `gradientColor` (has no effect anyway)
219
+ - value `semibold` of prop `weight` (use `semi-bold` instead)
220
+ - event `tabChange` (use `update` instead)
221
+ - `Tabs`
222
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
223
+ - `Tag`:
224
+ - prop `color` (use `variant` instead)
225
+ - `Tag Dismissible`:
226
+ - prop `color`
227
+ - `Text`
228
+ - value `left | right` of prop `align` (use `start | end` instead)
229
+ - value
230
+ `brand | default | neutral-contrast-low | neutral-contrast-medium | neutral-contrast-high | notification-neutral` of
231
+ prop `color` (use `primary | contrast-low | contrast-medium | contrast-high | notification-info` instead)
232
+ - value `semibold` of prop `weight` (use `semi-bold` instead)
233
+ - Slotted anchor styling (use `Link Pure` instead or define an anchor style)
234
+ - `Text List`
235
+ - prop `listType` (use `type` instead)
236
+ - prop `orderType` (use `type` instead)
237
+ - Slotted anchor `<a>` styling (use `Link Pure` instead or define an anchor style)
238
+ - `Toast`:
239
+ - value `neutral` of prop `state` (use `info` instead)
240
+ - Removed Components:
241
+ - `Button Group` (use Tailwind CSS instead,
242
+ `<div role="group" class="flex flex-wrap gap-fluid-sm max-xs:flex-col">…</div>`)
243
+ - `Checkbox Wrapper` (use `Checkbox` instead)
244
+ - `Radio Button Wrapper` (use `Radio Group` instead)
245
+ - `Content Wrapper` (use Porsche Grid Style instead, Tailwind CSS is recommended)
246
+ - `Link Tile Model Signature`
247
+ - `Fieldset Wrapper` (use `Fieldset` instead)
248
+ - `Flex` (use CSS Flex instead, Tailwind CSS is recommended)
249
+ - `Grid` (use CSS Grid instead, Tailwind CSS is recommended)
250
+ - `Headline` (use `Heading` instead)
251
+ - `Link Social`
252
+ - `Marque` (use `Wordmark` (recommended) or `Crest` instead)
253
+ - `Select Wrapper` (use `Select` instead)
254
+ - `Text Field Wrapper` (use `Input-{Date|Email|Number|Password|Search|Tel|Text|Time|Url}` instead)
255
+ - `Textarea Wrapper` (use `Textarea` instead)
256
+
257
+ ### Fixed
258
+
259
+ - `Checkbox`: missing deprecation for `CheckboxUpdateEventDetail` event & disabled prop is not mutable
260
+ - `Input Date`, `Input Email`, `Input Number`, `Input Password`, `Input Search`, `Input Tel`, `Input Text`,
261
+ `Input Time`, `Input Url`, `Textarea`: disabled prop is not mutable & error when disabled and invalid
262
+ - `Multi Select`, `Pin Code`, `Radio Group`, `Textarea`: disabled prop is not mutable
263
+ ([#4118](https://github.com/porsche-design-system/porsche-design-system/pull/4118))
264
+ ([#4121](https://github.com/porsche-design-system/porsche-design-system/pull/4121))
265
+
17
266
  ## [3.31.0] - 2025-11-13
18
267
 
19
268
  ## [3.31.0-rc.0] - 2025-11-11
@@ -1429,7 +1678,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
1429
1678
 
1430
1679
  ```diff
1431
1680
  - <p-carousel align-header="left"></p-carousel>
1432
- + <p-carousel-pure align-header="start"></p-carousel>
1681
+ + <p-carousel align-header="start"></p-carousel>
1433
1682
  ```
1434
1683
 
1435
1684
  ### Fixed