@porsche-design-system/components-angular 4.5.0 → 4.6.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/ag-grid/package.json +6 -0
  3. package/bin/pds-skill.js +346 -0
  4. package/emotion/package.json +6 -0
  5. package/fesm2022/porsche-design-system-components-angular.mjs +232 -232
  6. package/fesm2022/porsche-design-system-components-angular.mjs.map +1 -1
  7. package/jsdom-polyfill/package.json +5 -0
  8. package/meta/package.json +6 -0
  9. package/package.json +5 -2
  10. package/partials/package.json +6 -0
  11. package/skills/pds-knowledge-angular/SKILL.md +124 -0
  12. package/skills/pds-knowledge-angular/references/components/p-accordion/accessibility.md +63 -0
  13. package/skills/pds-knowledge-angular/references/components/p-accordion/examples/Default.ts +26 -0
  14. package/skills/pds-knowledge-angular/references/components/p-accordion/examples/InteractiveElementsInSummary.ts +30 -0
  15. package/skills/pds-knowledge-angular/references/components/p-accordion/examples/StickySummary.ts +26 -0
  16. package/skills/pds-knowledge-angular/references/components/p-accordion/p-accordion.md +99 -0
  17. package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/Default.ts +13 -0
  18. package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinCheckbox.ts +33 -0
  19. package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinFormLabel.ts +40 -0
  20. package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinImage.ts +16 -0
  21. package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinInputSearch.ts +15 -0
  22. package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinRadioGroup.ts +32 -0
  23. package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinTable.ts +94 -0
  24. package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinText.ts +17 -0
  25. package/skills/pds-knowledge-angular/references/components/p-ai-tag/p-ai-tag.md +47 -0
  26. package/skills/pds-knowledge-angular/references/components/p-banner/accessibility.md +35 -0
  27. package/skills/pds-knowledge-angular/references/components/p-banner/examples/Customization.ts +37 -0
  28. package/skills/pds-knowledge-angular/references/components/p-banner/examples/Default.ts +26 -0
  29. package/skills/pds-knowledge-angular/references/components/p-banner/p-banner.md +96 -0
  30. package/skills/pds-knowledge-angular/references/components/p-button/accessibility.md +61 -0
  31. package/skills/pds-knowledge-angular/references/components/p-button/examples/Default.ts +15 -0
  32. package/skills/pds-knowledge-angular/references/components/p-button/examples/Form.ts +26 -0
  33. package/skills/pds-knowledge-angular/references/components/p-button/examples/FormAttribute.ts +30 -0
  34. package/skills/pds-knowledge-angular/references/components/p-button/p-button.md +122 -0
  35. package/skills/pds-knowledge-angular/references/components/p-button-pure/accessibility.md +61 -0
  36. package/skills/pds-knowledge-angular/references/components/p-button-pure/examples/CustomClickableArea.ts +15 -0
  37. package/skills/pds-knowledge-angular/references/components/p-button-pure/examples/Default.ts +15 -0
  38. package/skills/pds-knowledge-angular/references/components/p-button-pure/examples/Form.ts +26 -0
  39. package/skills/pds-knowledge-angular/references/components/p-button-pure/examples/FormAttribute.ts +30 -0
  40. package/skills/pds-knowledge-angular/references/components/p-button-pure/p-button-pure.md +122 -0
  41. package/skills/pds-knowledge-angular/references/components/p-button-tile/accessibility.md +31 -0
  42. package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/ColorScheme.ts +18 -0
  43. package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/Default.ts +21 -0
  44. package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/FooterSlot.ts +32 -0
  45. package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/Hyphens.ts +38 -0
  46. package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/UiBehaviour.ts +44 -0
  47. package/skills/pds-knowledge-angular/references/components/p-button-tile/p-button-tile.md +119 -0
  48. package/skills/pds-knowledge-angular/references/components/p-canvas/examples/Default.ts +105 -0
  49. package/skills/pds-knowledge-angular/references/components/p-canvas/p-canvas.md +95 -0
  50. package/skills/pds-knowledge-angular/references/components/p-carousel/accessibility.md +61 -0
  51. package/skills/pds-knowledge-angular/references/components/p-carousel/examples/Default.ts +26 -0
  52. package/skills/pds-knowledge-angular/references/components/p-carousel/examples/DynamicSlides.ts +37 -0
  53. package/skills/pds-knowledge-angular/references/components/p-carousel/examples/FlexibleWidths.ts +32 -0
  54. package/skills/pds-knowledge-angular/references/components/p-carousel/examples/FocusOnCenterSlide.ts +65 -0
  55. package/skills/pds-knowledge-angular/references/components/p-carousel/examples/Intl.ts +23 -0
  56. package/skills/pds-knowledge-angular/references/components/p-carousel/examples/JumpToSlide.ts +50 -0
  57. package/skills/pds-knowledge-angular/references/components/p-carousel/p-carousel.md +146 -0
  58. package/skills/pds-knowledge-angular/references/components/p-checkbox/accessibility.md +31 -0
  59. package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/Default.ts +13 -0
  60. package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/Form.ts +31 -0
  61. package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/Indeterminate.ts +16 -0
  62. package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/Slots.ts +57 -0
  63. package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/WrappedLabel.ts +27 -0
  64. package/skills/pds-knowledge-angular/references/components/p-checkbox/p-checkbox.md +126 -0
  65. package/skills/pds-knowledge-angular/references/components/p-crest/accessibility.md +17 -0
  66. package/skills/pds-knowledge-angular/references/components/p-crest/examples/CustomClickableArea.ts +13 -0
  67. package/skills/pds-knowledge-angular/references/components/p-crest/examples/Default.ts +13 -0
  68. package/skills/pds-knowledge-angular/references/components/p-crest/examples/Link.ts +13 -0
  69. package/skills/pds-knowledge-angular/references/components/p-crest/p-crest.md +69 -0
  70. package/skills/pds-knowledge-angular/references/components/p-display/examples/Color.ts +15 -0
  71. package/skills/pds-knowledge-angular/references/components/p-display/examples/Default.ts +15 -0
  72. package/skills/pds-knowledge-angular/references/components/p-display/examples/Semantics.ts +21 -0
  73. package/skills/pds-knowledge-angular/references/components/p-display/examples/Size.ts +15 -0
  74. package/skills/pds-knowledge-angular/references/components/p-display/examples/SizeResponsive.ts +15 -0
  75. package/skills/pds-knowledge-angular/references/components/p-display/p-display.md +78 -0
  76. package/skills/pds-knowledge-angular/references/components/p-divider/accessibility.md +41 -0
  77. package/skills/pds-knowledge-angular/references/components/p-divider/examples/Default.ts +13 -0
  78. package/skills/pds-knowledge-angular/references/components/p-divider/examples/Responsive.ts +15 -0
  79. package/skills/pds-knowledge-angular/references/components/p-divider/examples/Vertical.ts +15 -0
  80. package/skills/pds-knowledge-angular/references/components/p-divider/p-divider.md +53 -0
  81. package/skills/pds-knowledge-angular/references/components/p-drilldown/accessibility.md +65 -0
  82. package/skills/pds-knowledge-angular/references/components/p-drilldown/examples/CustomContent.ts +166 -0
  83. package/skills/pds-knowledge-angular/references/components/p-drilldown/examples/Default.ts +119 -0
  84. package/skills/pds-knowledge-angular/references/components/p-drilldown/p-drilldown.md +172 -0
  85. package/skills/pds-knowledge-angular/references/components/p-fieldset/accessibility.md +37 -0
  86. package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/Default.ts +15 -0
  87. package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/Required.ts +16 -0
  88. package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/SlottedLabel.ts +18 -0
  89. package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/SlottedMessage.ts +18 -0
  90. package/skills/pds-knowledge-angular/references/components/p-fieldset/p-fieldset.md +92 -0
  91. package/skills/pds-knowledge-angular/references/components/p-flag/accessibility.md +39 -0
  92. package/skills/pds-knowledge-angular/references/components/p-flag/examples/Default.ts +13 -0
  93. package/skills/pds-knowledge-angular/references/components/p-flag/examples/ResponsiveSize.ts +13 -0
  94. package/skills/pds-knowledge-angular/references/components/p-flag/examples/Size.ts +16 -0
  95. package/skills/pds-knowledge-angular/references/components/p-flag/examples/SizeCssVar.ts +13 -0
  96. package/skills/pds-knowledge-angular/references/components/p-flag/p-flag.md +72 -0
  97. package/skills/pds-knowledge-angular/references/components/p-flyout/accessibility.md +80 -0
  98. package/skills/pds-knowledge-angular/references/components/p-flyout/examples/CustomStyling.ts +47 -0
  99. package/skills/pds-knowledge-angular/references/components/p-flyout/examples/Default.ts +44 -0
  100. package/skills/pds-knowledge-angular/references/components/p-flyout/examples/Form.ts +47 -0
  101. package/skills/pds-knowledge-angular/references/components/p-flyout/examples/StickyTop.ts +44 -0
  102. package/skills/pds-knowledge-angular/references/components/p-flyout/p-flyout.md +132 -0
  103. package/skills/pds-knowledge-angular/references/components/p-heading/accessibility.md +29 -0
  104. package/skills/pds-knowledge-angular/references/components/p-heading/examples/Color.ts +15 -0
  105. package/skills/pds-knowledge-angular/references/components/p-heading/examples/Default.ts +15 -0
  106. package/skills/pds-knowledge-angular/references/components/p-heading/examples/Semantics.ts +21 -0
  107. package/skills/pds-knowledge-angular/references/components/p-heading/p-heading.md +82 -0
  108. package/skills/pds-knowledge-angular/references/components/p-icon/accessibility.md +39 -0
  109. package/skills/pds-knowledge-angular/references/components/p-icon/examples/Color.ts +16 -0
  110. package/skills/pds-knowledge-angular/references/components/p-icon/examples/ColorCssVar.ts +13 -0
  111. package/skills/pds-knowledge-angular/references/components/p-icon/examples/Custom.ts +13 -0
  112. package/skills/pds-knowledge-angular/references/components/p-icon/examples/Default.ts +13 -0
  113. package/skills/pds-knowledge-angular/references/components/p-icon/examples/Overview.ts +591 -0
  114. package/skills/pds-knowledge-angular/references/components/p-icon/examples/ResponsiveSize.ts +13 -0
  115. package/skills/pds-knowledge-angular/references/components/p-icon/examples/Size.ts +16 -0
  116. package/skills/pds-knowledge-angular/references/components/p-icon/examples/SizeCssVar.ts +13 -0
  117. package/skills/pds-knowledge-angular/references/components/p-icon/p-icon.md +92 -0
  118. package/skills/pds-knowledge-angular/references/components/p-inline-notification/accessibility.md +38 -0
  119. package/skills/pds-knowledge-angular/references/components/p-inline-notification/examples/ActionButton.ts +29 -0
  120. package/skills/pds-knowledge-angular/references/components/p-inline-notification/examples/Default.ts +13 -0
  121. package/skills/pds-knowledge-angular/references/components/p-inline-notification/examples/EventHandling.ts +31 -0
  122. package/skills/pds-knowledge-angular/references/components/p-inline-notification/p-inline-notification.md +78 -0
  123. package/skills/pds-knowledge-angular/references/components/p-input-date/accessibility.md +45 -0
  124. package/skills/pds-knowledge-angular/references/components/p-input-date/examples/Default.ts +13 -0
  125. package/skills/pds-knowledge-angular/references/components/p-input-date/examples/Form.ts +31 -0
  126. package/skills/pds-knowledge-angular/references/components/p-input-date/examples/Slots.ts +44 -0
  127. package/skills/pds-knowledge-angular/references/components/p-input-date/p-input-date.md +142 -0
  128. package/skills/pds-knowledge-angular/references/components/p-input-email/accessibility.md +45 -0
  129. package/skills/pds-knowledge-angular/references/components/p-input-email/examples/Default.ts +13 -0
  130. package/skills/pds-knowledge-angular/references/components/p-input-email/examples/Form.ts +31 -0
  131. package/skills/pds-knowledge-angular/references/components/p-input-email/examples/Slots.ts +44 -0
  132. package/skills/pds-knowledge-angular/references/components/p-input-email/p-input-email.md +146 -0
  133. package/skills/pds-knowledge-angular/references/components/p-input-month/accessibility.md +45 -0
  134. package/skills/pds-knowledge-angular/references/components/p-input-month/examples/Default.ts +13 -0
  135. package/skills/pds-knowledge-angular/references/components/p-input-month/examples/Form.ts +31 -0
  136. package/skills/pds-knowledge-angular/references/components/p-input-month/examples/Slots.ts +44 -0
  137. package/skills/pds-knowledge-angular/references/components/p-input-month/p-input-month.md +142 -0
  138. package/skills/pds-knowledge-angular/references/components/p-input-number/accessibility.md +45 -0
  139. package/skills/pds-knowledge-angular/references/components/p-input-number/examples/Default.ts +13 -0
  140. package/skills/pds-knowledge-angular/references/components/p-input-number/examples/Form.ts +31 -0
  141. package/skills/pds-knowledge-angular/references/components/p-input-number/examples/Slots.ts +44 -0
  142. package/skills/pds-knowledge-angular/references/components/p-input-number/p-input-number.md +150 -0
  143. package/skills/pds-knowledge-angular/references/components/p-input-password/accessibility.md +45 -0
  144. package/skills/pds-knowledge-angular/references/components/p-input-password/examples/Default.ts +13 -0
  145. package/skills/pds-knowledge-angular/references/components/p-input-password/examples/Form.ts +31 -0
  146. package/skills/pds-knowledge-angular/references/components/p-input-password/examples/Slots.ts +42 -0
  147. package/skills/pds-knowledge-angular/references/components/p-input-password/examples/Toggle.ts +13 -0
  148. package/skills/pds-knowledge-angular/references/components/p-input-password/p-input-password.md +145 -0
  149. package/skills/pds-knowledge-angular/references/components/p-input-search/accessibility.md +59 -0
  150. package/skills/pds-knowledge-angular/references/components/p-input-search/examples/AriaCombobox.ts +38 -0
  151. package/skills/pds-knowledge-angular/references/components/p-input-search/examples/Default.ts +13 -0
  152. package/skills/pds-knowledge-angular/references/components/p-input-search/examples/Form.ts +31 -0
  153. package/skills/pds-knowledge-angular/references/components/p-input-search/examples/Slots.ts +44 -0
  154. package/skills/pds-knowledge-angular/references/components/p-input-search/p-input-search.md +182 -0
  155. package/skills/pds-knowledge-angular/references/components/p-input-tel/accessibility.md +45 -0
  156. package/skills/pds-knowledge-angular/references/components/p-input-tel/examples/Default.ts +13 -0
  157. package/skills/pds-knowledge-angular/references/components/p-input-tel/examples/Form.ts +31 -0
  158. package/skills/pds-knowledge-angular/references/components/p-input-tel/examples/Slots.ts +44 -0
  159. package/skills/pds-knowledge-angular/references/components/p-input-tel/p-input-tel.md +145 -0
  160. package/skills/pds-knowledge-angular/references/components/p-input-text/accessibility.md +45 -0
  161. package/skills/pds-knowledge-angular/references/components/p-input-text/examples/Controlled.ts +36 -0
  162. package/skills/pds-knowledge-angular/references/components/p-input-text/examples/Default.ts +13 -0
  163. package/skills/pds-knowledge-angular/references/components/p-input-text/examples/Form.ts +31 -0
  164. package/skills/pds-knowledge-angular/references/components/p-input-text/examples/Slots.ts +44 -0
  165. package/skills/pds-knowledge-angular/references/components/p-input-text/p-input-text.md +150 -0
  166. package/skills/pds-knowledge-angular/references/components/p-input-time/accessibility.md +45 -0
  167. package/skills/pds-knowledge-angular/references/components/p-input-time/examples/Default.ts +13 -0
  168. package/skills/pds-knowledge-angular/references/components/p-input-time/examples/Form.ts +31 -0
  169. package/skills/pds-knowledge-angular/references/components/p-input-time/examples/Slots.ts +44 -0
  170. package/skills/pds-knowledge-angular/references/components/p-input-time/p-input-time.md +144 -0
  171. package/skills/pds-knowledge-angular/references/components/p-input-url/accessibility.md +45 -0
  172. package/skills/pds-knowledge-angular/references/components/p-input-url/examples/Default.ts +13 -0
  173. package/skills/pds-knowledge-angular/references/components/p-input-url/examples/Form.ts +31 -0
  174. package/skills/pds-knowledge-angular/references/components/p-input-url/examples/Slots.ts +44 -0
  175. package/skills/pds-knowledge-angular/references/components/p-input-url/p-input-url.md +145 -0
  176. package/skills/pds-knowledge-angular/references/components/p-input-week/accessibility.md +45 -0
  177. package/skills/pds-knowledge-angular/references/components/p-input-week/examples/Default.ts +13 -0
  178. package/skills/pds-knowledge-angular/references/components/p-input-week/examples/Form.ts +31 -0
  179. package/skills/pds-knowledge-angular/references/components/p-input-week/examples/Slots.ts +44 -0
  180. package/skills/pds-knowledge-angular/references/components/p-input-week/p-input-week.md +142 -0
  181. package/skills/pds-knowledge-angular/references/components/p-link/accessibility.md +73 -0
  182. package/skills/pds-knowledge-angular/references/components/p-link/examples/Default.ts +15 -0
  183. package/skills/pds-knowledge-angular/references/components/p-link/examples/FrameworkRouting.ts +17 -0
  184. package/skills/pds-knowledge-angular/references/components/p-link/examples/Icon.ts +20 -0
  185. package/skills/pds-knowledge-angular/references/components/p-link/p-link.md +105 -0
  186. package/skills/pds-knowledge-angular/references/components/p-link-pure/accessibility.md +73 -0
  187. package/skills/pds-knowledge-angular/references/components/p-link-pure/examples/CustomClickableArea.ts +15 -0
  188. package/skills/pds-knowledge-angular/references/components/p-link-pure/examples/Default.ts +15 -0
  189. package/skills/pds-knowledge-angular/references/components/p-link-pure/examples/FrameworkRouting.ts +17 -0
  190. package/skills/pds-knowledge-angular/references/components/p-link-pure/examples/Icon.ts +20 -0
  191. package/skills/pds-knowledge-angular/references/components/p-link-pure/p-link-pure.md +114 -0
  192. package/skills/pds-knowledge-angular/references/components/p-link-tile/accessibility.md +31 -0
  193. package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/ColorScheme.ts +18 -0
  194. package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/Default.ts +21 -0
  195. package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/FooterSlot.ts +32 -0
  196. package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/Hyphens.ts +39 -0
  197. package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/UiBehaviour.ts +44 -0
  198. package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/WithVideo.ts +18 -0
  199. package/skills/pds-knowledge-angular/references/components/p-link-tile/p-link-tile.md +109 -0
  200. package/skills/pds-knowledge-angular/references/components/p-link-tile-product/examples/Default.ts +24 -0
  201. package/skills/pds-knowledge-angular/references/components/p-link-tile-product/examples/FrameworkRouting.ts +27 -0
  202. package/skills/pds-knowledge-angular/references/components/p-link-tile-product/p-link-tile-product.md +93 -0
  203. package/skills/pds-knowledge-angular/references/components/p-modal/accessibility.md +80 -0
  204. package/skills/pds-knowledge-angular/references/components/p-modal/examples/AlertDialog.ts +41 -0
  205. package/skills/pds-knowledge-angular/references/components/p-modal/examples/CustomStyling.ts +28 -0
  206. package/skills/pds-knowledge-angular/references/components/p-modal/examples/Default.ts +41 -0
  207. package/skills/pds-knowledge-angular/references/components/p-modal/examples/Scrollable.ts +45 -0
  208. package/skills/pds-knowledge-angular/references/components/p-modal/p-modal.md +139 -0
  209. package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/CustomStyling.ts +17 -0
  210. package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/Default.ts +13 -0
  211. package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/MaskBlendMode.ts +35 -0
  212. package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/MaskImage.ts +15 -0
  213. package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/MaskVideo.ts +15 -0
  214. package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/SafeZone.ts +63 -0
  215. package/skills/pds-knowledge-angular/references/components/p-model-signature/p-model-signature.md +62 -0
  216. package/skills/pds-knowledge-angular/references/components/p-multi-select/accessibility.md +78 -0
  217. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/AsyncFilter.ts +149 -0
  218. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Default.ts +32 -0
  219. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Form.ts +38 -0
  220. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Optgroups.ts +45 -0
  221. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/SelectedSlot.ts +103 -0
  222. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/SetValue.ts +76 -0
  223. package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Slots.ts +51 -0
  224. package/skills/pds-knowledge-angular/references/components/p-multi-select/p-multi-select.md +201 -0
  225. package/skills/pds-knowledge-angular/references/components/p-pagination/accessibility.md +23 -0
  226. package/skills/pds-knowledge-angular/references/components/p-pagination/examples/Default.ts +13 -0
  227. package/skills/pds-knowledge-angular/references/components/p-pagination/p-pagination.md +87 -0
  228. package/skills/pds-knowledge-angular/references/components/p-pin-code/accessibility.md +45 -0
  229. package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/CopyPaste.ts +13 -0
  230. package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/Default.ts +13 -0
  231. package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/Form.ts +31 -0
  232. package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/Slots.ts +42 -0
  233. package/skills/pds-knowledge-angular/references/components/p-pin-code/p-pin-code.md +113 -0
  234. package/skills/pds-knowledge-angular/references/components/p-popover/accessibility.md +61 -0
  235. package/skills/pds-knowledge-angular/references/components/p-popover/examples/Default.ts +17 -0
  236. package/skills/pds-knowledge-angular/references/components/p-popover/examples/SlottedButton.ts +18 -0
  237. package/skills/pds-knowledge-angular/references/components/p-popover/p-popover.md +120 -0
  238. package/skills/pds-knowledge-angular/references/components/p-radio-group/accessibility.md +63 -0
  239. package/skills/pds-knowledge-angular/references/components/p-radio-group/examples/Default.ts +20 -0
  240. package/skills/pds-knowledge-angular/references/components/p-radio-group/examples/Form.ts +38 -0
  241. package/skills/pds-knowledge-angular/references/components/p-radio-group/examples/Slots.ts +72 -0
  242. package/skills/pds-knowledge-angular/references/components/p-radio-group/p-radio-group.md +161 -0
  243. package/skills/pds-knowledge-angular/references/components/p-scroller/accessibility.md +31 -0
  244. package/skills/pds-knowledge-angular/references/components/p-scroller/examples/Default.ts +54 -0
  245. package/skills/pds-knowledge-angular/references/components/p-scroller/examples/Height.ts +29 -0
  246. package/skills/pds-knowledge-angular/references/components/p-scroller/examples/ScrollToPosition.ts +43 -0
  247. package/skills/pds-knowledge-angular/references/components/p-scroller/p-scroller.md +97 -0
  248. package/skills/pds-knowledge-angular/references/components/p-segmented-control/accessibility.md +67 -0
  249. package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/Default.ts +29 -0
  250. package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/Form.ts +37 -0
  251. package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/Slots.ts +57 -0
  252. package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/WithLabels.ts +29 -0
  253. package/skills/pds-knowledge-angular/references/components/p-segmented-control/p-segmented-control.md +166 -0
  254. package/skills/pds-knowledge-angular/references/components/p-select/accessibility.md +140 -0
  255. package/skills/pds-knowledge-angular/references/components/p-select/examples/AsyncFilter.ts +149 -0
  256. package/skills/pds-knowledge-angular/references/components/p-select/examples/Default.ts +32 -0
  257. package/skills/pds-knowledge-angular/references/components/p-select/examples/Form.ts +38 -0
  258. package/skills/pds-knowledge-angular/references/components/p-select/examples/Optgroups.ts +45 -0
  259. package/skills/pds-knowledge-angular/references/components/p-select/examples/Required.ts +48 -0
  260. package/skills/pds-knowledge-angular/references/components/p-select/examples/SelectedSlot.ts +130 -0
  261. package/skills/pds-knowledge-angular/references/components/p-select/examples/SetValue.ts +71 -0
  262. package/skills/pds-knowledge-angular/references/components/p-select/examples/Slots.ts +51 -0
  263. package/skills/pds-knowledge-angular/references/components/p-select/examples/SlottedImages.ts +38 -0
  264. package/skills/pds-knowledge-angular/references/components/p-select/p-select.md +198 -0
  265. package/skills/pds-knowledge-angular/references/components/p-sheet/accessibility.md +80 -0
  266. package/skills/pds-knowledge-angular/references/components/p-sheet/examples/Default.ts +33 -0
  267. package/skills/pds-knowledge-angular/references/components/p-sheet/p-sheet.md +125 -0
  268. package/skills/pds-knowledge-angular/references/components/p-spinner/accessibility.md +33 -0
  269. package/skills/pds-knowledge-angular/references/components/p-spinner/examples/Color.ts +16 -0
  270. package/skills/pds-knowledge-angular/references/components/p-spinner/examples/ColorCssVar.ts +13 -0
  271. package/skills/pds-knowledge-angular/references/components/p-spinner/examples/Default.ts +13 -0
  272. package/skills/pds-knowledge-angular/references/components/p-spinner/examples/ResponsiveSize.ts +13 -0
  273. package/skills/pds-knowledge-angular/references/components/p-spinner/examples/Size.ts +16 -0
  274. package/skills/pds-knowledge-angular/references/components/p-spinner/examples/SizeCssVar.ts +13 -0
  275. package/skills/pds-knowledge-angular/references/components/p-spinner/p-spinner.md +100 -0
  276. package/skills/pds-knowledge-angular/references/components/p-stepper-horizontal/accessibility.md +34 -0
  277. package/skills/pds-knowledge-angular/references/components/p-stepper-horizontal/examples/Default.ts +26 -0
  278. package/skills/pds-knowledge-angular/references/components/p-stepper-horizontal/examples/FrameworkImplementation.ts +107 -0
  279. package/skills/pds-knowledge-angular/references/components/p-stepper-horizontal/p-stepper-horizontal.md +113 -0
  280. package/skills/pds-knowledge-angular/references/components/p-switch/accessibility.md +35 -0
  281. package/skills/pds-knowledge-angular/references/components/p-switch/examples/Default.ts +21 -0
  282. package/skills/pds-knowledge-angular/references/components/p-switch/p-switch.md +107 -0
  283. package/skills/pds-knowledge-angular/references/components/p-table/accessibility.md +47 -0
  284. package/skills/pds-knowledge-angular/references/components/p-table/examples/Advanced.ts +162 -0
  285. package/skills/pds-knowledge-angular/references/components/p-table/examples/CaptionProperty.ts +40 -0
  286. package/skills/pds-knowledge-angular/references/components/p-table/examples/CaptionSlot.ts +43 -0
  287. package/skills/pds-knowledge-angular/references/components/p-table/examples/Default.ts +120 -0
  288. package/skills/pds-knowledge-angular/references/components/p-table/examples/HideLabel.ts +40 -0
  289. package/skills/pds-knowledge-angular/references/components/p-table/examples/LayoutFixed.ts +53 -0
  290. package/skills/pds-knowledge-angular/references/components/p-table/examples/Sorting.ts +80 -0
  291. package/skills/pds-knowledge-angular/references/components/p-table/p-table.md +193 -0
  292. package/skills/pds-knowledge-angular/references/components/p-tabs/accessibility.md +56 -0
  293. package/skills/pds-knowledge-angular/references/components/p-tabs/examples/ActiveTab.ts +29 -0
  294. package/skills/pds-knowledge-angular/references/components/p-tabs/examples/Default.ts +29 -0
  295. package/skills/pds-knowledge-angular/references/components/p-tabs/examples/Gradient.ts +114 -0
  296. package/skills/pds-knowledge-angular/references/components/p-tabs/examples/Labelling.ts +29 -0
  297. package/skills/pds-knowledge-angular/references/components/p-tabs/p-tabs.md +140 -0
  298. package/skills/pds-knowledge-angular/references/components/p-tabs-bar/accessibility.md +61 -0
  299. package/skills/pds-knowledge-angular/references/components/p-tabs-bar/examples/Default.ts +29 -0
  300. package/skills/pds-knowledge-angular/references/components/p-tabs-bar/examples/Gradient.ts +80 -0
  301. package/skills/pds-knowledge-angular/references/components/p-tabs-bar/examples/Labelling.ts +29 -0
  302. package/skills/pds-knowledge-angular/references/components/p-tabs-bar/examples/Links.ts +23 -0
  303. package/skills/pds-knowledge-angular/references/components/p-tabs-bar/p-tabs-bar.md +185 -0
  304. package/skills/pds-knowledge-angular/references/components/p-tag/accessibility.md +19 -0
  305. package/skills/pds-knowledge-angular/references/components/p-tag/examples/Default.ts +15 -0
  306. package/skills/pds-knowledge-angular/references/components/p-tag/examples/Multiline.ts +17 -0
  307. package/skills/pds-knowledge-angular/references/components/p-tag/examples/SlottedButton.ts +44 -0
  308. package/skills/pds-knowledge-angular/references/components/p-tag/examples/SlottedLink.ts +44 -0
  309. package/skills/pds-knowledge-angular/references/components/p-tag/p-tag.md +70 -0
  310. package/skills/pds-knowledge-angular/references/components/p-tag-dismissible/accessibility.md +35 -0
  311. package/skills/pds-knowledge-angular/references/components/p-tag-dismissible/examples/Default.ts +15 -0
  312. package/skills/pds-knowledge-angular/references/components/p-tag-dismissible/p-tag-dismissible.md +79 -0
  313. package/skills/pds-knowledge-angular/references/components/p-text/accessibility.md +21 -0
  314. package/skills/pds-knowledge-angular/references/components/p-text/examples/Default.ts +15 -0
  315. package/skills/pds-knowledge-angular/references/components/p-text/examples/Semantics.ts +21 -0
  316. package/skills/pds-knowledge-angular/references/components/p-text/examples/Size.ts +15 -0
  317. package/skills/pds-knowledge-angular/references/components/p-text/examples/SizeResponsive.ts +15 -0
  318. package/skills/pds-knowledge-angular/references/components/p-text/p-text.md +72 -0
  319. package/skills/pds-knowledge-angular/references/components/p-text-list/accessibility.md +31 -0
  320. package/skills/pds-knowledge-angular/references/components/p-text-list/examples/Default.ts +31 -0
  321. package/skills/pds-knowledge-angular/references/components/p-text-list/p-text-list.md +72 -0
  322. package/skills/pds-knowledge-angular/references/components/p-textarea/accessibility.md +45 -0
  323. package/skills/pds-knowledge-angular/references/components/p-textarea/examples/Default.ts +13 -0
  324. package/skills/pds-knowledge-angular/references/components/p-textarea/examples/Form.ts +31 -0
  325. package/skills/pds-knowledge-angular/references/components/p-textarea/examples/Slots.ts +42 -0
  326. package/skills/pds-knowledge-angular/references/components/p-textarea/p-textarea.md +126 -0
  327. package/skills/pds-knowledge-angular/references/components/p-toast/examples/Default.ts +23 -0
  328. package/skills/pds-knowledge-angular/references/components/p-toast/p-toast.md +61 -0
  329. package/skills/pds-knowledge-angular/references/components/p-wordmark/accessibility.md +31 -0
  330. package/skills/pds-knowledge-angular/references/components/p-wordmark/examples/CustomClickableArea.ts +13 -0
  331. package/skills/pds-knowledge-angular/references/components/p-wordmark/examples/Default.ts +13 -0
  332. package/skills/pds-knowledge-angular/references/components/p-wordmark/examples/Size.ts +13 -0
  333. package/skills/pds-knowledge-angular/references/components/p-wordmark/p-wordmark.md +70 -0
  334. package/skills/pds-knowledge-angular/references/icons.md +5 -0
  335. package/skills/pds-knowledge-angular/references/styles/emotion.md +439 -0
  336. package/skills/pds-knowledge-angular/references/styles/scss.md +402 -0
  337. package/skills/pds-knowledge-angular/references/styles/tailwindcss.md +356 -0
  338. package/skills/pds-knowledge-angular/references/styles/vanilla-extract.md +444 -0
  339. package/skills/pds-knowledge-angular/references/stylesheets.md +331 -0
  340. package/skills/pds-knowledge-angular/references/tokens.md +323 -0
  341. package/testing/package.json +5 -0
  342. package/tokens/package.json +6 -0
  343. package/types/porsche-design-system-components-angular.d.ts +2 -2
  344. package/vanilla-extract/package.json +6 -0
