@porsche-design-system/components-angular 4.6.0-rc.0 → 4.6.0-rc.2

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 (348) hide show
  1. package/CHANGELOG.md +85 -2
  2. package/OSS_NOTICE +5532 -2115
  3. package/ag-grid/package.json +6 -0
  4. package/bin/pds-skill.js +166 -79
  5. package/emotion/package.json +6 -0
  6. package/fesm2022/porsche-design-system-components-angular.mjs +233 -233
  7. package/fesm2022/porsche-design-system-components-angular.mjs.map +1 -1
  8. package/jsdom-polyfill/package.json +5 -0
  9. package/meta/package.json +6 -0
  10. package/package.json +6 -2
  11. package/partials/package.json +6 -0
  12. package/{skill → skills/pds-knowledge-angular}/SKILL.md +5 -5
  13. package/skills/pds-knowledge-angular/references/components/p-accordion/accessibility.md +63 -0
  14. package/{skill → skills/pds-knowledge-angular}/references/components/p-accordion/p-accordion.md +4 -0
  15. package/skills/pds-knowledge-angular/references/components/p-ai-tag/p-ai-tag.md +47 -0
  16. package/skills/pds-knowledge-angular/references/components/p-banner/accessibility.md +35 -0
  17. package/{skill → skills/pds-knowledge-angular}/references/components/p-banner/p-banner.md +4 -0
  18. package/skills/pds-knowledge-angular/references/components/p-button/accessibility.md +61 -0
  19. package/{skill → skills/pds-knowledge-angular}/references/components/p-button/p-button.md +5 -1
  20. package/skills/pds-knowledge-angular/references/components/p-button-pure/accessibility.md +61 -0
  21. package/{skill → skills/pds-knowledge-angular}/references/components/p-button-pure/p-button-pure.md +5 -1
  22. package/skills/pds-knowledge-angular/references/components/p-button-tile/accessibility.md +31 -0
  23. package/{skill → skills/pds-knowledge-angular}/references/components/p-button-tile/p-button-tile.md +5 -1
  24. package/skills/pds-knowledge-angular/references/components/p-canvas/examples/Default.ts +105 -0
  25. package/{skill → skills/pds-knowledge-angular}/references/components/p-canvas/p-canvas.md +4 -0
  26. package/skills/pds-knowledge-angular/references/components/p-carousel/accessibility.md +61 -0
  27. package/{skill → skills/pds-knowledge-angular}/references/components/p-carousel/p-carousel.md +5 -1
  28. package/skills/pds-knowledge-angular/references/components/p-checkbox/accessibility.md +31 -0
  29. package/{skill → skills/pds-knowledge-angular}/references/components/p-checkbox/p-checkbox.md +4 -0
  30. package/skills/pds-knowledge-angular/references/components/p-crest/accessibility.md +17 -0
  31. package/{skill → skills/pds-knowledge-angular}/references/components/p-crest/p-crest.md +4 -0
  32. package/skills/pds-knowledge-angular/references/components/p-divider/accessibility.md +41 -0
  33. package/{skill → skills/pds-knowledge-angular}/references/components/p-divider/p-divider.md +4 -0
  34. package/skills/pds-knowledge-angular/references/components/p-drilldown/accessibility.md +65 -0
  35. package/{skill → skills/pds-knowledge-angular}/references/components/p-drilldown/p-drilldown.md +4 -0
  36. package/skills/pds-knowledge-angular/references/components/p-fieldset/accessibility.md +37 -0
  37. package/{skill → skills/pds-knowledge-angular}/references/components/p-fieldset/p-fieldset.md +4 -0
  38. package/skills/pds-knowledge-angular/references/components/p-flag/accessibility.md +39 -0
  39. package/{skill → skills/pds-knowledge-angular}/references/components/p-flag/p-flag.md +4 -0
  40. package/skills/pds-knowledge-angular/references/components/p-flyout/accessibility.md +80 -0
  41. package/{skill → skills/pds-knowledge-angular}/references/components/p-flyout/p-flyout.md +4 -0
  42. package/skills/pds-knowledge-angular/references/components/p-heading/accessibility.md +29 -0
  43. package/{skill → skills/pds-knowledge-angular}/references/components/p-heading/p-heading.md +4 -0
  44. package/skills/pds-knowledge-angular/references/components/p-icon/accessibility.md +39 -0
  45. package/{skill → skills/pds-knowledge-angular}/references/components/p-icon/examples/Overview.ts +6 -0
  46. package/{skill → skills/pds-knowledge-angular}/references/components/p-icon/p-icon.md +5 -1
  47. package/skills/pds-knowledge-angular/references/components/p-inline-notification/accessibility.md +38 -0
  48. package/{skill → skills/pds-knowledge-angular}/references/components/p-inline-notification/p-inline-notification.md +5 -1
  49. package/skills/pds-knowledge-angular/references/components/p-input-date/accessibility.md +45 -0
  50. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-date/p-input-date.md +4 -0
  51. package/skills/pds-knowledge-angular/references/components/p-input-email/accessibility.md +45 -0
  52. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-email/p-input-email.md +4 -0
  53. package/skills/pds-knowledge-angular/references/components/p-input-month/accessibility.md +45 -0
  54. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-month/p-input-month.md +4 -0
  55. package/skills/pds-knowledge-angular/references/components/p-input-number/accessibility.md +45 -0
  56. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-number/p-input-number.md +7 -3
  57. package/skills/pds-knowledge-angular/references/components/p-input-password/accessibility.md +45 -0
  58. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-password/p-input-password.md +4 -0
  59. package/skills/pds-knowledge-angular/references/components/p-input-search/accessibility.md +59 -0
  60. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-search/p-input-search.md +4 -0
  61. package/skills/pds-knowledge-angular/references/components/p-input-tel/accessibility.md +45 -0
  62. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-tel/p-input-tel.md +4 -0
  63. package/skills/pds-knowledge-angular/references/components/p-input-text/accessibility.md +45 -0
  64. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-text/p-input-text.md +7 -3
  65. package/skills/pds-knowledge-angular/references/components/p-input-time/accessibility.md +45 -0
  66. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-time/p-input-time.md +4 -0
  67. package/skills/pds-knowledge-angular/references/components/p-input-url/accessibility.md +45 -0
  68. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-url/p-input-url.md +4 -0
  69. package/skills/pds-knowledge-angular/references/components/p-input-week/accessibility.md +45 -0
  70. package/{skill → skills/pds-knowledge-angular}/references/components/p-input-week/p-input-week.md +4 -0
  71. package/skills/pds-knowledge-angular/references/components/p-link/accessibility.md +73 -0
  72. package/{skill → skills/pds-knowledge-angular}/references/components/p-link/p-link.md +5 -1
  73. package/skills/pds-knowledge-angular/references/components/p-link-pure/accessibility.md +73 -0
  74. package/{skill → skills/pds-knowledge-angular}/references/components/p-link-pure/p-link-pure.md +5 -1
  75. package/skills/pds-knowledge-angular/references/components/p-link-tile/accessibility.md +31 -0
  76. package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile/p-link-tile.md +4 -0
  77. package/skills/pds-knowledge-angular/references/components/p-modal/accessibility.md +80 -0
  78. package/{skill → skills/pds-knowledge-angular}/references/components/p-modal/p-modal.md +4 -0
  79. package/skills/pds-knowledge-angular/references/components/p-multi-select/accessibility.md +78 -0
  80. package/{skill → skills/pds-knowledge-angular}/references/components/p-multi-select/examples/AsyncFilter.ts +32 -5
  81. package/{skill → skills/pds-knowledge-angular}/references/components/p-multi-select/examples/Form.ts +3 -3
  82. package/{skill → skills/pds-knowledge-angular}/references/components/p-multi-select/examples/SelectedSlot.ts +2 -2
  83. package/{skill → skills/pds-knowledge-angular}/references/components/p-multi-select/p-multi-select.md +6 -2
  84. package/skills/pds-knowledge-angular/references/components/p-pagination/accessibility.md +23 -0
  85. package/{skill → skills/pds-knowledge-angular}/references/components/p-pagination/p-pagination.md +4 -0
  86. package/skills/pds-knowledge-angular/references/components/p-pin-code/accessibility.md +45 -0
  87. package/{skill → skills/pds-knowledge-angular}/references/components/p-pin-code/examples/Form.ts +2 -2
  88. package/{skill → skills/pds-knowledge-angular}/references/components/p-pin-code/p-pin-code.md +6 -2
  89. package/skills/pds-knowledge-angular/references/components/p-popover/accessibility.md +61 -0
  90. package/{skill → skills/pds-knowledge-angular}/references/components/p-popover/p-popover.md +4 -0
  91. package/skills/pds-knowledge-angular/references/components/p-radio-group/accessibility.md +63 -0
  92. package/{skill → skills/pds-knowledge-angular}/references/components/p-radio-group/examples/Form.ts +2 -2
  93. package/{skill → skills/pds-knowledge-angular}/references/components/p-radio-group/p-radio-group.md +7 -3
  94. package/skills/pds-knowledge-angular/references/components/p-scroller/accessibility.md +31 -0
  95. package/{skill → skills/pds-knowledge-angular}/references/components/p-scroller/p-scroller.md +4 -0
  96. package/skills/pds-knowledge-angular/references/components/p-segmented-control/accessibility.md +67 -0
  97. package/{skill → skills/pds-knowledge-angular}/references/components/p-segmented-control/examples/Form.ts +2 -2
  98. package/{skill → skills/pds-knowledge-angular}/references/components/p-segmented-control/p-segmented-control.md +6 -2
  99. package/skills/pds-knowledge-angular/references/components/p-select/accessibility.md +140 -0
  100. package/{skill → skills/pds-knowledge-angular}/references/components/p-select/examples/AsyncFilter.ts +32 -5
  101. package/{skill → skills/pds-knowledge-angular}/references/components/p-select/p-select.md +5 -1
  102. package/skills/pds-knowledge-angular/references/components/p-sheet/accessibility.md +80 -0
  103. package/{skill → skills/pds-knowledge-angular}/references/components/p-sheet/p-sheet.md +4 -0
  104. package/skills/pds-knowledge-angular/references/components/p-spinner/accessibility.md +33 -0
  105. package/{skill → skills/pds-knowledge-angular}/references/components/p-spinner/p-spinner.md +4 -0
  106. package/skills/pds-knowledge-angular/references/components/p-stepper-horizontal/accessibility.md +34 -0
  107. package/{skill → skills/pds-knowledge-angular}/references/components/p-stepper-horizontal/p-stepper-horizontal.md +4 -0
  108. package/skills/pds-knowledge-angular/references/components/p-switch/accessibility.md +35 -0
  109. package/{skill → skills/pds-knowledge-angular}/references/components/p-switch/p-switch.md +4 -0
  110. package/skills/pds-knowledge-angular/references/components/p-table/accessibility.md +47 -0
  111. package/{skill → skills/pds-knowledge-angular}/references/components/p-table/examples/Sorting.ts +11 -10
  112. package/{skill → skills/pds-knowledge-angular}/references/components/p-table/p-table.md +5 -1
  113. package/skills/pds-knowledge-angular/references/components/p-tabs/accessibility.md +56 -0
  114. package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs/p-tabs.md +4 -0
  115. package/skills/pds-knowledge-angular/references/components/p-tabs-bar/accessibility.md +61 -0
  116. package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs-bar/p-tabs-bar.md +4 -0
  117. package/skills/pds-knowledge-angular/references/components/p-tag/accessibility.md +19 -0
  118. package/{skill → skills/pds-knowledge-angular}/references/components/p-tag/p-tag.md +5 -1
  119. package/skills/pds-knowledge-angular/references/components/p-tag-dismissible/accessibility.md +35 -0
  120. package/{skill → skills/pds-knowledge-angular}/references/components/p-tag-dismissible/p-tag-dismissible.md +4 -0
  121. package/skills/pds-knowledge-angular/references/components/p-text/accessibility.md +21 -0
  122. package/{skill → skills/pds-knowledge-angular}/references/components/p-text/p-text.md +4 -0
  123. package/skills/pds-knowledge-angular/references/components/p-text-list/accessibility.md +31 -0
  124. package/{skill → skills/pds-knowledge-angular}/references/components/p-text-list/p-text-list.md +4 -0
  125. package/skills/pds-knowledge-angular/references/components/p-textarea/accessibility.md +45 -0
  126. package/{skill → skills/pds-knowledge-angular}/references/components/p-textarea/p-textarea.md +4 -0
  127. package/{skill → skills/pds-knowledge-angular}/references/components/p-toast/p-toast.md +1 -1
  128. package/skills/pds-knowledge-angular/references/components/p-wordmark/accessibility.md +31 -0
  129. package/{skill → skills/pds-knowledge-angular}/references/components/p-wordmark/p-wordmark.md +5 -1
  130. package/skills/pds-knowledge-angular/references/icons.md +5 -0
  131. package/{skill → skills/pds-knowledge-angular}/references/styles/tailwindcss.md +1 -1
  132. package/testing/package.json +5 -0
  133. package/tokens/package.json +6 -0
  134. package/types/porsche-design-system-components-angular.d.ts +203 -233
  135. package/vanilla-extract/package.json +6 -0
  136. package/skill/references/components/p-ai-tag/p-ai-tag.md +0 -47
  137. package/skill/references/components/p-canvas/examples/Default.ts +0 -13
  138. package/skill/references/icons.md +0 -5
  139. /package/{skill → skills/pds-knowledge-angular}/references/components/p-accordion/examples/Default.ts +0 -0
  140. /package/{skill → skills/pds-knowledge-angular}/references/components/p-accordion/examples/InteractiveElementsInSummary.ts +0 -0
  141. /package/{skill → skills/pds-knowledge-angular}/references/components/p-accordion/examples/StickySummary.ts +0 -0
  142. /package/{skill → skills/pds-knowledge-angular}/references/components/p-ai-tag/examples/Default.ts +0 -0
  143. /package/{skill → skills/pds-knowledge-angular}/references/components/p-ai-tag/examples/WithinCheckbox.ts +0 -0
  144. /package/{skill → skills/pds-knowledge-angular}/references/components/p-ai-tag/examples/WithinFormLabel.ts +0 -0
  145. /package/{skill → skills/pds-knowledge-angular}/references/components/p-ai-tag/examples/WithinImage.ts +0 -0
  146. /package/{skill → skills/pds-knowledge-angular}/references/components/p-ai-tag/examples/WithinInputSearch.ts +0 -0
  147. /package/{skill → skills/pds-knowledge-angular}/references/components/p-ai-tag/examples/WithinRadioGroup.ts +0 -0
  148. /package/{skill → skills/pds-knowledge-angular}/references/components/p-ai-tag/examples/WithinTable.ts +0 -0
  149. /package/{skill → skills/pds-knowledge-angular}/references/components/p-ai-tag/examples/WithinText.ts +0 -0
  150. /package/{skill → skills/pds-knowledge-angular}/references/components/p-banner/examples/Customization.ts +0 -0
  151. /package/{skill → skills/pds-knowledge-angular}/references/components/p-banner/examples/Default.ts +0 -0
  152. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button/examples/Default.ts +0 -0
  153. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button/examples/Form.ts +0 -0
  154. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button/examples/FormAttribute.ts +0 -0
  155. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button-pure/examples/CustomClickableArea.ts +0 -0
  156. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button-pure/examples/Default.ts +0 -0
  157. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button-pure/examples/Form.ts +0 -0
  158. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button-pure/examples/FormAttribute.ts +0 -0
  159. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button-tile/examples/ColorScheme.ts +0 -0
  160. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button-tile/examples/Default.ts +0 -0
  161. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button-tile/examples/FooterSlot.ts +0 -0
  162. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button-tile/examples/Hyphens.ts +0 -0
  163. /package/{skill → skills/pds-knowledge-angular}/references/components/p-button-tile/examples/UiBehaviour.ts +0 -0
  164. /package/{skill → skills/pds-knowledge-angular}/references/components/p-carousel/examples/Default.ts +0 -0
  165. /package/{skill → skills/pds-knowledge-angular}/references/components/p-carousel/examples/DynamicSlides.ts +0 -0
  166. /package/{skill → skills/pds-knowledge-angular}/references/components/p-carousel/examples/FlexibleWidths.ts +0 -0
  167. /package/{skill → skills/pds-knowledge-angular}/references/components/p-carousel/examples/FocusOnCenterSlide.ts +0 -0
  168. /package/{skill → skills/pds-knowledge-angular}/references/components/p-carousel/examples/Intl.ts +0 -0
  169. /package/{skill → skills/pds-knowledge-angular}/references/components/p-carousel/examples/JumpToSlide.ts +0 -0
  170. /package/{skill → skills/pds-knowledge-angular}/references/components/p-checkbox/examples/Default.ts +0 -0
  171. /package/{skill → skills/pds-knowledge-angular}/references/components/p-checkbox/examples/Form.ts +0 -0
  172. /package/{skill → skills/pds-knowledge-angular}/references/components/p-checkbox/examples/Indeterminate.ts +0 -0
  173. /package/{skill → skills/pds-knowledge-angular}/references/components/p-checkbox/examples/Slots.ts +0 -0
  174. /package/{skill → skills/pds-knowledge-angular}/references/components/p-checkbox/examples/WrappedLabel.ts +0 -0
  175. /package/{skill → skills/pds-knowledge-angular}/references/components/p-crest/examples/CustomClickableArea.ts +0 -0
  176. /package/{skill → skills/pds-knowledge-angular}/references/components/p-crest/examples/Default.ts +0 -0
  177. /package/{skill → skills/pds-knowledge-angular}/references/components/p-crest/examples/Link.ts +0 -0
  178. /package/{skill → skills/pds-knowledge-angular}/references/components/p-display/examples/Color.ts +0 -0
  179. /package/{skill → skills/pds-knowledge-angular}/references/components/p-display/examples/Default.ts +0 -0
  180. /package/{skill → skills/pds-knowledge-angular}/references/components/p-display/examples/Semantics.ts +0 -0
  181. /package/{skill → skills/pds-knowledge-angular}/references/components/p-display/examples/Size.ts +0 -0
  182. /package/{skill → skills/pds-knowledge-angular}/references/components/p-display/examples/SizeResponsive.ts +0 -0
  183. /package/{skill → skills/pds-knowledge-angular}/references/components/p-display/p-display.md +0 -0
  184. /package/{skill → skills/pds-knowledge-angular}/references/components/p-divider/examples/Default.ts +0 -0
  185. /package/{skill → skills/pds-knowledge-angular}/references/components/p-divider/examples/Responsive.ts +0 -0
  186. /package/{skill → skills/pds-knowledge-angular}/references/components/p-divider/examples/Vertical.ts +0 -0
  187. /package/{skill → skills/pds-knowledge-angular}/references/components/p-drilldown/examples/CustomContent.ts +0 -0
  188. /package/{skill → skills/pds-knowledge-angular}/references/components/p-drilldown/examples/Default.ts +0 -0
  189. /package/{skill → skills/pds-knowledge-angular}/references/components/p-fieldset/examples/Default.ts +0 -0
  190. /package/{skill → skills/pds-knowledge-angular}/references/components/p-fieldset/examples/Required.ts +0 -0
  191. /package/{skill → skills/pds-knowledge-angular}/references/components/p-fieldset/examples/SlottedLabel.ts +0 -0
  192. /package/{skill → skills/pds-knowledge-angular}/references/components/p-fieldset/examples/SlottedMessage.ts +0 -0
  193. /package/{skill → skills/pds-knowledge-angular}/references/components/p-flag/examples/Default.ts +0 -0
  194. /package/{skill → skills/pds-knowledge-angular}/references/components/p-flag/examples/ResponsiveSize.ts +0 -0
  195. /package/{skill → skills/pds-knowledge-angular}/references/components/p-flag/examples/Size.ts +0 -0
  196. /package/{skill → skills/pds-knowledge-angular}/references/components/p-flag/examples/SizeCssVar.ts +0 -0
  197. /package/{skill → skills/pds-knowledge-angular}/references/components/p-flyout/examples/CustomStyling.ts +0 -0
  198. /package/{skill → skills/pds-knowledge-angular}/references/components/p-flyout/examples/Default.ts +0 -0
  199. /package/{skill → skills/pds-knowledge-angular}/references/components/p-flyout/examples/Form.ts +0 -0
  200. /package/{skill → skills/pds-knowledge-angular}/references/components/p-flyout/examples/StickyTop.ts +0 -0
  201. /package/{skill → skills/pds-knowledge-angular}/references/components/p-heading/examples/Color.ts +0 -0
  202. /package/{skill → skills/pds-knowledge-angular}/references/components/p-heading/examples/Default.ts +0 -0
  203. /package/{skill → skills/pds-knowledge-angular}/references/components/p-heading/examples/Semantics.ts +0 -0
  204. /package/{skill → skills/pds-knowledge-angular}/references/components/p-icon/examples/Color.ts +0 -0
  205. /package/{skill → skills/pds-knowledge-angular}/references/components/p-icon/examples/ColorCssVar.ts +0 -0
  206. /package/{skill → skills/pds-knowledge-angular}/references/components/p-icon/examples/Custom.ts +0 -0
  207. /package/{skill → skills/pds-knowledge-angular}/references/components/p-icon/examples/Default.ts +0 -0
  208. /package/{skill → skills/pds-knowledge-angular}/references/components/p-icon/examples/ResponsiveSize.ts +0 -0
  209. /package/{skill → skills/pds-knowledge-angular}/references/components/p-icon/examples/Size.ts +0 -0
  210. /package/{skill → skills/pds-knowledge-angular}/references/components/p-icon/examples/SizeCssVar.ts +0 -0
  211. /package/{skill → skills/pds-knowledge-angular}/references/components/p-inline-notification/examples/ActionButton.ts +0 -0
  212. /package/{skill → skills/pds-knowledge-angular}/references/components/p-inline-notification/examples/Default.ts +0 -0
  213. /package/{skill → skills/pds-knowledge-angular}/references/components/p-inline-notification/examples/EventHandling.ts +0 -0
  214. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-date/examples/Default.ts +0 -0
  215. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-date/examples/Form.ts +0 -0
  216. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-date/examples/Slots.ts +0 -0
  217. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-email/examples/Default.ts +0 -0
  218. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-email/examples/Form.ts +0 -0
  219. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-email/examples/Slots.ts +0 -0
  220. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-month/examples/Default.ts +0 -0
  221. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-month/examples/Form.ts +0 -0
  222. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-month/examples/Slots.ts +0 -0
  223. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-number/examples/Default.ts +0 -0
  224. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-number/examples/Form.ts +0 -0
  225. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-number/examples/Slots.ts +0 -0
  226. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-password/examples/Default.ts +0 -0
  227. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-password/examples/Form.ts +0 -0
  228. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-password/examples/Slots.ts +0 -0
  229. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-password/examples/Toggle.ts +0 -0
  230. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-search/examples/AriaCombobox.ts +0 -0
  231. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-search/examples/Default.ts +0 -0
  232. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-search/examples/Form.ts +0 -0
  233. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-search/examples/Slots.ts +0 -0
  234. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-tel/examples/Default.ts +0 -0
  235. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-tel/examples/Form.ts +0 -0
  236. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-tel/examples/Slots.ts +0 -0
  237. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-text/examples/Controlled.ts +0 -0
  238. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-text/examples/Default.ts +0 -0
  239. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-text/examples/Form.ts +0 -0
  240. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-text/examples/Slots.ts +0 -0
  241. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-time/examples/Default.ts +0 -0
  242. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-time/examples/Form.ts +0 -0
  243. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-time/examples/Slots.ts +0 -0
  244. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-url/examples/Default.ts +0 -0
  245. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-url/examples/Form.ts +0 -0
  246. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-url/examples/Slots.ts +0 -0
  247. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-week/examples/Default.ts +0 -0
  248. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-week/examples/Form.ts +0 -0
  249. /package/{skill → skills/pds-knowledge-angular}/references/components/p-input-week/examples/Slots.ts +0 -0
  250. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link/examples/Default.ts +0 -0
  251. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link/examples/FrameworkRouting.ts +0 -0
  252. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link/examples/Icon.ts +0 -0
  253. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-pure/examples/CustomClickableArea.ts +0 -0
  254. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-pure/examples/Default.ts +0 -0
  255. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-pure/examples/FrameworkRouting.ts +0 -0
  256. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-pure/examples/Icon.ts +0 -0
  257. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile/examples/ColorScheme.ts +0 -0
  258. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile/examples/Default.ts +0 -0
  259. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile/examples/FooterSlot.ts +0 -0
  260. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile/examples/Hyphens.ts +0 -0
  261. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile/examples/UiBehaviour.ts +0 -0
  262. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile/examples/WithVideo.ts +0 -0
  263. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile-product/examples/Default.ts +0 -0
  264. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile-product/examples/FrameworkRouting.ts +0 -0
  265. /package/{skill → skills/pds-knowledge-angular}/references/components/p-link-tile-product/p-link-tile-product.md +0 -0
  266. /package/{skill → skills/pds-knowledge-angular}/references/components/p-modal/examples/AlertDialog.ts +0 -0
  267. /package/{skill → skills/pds-knowledge-angular}/references/components/p-modal/examples/CustomStyling.ts +0 -0
  268. /package/{skill → skills/pds-knowledge-angular}/references/components/p-modal/examples/Default.ts +0 -0
  269. /package/{skill → skills/pds-knowledge-angular}/references/components/p-modal/examples/Scrollable.ts +0 -0
  270. /package/{skill → skills/pds-knowledge-angular}/references/components/p-model-signature/examples/CustomStyling.ts +0 -0
  271. /package/{skill → skills/pds-knowledge-angular}/references/components/p-model-signature/examples/Default.ts +0 -0
  272. /package/{skill → skills/pds-knowledge-angular}/references/components/p-model-signature/examples/MaskBlendMode.ts +0 -0
  273. /package/{skill → skills/pds-knowledge-angular}/references/components/p-model-signature/examples/MaskImage.ts +0 -0
  274. /package/{skill → skills/pds-knowledge-angular}/references/components/p-model-signature/examples/MaskVideo.ts +0 -0
  275. /package/{skill → skills/pds-knowledge-angular}/references/components/p-model-signature/examples/SafeZone.ts +0 -0
  276. /package/{skill → skills/pds-knowledge-angular}/references/components/p-model-signature/p-model-signature.md +0 -0
  277. /package/{skill → skills/pds-knowledge-angular}/references/components/p-multi-select/examples/Default.ts +0 -0
  278. /package/{skill → skills/pds-knowledge-angular}/references/components/p-multi-select/examples/Optgroups.ts +0 -0
  279. /package/{skill → skills/pds-knowledge-angular}/references/components/p-multi-select/examples/SetValue.ts +0 -0
  280. /package/{skill → skills/pds-knowledge-angular}/references/components/p-multi-select/examples/Slots.ts +0 -0
  281. /package/{skill → skills/pds-knowledge-angular}/references/components/p-pagination/examples/Default.ts +0 -0
  282. /package/{skill → skills/pds-knowledge-angular}/references/components/p-pin-code/examples/CopyPaste.ts +0 -0
  283. /package/{skill → skills/pds-knowledge-angular}/references/components/p-pin-code/examples/Default.ts +0 -0
  284. /package/{skill → skills/pds-knowledge-angular}/references/components/p-pin-code/examples/Slots.ts +0 -0
  285. /package/{skill → skills/pds-knowledge-angular}/references/components/p-popover/examples/Default.ts +0 -0
  286. /package/{skill → skills/pds-knowledge-angular}/references/components/p-popover/examples/SlottedButton.ts +0 -0
  287. /package/{skill → skills/pds-knowledge-angular}/references/components/p-radio-group/examples/Default.ts +0 -0
  288. /package/{skill → skills/pds-knowledge-angular}/references/components/p-radio-group/examples/Slots.ts +0 -0
  289. /package/{skill → skills/pds-knowledge-angular}/references/components/p-scroller/examples/Default.ts +0 -0
  290. /package/{skill → skills/pds-knowledge-angular}/references/components/p-scroller/examples/Height.ts +0 -0
  291. /package/{skill → skills/pds-knowledge-angular}/references/components/p-scroller/examples/ScrollToPosition.ts +0 -0
  292. /package/{skill → skills/pds-knowledge-angular}/references/components/p-segmented-control/examples/Default.ts +0 -0
  293. /package/{skill → skills/pds-knowledge-angular}/references/components/p-segmented-control/examples/Slots.ts +0 -0
  294. /package/{skill → skills/pds-knowledge-angular}/references/components/p-segmented-control/examples/WithLabels.ts +0 -0
  295. /package/{skill → skills/pds-knowledge-angular}/references/components/p-select/examples/Default.ts +0 -0
  296. /package/{skill → skills/pds-knowledge-angular}/references/components/p-select/examples/Form.ts +0 -0
  297. /package/{skill → skills/pds-knowledge-angular}/references/components/p-select/examples/Optgroups.ts +0 -0
  298. /package/{skill → skills/pds-knowledge-angular}/references/components/p-select/examples/Required.ts +0 -0
  299. /package/{skill → skills/pds-knowledge-angular}/references/components/p-select/examples/SelectedSlot.ts +0 -0
  300. /package/{skill → skills/pds-knowledge-angular}/references/components/p-select/examples/SetValue.ts +0 -0
  301. /package/{skill → skills/pds-knowledge-angular}/references/components/p-select/examples/Slots.ts +0 -0
  302. /package/{skill → skills/pds-knowledge-angular}/references/components/p-select/examples/SlottedImages.ts +0 -0
  303. /package/{skill → skills/pds-knowledge-angular}/references/components/p-sheet/examples/Default.ts +0 -0
  304. /package/{skill → skills/pds-knowledge-angular}/references/components/p-spinner/examples/Color.ts +0 -0
  305. /package/{skill → skills/pds-knowledge-angular}/references/components/p-spinner/examples/ColorCssVar.ts +0 -0
  306. /package/{skill → skills/pds-knowledge-angular}/references/components/p-spinner/examples/Default.ts +0 -0
  307. /package/{skill → skills/pds-knowledge-angular}/references/components/p-spinner/examples/ResponsiveSize.ts +0 -0
  308. /package/{skill → skills/pds-knowledge-angular}/references/components/p-spinner/examples/Size.ts +0 -0
  309. /package/{skill → skills/pds-knowledge-angular}/references/components/p-spinner/examples/SizeCssVar.ts +0 -0
  310. /package/{skill → skills/pds-knowledge-angular}/references/components/p-stepper-horizontal/examples/Default.ts +0 -0
  311. /package/{skill → skills/pds-knowledge-angular}/references/components/p-stepper-horizontal/examples/FrameworkImplementation.ts +0 -0
  312. /package/{skill → skills/pds-knowledge-angular}/references/components/p-switch/examples/Default.ts +0 -0
  313. /package/{skill → skills/pds-knowledge-angular}/references/components/p-table/examples/Advanced.ts +0 -0
  314. /package/{skill → skills/pds-knowledge-angular}/references/components/p-table/examples/CaptionProperty.ts +0 -0
  315. /package/{skill → skills/pds-knowledge-angular}/references/components/p-table/examples/CaptionSlot.ts +0 -0
  316. /package/{skill → skills/pds-knowledge-angular}/references/components/p-table/examples/Default.ts +0 -0
  317. /package/{skill → skills/pds-knowledge-angular}/references/components/p-table/examples/HideLabel.ts +0 -0
  318. /package/{skill → skills/pds-knowledge-angular}/references/components/p-table/examples/LayoutFixed.ts +0 -0
  319. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs/examples/ActiveTab.ts +0 -0
  320. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs/examples/Default.ts +0 -0
  321. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs/examples/Gradient.ts +0 -0
  322. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs/examples/Labelling.ts +0 -0
  323. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs-bar/examples/Default.ts +0 -0
  324. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs-bar/examples/Gradient.ts +0 -0
  325. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs-bar/examples/Labelling.ts +0 -0
  326. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tabs-bar/examples/Links.ts +0 -0
  327. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tag/examples/Default.ts +0 -0
  328. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tag/examples/Multiline.ts +0 -0
  329. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tag/examples/SlottedButton.ts +0 -0
  330. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tag/examples/SlottedLink.ts +0 -0
  331. /package/{skill → skills/pds-knowledge-angular}/references/components/p-tag-dismissible/examples/Default.ts +0 -0
  332. /package/{skill → skills/pds-knowledge-angular}/references/components/p-text/examples/Default.ts +0 -0
  333. /package/{skill → skills/pds-knowledge-angular}/references/components/p-text/examples/Semantics.ts +0 -0
  334. /package/{skill → skills/pds-knowledge-angular}/references/components/p-text/examples/Size.ts +0 -0
  335. /package/{skill → skills/pds-knowledge-angular}/references/components/p-text/examples/SizeResponsive.ts +0 -0
  336. /package/{skill → skills/pds-knowledge-angular}/references/components/p-text-list/examples/Default.ts +0 -0
  337. /package/{skill → skills/pds-knowledge-angular}/references/components/p-textarea/examples/Default.ts +0 -0
  338. /package/{skill → skills/pds-knowledge-angular}/references/components/p-textarea/examples/Form.ts +0 -0
  339. /package/{skill → skills/pds-knowledge-angular}/references/components/p-textarea/examples/Slots.ts +0 -0
  340. /package/{skill → skills/pds-knowledge-angular}/references/components/p-toast/examples/Default.ts +0 -0
  341. /package/{skill → skills/pds-knowledge-angular}/references/components/p-wordmark/examples/CustomClickableArea.ts +0 -0
  342. /package/{skill → skills/pds-knowledge-angular}/references/components/p-wordmark/examples/Default.ts +0 -0
  343. /package/{skill → skills/pds-knowledge-angular}/references/components/p-wordmark/examples/Size.ts +0 -0
  344. /package/{skill → skills/pds-knowledge-angular}/references/styles/emotion.md +0 -0
  345. /package/{skill → skills/pds-knowledge-angular}/references/styles/scss.md +0 -0
  346. /package/{skill → skills/pds-knowledge-angular}/references/styles/vanilla-extract.md +0 -0
  347. /package/{skill → skills/pds-knowledge-angular}/references/stylesheets.md +0 -0
  348. /package/{skill → skills/pds-knowledge-angular}/references/tokens.md +0 -0
