@porsche-design-system/components-angular 4.6.0-rc.1 → 4.6.0-rc.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 (40) hide show
  1. package/CHANGELOG.md +84 -2
  2. package/OSS_NOTICE +5532 -2115
  3. package/fesm2022/porsche-design-system-components-angular.mjs +1 -1
  4. package/fesm2022/porsche-design-system-components-angular.mjs.map +1 -1
  5. package/package.json +6 -2
  6. package/skills/pds-knowledge-angular/SKILL.md +2 -2
  7. package/skills/pds-knowledge-angular/references/components/p-ai-tag/p-ai-tag.md +2 -2
  8. package/skills/pds-knowledge-angular/references/components/p-button/p-button.md +1 -1
  9. package/skills/pds-knowledge-angular/references/components/p-button-pure/p-button-pure.md +1 -1
  10. package/skills/pds-knowledge-angular/references/components/p-button-tile/p-button-tile.md +1 -1
  11. package/skills/pds-knowledge-angular/references/components/p-carousel/p-carousel.md +1 -1
  12. package/skills/pds-knowledge-angular/references/components/p-drilldown/p-drilldown.md +1 -1
  13. package/skills/pds-knowledge-angular/references/components/p-flyout/p-flyout.md +1 -1
  14. package/skills/pds-knowledge-angular/references/components/p-icon/examples/Overview.ts +6 -0
  15. package/skills/pds-knowledge-angular/references/components/p-icon/p-icon.md +1 -1
  16. package/skills/pds-knowledge-angular/references/components/p-inline-notification/p-inline-notification.md +1 -1
  17. package/skills/pds-knowledge-angular/references/components/p-input-number/p-input-number.md +3 -3
  18. package/skills/pds-knowledge-angular/references/components/p-input-text/p-input-text.md +3 -3
  19. package/skills/pds-knowledge-angular/references/components/p-link/p-link.md +1 -1
  20. package/skills/pds-knowledge-angular/references/components/p-link-pure/p-link-pure.md +1 -1
  21. package/skills/pds-knowledge-angular/references/components/p-modal/p-modal.md +1 -1
  22. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/AsyncFilter.ts +32 -5
  23. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Form.ts +3 -3
  24. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/SelectedSlot.ts +2 -2
  25. package/skills/pds-knowledge-angular/references/components/p-multi-select/p-multi-select.md +2 -2
  26. package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/Form.ts +2 -2
  27. package/skills/pds-knowledge-angular/references/components/p-pin-code/p-pin-code.md +2 -2
  28. package/skills/pds-knowledge-angular/references/components/p-popover/p-popover.md +1 -1
  29. package/skills/pds-knowledge-angular/references/components/p-radio-group/examples/Form.ts +2 -2
  30. package/skills/pds-knowledge-angular/references/components/p-radio-group/p-radio-group.md +3 -3
  31. package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/Form.ts +2 -2
  32. package/skills/pds-knowledge-angular/references/components/p-segmented-control/p-segmented-control.md +2 -2
  33. package/skills/pds-knowledge-angular/references/components/p-select/examples/AsyncFilter.ts +32 -5
  34. package/skills/pds-knowledge-angular/references/components/p-select/p-select.md +1 -1
  35. package/skills/pds-knowledge-angular/references/components/p-sheet/p-sheet.md +1 -1
  36. package/skills/pds-knowledge-angular/references/components/p-table/p-table.md +1 -1
  37. package/skills/pds-knowledge-angular/references/components/p-tag/p-tag.md +1 -1
  38. package/skills/pds-knowledge-angular/references/components/p-wordmark/p-wordmark.md +1 -1
  39. package/skills/pds-knowledge-angular/references/icons.md +1 -1
  40. package/types/porsche-design-system-components-angular.d.ts +219 -238