@@ -0,0 +1,193 @@
1
+ # p-table
2
+
3
+ The `p-table` component displays tabular data and offers column-wise sorting options. It combines a consistent appearance together with great accessibility while not having restrictions regarding its content. Therefore, it can be used for plain text but also rich content like images, form elements and buttons.
4
+
5
+ It is a controlled component. This means it does not contain any internal state, and you got full control over its behavior.
6
+
7
+ ## Usage
8
+
9
+ ### Do:
10
+
11
+ - Use to display and compare structured data in rows and columns.
12
+ - Use as a tool to query consume and navigate to specific data.
13
+ - Use if there are at least two or more columns of data parameters.
14
+ - Ensure that the column headers are relevant to the data it represents and are succinct.
15
+ - Include rich content in the cell data to support the specific requirements of the application use cases.
16
+ - Enable sorting of columns in ascending or descending order with an arrow icon to indicate the order direction.
17
+ - Ensure that the table is responsive and stretches to the full available width.
18
+ - Include a table caption describing the contents of the table for accessibility
19
+ - Use the built-in scroller for horizontal scrolling on mobile viewports.
20
+
21
+ ### Don't:
22
+
23
+ - Don't use for non-structured data or data that can be presented in a simpler format.
24
+ - Don't overuse or clutter cell data with unnecessary content.
25
+ - Don't neglect to include a table caption for accessibility purposes.
26
+
27
+ ## Accessibility support
28
+
29
+ ### Keyboard
30
+
31
+ | Key / state | Function |
32
+ | --- | --- |
33
+ | `Tab`, `Shift-Tab` | Moves focus to the next (or previous) sort button. |
34
+ | `Enter`, `Space` | Changes sorting direction. |
35
+
36
+ ### ARIA enhancements
37
+
38
+ #### Internal **ARIA** that is managed by the component:
39
+
40
+ | ARIA | Usage |
41
+ | --- | --- |
42
+ | `aria-label="STRING"`, `aria-labelledby="IDREF"` | Captions are provided by aria labels. |
43
+ | `aria-sort="VALUE"` | Provides the sorting direction of the column header. |
44
+
45
+ ## Development considerations
46
+
47
+ ### Common do's and don'ts
48
+
49
+ - **Do** provide a `caption` or `slot="caption"` that describes the table purpose.
50
+ - **Do** keep visible header text for sortable columns.
51
+ - **Don't** use `hide-label` on a sortable column without an alternative accessible name.
52
+
53
+ ## Integration examples
54
+
55
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
56
+
57
+ ## Tests
58
+
59
+ ### Automated
60
+
61
+ | Technology | Support |
62
+ | --- | --- |
63
+ | AXE-Core (WCAG 2.2 AA, Best-Practice) | ✅ |
64
+ | High-Contrast Mode (light/dark) | ✅ |
65
+ | Text-Zoom (200%) | ✅ |
66
+
67
+ ### Manual
68
+
69
+ | Technology | Support |
70
+ | --- | --- |
71
+ | Keyboard | ✅ |
72
+ | Screen reader (VoiceOver, NVDA) | 🟠 (Partially supported, [Safari issues 1](https://adrianroselli.com/2022/07/its-mid-2022-and-browsers-mostly-safari-still-break-accessibility-via-display-properties.html), [Safari issues 2](https://adrianroselli.com/2018/02/tables-css-display-properties-and-aria.html)) |
73
+
74
+ ## API
75
+
76
+ ### Properties
77
+
78
+ | Property | Type | Default | Description |
79
+ | --- | --- | --- | --- |
80
+ | `caption` | `string` | `undefined` | Sets a screen-reader-only accessible caption that describes the table's content; it is not visible in the browser. Use an element with `slot="caption"` for a visible caption instead. |
81
+ | `compact` | `boolean` | `false` | Reduces the cell padding and spacing for a more condensed table layout in data-dense UIs. |
82
+ | `layout` | `'auto'` `'fixed'` | `'auto'` | Controls the CSS `table-layout` algorithm: `auto` sizes columns to fit their content, `fixed` distributes width equally. |
83
+ | `sticky` _(experimental)_ | `boolean` | `false` | @experimental Makes the scroll position indicator sticky at the viewport edge while scrolling, indicating overflow in the table. |
84
+
85
+ ### Events
86
+
87
+ | Event | Type | Description |
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. |
90
+
91
+ ### Slots
92
+
93
+ | Slot | Required | Allowed tag names | Description |
94
+ | --- | --- | --- | --- |
95
+ | `caption` | no | — | Shows a caption that describes the content of the table. |
96
+ | _(default)_ | no | — | Default slot for the table content. |
97
+
98
+ ### CSS Variables
99
+
100
+ | CSS Variable | Default | Description |
101
+ | --- | --- | --- |
102
+ | `--p-table-scroll-indicator-top` | `0px` | Defines the distance from the top of the viewport at which the scroll indicator sticks when scrolling down and `sticky` is enabled. |
103
+ | `--p-table-scroll-indicator-bottom` | `0px` | Defines the distance from the bottom of the viewport at which the scroll indicator sticks when scrolling up and `sticky` is enabled. |
104
+
105
+ ## Sub-components
106
+
107
+ These tags are only valid inside the parent(s) listed under each one — often this component, but some are shared and list a different parent (e.g. a tag documented here via a common ancestor). Their APIs come from the same authoritative `component-meta` as the parent above.
108
+
109
+ ### `p-table-body`
110
+
111
+ Allowed parent: `p-table`.
112
+
113
+ #### Slots
114
+
115
+ | Slot | Required | Allowed tag names | Description |
116
+ | --- | --- | --- | --- |
117
+ | _(default)_ | no | — | Default slot for the table body content. |
118
+
119
+ ### `p-table-cell`
120
+
121
+ Allowed parent: `p-table-row`.
122
+
123
+ #### Properties
124
+
125
+ | Property | Type | Default | Description |
126
+ | --- | --- | --- | --- |
127
+ | `multiline` | `boolean` | `false` | Allows slotted text to wrap onto multiple lines instead of being forced onto a single line. |
128
+
129
+ #### Slots
130
+
131
+ | Slot | Required | Allowed tag names | Description |
132
+ | --- | --- | --- | --- |
133
+ | _(default)_ | no | — | Default slot for the table cell content. |
134
+
135
+ ### `p-table-head`
136
+
137
+ Allowed parent: `p-table`.
138
+
139
+ #### Slots
140
+
141
+ | Slot | Required | Allowed tag names | Description |
142
+ | --- | --- | --- | --- |
143
+ | _(default)_ | no | — | Default slot for the table head content. |
144
+
145
+ ### `p-table-head-cell`
146
+
147
+ Allowed parents: `p-table-head-row`, `p-table-row`.
148
+
149
+ #### Properties
150
+
151
+ | Property | Type | Default | Description |
152
+ | --- | --- | --- | --- |
153
+ | `hideLabel` | `boolean` | `false` | Hides the visible column label while keeping it accessible to screen readers. Only applies when `sort` is not set. |
154
+ | `multiline` | `boolean` | `false` | Allows the column header text to wrap onto multiple lines instead of being truncated to a single line. |
155
+ | `sort` | `TableHeadCellSort` | `undefined` | Configures sorting behavior for this column by providing an `id`, `active` state, and current `direction` (`asc` or `desc`). |
156
+
157
+ #### Slots
158
+
159
+ | Slot | Required | Allowed tag names | Description |
160
+ | --- | --- | --- | --- |
161
+ | _(default)_ | no | — | Default slot for the table head cell content. |
162
+
163
+ ### `p-table-head-row`
164
+
165
+ Allowed parent: `p-table-head`.
166
+
167
+ #### Slots
168
+
169
+ | Slot | Required | Allowed tag names | Description |
170
+ | --- | --- | --- | --- |
171
+ | _(default)_ | no | — | Default slot for the table head row content. |
172
+
173
+ ### `p-table-row`
174
+
175
+ Allowed parents: `p-table-body`, `p-table-head`.
176
+
177
+ #### Slots
178
+
179
+ | Slot | Required | Allowed tag names | Description |
180
+ | --- | --- | --- | --- |
181
+ | _(default)_ | no | — | Default slot for the table row content. |
182
+
183
+ ## Examples
184
+
185
+ | Example | When to use | File |
186
+ | --- | --- | --- |
187
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
188
+ | Caption via Property | A caption that describes the content of the table is mandatory to fulfill accessibility criteria. | [./examples/CaptionProperty.ts](./examples/CaptionProperty.ts) |
189
+ | Caption via Slot | Instead of using the the property, the table's caption can be provided via the `caption` slot. | [./examples/CaptionSlot.ts](./examples/CaptionSlot.ts) |
190
+ | Layout: fixed | By setting `layout` to `fixed`, you can take full control over each column width, which would otherwise be controlled by its content. | [./examples/LayoutFixed.ts](./examples/LayoutFixed.ts) |
191
+ | Sortable Columns | Sorting is controlled, so the initial row order must match the active column's `direction` and both must remain synchronized when handling the `update` event. | [./examples/Sorting.ts](./examples/Sorting.ts) |
192
+ | Hide Column Label | Sometimes you want to hide the visible label of a `p-table-head-cell`, for example when the column's content is self-explanatory. | [./examples/HideLabel.ts](./examples/HideLabel.ts) |
193
+ | Advanced Table | The appearance of a table's contents can be customized as illustrated in the following example. | [./examples/Advanced.ts](./examples/Advanced.ts) |
@@ -0,0 +1,56 @@
1
+ # p-tabs 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-tabs aria-label="Product details">
11
+ <p-tabs-item label="Overview">
12
+ ...
13
+ </p-tabs-item>
14
+ </p-tabs>
15
+ ```
16
+
17
+ #### ✅ Recommended
18
+
19
+ ```html
20
+ <p-tabs [aria]="{'aria-label': 'Porsche 911 configuration details'}">
21
+ <p-tabs-item label="Overview">
22
+ ...
23
+ </p-tabs-item>
24
+ <p-tabs-item label="Equipment">
25
+ ...
26
+ </p-tabs-item>
27
+ </p-tabs>
28
+ ```
29
+
30
+ ### Vague tab labels without context
31
+
32
+ #### ❌ Anti-pattern
33
+
34
+ ```html
35
+ <p-tabs [aria]="{'aria-label': 'Product details'}">
36
+ <p-tabs-item label="Details">
37
+ ...
38
+ </p-tabs-item>
39
+ <p-tabs-item label="More">
40
+ ...
41
+ </p-tabs-item>
42
+ </p-tabs>
43
+ ```
44
+
45
+ #### ✅ Recommended
46
+
47
+ ```html
48
+ <p-tabs [aria]="{'aria-label': 'Porsche 911 configuration details'}">
49
+ <p-tabs-item label="Overview">
50
+ ...
51
+ </p-tabs-item>
52
+ <p-tabs-item label="Equipment and packages">
53
+ ...
54
+ </p-tabs-item>
55
+ </p-tabs>
56
+ ```
@@ -0,0 +1,29 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-tabs [activeTabIndex]="1" [aria]="{'aria-label': 'Some label for the tablist', 'aria-description': 'Some description for the tablist'}">
8
+ <p-tabs-item label="Tab One">
9
+ <p-text>
10
+ Tab Content One
11
+ </p-text>
12
+ </p-tabs-item>
13
+ <p-tabs-item label="Tab Two">
14
+ <p-text>
15
+ Tab Content Two
16
+ </p-text>
17
+ </p-tabs-item>
18
+ <p-tabs-item label="Tab Three">
19
+ <p-text>
20
+ Tab Content Three
21
+ </p-text>
22
+ </p-tabs-item>
23
+ </p-tabs>
24
+ `,
25
+ changeDetection: ChangeDetectionStrategy.OnPush,
26
+ standalone: true,
27
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
28
+ })
29
+ export class ExampleComponent {}
@@ -0,0 +1,29 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-tabs [aria]="{'aria-label': 'Some label for the tablist', 'aria-description': 'Some description for the tablist'}">
8
+ <p-tabs-item label="Tab One">
9
+ <p-text>
10
+ Tab Content One
11
+ </p-text>
12
+ </p-tabs-item>
13
+ <p-tabs-item label="Tab Two">
14
+ <p-text>
15
+ Tab Content Two
16
+ </p-text>
17
+ </p-tabs-item>
18
+ <p-tabs-item label="Tab Three">
19
+ <p-text>
20
+ Tab Content Three
21
+ </p-text>
22
+ </p-tabs-item>
23
+ </p-tabs>
24
+ `,
25
+ changeDetection: ChangeDetectionStrategy.OnPush,
26
+ standalone: true,
27
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
28
+ })
29
+ export class ExampleComponent {}
@@ -0,0 +1,114 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-tabs [aria]="{'aria-label': 'Some label for the tablist', 'aria-description': 'Some description for the tablist'}">
8
+ <p-tabs-item label="Tab 1">
9
+ <p-text>
10
+ Tab Content 1
11
+ </p-text>
12
+ </p-tabs-item>
13
+ <p-tabs-item label="Tab 2">
14
+ <p-text>
15
+ Tab Content 2
16
+ </p-text>
17
+ </p-tabs-item>
18
+ <p-tabs-item label="Tab 3">
19
+ <p-text>
20
+ Tab Content 3
21
+ </p-text>
22
+ </p-tabs-item>
23
+ <p-tabs-item label="Tab 4">
24
+ <p-text>
25
+ Tab Content 4
26
+ </p-text>
27
+ </p-tabs-item>
28
+ <p-tabs-item label="Tab 5">
29
+ <p-text>
30
+ Tab Content 5
31
+ </p-text>
32
+ </p-tabs-item>
33
+ <p-tabs-item label="Tab 6">
34
+ <p-text>
35
+ Tab Content 6
36
+ </p-text>
37
+ </p-tabs-item>
38
+ <p-tabs-item label="Tab 7">
39
+ <p-text>
40
+ Tab Content 7
41
+ </p-text>
42
+ </p-tabs-item>
43
+ <p-tabs-item label="Tab 8">
44
+ <p-text>
45
+ Tab Content 8
46
+ </p-text>
47
+ </p-tabs-item>
48
+ <p-tabs-item label="Tab 9">
49
+ <p-text>
50
+ Tab Content 9
51
+ </p-text>
52
+ </p-tabs-item>
53
+ <p-tabs-item label="Tab 10">
54
+ <p-text>
55
+ Tab Content 10
56
+ </p-text>
57
+ </p-tabs-item>
58
+ <p-tabs-item label="Tab 11">
59
+ <p-text>
60
+ Tab Content 11
61
+ </p-text>
62
+ </p-tabs-item>
63
+ <p-tabs-item label="Tab 12">
64
+ <p-text>
65
+ Tab Content 12
66
+ </p-text>
67
+ </p-tabs-item>
68
+ <p-tabs-item label="Tab 13">
69
+ <p-text>
70
+ Tab Content 13
71
+ </p-text>
72
+ </p-tabs-item>
73
+ <p-tabs-item label="Tab 14">
74
+ <p-text>
75
+ Tab Content 14
76
+ </p-text>
77
+ </p-tabs-item>
78
+ <p-tabs-item label="Tab 15">
79
+ <p-text>
80
+ Tab Content 15
81
+ </p-text>
82
+ </p-tabs-item>
83
+ <p-tabs-item label="Tab 16">
84
+ <p-text>
85
+ Tab Content 16
86
+ </p-text>
87
+ </p-tabs-item>
88
+ <p-tabs-item label="Tab 17">
89
+ <p-text>
90
+ Tab Content 17
91
+ </p-text>
92
+ </p-tabs-item>
93
+ <p-tabs-item label="Tab 18">
94
+ <p-text>
95
+ Tab Content 18
96
+ </p-text>
97
+ </p-tabs-item>
98
+ <p-tabs-item label="Tab 19">
99
+ <p-text>
100
+ Tab Content 19
101
+ </p-text>
102
+ </p-tabs-item>
103
+ <p-tabs-item label="Tab 20">
104
+ <p-text>
105
+ Tab Content 20
106
+ </p-text>
107
+ </p-tabs-item>
108
+ </p-tabs>
109
+ `,
110
+ changeDetection: ChangeDetectionStrategy.OnPush,
111
+ standalone: true,
112
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
113
+ })
114
+ export class ExampleComponent {}
@@ -0,0 +1,29 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-tabs [aria]="{'aria-label': 'Some label for the tablist', 'aria-description': 'Some description for the tablist'}">
8
+ <p-tabs-item label="Tab One">
9
+ <p-text>
10
+ Tab Content One
11
+ </p-text>
12
+ </p-tabs-item>
13
+ <p-tabs-item label="Tab Two">
14
+ <p-text>
15
+ Tab Content Two
16
+ </p-text>
17
+ </p-tabs-item>
18
+ <p-tabs-item label="Tab Three">
19
+ <p-text>
20
+ Tab Content Three
21
+ </p-text>
22
+ </p-tabs-item>
23
+ </p-tabs>
24
+ `,
25
+ changeDetection: ChangeDetectionStrategy.OnPush,
26
+ standalone: true,
27
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
28
+ })
29
+ export class ExampleComponent {}
@@ -0,0 +1,140 @@
1
+ # p-tabs
2
+
3
+ The `p-tabs` component makes it easy to explore and switch between different views. You can organize and allow navigation between groups of content that are related and at the same level of hierarchy. The component handles the display of content according to the active tab and all accessibility attributes on your tab and tab content.
4
+
5
+ This variant does not support `a` tags and should not be used for navigation. If you need to update your window location have a look at [Tabs Bar](../p-tabs-bar/p-tabs-bar.md) component.
6
+
7
+ Basic implementation shows a tab list with buttons to switch between the content. For every `p-tabs-item` inside of the `p-tabs` component, a tab will be created. The assigned `label` property defines also the name of the button.
8
+
9
+ Every `p-tabs-item` holds a `slot` to display content which can be individually assigned.
10
+
11
+ ## Usage
12
+
13
+ ### Do:
14
+
15
+ - Use when there is a large amount of content that can be separated.
16
+ - Use to make the content accessible without reloading the page or compromising on space.
17
+
18
+ ### Don't:
19
+
20
+ - Don't place more than six tabs within a group.
21
+ - Don't use more than two words for a tab label whenever possible.
22
+ - Don't use it for primary navigation.
23
+
24
+ ---
25
+
26
+ ## Related Component
27
+
28
+ - [Tabs Bar](../p-tabs-bar/p-tabs-bar.md)
29
+
30
+ ## Accessibility support
31
+
32
+ ### Keyboard
33
+
34
+ | Key / state | Function |
35
+ | --- | --- |
36
+ | `Tab` | - Moves focus to the active tab. - When the tab list contains the focus, moves focus to the next element in the tab sequence, which is the `tabpanel` element. |
37
+ | `Right Arrow`, `Left Arrow` | - Moves focus to the next tab. - Activates the newly focused tab. - If focus is on the last tab, moves focus to the first tab. |
38
+ | `Home`, `End` | - Moves focus to the first/last tab and activates it. |
39
+
40
+ ### ARIA enhancements
41
+
42
+ #### External **ARIA** provided by the `aria` property:
43
+
44
+ | ARIA | Usage |
45
+ | --- | --- |
46
+ | `aria-label="STRING"` | Defines a string value that labels the tablist. |
47
+ | `aria-description="STRING"` | Defines a string value that adds a more detailed description of the tablist. |
48
+
49
+ #### Internal **ARIA** that is managed by the component:
50
+
51
+ | ARIA | Usage |
52
+ | --- | --- |
53
+ | `role="tablist"` | Indicates that the element serves as a container for a set of tabs. |
54
+ | `role="tab"` | Indicates the button serves as a tab control. |
55
+ | `role="tabpanel"` | Indicates the `tabs-item` serves as a container for tabpanel content. |
56
+ | `aria-label="STRING"` | Adds accessible name to the `tabs-item` based on the `label` property. |
57
+ | `aria-selected="BOOLEAN"` | Indicates whether the tab is selected and whether its associated tabpanel is visible. |
58
+
59
+ ## Development considerations
60
+
61
+ ### Labelling
62
+
63
+ When multiple tab groups appear on the same page, or when the purpose of the tabs is not clear from the visible tab labels alone, provide a descriptive accessible name for the tablist using the `aria` property, e.g.: `<p-tabs aria="{ 'aria-label': 'Some label for the tablist', 'aria-description': 'Some description for the tablist' }">`.
64
+
65
+ ### Common do's and don'ts
66
+
67
+ - **Do** pass tablist ARIA through the `aria` prop when multiple tab groups appear on one page.
68
+ - **Do** use specific `label` text on each `p-tabs-item`.
69
+ - **Don't** add native `aria-*` attributes directly on the component host.
70
+ - **Don't** use vague tab labels like "Details" without context.
71
+
72
+ ## Limitations
73
+
74
+ Due to the nature of **Web Components** and **shadow DOM**, there are limitations when using some **ARIA** attributes to define relationships between elements across different shadow DOMs or shadow DOM/light DOM combinations.
75
+
76
+ | ARIA | Support |
77
+ | --- | --- |
78
+ | `aria-controls` | 🚫 |
79
+
80
+ ## Integration examples
81
+
82
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
83
+
84
+ ## API
85
+
86
+ ### Properties
87
+
88
+ | Property | Type | Default | Description |
89
+ | --- | --- | --- | --- |
90
+ | `activeTabIndex` | `number` | `0` | Sets the zero-based index of the currently active tab; update this prop to switch tabs programmatically. |
91
+ | `aria` | `TabsAriaAttribute` | `undefined` | Sets ARIA attributes on the tablist, such as `aria-label` and `aria-description`. |
92
+ | `background` | `'canvas'` `'surface'` `'frosted'` `'none'` | `'none'` | Sets the background color of the tabs bar. Use `frosted` only when placed on top of images, videos, or gradients. |
93
+ | `compact` | `boolean` | `undefined` | Reduces the tab height and padding for use in dense layouts where vertical space is limited. |
94
+ | `size` | `'small'` `'medium'`<br>`BreakpointCustomizable<TabsSize>` | `'small'` | Sets the font size of the tab labels using the PDS typographic scale. Supports responsive breakpoint values. |
95
+ | `weight` _(deprecated)_ | `'regular'` `'semi-bold'` | `'regular'` | @deprecated Will be removed in the next major release. Has no effect anymore. |
96
+
97
+ ### Events
98
+
99
+ | Event | Type | Description |
100
+ | --- | --- | --- |
101
+ | `update` | `CustomEvent<TabsUpdateEventDetail>`<br>`{ activeTabIndex: number }` | Emitted when the user switches to a different tab, carrying the new `activeTabIndex` in the event detail. |
102
+
103
+ ### Controlled properties
104
+
105
+ - `activeTabIndex` — a controlled prop, but the component also updates it internally. Listen for the `update` event to observe changes; you do not have to write the value back.
106
+
107
+ ### Slots
108
+
109
+ | Slot | Required | Allowed tag names | Description |
110
+ | --- | --- | --- | --- |
111
+ | _(default)_ | no | — | Default slot for the `p-tabs-item` tags. |
112
+
113
+ ## Sub-components
114
+
115
+ These tags are only valid inside the parent(s) listed under each one — often this component, but some are shared and list a different parent (e.g. a tag documented here via a common ancestor). Their APIs come from the same authoritative `component-meta` as the parent above.
116
+
117
+ ### `p-tabs-item`
118
+
119
+ Allowed parent: `p-tabs`.
120
+
121
+ #### Properties
122
+
123
+ | Property | Type | Default | Description |
124
+ | --- | --- | --- | --- |
125
+ | `label` _(required)_ | `string` | `undefined` | Sets the label text displayed in the tab navigation button that the user clicks to activate this tab's content. |
126
+
127
+ #### Slots
128
+
129
+ | Slot | Required | Allowed tag names | Description |
130
+ | --- | --- | --- | --- |
131
+ | _(default)_ | no | — | Default slot for the tab content. |
132
+
133
+ ## Examples
134
+
135
+ | Example | When to use | File |
136
+ | --- | --- | --- |
137
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
138
+ | Gradient color | If the amount of tabs exceeds the viewport, the component renders arrow-buttons to help with horizontal scrolling. | [./examples/Gradient.ts](./examples/Gradient.ts) |
139
+ | Active Tab | You may need to change the initial active tab. | [./examples/ActiveTab.ts](./examples/ActiveTab.ts) |
140
+ | Labelling | Use the `aria` property to provide an accessible name and optional description for the tablist. | [./examples/Labelling.ts](./examples/Labelling.ts) |
@@ -0,0 +1,61 @@
1
+ # p-tabs-bar accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Tabbed interface without tablist label
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```html
10
+ <p-tabs-bar [activeTabIndex]="0">
11
+ <button type="button" id="tab-0" ariaControls="panel-0">
12
+ Overview
13
+ </button>
14
+ <button type="button" id="tab-1" ariaControls="panel-1">
15
+ Equipment
16
+ </button>
17
+ </p-tabs-bar>
18
+ ```
19
+
20
+ #### ✅ Recommended
21
+
22
+ ```html
23
+ <p-tabs-bar [aria]="{'aria-label': 'Porsche 911 configuration sections'}" [activeTabIndex]="0">
24
+ <button type="button" id="tab-0" ariaControls="panel-0">
25
+ Overview
26
+ </button>
27
+ <button type="button" id="tab-1" ariaControls="panel-1">
28
+ Equipment
29
+ </button>
30
+ </p-tabs-bar>
31
+ ```
32
+
33
+ ### Route navigation without landmark label
34
+
35
+ #### ❌ Anti-pattern
36
+
37
+ ```html
38
+ <p-tabs-bar>
39
+ <a href="/models/911">
40
+ 911
41
+ </a>
42
+ <a href="/models/taycan">
43
+ Taycan
44
+ </a>
45
+ </p-tabs-bar>
46
+ ```
47
+
48
+ #### ✅ Recommended
49
+
50
+ ```html
51
+ <nav ariaLabel="Porsche model range">
52
+ <p-tabs-bar>
53
+ <a href="/models/911" ariaCurrent="page">
54
+ 911
55
+ </a>
56
+ <a href="/models/taycan">
57
+ Taycan
58
+ </a>
59
+ </p-tabs-bar>
60
+ </nav>
61
+ ```
@@ -0,0 +1,29 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule, type TabsBarUpdateEventDetail } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-tabs-bar [activeTabIndex]="activeTabIndex" [aria]="{'aria-label': 'Some label for the tablist', 'aria-description': 'Some description for the tablist'}" (update)="onUpdate($event)">
8
+ <button type="button">
9
+ Tab One
10
+ </button>
11
+ <button type="button">
12
+ Tab Two
13
+ </button>
14
+ <button type="button">
15
+ Tab Three
16
+ </button>
17
+ </p-tabs-bar>
18
+ `,
19
+ changeDetection: ChangeDetectionStrategy.OnPush,
20
+ standalone: true,
21
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
22
+ })
23
+ export class ExampleComponent {
24
+ activeTabIndex = 0;
25
+
26
+ onUpdate(e: CustomEvent<TabsBarUpdateEventDetail>) {
27
+ this.activeTabIndex = e.detail.activeTabIndex;
28
+ }
29
+ }