@@ -79,6 +79,10 @@ Due to the nature of **Web Components** and **shadow DOM**, there are limitation
79
79
  | `aria-labelledby` | 🚫 |
80
80
  | `aria-describedby` | 🚫 |
81
81
 
82
+ ## Integration examples
83
+
84
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
85
+
82
86
  ## API
83
87
 
84
88
  ### Properties
@@ -0,0 +1,73 @@
1
+ # p-link accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### ARIA on component host vs aria prop
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```html
10
+ <p-link href="https://porsche.com" aria-label="Details of product XYZ">
11
+ Details
12
+ </p-link>
13
+ ```
14
+
15
+ #### ✅ Recommended
16
+
17
+ ```html
18
+ <p-link href="https://porsche.com" [aria]="{'aria-label': 'Details of product XYZ'}">
19
+ Details
20
+ </p-link>
21
+ ```
22
+
23
+ ### Icon-only link without accessible name
24
+
25
+ #### ❌ Anti-pattern
26
+
27
+ ```html
28
+ <p-link icon="arrow-right" href="https://porsche.com"></p-link>
29
+ ```
30
+
31
+ #### ✅ Recommended
32
+
33
+ ```html
34
+ <p-link icon="arrow-right" [hideLabel]="true" href="https://porsche.com">
35
+ Product details
36
+ </p-link>
37
+ ```
38
+
39
+ ### Indicating the current page
40
+
41
+ #### ❌ Anti-pattern
42
+
43
+ ```html
44
+ <p-link href="/models/911" aria-current="page">
45
+ 911
46
+ </p-link>
47
+ ```
48
+
49
+ #### ✅ Recommended
50
+
51
+ ```html
52
+ <p-link href="/models/911" [aria]="{'aria-current': 'page'}">
53
+ 911 Carrera
54
+ </p-link>
55
+ ```
56
+
57
+ ### Vague link label without context
58
+
59
+ #### ❌ Anti-pattern
60
+
61
+ ```html
62
+ <p-link href="https://porsche.com">
63
+ Show
64
+ </p-link>
65
+ ```
66
+
67
+ #### ✅ Recommended
68
+
69
+ ```html
70
+ <p-link href="https://porsche.com" [aria]="{'aria-label': 'Show details of product XYZ'}">
71
+ Show details
72
+ </p-link>
73
+ ```
@@ -69,6 +69,10 @@ If the text of a link does not clearly indicate what the link's target is, add a
69
69
  - **Don't** add native `aria-*` attributes directly on the component host.
