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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/bin/pds-skill.js +259 -0
  3. package/fesm2022/porsche-design-system-components-angular.mjs.map +1 -1
  4. package/package.json +5 -2
  5. package/skill/SKILL.md +124 -0
  6. package/skill/references/components/p-accordion/examples/Default.ts +26 -0
  7. package/skill/references/components/p-accordion/examples/InteractiveElementsInSummary.ts +30 -0
  8. package/skill/references/components/p-accordion/examples/StickySummary.ts +26 -0
  9. package/skill/references/components/p-accordion/p-accordion.md +95 -0
  10. package/skill/references/components/p-ai-tag/examples/Default.ts +13 -0
  11. package/skill/references/components/p-ai-tag/examples/WithinCheckbox.ts +33 -0
  12. package/skill/references/components/p-ai-tag/examples/WithinFormLabel.ts +40 -0
  13. package/skill/references/components/p-ai-tag/examples/WithinImage.ts +16 -0
  14. package/skill/references/components/p-ai-tag/examples/WithinInputSearch.ts +15 -0
  15. package/skill/references/components/p-ai-tag/examples/WithinRadioGroup.ts +32 -0
  16. package/skill/references/components/p-ai-tag/examples/WithinTable.ts +94 -0
  17. package/skill/references/components/p-ai-tag/examples/WithinText.ts +17 -0
  18. package/skill/references/components/p-ai-tag/p-ai-tag.md +47 -0
  19. package/skill/references/components/p-banner/examples/Customization.ts +37 -0
  20. package/skill/references/components/p-banner/examples/Default.ts +26 -0
  21. package/skill/references/components/p-banner/p-banner.md +92 -0
  22. package/skill/references/components/p-button/examples/Default.ts +15 -0
  23. package/skill/references/components/p-button/examples/Form.ts +26 -0
  24. package/skill/references/components/p-button/examples/FormAttribute.ts +30 -0
  25. package/skill/references/components/p-button/p-button.md +118 -0
  26. package/skill/references/components/p-button-pure/examples/CustomClickableArea.ts +15 -0
  27. package/skill/references/components/p-button-pure/examples/Default.ts +15 -0
  28. package/skill/references/components/p-button-pure/examples/Form.ts +26 -0
  29. package/skill/references/components/p-button-pure/examples/FormAttribute.ts +30 -0
  30. package/skill/references/components/p-button-pure/p-button-pure.md +118 -0
  31. package/skill/references/components/p-button-tile/examples/ColorScheme.ts +18 -0
  32. package/skill/references/components/p-button-tile/examples/Default.ts +21 -0
  33. package/skill/references/components/p-button-tile/examples/FooterSlot.ts +32 -0
  34. package/skill/references/components/p-button-tile/examples/Hyphens.ts +38 -0
  35. package/skill/references/components/p-button-tile/examples/UiBehaviour.ts +44 -0
  36. package/skill/references/components/p-button-tile/p-button-tile.md +115 -0
  37. package/skill/references/components/p-canvas/examples/Default.ts +13 -0
  38. package/skill/references/components/p-canvas/p-canvas.md +91 -0
  39. package/skill/references/components/p-carousel/examples/Default.ts +26 -0
  40. package/skill/references/components/p-carousel/examples/DynamicSlides.ts +37 -0
  41. package/skill/references/components/p-carousel/examples/FlexibleWidths.ts +32 -0
  42. package/skill/references/components/p-carousel/examples/FocusOnCenterSlide.ts +65 -0
  43. package/skill/references/components/p-carousel/examples/Intl.ts +23 -0
  44. package/skill/references/components/p-carousel/examples/JumpToSlide.ts +50 -0
  45. package/skill/references/components/p-carousel/p-carousel.md +142 -0
  46. package/skill/references/components/p-checkbox/examples/Default.ts +13 -0
  47. package/skill/references/components/p-checkbox/examples/Form.ts +31 -0
  48. package/skill/references/components/p-checkbox/examples/Indeterminate.ts +16 -0
  49. package/skill/references/components/p-checkbox/examples/Slots.ts +57 -0
  50. package/skill/references/components/p-checkbox/examples/WrappedLabel.ts +27 -0
  51. package/skill/references/components/p-checkbox/p-checkbox.md +122 -0
  52. package/skill/references/components/p-crest/examples/CustomClickableArea.ts +13 -0
  53. package/skill/references/components/p-crest/examples/Default.ts +13 -0
  54. package/skill/references/components/p-crest/examples/Link.ts +13 -0
  55. package/skill/references/components/p-crest/p-crest.md +65 -0
  56. package/skill/references/components/p-display/examples/Color.ts +15 -0
  57. package/skill/references/components/p-display/examples/Default.ts +15 -0
  58. package/skill/references/components/p-display/examples/Semantics.ts +21 -0
  59. package/skill/references/components/p-display/examples/Size.ts +15 -0
  60. package/skill/references/components/p-display/examples/SizeResponsive.ts +15 -0
  61. package/skill/references/components/p-display/p-display.md +78 -0
  62. package/skill/references/components/p-divider/examples/Default.ts +13 -0
  63. package/skill/references/components/p-divider/examples/Responsive.ts +15 -0
  64. package/skill/references/components/p-divider/examples/Vertical.ts +15 -0
  65. package/skill/references/components/p-divider/p-divider.md +49 -0
  66. package/skill/references/components/p-drilldown/examples/CustomContent.ts +166 -0
  67. package/skill/references/components/p-drilldown/examples/Default.ts +119 -0
  68. package/skill/references/components/p-drilldown/p-drilldown.md +168 -0
  69. package/skill/references/components/p-fieldset/examples/Default.ts +15 -0
  70. package/skill/references/components/p-fieldset/examples/Required.ts +16 -0
  71. package/skill/references/components/p-fieldset/examples/SlottedLabel.ts +18 -0
  72. package/skill/references/components/p-fieldset/examples/SlottedMessage.ts +18 -0
  73. package/skill/references/components/p-fieldset/p-fieldset.md +88 -0
  74. package/skill/references/components/p-flag/examples/Default.ts +13 -0
  75. package/skill/references/components/p-flag/examples/ResponsiveSize.ts +13 -0
  76. package/skill/references/components/p-flag/examples/Size.ts +16 -0
  77. package/skill/references/components/p-flag/examples/SizeCssVar.ts +13 -0
  78. package/skill/references/components/p-flag/p-flag.md +68 -0
  79. package/skill/references/components/p-flyout/examples/CustomStyling.ts +47 -0
  80. package/skill/references/components/p-flyout/examples/Default.ts +44 -0
  81. package/skill/references/components/p-flyout/examples/Form.ts +47 -0
  82. package/skill/references/components/p-flyout/examples/StickyTop.ts +44 -0
  83. package/skill/references/components/p-flyout/p-flyout.md +128 -0
  84. package/skill/references/components/p-heading/examples/Color.ts +15 -0
  85. package/skill/references/components/p-heading/examples/Default.ts +15 -0
  86. package/skill/references/components/p-heading/examples/Semantics.ts +21 -0
  87. package/skill/references/components/p-heading/p-heading.md +78 -0
  88. package/skill/references/components/p-icon/examples/Color.ts +16 -0
  89. package/skill/references/components/p-icon/examples/ColorCssVar.ts +13 -0
  90. package/skill/references/components/p-icon/examples/Custom.ts +13 -0
  91. package/skill/references/components/p-icon/examples/Default.ts +13 -0
  92. package/skill/references/components/p-icon/examples/Overview.ts +591 -0
  93. package/skill/references/components/p-icon/examples/ResponsiveSize.ts +13 -0
  94. package/skill/references/components/p-icon/examples/Size.ts +16 -0
  95. package/skill/references/components/p-icon/examples/SizeCssVar.ts +13 -0
  96. package/skill/references/components/p-icon/p-icon.md +88 -0
  97. package/skill/references/components/p-inline-notification/examples/ActionButton.ts +29 -0
  98. package/skill/references/components/p-inline-notification/examples/Default.ts +13 -0
  99. package/skill/references/components/p-inline-notification/examples/EventHandling.ts +31 -0
  100. package/skill/references/components/p-inline-notification/p-inline-notification.md +74 -0
  101. package/skill/references/components/p-input-date/examples/Default.ts +13 -0
  102. package/skill/references/components/p-input-date/examples/Form.ts +31 -0
  103. package/skill/references/components/p-input-date/examples/Slots.ts +44 -0
  104. package/skill/references/components/p-input-date/p-input-date.md +138 -0
  105. package/skill/references/components/p-input-email/examples/Default.ts +13 -0
  106. package/skill/references/components/p-input-email/examples/Form.ts +31 -0
  107. package/skill/references/components/p-input-email/examples/Slots.ts +44 -0
  108. package/skill/references/components/p-input-email/p-input-email.md +142 -0
  109. package/skill/references/components/p-input-month/examples/Default.ts +13 -0
  110. package/skill/references/components/p-input-month/examples/Form.ts +31 -0
  111. package/skill/references/components/p-input-month/examples/Slots.ts +44 -0
  112. package/skill/references/components/p-input-month/p-input-month.md +138 -0
  113. package/skill/references/components/p-input-number/examples/Default.ts +13 -0
  114. package/skill/references/components/p-input-number/examples/Form.ts +31 -0
  115. package/skill/references/components/p-input-number/examples/Slots.ts +44 -0
  116. package/skill/references/components/p-input-number/p-input-number.md +146 -0
  117. package/skill/references/components/p-input-password/examples/Default.ts +13 -0
  118. package/skill/references/components/p-input-password/examples/Form.ts +31 -0
  119. package/skill/references/components/p-input-password/examples/Slots.ts +42 -0
  120. package/skill/references/components/p-input-password/examples/Toggle.ts +13 -0
  121. package/skill/references/components/p-input-password/p-input-password.md +141 -0
  122. package/skill/references/components/p-input-search/examples/AriaCombobox.ts +38 -0
  123. package/skill/references/components/p-input-search/examples/Default.ts +13 -0
  124. package/skill/references/components/p-input-search/examples/Form.ts +31 -0
  125. package/skill/references/components/p-input-search/examples/Slots.ts +44 -0
  126. package/skill/references/components/p-input-search/p-input-search.md +178 -0
  127. package/skill/references/components/p-input-tel/examples/Default.ts +13 -0
  128. package/skill/references/components/p-input-tel/examples/Form.ts +31 -0
  129. package/skill/references/components/p-input-tel/examples/Slots.ts +44 -0
  130. package/skill/references/components/p-input-tel/p-input-tel.md +141 -0
  131. package/skill/references/components/p-input-text/examples/Controlled.ts +36 -0
  132. package/skill/references/components/p-input-text/examples/Default.ts +13 -0
  133. package/skill/references/components/p-input-text/examples/Form.ts +31 -0
  134. package/skill/references/components/p-input-text/examples/Slots.ts +44 -0
  135. package/skill/references/components/p-input-text/p-input-text.md +146 -0
  136. package/skill/references/components/p-input-time/examples/Default.ts +13 -0
  137. package/skill/references/components/p-input-time/examples/Form.ts +31 -0
  138. package/skill/references/components/p-input-time/examples/Slots.ts +44 -0
  139. package/skill/references/components/p-input-time/p-input-time.md +140 -0
  140. package/skill/references/components/p-input-url/examples/Default.ts +13 -0
  141. package/skill/references/components/p-input-url/examples/Form.ts +31 -0
  142. package/skill/references/components/p-input-url/examples/Slots.ts +44 -0
  143. package/skill/references/components/p-input-url/p-input-url.md +141 -0
  144. package/skill/references/components/p-input-week/examples/Default.ts +13 -0
  145. package/skill/references/components/p-input-week/examples/Form.ts +31 -0
  146. package/skill/references/components/p-input-week/examples/Slots.ts +44 -0
  147. package/skill/references/components/p-input-week/p-input-week.md +138 -0
  148. package/skill/references/components/p-link/examples/Default.ts +15 -0
  149. package/skill/references/components/p-link/examples/FrameworkRouting.ts +17 -0
  150. package/skill/references/components/p-link/examples/Icon.ts +20 -0
  151. package/skill/references/components/p-link/p-link.md +101 -0
  152. package/skill/references/components/p-link-pure/examples/CustomClickableArea.ts +15 -0
  153. package/skill/references/components/p-link-pure/examples/Default.ts +15 -0
  154. package/skill/references/components/p-link-pure/examples/FrameworkRouting.ts +17 -0
  155. package/skill/references/components/p-link-pure/examples/Icon.ts +20 -0
  156. package/skill/references/components/p-link-pure/p-link-pure.md +110 -0
  157. package/skill/references/components/p-link-tile/examples/ColorScheme.ts +18 -0
  158. package/skill/references/components/p-link-tile/examples/Default.ts +21 -0
  159. package/skill/references/components/p-link-tile/examples/FooterSlot.ts +32 -0
  160. package/skill/references/components/p-link-tile/examples/Hyphens.ts +39 -0
  161. package/skill/references/components/p-link-tile/examples/UiBehaviour.ts +44 -0
  162. package/skill/references/components/p-link-tile/examples/WithVideo.ts +18 -0
  163. package/skill/references/components/p-link-tile/p-link-tile.md +105 -0
  164. package/skill/references/components/p-link-tile-product/examples/Default.ts +24 -0
  165. package/skill/references/components/p-link-tile-product/examples/FrameworkRouting.ts +27 -0
  166. package/skill/references/components/p-link-tile-product/p-link-tile-product.md +93 -0
  167. package/skill/references/components/p-modal/examples/AlertDialog.ts +41 -0
  168. package/skill/references/components/p-modal/examples/CustomStyling.ts +28 -0
  169. package/skill/references/components/p-modal/examples/Default.ts +41 -0
  170. package/skill/references/components/p-modal/examples/Scrollable.ts +45 -0
  171. package/skill/references/components/p-modal/p-modal.md +135 -0
  172. package/skill/references/components/p-model-signature/examples/CustomStyling.ts +17 -0
  173. package/skill/references/components/p-model-signature/examples/Default.ts +13 -0
  174. package/skill/references/components/p-model-signature/examples/MaskBlendMode.ts +35 -0
  175. package/skill/references/components/p-model-signature/examples/MaskImage.ts +15 -0
  176. package/skill/references/components/p-model-signature/examples/MaskVideo.ts +15 -0
  177. package/skill/references/components/p-model-signature/examples/SafeZone.ts +63 -0
  178. package/skill/references/components/p-model-signature/p-model-signature.md +62 -0
  179. package/skill/references/components/p-multi-select/examples/AsyncFilter.ts +149 -0
  180. package/skill/references/components/p-multi-select/examples/Default.ts +32 -0
  181. package/skill/references/components/p-multi-select/examples/Form.ts +38 -0
  182. package/skill/references/components/p-multi-select/examples/Optgroups.ts +45 -0
  183. package/skill/references/components/p-multi-select/examples/SelectedSlot.ts +103 -0
  184. package/skill/references/components/p-multi-select/examples/SetValue.ts +76 -0
  185. package/skill/references/components/p-multi-select/examples/Slots.ts +51 -0
  186. package/skill/references/components/p-multi-select/p-multi-select.md +197 -0
  187. package/skill/references/components/p-pagination/examples/Default.ts +13 -0
  188. package/skill/references/components/p-pagination/p-pagination.md +83 -0
  189. package/skill/references/components/p-pin-code/examples/CopyPaste.ts +13 -0
  190. package/skill/references/components/p-pin-code/examples/Default.ts +13 -0
  191. package/skill/references/components/p-pin-code/examples/Form.ts +31 -0
  192. package/skill/references/components/p-pin-code/examples/Slots.ts +42 -0
  193. package/skill/references/components/p-pin-code/p-pin-code.md +109 -0
  194. package/skill/references/components/p-popover/examples/Default.ts +17 -0
  195. package/skill/references/components/p-popover/examples/SlottedButton.ts +18 -0
  196. package/skill/references/components/p-popover/p-popover.md +116 -0
  197. package/skill/references/components/p-radio-group/examples/Default.ts +20 -0
  198. package/skill/references/components/p-radio-group/examples/Form.ts +38 -0
  199. package/skill/references/components/p-radio-group/examples/Slots.ts +72 -0
  200. package/skill/references/components/p-radio-group/p-radio-group.md +157 -0
  201. package/skill/references/components/p-scroller/examples/Default.ts +54 -0
  202. package/skill/references/components/p-scroller/examples/Height.ts +29 -0
  203. package/skill/references/components/p-scroller/examples/ScrollToPosition.ts +43 -0
  204. package/skill/references/components/p-scroller/p-scroller.md +93 -0
  205. package/skill/references/components/p-segmented-control/examples/Default.ts +29 -0
  206. package/skill/references/components/p-segmented-control/examples/Form.ts +37 -0
  207. package/skill/references/components/p-segmented-control/examples/Slots.ts +57 -0
  208. package/skill/references/components/p-segmented-control/examples/WithLabels.ts +29 -0
  209. package/skill/references/components/p-segmented-control/p-segmented-control.md +162 -0
  210. package/skill/references/components/p-select/examples/AsyncFilter.ts +149 -0
  211. package/skill/references/components/p-select/examples/Default.ts +32 -0
  212. package/skill/references/components/p-select/examples/Form.ts +38 -0
  213. package/skill/references/components/p-select/examples/Optgroups.ts +45 -0
  214. package/skill/references/components/p-select/examples/Required.ts +48 -0
  215. package/skill/references/components/p-select/examples/SelectedSlot.ts +130 -0
  216. package/skill/references/components/p-select/examples/SetValue.ts +71 -0
  217. package/skill/references/components/p-select/examples/Slots.ts +51 -0
  218. package/skill/references/components/p-select/examples/SlottedImages.ts +38 -0
  219. package/skill/references/components/p-select/p-select.md +194 -0
  220. package/skill/references/components/p-sheet/examples/Default.ts +33 -0
  221. package/skill/references/components/p-sheet/p-sheet.md +121 -0
  222. package/skill/references/components/p-spinner/examples/Color.ts +16 -0
  223. package/skill/references/components/p-spinner/examples/ColorCssVar.ts +13 -0
  224. package/skill/references/components/p-spinner/examples/Default.ts +13 -0
  225. package/skill/references/components/p-spinner/examples/ResponsiveSize.ts +13 -0
  226. package/skill/references/components/p-spinner/examples/Size.ts +16 -0
  227. package/skill/references/components/p-spinner/examples/SizeCssVar.ts +13 -0
  228. package/skill/references/components/p-spinner/p-spinner.md +96 -0
  229. package/skill/references/components/p-stepper-horizontal/examples/Default.ts +26 -0
  230. package/skill/references/components/p-stepper-horizontal/examples/FrameworkImplementation.ts +107 -0
  231. package/skill/references/components/p-stepper-horizontal/p-stepper-horizontal.md +109 -0
  232. package/skill/references/components/p-switch/examples/Default.ts +21 -0
  233. package/skill/references/components/p-switch/p-switch.md +103 -0
  234. package/skill/references/components/p-table/examples/Advanced.ts +162 -0
  235. package/skill/references/components/p-table/examples/CaptionProperty.ts +40 -0
  236. package/skill/references/components/p-table/examples/CaptionSlot.ts +43 -0
  237. package/skill/references/components/p-table/examples/Default.ts +120 -0
  238. package/skill/references/components/p-table/examples/HideLabel.ts +40 -0
  239. package/skill/references/components/p-table/examples/LayoutFixed.ts +53 -0
  240. package/skill/references/components/p-table/examples/Sorting.ts +79 -0
  241. package/skill/references/components/p-table/p-table.md +189 -0
  242. package/skill/references/components/p-tabs/examples/ActiveTab.ts +29 -0
  243. package/skill/references/components/p-tabs/examples/Default.ts +29 -0
  244. package/skill/references/components/p-tabs/examples/Gradient.ts +114 -0
  245. package/skill/references/components/p-tabs/examples/Labelling.ts +29 -0
  246. package/skill/references/components/p-tabs/p-tabs.md +136 -0
  247. package/skill/references/components/p-tabs-bar/examples/Default.ts +29 -0
  248. package/skill/references/components/p-tabs-bar/examples/Gradient.ts +80 -0
  249. package/skill/references/components/p-tabs-bar/examples/Labelling.ts +29 -0
  250. package/skill/references/components/p-tabs-bar/examples/Links.ts +23 -0
  251. package/skill/references/components/p-tabs-bar/p-tabs-bar.md +181 -0
  252. package/skill/references/components/p-tag/examples/Default.ts +15 -0
  253. package/skill/references/components/p-tag/examples/Multiline.ts +17 -0
  254. package/skill/references/components/p-tag/examples/SlottedButton.ts +44 -0
  255. package/skill/references/components/p-tag/examples/SlottedLink.ts +44 -0
  256. package/skill/references/components/p-tag/p-tag.md +66 -0
  257. package/skill/references/components/p-tag-dismissible/examples/Default.ts +15 -0
  258. package/skill/references/components/p-tag-dismissible/p-tag-dismissible.md +75 -0
  259. package/skill/references/components/p-text/examples/Default.ts +15 -0
  260. package/skill/references/components/p-text/examples/Semantics.ts +21 -0
  261. package/skill/references/components/p-text/examples/Size.ts +15 -0
  262. package/skill/references/components/p-text/examples/SizeResponsive.ts +15 -0
  263. package/skill/references/components/p-text/p-text.md +68 -0
  264. package/skill/references/components/p-text-list/examples/Default.ts +31 -0
  265. package/skill/references/components/p-text-list/p-text-list.md +68 -0
  266. package/skill/references/components/p-textarea/examples/Default.ts +13 -0
  267. package/skill/references/components/p-textarea/examples/Form.ts +31 -0
  268. package/skill/references/components/p-textarea/examples/Slots.ts +42 -0
  269. package/skill/references/components/p-textarea/p-textarea.md +122 -0
  270. package/skill/references/components/p-toast/examples/Default.ts +23 -0
  271. package/skill/references/components/p-toast/p-toast.md +61 -0
  272. package/skill/references/components/p-wordmark/examples/CustomClickableArea.ts +13 -0
  273. package/skill/references/components/p-wordmark/examples/Default.ts +13 -0
  274. package/skill/references/components/p-wordmark/examples/Size.ts +13 -0
  275. package/skill/references/components/p-wordmark/p-wordmark.md +66 -0
  276. package/skill/references/icons.md +5 -0
  277. package/skill/references/styles/emotion.md +439 -0
  278. package/skill/references/styles/scss.md +402 -0
  279. package/skill/references/styles/tailwindcss.md +356 -0
  280. package/skill/references/styles/vanilla-extract.md +444 -0
  281. package/skill/references/stylesheets.md +331 -0
  282. package/skill/references/tokens.md +323 -0
  283. package/types/porsche-design-system-components-angular.d.ts +2 -2