@@ -31,6 +31,9 @@ import {
31
31
  (change)="$event.stopPropagation()"
32
32
  ></p-input-search>
33
33
 
34
+ <!-- Persistent status announcer for assistive technologies (keep always in the DOM) -->
35
+ <div slot="options-status" class="sr-only" aria-live="polite" aria-atomic="true">{{ filterStatusMessage }}</div>
36
+
34
37
  <!-- Initial skeleton loading -->
35
38
  @if (initialLoading && !error) {
36
39
  @for (_ of [1,2,3,4,5,6,7,8,9]; track $index) {
@@ -45,15 +48,14 @@ import {
45
48
  </p-select-option>
46
49
  }
47
50
 
48
- <!-- No filter results -->
49
- @if (!initialLoading && options.length === 0 && !error) {
51
+ <!-- No filter results (visual only; announcements come from the live region) -->
52
+ @if (!initialLoading && !loading && options.length === 0 && !error) {
50
53
  <div
51
54
  slot="options-status"
52
55
  class="text-contrast-medium cursor-not-allowed py-static-sm px-[12px]"
53
- role="alert"
56
+ aria-hidden="true"
54
57
  >
55
- <span aria-hidden="true">–</span>
56
- <span class="sr-only">No results found</span>
58
+
57
59
  </div>
58
60
  }
59
61
 
@@ -83,6 +85,7 @@ export class ExampleComponent {
83
85
  initialLoading = false;
84
86
  loading = false;
85
87
  error: string | null = null;
88
+ filterStatusMessage = '';
86
89
 
87
90
  private hasLoadedOnce = false;
88
91
  private currentFetchId = 0;
@@ -94,6 +97,7 @@ export class ExampleComponent {
94
97
  const fetchId = ++this.currentFetchId;
95
98
  if (isInitial) this.initialLoading = true;
96
99
  else this.loading = true;
100
+ this.updateFilterStatusMessage();
97
101
 
98
102
  this.cdr.markForCheck();
99
103
 
@@ -122,6 +126,7 @@ export class ExampleComponent {
122
126
  } finally {
123
127
  if (isInitial) this.initialLoading = false;
124
128
  else this.loading = false;
129
+ this.updateFilterStatusMessage();
125
130
 
126
131
  this.cdr.markForCheck();
127
132
  }
@@ -146,4 +151,26 @@ export class ExampleComponent {
146
151
  this.fetchOptions(undefined, true);
147
152
  }
148
153
  }
154
+
155
+ private updateFilterStatusMessage(): void {
156
+ if (this.error) {
157
+ this.filterStatusMessage = '';
158
+ return;
159
+ }
160
+ if (this.initialLoading || this.loading) {
161
+ this.filterStatusMessage = 'Loading options';
162
+ return;
163
+ }
164
+ const term = this.searchValue.trim();
165
+ if (!term) {
166
+ this.filterStatusMessage = '';
167
+ return;
168
+ }
169
+ if (this.options.length === 0) {
170
+ this.filterStatusMessage = 'No results found';
171
+ return;
172
+ }
173
+ this.filterStatusMessage =
174
+ this.options.length === 1 ? '1 result available' : `${this.options.length} results available`;
175
+ }
149
176
  }
@@ -141,7 +141,7 @@ Allowed parents: `p-multi-select`, `p-optgroup`.
141
141
  | Property | Type | Default | Description |
142
142
  | --- | --- | --- | --- |
143
143
  | `disabled` | `boolean` | `false` | Disables the option, preventing it from being selected. |
144
- | `value` _(required)_ | `string | number` | `undefined` | Sets the value submitted with the form data when this option is selected in the parent multi-select. |
144
+ | `value` _(required)_ | `string | number` | `undefined` | Sets the required option value submitted with the form data when selected. Must be a string or number. |
145
145
 
146
146
  #### Slots
147
147
 
@@ -95,7 +95,7 @@ See [accessibility integration examples](./accessibility.md) for paired anti-pat
95
95
 
96
96
  | Event | Type | Description |
97
97
  | --- | --- | --- |
98
- | `dismiss` | `CustomEvent<void>` | Emitted when the user dismisses the sheet via the close button, backdrop click, or Escape key. |
98
+ | `dismiss` | `CustomEvent<SheetDismissEventDetail>`<br>`{ reason: 'dismiss-button' | 'backdrop' | 'escape' }` | Emitted when the user closes the sheet via the dismiss button, backdrop click, or Escape key. The event detail identifies which of the three was used. |
99
99
  | `motionHiddenEnd` | `CustomEvent<SheetMotionHiddenEndEventDetail>`<br>`TransitionEvent` | Emitted after the sheet's close transition has fully completed and the panel is hidden. |
100
100
  | `motionVisibleEnd` | `CustomEvent<SheetMotionVisibleEndEventDetail>`<br>`TransitionEvent` | Emitted after the sheet's open transition has fully completed and the panel is visible. |
101
101
 
@@ -86,7 +86,7 @@ See [accessibility integration examples](./accessibility.md) for paired anti-pat
86
86
 
87
87
  | Event | Type | Description |
88
88
  | --- | --- | --- |
89
- | `update` | `CustomEvent<TableUpdateEventDetail>`<br>`{ id: string; active?: boolean; direction?: Direction }` | Emitted when the user clicks a sortable column header, carrying the new sort configuration in the event detail. |
89
+ | `update` | `CustomEvent<TableUpdateEventDetail>`<br>`{ id: string; active?: boolean; direction?: 'asc' | 'desc' }` | Emitted when the user clicks a sortable column header, carrying the new sort configuration in the event detail. |
90
90
 
91
91
  ### Slots
92
92
 
@@ -50,7 +50,7 @@ See [accessibility integration examples](./accessibility.md) for paired anti-pat
50
50
  | Property | Type | Default | Description |
51
51
  | --- | --- | --- | --- |
52
52
  | `compact` | `boolean` | `false` | Reduces the tag's padding and height for use in dense layouts where vertical space is limited. |
53
- | `icon` | `'none'`<br>one of 290 icon names — see [icon names](references/icons.md) | `'none'` | Sets the icon displayed inside the tag alongside the label. Use `none` to render the tag without an icon. |
53
+ | `icon` | `'none'`<br>one of 293 icon names — see [icon names](references/icons.md) | `'none'` | Sets the icon displayed inside the tag alongside the label. Use `none` to render the tag without an icon. |
54
54
  | `iconSource` | `string` | `undefined` | Sets a URL to a custom SVG icon, overriding the built-in icon set when a brand-specific icon is needed. |
55
55
  | `variant` | `'primary'` `'secondary'` `'info'` `'info-frosted'` `'warning'` `'warning-frosted'` `'success'` `'success-frosted'` `'error'` `'error-frosted'` | `'secondary'` | Sets the visual style of the tag, which controls its background and text colors (e.g. `primary`, `secondary`, `notification-info`). |
56
56
 
@@ -58,7 +58,7 @@ See [accessibility integration examples](./accessibility.md) for paired anti-pat
58
58
  | --- | --- | --- | --- |
59
59
  | `aria` | `WordmarkAriaAttribute` | `undefined` | Sets ARIA attributes on the anchor element to improve accessibility when the wordmark is used as a link. |
60
60
  | `href` | `string` | `undefined` | When set, wraps the wordmark in an anchor element that navigates to the given URL on click. |
61
- | `size` | `'small'` `'inherit'` | `'small'` | Sets the display size of the Porsche wordmark SVG using predefined PDS size tokens (`small`, `medium`, `large`, `inherit`). |
61
+ | `size` | `'small'` `'inherit'` | `'small'` | Sets the display size of the Porsche wordmark SVG using predefined PDS size tokens. |
62
62
  | `target` | `'_self'` `'_blank'` `'_parent'` `'_top'` `'string'` | `'_self'` | Specifies where to open the linked URL when `href` is set (e.g. `_self`, `_blank`). |
63
63
 
64
64
  ## Examples
@@ -2,4 +2,4 @@
2
2
 
3
3
  Valid values for the icon-typed props across PDS components (e.g. `p-icon` `name`, `p-button` `icon`, `p-link` `icon`, `p-inline-notification` `actionIcon`). Pass one as a string, e.g. `icon="arrow-right"`. Each component reference links here instead of repeating the full list. (`p-flag` `name` uses a separate set of flag names, not listed here.)
4
4
 
5
- `360` `4-wheel-drive` `accessibility` `active-cabin-ventilation` `add` `adjust` `aggregation` `ai-3d-object` `ai-code` `ai-edit` `ai-image` `ai-scale` `ai-sound` `ai-spark` `ai-spark-filled` `ai-text` `ai-video` `arrow-compact-down` `arrow-compact-left` `arrow-compact-right` `arrow-compact-up` `arrow-double-down` `arrow-double-left` `arrow-double-right` `arrow-double-up` `arrow-down` `arrow-down-left` `arrow-down-right` `arrow-first` `arrow-head-down` `arrow-head-left` `arrow-head-right` `arrow-head-up` `arrow-last` `arrow-left` `arrow-right` `arrow-up` `arrow-up-left` `arrow-up-right` `arrows` `attachment` `augmented-reality` `battery-empty` `battery-empty-co2` `battery-empty-fuel` `battery-full` `battery-half` `battery-one-quarter` `battery-three-quarters` `bell` `bookmark` `bookmark-filled` `brain` `broadcast` `cabriolet` `calculator` `calendar` `camera` `car` `car-battery` `card` `charging-active` `charging-network` `charging-state` `charging-station` `chart` `chat` `check` `city` `climate` `climate-control` `clock` `close` `closed-caption` `cloud` `co2-class` `co2-emission` `color-picker` `compare` `compass` `configurate` `copy` `country-road` `coupe` `cubic-capacity` `cut` `delete` `disable` `dislike` `dislike-filled` `document` `door` `download` `drag` `duration` `ear` `edit` `email` `error` `error-filled` `exclamation` `exclamation-filled` `external` `fast-backward` `fast-forward` `file-csv` `file-excel` `filter` `fingerprint` `flag` `flash` `fuel-station` `garage` `genuine-parts` `geo-localization` `gift` `globe` `grid` `grip` `group` `hand` `heart` `heart-filled` `highway` `highway-filled` `history` `home` `horn` `image` `increase` `information` `information-filled` `key` `laptop` `leaf` `leather` `light` `like` `like-filled` `limousine` `linked` `list` `locate` `lock` `lock-open` `logo-apple-carplay` `logo-apple-music` `logo-apple-podcast` `logo-baidu` `logo-delicious` `logo-digg` `logo-facebook` `logo-foursquare` `logo-gmail` `logo-google` `logo-hatena` `logo-instagram` `logo-kaixin` `logo-kakaotalk` `logo-kununu` `logo-linkedin` `logo-naver` `logo-pinterest` `logo-qq` `logo-qq-share` `logo-reddit` `logo-skyrock` `logo-snapchat` `logo-sohu` `logo-spotify` `logo-tecent` `logo-telegram` `logo-tiktok` `logo-tumblr` `logo-twitter` `logo-viber` `logo-vk` `logo-wechat` `logo-weibo` `logo-whatsapp` `logo-x` `logo-xing` `logo-yahoo` `logo-youku` `logo-youtube` `logout` `map` `menu-dots-horizontal` `menu-dots-vertical` `menu-lines` `microphone` `minus` `mobile` `moon` `new-chat` `news` `north-arrow` `oil-can` `online-search` `parking-brake` `parking-light` `paste` `pause` `phone` `pin` `pin-filled` `pivot` `play` `play-filled` `plug` `plus` `preheating` `price-tag` `printer` `purchase` `push-pin` `push-pin-off` `qr` `qr-off` `question` `question-filled` `racing-flag` `radar` `radio` `refresh` `replay` `reset` `return` `road` `roof-closed` `roof-open` `route` `rss` `save` `screen` `search` `seat` `send` `service-technician` `share` `shopping-bag` `shopping-bag-filled` `shopping-cart` `shopping-cart-filled` `sidebar` `sidelights` `skip-backward` `skip-forward` `snowflake` `sort` `stack` `star` `star-filled` `steering-wheel` `stop` `stopwatch` `subtract` `success` `success-filled` `sun` `suv` `switch` `tablet` `tachometer` `theme` `tire` `trigger-finger` `truck` `turismo` `unlinked` `upload` `user` `user-filled` `user-group` `user-manual` `video` `view` `view-off` `volume-off` `volume-up` `warning` `warning-filled` `weather` `weight` `wifi` `work` `wrench` `wrenches` `zoom-in` `zoom-out`
5
+ `360` `4-wheel-drive` `accessibility` `active-cabin-ventilation` `add` `adjust` `aggregation` `ai-3d-object` `ai-code` `ai-edit` `ai-image` `ai-scale` `ai-sound` `ai-spark` `ai-spark-filled` `ai-text` `ai-video` `arrow-compact-down` `arrow-compact-left` `arrow-compact-right` `arrow-compact-up` `arrow-double-down` `arrow-double-left` `arrow-double-right` `arrow-double-up` `arrow-down` `arrow-down-left` `arrow-down-right` `arrow-first` `arrow-head-down` `arrow-head-left` `arrow-head-right` `arrow-head-up` `arrow-last` `arrow-left` `arrow-right` `arrow-up` `arrow-up-left` `arrow-up-right` `arrows` `attachment` `augmented-reality` `battery-empty` `battery-empty-co2` `battery-empty-fuel` `battery-full` `battery-half` `battery-one-quarter` `battery-three-quarters` `bell` `bookmark` `bookmark-filled` `brain` `broadcast` `cabriolet` `calculator` `calendar` `camera` `car` `car-battery` `card` `charging-active` `charging-network` `charging-state` `charging-station` `chart` `chat` `check` `city` `climate` `climate-control` `clock` `close` `closed-caption` `cloud` `co2-class` `co2-emission` `color-picker` `compare` `compass` `configurate` `connect-services` `copy` `country-road` `coupe` `cubic-capacity` `customer-support` `cut` `delete` `disable` `dislike` `dislike-filled` `document` `door` `download` `drag` `duration` `ear` `edit` `email` `error` `error-filled` `exclamation` `exclamation-filled` `external` `fast-backward` `fast-forward` `file-csv` `file-excel` `filter` `fingerprint` `flag` `flash` `fuel-station` `garage` `genuine-parts` `geo-localization` `gift` `globe` `grid` `grip` `group` `hand` `heart` `heart-filled` `highway` `highway-filled` `history` `home` `horn` `image` `increase` `information` `information-filled` `key` `laptop` `leaf` `leather` `light` `like` `like-filled` `limousine` `linked` `list` `locate` `lock` `lock-open` `logo-apple-carplay` `logo-apple-music` `logo-apple-podcast` `logo-baidu` `logo-delicious` `logo-digg` `logo-facebook` `logo-foursquare` `logo-gmail` `logo-google` `logo-hatena` `logo-instagram` `logo-kaixin` `logo-kakaotalk` `logo-kununu` `logo-linkedin` `logo-naver` `logo-pinterest` `logo-qq` `logo-qq-share` `logo-reddit` `logo-skyrock` `logo-snapchat` `logo-sohu` `logo-spotify` `logo-tecent` `logo-telegram` `logo-tiktok` `logo-tumblr` `logo-twitter` `logo-viber` `logo-vk` `logo-wechat` `logo-weibo` `logo-whatsapp` `logo-x` `logo-xing` `logo-yahoo` `logo-youku` `logo-youtube` `logout` `map` `menu-dots-horizontal` `menu-dots-vertical` `menu-lines` `microphone` `minus` `mobile` `moon` `new-chat` `news` `north-arrow` `oil-can` `online-search` `parking-brake` `parking-light` `paste` `pause` `phone` `pin` `pin-filled` `pivot` `play` `play-filled` `plug` `plus` `preheating` `price-tag` `printer` `purchase` `push-pin` `push-pin-off` `qr` `qr-off` `question` `question-filled` `racing-flag` `radar` `radio` `refresh` `replay` `reset` `return` `road` `roof-closed` `roof-open` `route` `rss` `save` `screen` `search` `seat` `send` `service-technician` `share` `shopping-bag` `shopping-bag-filled` `shopping-cart` `shopping-cart-filled` `shopping-cart-off` `sidebar` `sidelights` `skip-backward` `skip-forward` `snowflake` `sort` `stack` `star` `star-filled` `steering-wheel` `stop` `stopwatch` `subtract` `success` `success-filled` `sun` `suv` `switch` `tablet` `tachometer` `theme` `tire` `trigger-finger` `truck` `turismo` `unlinked` `upload` `user` `user-filled` `user-group` `user-manual` `video` `view` `view-off` `volume-off` `volume-up` `warning` `warning-filled` `weather` `weight` `wifi` `work` `wrench` `wrenches` `zoom-in` `zoom-out`