70
70
  - **Don't** rely on short generic link labels like "Show" or "Add" without context.
71
71
 
72
+ ## Integration examples
73
+
74
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
75
+
72
76
  ## API
73
77
 
74
78
  ### Properties
@@ -80,7 +84,7 @@ If the text of a link does not clearly indicate what the link's target is, add a
80
84
  | `download` | `string` | `undefined` | Sets the native `download` attribute to trigger a file download. Only applies when `href` is set. |
81
85
  | `hideLabel` | `boolean`<br>`BreakpointCustomizable<boolean>` | `false` | Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values. |
82
86
  | `href` | `string` | `undefined` | When set, the component renders as an anchor navigating to this URL. Otherwise, provide a slotted anchor element. |
83
- | `icon` | `'none'`<br>one of 290 icon names — see [icon names](references/icons.md) | `'none'` | Sets the icon displayed next to the link label. Use `none` to show no icon. |
87
+ | `icon` | `'none'`<br>one of 293 icon names — see [icon names](references/icons.md) | `'none'` | Sets the icon displayed next to the link label. Use `none` to show no icon. |
84
88
  | `iconSource` | `string` | `undefined` | Sets a path to a custom SVG icon, used instead of the built-in icon set. |
85
89
  | `rel` | `string` | `undefined` | Sets the `rel` attribute on the link (e.g. `noopener`). Only applies when `href` is set. |