@@ -0,0 +1,88 @@
1
+ # p-icon
2
+
3
+ Along with other Porsche basic elements - such as colors, typography and the Porsche marque - icons are core components of the Porsche design. The clear graphic symbols allow quick orientation and are internationally recognized. The Porsche Design System is using an **SVG icon system (integrated by `<img/>`)** to visually present an icon object. Each icon is hosted on the Porsche Design System CDN to be served and cached as fast as possible.
4
+
5
+ ## Usage
6
+
7
+ ### Do:
8
+
9
+ - Use the available icons from [Porsche Icons](https://icons.porsche.com).
10
+ - Use icons as an additional element for faster recognition.
11
+
12
+ ### Don't:
13
+
14
+ - Don't use icons without label.
15
+
16
+ ## Accessibility support
17
+
18
+ ### ARIA enhancements
19
+
20
+ #### External **ARIA** provided by the `aria` property:
21
+
22
+ | ARIA | Usage |
23
+ | --- | --- |
24
+ | `aria-label` | Defines a string value that labels the element (through the `alt` attribute). |
25
+
26
+ ## Development considerations
27
+
28
+ ### Hiding an icon from assistive technologies
29
+
30
+ Sometimes icons are used purely for **decorative purposes** and do not convey any additional information. In these cases, it is important to **hide** the icon from assistive technologies. This can be achieved by setting the `aria-hidden` attribute directly on the `Icon` component.
31
+
32
+ ```html
33
+ <p-icon aria-hidden="true" name="phone" /><p-text>+49 123 456 7890</p-text>
34
+ ```
35
+
36
+ ### Common do's and don'ts
37
+
38
+ - **Do** pass meaningful names through the `aria` prop when the icon conveys information on its own.
39
+ - **Do** hide decorative icons from assistive technologies when adjacent text provides the meaning.
40
+ - **Don't** add redundant `aria-label` to decorative icons beside visible text.
41
+
42
+ ## Tests
43
+
44
+ ### Automated
45
+
46
+ | Technology | Support |
47
+ | --- | --- |
48
+ | AXE-Core (WCAG 2.2 AA, Best-Practice) (WCAG 2.2 AA, Best-Practice) | ✅ |
49
+ | High-Contrast Mode (light/dark) | 🟠(partially supported: Depending on the selected theme, there may be problems reproducing the complementary color) |
50
+ | Text-Zoom (200%) | ✅ |
51
+
52
+ ### Manual
53
+
54
+ | Technology | Support |
55
+ | --- | --- |
56
+ | Screen reader (VoiceOver, NVDA) | ✅ |
57
+
58
+ ## API
59
+
60
+ ### Properties
61
+
62
+ | Property | Type | Default | Description |
63
+ | --- | --- | --- | --- |
64
+ | `aria` | `IconAriaAttribute` | `undefined` | Sets ARIA attributes on the icon — use `aria-label` to make the icon meaningful to screen readers when it conveys information. |
65
+ | `color` | `'primary'` `'contrast-higher'` `'contrast-high'` `'contrast-medium'` `'contrast-low'` `'contrast-lower'` `'success'` `'warning'` `'error'` `'info'` `'inherit'` | `'primary'` | Sets the fill color of the icon using PDS color tokens. |
66
+ | `name` | one of 290 icon names — see [icon names](references/icons.md) | `'arrow-right'` | Selects an icon from the built-in PDS icon library by name (e.g. `arrow-right`, `close`). |
67
+ | `size` | `'2xs'` `'xs'` `'sm'` `'md'` `'lg'` `'xl'` `'2xl'` `'3xl'` `'4xl'` `'5xl'` `'inherit'`<br>_deprecated:_ `'xx-small'` `'x-small'` `'small'` `'medium'` `'large'` `'x-large'` `'xx-large'`<br>`BreakpointCustomizable<IconSize>` | `'sm'` | Sets the icon size using the PDS typographic scale. Use `inherit` to derive size from the parent element. Supports responsive breakpoint values. |
68
+ | `source` | `string` | `undefined` | Sets a path to a custom SVG icon, used instead of the built-in icon library. |
69
+
70
+ ### CSS Variables
71
+
72
+ | CSS Variable | Default | Description |
73
+ | --- | --- | --- |
74
+ | `--p-icon-size` | — | Defines the width and height of the icon. Overrides the `size` property when set. |
75
+ | `--p-icon-color` | — | Defines the icon color. Overrides the `color` property when set. |
76
+
77
+ ## Examples
78
+
79
+ | Example | When to use | File |
80
+ | --- | --- | --- |
81
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
82
+ | Overview | For more information and a complete overview of all available Porsche icons, head over to Porsche Icons ([Porsche Icons](https://icons.porsche.com)). | [./examples/Overview.ts](./examples/Overview.ts) |
83
+ | Size via Prop | There are predefined sizes for the component available which should cover most use cases. | [./examples/Size.ts](./examples/Size.ts) |
84
+ | Size via CSS Variable | Alternatively, the size can be controlled via the custom CSS variable `--p-icon-size`, which accepts any valid CSS length value. | [./examples/SizeCssVar.ts](./examples/SizeCssVar.ts) |
85
+ | Responsive Size | The `size` property supports `BreakpointCustomizable` values, allowing you to define different sizes for each major breakpoint (`xs`, `s`, `m`, `l`, `xl`). | [./examples/ResponsiveSize.ts](./examples/ResponsiveSize.ts) |
86
+ | Color via Prop | The `color` property can be set to `inherit` to derive the icon's color from the `currentcolor` of a parent element (e.g. a `p-text`). | [./examples/Color.ts](./examples/Color.ts) |
87
+ | Color via CSS Variable | Alternatively, the color can be controlled via the custom CSS variable `--p-icon-color`, which accepts any valid CSS color value. | [./examples/ColorCssVar.ts](./examples/ColorCssVar.ts) |
88
+ | Custom Icon | The whole Porsche icon set is hosted on the Porsche Design System CDN. | [./examples/Custom.ts](./examples/Custom.ts) |
@@ -0,0 +1,29 @@
1
+ import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA } 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-inline-notification
8
+ [heading]="'Some heading'"
9
+ [headingTag]="'h3'"
10
+ [description]="'Some description.'"
11
+ [actionLabel]="'Retry'"
12
+ [actionIcon]="'reset'"
13
+ [actionLoading]="isLoading"
14
+ (action)="onAction()"
15
+ ></p-inline-notification>
16
+ <p-button [type]="'button'" [compact]="true" (click)="onAction()">Reset \`actionLoading\`</p-button>
17
+ `,
18
+ changeDetection: ChangeDetectionStrategy.OnPush,
19
+ standalone: true,
20
+ imports: [PorscheDesignSystemModule],
21
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
22
+ })
23
+ export class ExampleComponent {
24
+ isLoading = false;
25
+
26
+ onAction() {
27
+ this.isLoading = !this.isLoading;
28
+ }
29
+ }
@@ -0,0 +1,13 @@
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-inline-notification heading="Some heading" headingTag="h2" description="Some description."></p-inline-notification>
8
+ `,
9
+ changeDetection: ChangeDetectionStrategy.OnPush,
10
+ standalone: true,
11
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
12
+ })
13
+ export class ExampleComponent {}
@@ -0,0 +1,31 @@
1
+ import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA } 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-button [type]="'button'" [compact]="true" (click)="onShow()">Show Inline Notification</p-button>
8
+ @if (isActive) {
9
+ <p-inline-notification
10
+ [heading]="'Some heading'"
11
+ [headingTag]="'h3'"
12
+ [description]="'Some description.'"
13
+ (dismiss)="onDismiss()"
14
+ ></p-inline-notification>
15
+ }
16
+ `,
17
+ changeDetection: ChangeDetectionStrategy.OnPush,
18
+ standalone: true,
19
+ imports: [PorscheDesignSystemModule],
20
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
21
+ })
22
+ export class ExampleComponent {
23
+ isActive = false;
24
+
25
+ onShow() {
26
+ this.isActive = true;
27
+ }
28
+ onDismiss() {
29
+ this.isActive = false;
30
+ }
31
+ }
@@ -0,0 +1,74 @@
1
+ # p-inline-notification
2
+
3
+ The `p-inline-notification` is a controlled component that provides action-based feedback messages (e.g. after performing a task) or to convey informational and/or critical notification like some site related topics.
4
+
5
+ Review the [notification decision tree](https://designsystem.porsche.com/patterns/notifications/decision-tree/) to determine which notification component is best for a particular scenario.
6
+
7
+ # Inline Notification
8
+
9
+ ## Accessibility support
10
+
11
+ ### Keyboard
12
+
13
+ | Key / state | Function |
14
+ | --- | --- |
15
+ | `Tab`, `Shift-Tab` | Moves focus to the next focusable element. |
16
+
17
+ ### ARIA enhancements
18
+
19
+ #### Internal **ARIA** that is managed by the component:
20
+
21
+ | ARIA | Usage |
22
+ | --- | --- |
23
+ | `role="status"` | When content is populated or changed in `state="info"`, the component announces it unobtrusively. |
24
+ | `role="alert"` | When content is populated or changed in `state="warning/error"`, the component announces it immediately. |
25
+ | `aria-label="STRING"` | References the accessible name. |
26
+
27
+ ## Development considerations
28
+
29
+ ### ARIA live announcements
30
+
31
+ The `Inline Notification` component uses `role="status"` and `role="alert"` to announce **content changes** for assistive technologies, but only if the component is **pre-rendered** and the content is added dynamically.
32
+
33
+ ### Common do's and don'ts
34
+
35
+ - **Do** pre-render the notification and update `heading`/`description` when status changes.
36
+ - **Do** use `state="warning"` or `state="error"` with descriptive content for urgent issues.
37
+ - **Don't** conditionally mount the component only when an alert should be announced.
38
+
39
+ ## API
40
+
41
+ ### Properties
42
+
43
+ | Property | Type | Default | Description |
44
+ | --- | --- | --- | --- |
45
+ | `actionIcon` | `''`<br>one of 290 icon names — see [icon names](references/icons.md) | `'arrow-right'` | Sets the icon displayed inside the action button using a PDS icon name. |
46
+ | `actionLabel` | `string` | `undefined` | Sets the label text of the optional action button inside the notification. |
47
+ | `actionLoading` | `boolean` | `false` | Disables the action button and shows a spinner to indicate an ongoing operation. |
48
+ | `description` | `string` | `''` | Sets the supporting description text shown below the heading. |
49
+ | `dismissButton` | `boolean` | `true` | Shows a dismiss button so the user can manually close the notification. |
50
+ | `heading` | `string` | `''` | Sets the heading text displayed at the top of the inline notification. |
51
+ | `headingTag` | `'h1'` `'h2'` `'h3'` `'h4'` `'h5'` `'h6'` | `'h5'` | Sets the HTML heading tag (e.g. h2, h3) to maintain correct document structure. |
52
+ | `state` | `'info'` `'success'` `'warning'` `'error'` | `'info'` | Sets the visual state — controls the icon and color scheme (`info`, `warning`, `error`, `success`). |
53
+
54
+ ### Events
55
+
56
+ | Event | Type | Description |
57
+ | --- | --- | --- |
58
+ | `action` | `CustomEvent<void>` | Emitted when the user clicks the action button. |
59
+ | `dismiss` | `CustomEvent<void>` | Emitted when the user clicks the dismiss button. |
60
+
61
+ ### Slots
62
+
63
+ | Slot | Required | Allowed tag names | Description |
64
+ | --- | --- | --- | --- |
65
+ | `heading` | no | — | Defines the heading of the inline notification. Can be used as an alternative to the `heading` prop for rich content. |
66
+ | _(default)_ | no | — | Default slot for the inline notification description content. |
67
+
68
+ ## Examples
69
+
70
+ | Example | When to use | File |
71
+ | --- | --- | --- |
72
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
73
+ | Event Handling | The custom event that is emitted on close button click is called `dismiss`. | [./examples/EventHandling.ts](./examples/EventHandling.ts) |
74
+ | Action Button | A custom interaction, e.g., to retry the previous action like submitting a form, can be provided by setting the optional `actionLabel`, `actionIcon` and `actionLoading` properties. | [./examples/ActionButton.ts](./examples/ActionButton.ts) |
@@ -0,0 +1,13 @@
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-input-date label="Some label" name="some-name"></p-input-date>
8
+ `,
9
+ changeDetection: ChangeDetectionStrategy.OnPush,
10
+ standalone: true,
11
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
12
+ })
13
+ export class ExampleComponent {}
@@ -0,0 +1,31 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
4
+
5
+ @Component({
6
+ selector: 'porsche-design-system-app',
7
+ template: `
8
+ <form [formGroup]="form" (ngSubmit)="onSubmit()" class="flex flex-col gap-fluid-sm">
9
+ <p-input-date formControlName="myInputDate" [label]="'Some Label'" />
10
+ <div class="flex gap-fluid-sm">
11
+ <p-button type="submit">Submit</p-button>
12
+ <p-button type="reset">Reset</p-button>
13
+ </div>
14
+ <p-text>Last submitted data: {{ submittedValue }}</p-text>
15
+ </form>
16
+ `,
17
+ changeDetection: ChangeDetectionStrategy.OnPush,
18
+ standalone: true,
19
+ imports: [PorscheDesignSystemModule, FormsModule, ReactiveFormsModule], // <-- PDS module is imported here
20
+ })
21
+ export class ExampleComponent {
22
+ form = new FormGroup({
23
+ myInputDate: new FormControl<string>(''),
24
+ });
25
+
26
+ submittedValue: any = undefined;
27
+
28
+ onSubmit(): void {
29
+ this.submittedValue = JSON.stringify(this.form.value);
30
+ }
31
+ }
@@ -0,0 +1,44 @@
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-input-date state="error">
8
+ <span slot="label">
9
+ Some label with a
10
+ <a href="https://designsystem.porsche.com" class="underline">
11
+ link
12
+ </a>
13
+ and a "label-after" slot.
14
+ </span>
15
+ <p-popover slot="label-after">
16
+ Some Popover content with a
17
+ <a href="https://designsystem.porsche.com" class="underline">
18
+ link
19
+ </a>
20
+ .
21
+ </p-popover>
22
+ <span slot="description">
23
+ Some description with a
24
+ <a href="https://designsystem.porsche.com" class="underline">
25
+ link
26
+ </a>
27
+ .
28
+ </span>
29
+ <p-icon slot="start" name="shopping-cart" color="contrast-medium" [aria-hidden]="true"></p-icon>
30
+ <p-button-pure slot="end" icon="delete" [hideLabel]="true" class="p-(--ref-p-input-slotted-padding) m-(--ref-p-input-slotted-margin)" [aria]="{'aria-label': 'Delete'}"></p-button-pure>
31
+ <span slot="message">
32
+ Some error message with a
33
+ <a href="https://designsystem.porsche.com" class="underline">
34
+ link
35
+ </a>
36
+ .
37
+ </span>
38
+ </p-input-date>
39
+ `,
40
+ changeDetection: ChangeDetectionStrategy.OnPush,
41
+ standalone: true,
42
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
43
+ })
44
+ export class ExampleComponent {}
@@ -0,0 +1,138 @@
1
+ # p-input-date
2
+
3
+ The `p-input-date` component provides a versatile, user‑friendly interface for entering date values. It supports direct keyboard input, including arrow-key adjustments for precise changes. It has a start and end slot in order to support flexible slotted content.
4
+
5
+ A `label` is a caption which informs the user what information a particular form field is asking for. The `p-input-date` component can be used with or without a label, but it's recommended to keep the label visible for better accessibility whenever possible. When used without a label, it's mandatory to provide a descriptive label text for screen readers.
6
+
7
+ ## Usage
8
+
9
+ `p-input-date` is intended for date input scenarios. It should not be used for values that merely happen to consist of digits. For those cases, consider using another input with an appropriate input mode. For further guidance, see the [MDN documentation on date inputs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date#using_date_inputs).
10
+
11
+ ### Do:
12
+
13
+ - Use when a date value is required or optional.
14
+ - Use without a label only when the context is clear.
15
+ - Use for validation and error of input.
16
+ - Use asterisk for required fields.
17
+
18
+ ### Don't:
19
+
20
+ - Don't use labels with more than two words whenever possible (keep it short and descriptive).
21
+ - Don't use instructional or description text for the label.
22
+
23
+ ---
24
+
25
+ ## Related Components
26
+
27
+ - [Input Email](../p-input-email/p-input-email.md)
28
+ - [Input Month](../p-input-month/p-input-month.md)
29
+ - [Input Number](../p-input-number/p-input-number.md)
30
+ - [Input Password](../p-input-password/p-input-password.md)
31
+ - [Input Search](../p-input-search/p-input-search.md)
32
+ - [Input Tel](../p-input-tel/p-input-tel.md)
33
+ - [Input Text](../p-input-text/p-input-text.md)
34
+ - [Input Time](../p-input-time/p-input-time.md)
35
+ - [Input Url](../p-input-url/p-input-url.md)
36
+ - [Input Week](../p-input-week/p-input-week.md)
37
+
38
+ ## Accessibility support
39
+
40
+ ### Keyboard
41
+
42
+ | Key / state | Function |
43
+ | --- | --- |
44
+ | `Tab`, `Shift-Tab` | Moves focus to the next (or previous) focusable element. |
45
+ | `Arrow Up/Down` | Sets increments/decrements in regards of the steps |
46
+
47
+ ### ARIA enhancements
48
+
49
+ #### Internal **ARIA** that is managed by the component:
50
+
51
+ | ARIA | Usage |
52
+ | --- | --- |
53
+ | `aria-describedby="IDREF"` | Defines the accessible description combined with the status message. |
54
+ | `role="status"`, `role="alert"` | When `message` and `state` or `loading` prop change, the status message is announced. |
55
+ | `aria-hidden="true"` | If `required` attribute is set, the visible asterisk indicator is hidden from assistive technologies. |
56
+ | `aria-invalid="true"` | If `error` state is set. |
57
+ | `aria-live="polite"` | If the `maxlength` attribute is present, the counter is announced via ARIA live region. |
58
+
59
+ ## Development considerations
60
+
61
+ ### Disabled state
62
+
63
+ In general, avoid using the `disabled` state. Disabled elements are no longer focusable and may be missed by screen reader users. They can also confuse sighted users if the reason they are disabled is not made clear.
64
+
65
+ ### Common do's and don'ts
66
+
67
+ - **Do** keep a persistent label and use helper/description text when additional context is required.
68
+ - **Do** use the component state/message API so validation and status changes are announced.
69
+ - **Do** use clear error wording that helps users recover.
70
+ - **Don't** rely on placeholder text as the only label.
71
+ - **Don't** use `hide-label` without an accessible name.
72
+
73
+ ## Limitations
74
+
75
+ 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.
76
+
77
+ | ARIA | Support |
78
+ | --- | --- |
79
+ | `aria-labelledby` | 🚫 |
80
+ | `aria-describedby` | 🚫 |
81
+
82
+ ## API
83
+
84
+ ### Properties
85
+
86
+ | Property | Type | Default | Description |
87
+ | --- | --- | --- | --- |
88
+ | `autoComplete` | `string` | `undefined` | Provides the browser with a date autofill hint (e.g. `autocomplete='bday'` for a birthday field). |
89
+ | `compact` | `boolean` | `false` | Reduces the input height and padding for a more compact layout. |
90
+ | `description` | `string` | `''` | Sets a supplementary description displayed below the label to provide additional context. |
91
+ | `disabled` | `boolean` | `false` | Disables the field, preventing date selection. The value is not submitted with the form. |
92
+ | `form` | `string` | `undefined` | Associates the field with a form element by its ID when the field is not nested directly inside it. |
93
+ | `hideLabel` | `boolean`<br>`BreakpointCustomizable<boolean>` | `false` | Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values. |
94
+ | `label` | `string` | `''` | Sets the visible label text displayed above the input field. |
95
+ | `loading` _(experimental)_ | `boolean` | `false` | @experimental Disables the field and displays a loading spinner to indicate an ongoing operation. |
96
+ | `max` | `string` | `undefined` | Sets the latest selectable date in YYYY-MM-DD format. Dates after this are disabled in the picker. |
97
+ | `message` | `string` | `''` | Sets the validation feedback message displayed below the field when `state` is `success` or `error`. |
98
+ | `min` | `string` | `undefined` | Sets the earliest selectable date in YYYY-MM-DD format. Dates before this are disabled in the picker. |
99
+ | `name` _(required)_ | `string` | `undefined` | Sets the name submitted with the form data to identify this field's value on the server. |
100
+ | `readOnly` | `boolean` | `false` | Makes the field read-only — the date is displayed but cannot be changed. The value is still submitted with the form. |
101
+ | `required` | `boolean` | `false` | Marks the field as required — form submission is blocked while no date is selected. |
102
+ | `state` | `'none'` `'error'` `'success'` | `'none'` | Sets the validation state, controlling the visual appearance and style of the feedback message (`none`, `success`, `error`). |
103
+ | `step` | `number` | `1` | Sets the stepping interval in days. The selected date must align with the `min` date by a multiple of this value. |
104
+ | `value` | `string | null` | `''` | Sets the current date value in YYYY-MM-DD format (e.g. `2025-07-02`). |
105
+
106
+ ### Events
107
+
108
+ | Event | Type | Description |
109
+ | --- | --- | --- |
110
+ | `blur` | `CustomEvent<InputDateBlurEventDetail>`<br>`Event` | Emitted when the input loses focus, regardless of whether the value changed. |
111
+ | `change` | `CustomEvent<InputDateChangeEventDetail>`<br>`Event` | Emitted when the input loses focus after its value was changed. |
112
+ | `input` | `CustomEvent<InputDateInputEventDetail>`<br>`InputEvent` | Emitted on every value change as the user interacts with the date picker. |
113
+
114
+ ### Slots
115
+
116
+ | Slot | Required | Allowed tag names | Description |
117
+ | --- | --- | --- | --- |
118
+ | `label` | no | — | Shows a label. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
119
+ | `label-after` | no | — | Places additional content after the label text (for content that should not be part of the label, e.g. external links or `p-popover`). |
120
+ | `description` | no | — | Shows a description. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
121
+ | `message` | no | — | Shows a state message. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
122
+ | `start` | no | — | Shows content at the start of the input (e.g. unit prefix). |
123
+ | `end` | no | — | Shows content at the end of the input (e.g. toggle button, unit suffix). |
124
+
125
+ ### CSS Variables
126
+
127
+ | CSS Variable | Default | Description |
128
+ | --- | --- | --- |
129
+ | `--ref-p-input-slotted-padding` | — | When slotting a `p-button-pure` or `p-link-pure` this variable needs to be set as `padding` in oder to adjust the alignment correctly. |
130
+ | `--ref-p-input-slotted-margin` | — | When slotting a `p-button-pure` or `p-link-pure` this variable needs to be set as `margin` in oder to adjust the spacings correctly. |
131
+
132
+ ## Examples
133
+
134
+ | Example | When to use | File |
135
+ | --- | --- | --- |
136
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
137
+ | Form | The `p-input-date` can be integrated into a form in two ways: **controlled** or **uncontrolled**, depending on your needs. | [./examples/Form.ts](./examples/Form.ts) |
138
+ | Slots | Use named slots when `label`, `description` or `message` need markup such as a link. | [./examples/Slots.ts](./examples/Slots.ts) |
@@ -0,0 +1,13 @@
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-input-email label="Some label" name="some-name" [indicator]="true"></p-input-email>
8
+ `,
9
+ changeDetection: ChangeDetectionStrategy.OnPush,
10
+ standalone: true,
11
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
12
+ })
13
+ export class ExampleComponent {}
@@ -0,0 +1,31 @@
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';
4
+
5
+ @Component({
6
+ selector: 'porsche-design-system-app',
7
+ template: `
8
+ <form [formGroup]="form" (ngSubmit)="onSubmit()" class="flex flex-col gap-fluid-sm">
9
+ <p-input-email formControlName="myInputEmail" [label]="'Some Label'" [indicator]="true" />
10
+ <div class="flex gap-fluid-sm">
11
+ <p-button type="submit">Submit</p-button>
12
+ <p-button type="reset">Reset</p-button>
13
+ </div>
14
+ <p-text>Last submitted data: {{ submittedValue }}</p-text>
15
+ </form>
16
+ `,
17
+ changeDetection: ChangeDetectionStrategy.OnPush,
18
+ standalone: true,
19
+ imports: [PorscheDesignSystemModule, FormsModule, ReactiveFormsModule], // <-- PDS module is imported here
20
+ })
21
+ export class ExampleComponent {
22
+ form = new FormGroup({
23
+ myInputEmail: new FormControl<string>(''),
24
+ });
25
+
26
+ submittedValue: any = undefined;
27
+
28
+ onSubmit(): void {
29
+ this.submittedValue = JSON.stringify(this.form.value);
30
+ }
31
+ }
@@ -0,0 +1,44 @@
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-input-email state="error">
8
+ <span slot="label">
9
+ Some label with a
10
+ <a href="https://designsystem.porsche.com" class="underline">
11
+ link
12
+ </a>
13
+ and a "label-after" slot.
14
+ </span>
15
+ <p-popover slot="label-after">
16
+ Some Popover content with a
17
+ <a href="https://designsystem.porsche.com" class="underline">
18
+ link
19
+ </a>
20
+ .
21
+ </p-popover>
22
+ <span slot="description">
23
+ Some description with a
24
+ <a href="https://designsystem.porsche.com" class="underline">
25
+ link
26
+ </a>
27
+ .
28
+ </span>
29
+ <p-icon slot="start" name="shopping-cart" color="contrast-medium" [aria-hidden]="true"></p-icon>
30
+ <p-button-pure slot="end" icon="delete" [hideLabel]="true" class="p-(--ref-p-input-slotted-padding) m-(--ref-p-input-slotted-margin)" [aria]="{'aria-label': 'Delete'}"></p-button-pure>
31
+ <span slot="message">
32
+ Some error message with a
33
+ <a href="https://designsystem.porsche.com" class="underline">
34
+ link
35
+ </a>
36
+ .
37
+ </span>
38
+ </p-input-email>
39
+ `,
40
+ changeDetection: ChangeDetectionStrategy.OnPush,
41
+ standalone: true,
42
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
43
+ })
44
+ export class ExampleComponent {}