86
90
  | `target` | `'_self'` `'_blank'` `'_parent'` `'_top'` `'string'` | `'_self'` | Specifies where to open the linked URL (e.g. `_self`, `_blank`). Only applies when `href` is set. |
@@ -0,0 +1,73 @@
1
+ # p-link-pure accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### ARIA on component host vs aria prop
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```html
10
+ <p-link-pure href="https://porsche.com" aria-label="Details of product XYZ">
11
+ Details
12
+ </p-link-pure>
13
+ ```
14
+
15
+ #### ✅ Recommended
16
+
17
+ ```html
18
+ <p-link-pure href="https://porsche.com" [aria]="{'aria-label': 'Details of product XYZ'}">
19
+ Details
20
+ </p-link-pure>
21
+ ```
22
+
23
+ ### Icon-only link without accessible name
24
+
25
+ #### ❌ Anti-pattern
26
+
27
+ ```html
28
+ <p-link-pure icon="arrow-right" href="https://porsche.com"></p-link-pure>
29
+ ```
30
+
31
+ #### ✅ Recommended
32
+
33
+ ```html
34
+ <p-link-pure icon="arrow-right" [hideLabel]="true" href="https://porsche.com">
35
+ Product details
36
+ </p-link-pure>
37
+ ```
38
+
39
+ ### Indicating the current page
40
+
41
+ #### ❌ Anti-pattern
42
+
43
+ ```html
44
+ <p-link-pure href="/models/911" aria-current="page">
45
+ 911
46
+ </p-link-pure>
47
+ ```
48
+
49
+ #### ✅ Recommended
50
+
51
+ ```html
52
+ <p-link-pure href="/models/911" [aria]="{'aria-current': 'page'}">
53
+ 911 Carrera
54
+ </p-link-pure>
55
+ ```
56
+
57
+ ### Vague link label without context
58
+
59
+ #### ❌ Anti-pattern
60
+
61
+ ```html
62
+ <p-link-pure href="https://porsche.com">
63
+ Show
64
+ </p-link-pure>
65
+ ```
66
+
67
+ #### ✅ Recommended
68
+
69
+ ```html
70
+ <p-link-pure href="https://porsche.com" [aria]="{'aria-label': 'Show details of product XYZ'}">
71
+ Show details
72
+ </p-link-pure>
73
+ ```
@@ -72,6 +72,10 @@ If the text of a link does not clearly indicate what the link's target is, add a
72
72
  - **Don't** add native `aria-*` attributes directly on the component host.
73
73
  - **Don't** rely on short generic link labels like "Show" or "Add" without context.
74
74
 
75
+ ## Integration examples
76
+
77
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
78
+
75
79
  ## API
76
80
 
77
81
  ### Properties
@@ -85,7 +89,7 @@ If the text of a link does not clearly indicate what the link's target is, add a
85
89
  | `download` | `string` | `undefined` | Sets the native `download` attribute to trigger a file download. Only applies when `href` is set. |
86
90
  | `hideLabel` | `boolean`<br>`BreakpointCustomizable<boolean>` | `false` | Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values. |
87
91
  | `href` | `string` | `undefined` | When set, the component renders as an anchor navigating to this URL. Otherwise, provide a slotted anchor element. |
88
- | `icon` | `''`<br>one of 290 icon names — see [icon names](references/icons.md) | `'arrow-right'` | Sets the icon displayed next to the label. |
92
+ | `icon` | `''`<br>one of 293 icon names — see [icon names](references/icons.md) | `'arrow-right'` | Sets the icon displayed next to the label. |
89
93
  | `iconSource` | `string` | `undefined` | Sets a path to a custom SVG icon, used instead of the built-in icon set. |
90
94
  | `rel` | `string` | `undefined` | Sets the `rel` attribute on the link (e.g. `noopener`). Only applies when `href` is set. |
91
95
  | `size` | `'2xs'` `'xs'` `'sm'` `'md'` `'lg'` `'xl'` `'2xl'` `'3xl'` `'4xl'` `'5xl'` `'inherit'`<br>_deprecated:_ `'xx-small'` `'x-small'` `'small'` `'medium'` `'large'` `'x-large'`<br>`BreakpointCustomizable<LinkPureSize>` | `'sm'` | Sets the font size of the link label. Supports responsive breakpoint values. |
@@ -0,0 +1,31 @@
1
+ # p-link-tile accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### ARIA on component host vs aria prop
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```html
10
+ <p-link-tile label="Details" href="#" aria-label="Details of Porsche Taycan"></p-link-tile>
11
+ ```
12
+
13
+ #### ✅ Recommended
14
+
15
+ ```html
16
+ <p-link-tile label="Details" href="#" [aria]="{'aria-label': 'Details of Porsche Taycan'}"></p-link-tile>
17
+ ```
18
+
19
+ ### Vague link label without context
20
+
21
+ #### ❌ Anti-pattern
22
+
23
+ ```html
24
+ <p-link-tile label="Details" href="#"></p-link-tile>
25
+ ```
26
+
27
+ #### ✅ Recommended
28
+
29
+ ```html
30
+ <p-link-tile label="Porsche Taycan details" href="#"></p-link-tile>
31
+ ```
@@ -65,6 +65,10 @@ If the text of a link does not clearly indicate what the link's target is, add a
65
65
  - **Do** add `aria-label` on slotted `<video>` elements used as backgrounds.
66
66
  - **Don't** add native `aria-*` attributes directly on the component host.
67
67
 
68
+ ## Integration examples
69
+
70
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
71
+
68
72
  ## API
69
73
 
70
74
  ### Properties
@@ -0,0 +1,80 @@
1
+ # p-modal accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### ARIA on component host vs aria prop
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```html
10
+ <p-button aria-haspopup="dialog">
11
+ Details of product XYZ
12
+ </p-button>
13
+ ```
14
+
15
+ #### ✅ Recommended
16
+
17
+ ```html
18
+ <p-button [aria]="{'aria-haspopup': 'dialog'}">
19
+ Details of product XYZ
20
+ </p-button>
21
+ ```
22
+
23
+ ### Dialog label on component host vs header slot
24
+
25
+ #### ❌ Anti-pattern
26
+
27
+ ```html
28
+ <p-modal aria-label="Details">
29
+ ...
30
+ </p-modal>
31
+ ```
32
+
33
+ #### ✅ Recommended
34
+
35
+ ```html
36
+ <p-modal>
37
+ <p-heading slot="header" tag="h2" size="lg">
38
+ Details of product XYZ
39
+ </p-heading>
40
+ ...
41
+ </p-modal>
42
+
43
+ <!-- or with aria prop when no visible header is shown -->
44
+
45
+ <p-modal [aria]="{'aria-label': 'Details of product XYZ'}">
46
+ ...
47
+ </p-modal>
48
+ ```
49
+
50
+ ### Modal trigger without popup semantics or context
51
+
52
+ #### ❌ Anti-pattern
53
+
54
+ ```html
55
+ <p-button>
56
+ Open
57
+ </p-button>
58
+
59
+ <p-modal>
60
+ <p-heading slot="header" tag="h2" size="lg">
61
+ Details
62
+ </p-heading>
63
+ ...
64
+ </p-modal>
65
+ ```
66
+
67
+ #### ✅ Recommended
68
+
69
+ ```html
70
+ <p-button [aria]="{'aria-haspopup': 'dialog'}">
71
+ Details of product XYZ
72
+ </p-button>
73
+
74
+ <p-modal>
75
+ <p-heading slot="header" tag="h2" size="lg">
76
+ Details of product XYZ
77
+ </p-heading>
78
+ ...
79
+ </p-modal>
80
+ ```
@@ -80,6 +80,10 @@ To inform users that the trigger button opens a `dialog`, the `aria-haspopup` at
80
80
  - **Don't** add raw host-level ARIA attributes as a workaround.
81
81
  - **Don't** use unclear trigger copy like "Open" when the destination is not obvious.
82
82
 
83
+ ## Integration examples
84
+
85
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
86
+
83
87
  ## API
84
88
 
85
89
  ### Properties
@@ -0,0 +1,78 @@
1
+ # p-multi-select accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Prompt option used instead of a label
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```html
10
+ <p-multi-select name="features">
11
+ <p-multi-select-option value="">
12
+ Select features
13
+ </p-multi-select-option>
14
+ <p-multi-select-option value="sport">
15
+ Sport Chrono Package
16
+ </p-multi-select-option>
17
+ </p-multi-select>
18
+ ```
19
+
20
+ #### ✅ Recommended
21
+
22
+ ```html
23
+ <p-multi-select label="Optional features" name="features" description="Select all features for your configuration.">
24
+ <p-multi-select-option value="sport">
25
+ Sport Chrono Package
26
+ </p-multi-select-option>
27
+ <p-multi-select-option value="audio">
28
+ BOSE Surround Sound
29
+ </p-multi-select-option>
30
+ </p-multi-select>
31
+ ```
32
+
33
+ ### Hidden label without accessible name
34
+
35
+ #### ❌ Anti-pattern
36
+
37
+ ```html
38
+ <p-multi-select name="features" [hideLabel]="true">
39
+ <p-multi-select-option value="sport">
40
+ Sport Chrono Package
41
+ </p-multi-select-option>
42
+ </p-multi-select>
43
+ ```
44
+
45
+ #### ✅ Recommended
46
+
47
+ ```html
48
+ <p-multi-select label="Optional features" name="features" [hideLabel]="true">
49
+ <p-multi-select-option value="sport">
50
+ Sport Chrono Package
51
+ </p-multi-select-option>
52
+ </p-multi-select>
53
+ ```
54
+
55
+ ### Validation feedback via state and message API
56
+
57
+ #### ❌ Anti-pattern
58
+
59
+ ```html
60
+ <p-multi-select label="Optional features" name="features" [aria-invalid]="true" message="Required">
61
+ <p-multi-select-option value="sport">
62
+ Sport Chrono Package
63
+ </p-multi-select-option>
64
+ </p-multi-select>
65
+ ```
66
+
67
+ #### ✅ Recommended
68
+
69
+ ```html
70
+ <p-multi-select label="Optional features" name="features" [required]="true" state="error" message="Select at least one feature to continue.">
71
+ <p-multi-select-option value="sport">
72
+ Sport Chrono Package
73
+ </p-multi-select-option>
74
+ <p-multi-select-option value="audio">
75
+ BOSE Surround Sound
76
+ </p-multi-select-option>
77
+ </p-multi-select>
78
+ ```
@@ -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-multi-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
  }
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
3
- import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
2
+ import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { type PMultiSelectProps, PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
4
4
 
5
5
  @Component({
6
6
  selector: 'porsche-design-system-app',
@@ -27,7 +27,7 @@ import { PorscheDesignSystemModule } from '@porsche-design-system/components-ang
27
27
  })
28
28
  export class ExampleComponent {
29
29
  form = new FormGroup({
30
- myMultiSelect: new FormControl<string[]>([]),
30
+ myMultiSelect: new FormControl<PMultiSelectProps['value']>([]),
31
31
  });
32
32
 
33
33
  submittedValue: any = undefined;
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import {
3
3
  type MultiSelectChangeEventDetail,
4
- PMultiSelect,
4
+ type PMultiSelectProps,
5
5
  PorscheDesignSystemModule,
6
6
  } from '@porsche-design-system/components-angular';
7
7
 
@@ -87,7 +87,7 @@ const optionsData: Option[] = [
87
87
  imports: [PorscheDesignSystemModule],
88
88
  })
89
89
  export class ExampleComponent {
90
- value: PMultiSelect['value'] = [];
90
+ value: PMultiSelectProps['value'] = [];
91
91
  options: Option[] = optionsData;
92
92
  selectedOptions: Option[] = [];
93
93
 
@@ -4,7 +4,7 @@ The `p-multi-select` component is a versatile custom form element that facilitat
4
4
 
5
5
  Many of the properties closely resemble those found in the [select](../p-select/p-select.md) and other form components (e.g. `label`, `description`, `state`, `message`, `hideLabel`, `disabled`, `required` & `dropdownDirection`). The `p-multi-select` offers a search field by default. When the user types in a search string, the options are reduced by matching the options text.
6
6
 
7
- Options are slotted using the `p-multi-select-option` component. Each option needs to have an assigned value, which can be passed via an attribute or property and needs to be of type string. Initial selection states can only be achieved using the value property on the `p-multi-select` component ([More Info](./p-multi-select.md)). Options don't have a selected attribute or property. If an option should be visible but not selectable, it can be disabled by using the `disabled` attribute.
7
+ Options are slotted using the `p-multi-select-option` component. Each option needs to have an assigned value, which can be passed via an attribute or property and needs to be a string or number. `null` and `undefined` are not valid option values. Initial selection states can only be achieved using the value property on the `p-multi-select` component ([More Info](./p-multi-select.md)). Options don't have a selected attribute or property. If an option should be visible but not selectable, it can be disabled by using the `disabled` attribute.
8
8
 
9
9
  **Hint:** The `p-multi-select` utilizes the [Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API) to render its dropdown on the `#top-layer` which enables it to be shown correctly even when used e.g. within a scroll container.
10
10
 
@@ -85,6 +85,10 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
85
85
  - **Don't** use a prompt option or adjacent text as a substitute for a field label.
86
86
  - **Don't** use `hide-label` without an accessible name.
87
87
 
88
+ ## Integration examples
89
+
90
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
91
+
88
92
  ## API
89
93
 
90
94
  ### Properties
@@ -142,7 +146,7 @@ Allowed parents: `p-multi-select`, `p-optgroup`.
142
146
  | Property | Type | Default | Description |
143
147
  | --- | --- | --- | --- |
144
148
  | `disabled` | `boolean` | `false` | Disables the option, preventing it from being selected. |
145
- | `value` _(required)_ | `string | number` | `undefined` | Sets the value submitted with the form data when this option is selected in the parent multi-select. |
149
+ | `value` _(required)_ | `string | number` | `undefined` | Sets the required option value submitted with the form data when selected. Must be a string or number. |
146
150
 
147
151
  #### Slots
148
152
 
@@ -0,0 +1,23 @@
1
+ # p-pagination accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Default English labels on a localized page
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```html
10
+ <html lang="de_DE">
11
+ ...
12
+ <p-pagination [totalItemsCount]="120" [itemsPerPage]="10" [activePage]="1"></p-pagination>
13
+ </html>
14
+ ```
15
+
16
+ #### ✅ Recommended
17
+
18
+ ```html
19
+ <html lang="de_DE">
20
+ ...
21
+ <p-pagination [totalItemsCount]="120" [itemsPerPage]="10" [activePage]="1" [intl]="{'root': 'Seitennavigation', 'prev': 'Vorherige Seite', 'next': 'Nächste Seite', 'page': 'Seite'}"></p-pagination>
22
+ </html>
23
+ ```
@@ -54,6 +54,10 @@ To adapt the pagination to the specific viewport context, the amount of displaye
54
54
  - **Do** keep prev/next and page button labels specific enough to identify the pagination control.
55
55
  - **Don't** rely on default English `intl` strings on localized pages.
56
56
 
57
+ ## Integration examples
58
+
59
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
60
+
57
61
  ## API
58
62
 
59
63
  ### Properties
@@ -0,0 +1,45 @@
1
+ # p-pin-code accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Missing field label
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```html
10
+ <p-pin-code name="verification" [length]="6"></p-pin-code>
11
+ ```
12
+
13
+ #### ✅ Recommended
14
+
15
+ ```html
16
+ <p-pin-code name="verification" [length]="6" label="Verification code" description="Enter the 6-digit code from your email."></p-pin-code>
17
+ ```
18
+
19
+ ### Hidden label without accessible name
20
+
21
+ #### ❌ Anti-pattern
22
+
23
+ ```html
24
+ <p-pin-code name="verification" [length]="6" [hideLabel]="true"></p-pin-code>
25
+ ```
26
+
27
+ #### ✅ Recommended
28
+
29
+ ```html
30
+ <p-pin-code name="verification" [length]="6" [hideLabel]="true" label="Verification code"></p-pin-code>
31
+ ```
32
+
33
+ ### Validation feedback via state and message API
34
+
35
+ #### ❌ Anti-pattern
36
+
37
+ ```html
38
+ <p-pin-code name="verification" label="Verification code" [aria-invalid]="true" message="Invalid"></p-pin-code>
39
+ ```
40
+
41
+ #### ✅ Recommended
42
+
43
+ ```html
44
+ <p-pin-code name="verification" [length]="6" label="Verification code" state="error" message="Enter the complete 6-digit verification code."></p-pin-code>
45
+ ```
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
- import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+ import { PorscheDesignSystemModule, PPinCodeProps } from '@porsche-design-system/components-angular';
4
4
 
5
5
  @Component({
6
6
  selector: 'porsche-design-system-app',
@@ -20,7 +20,7 @@ import { PorscheDesignSystemModule } from '@porsche-design-system/components-ang
20
20
  })
21
21
  export class ExampleComponent {
22
22
  form = new FormGroup({
23
- myPinCode: new FormControl<string>(''),
23
+ myPinCode: new FormControl<PPinCodeProps['value']>(''),
24
24
  });
25
25
 
26
26
  submittedValue: any = undefined;