@porsche-design-system/components-angular 4.5.0-rc.1 → 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 +10 -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,66 @@
1
+ # p-tag
2
+
3
+ `p-tag` is used to label, categorize, or organize items by using keywords that describe them.
4
+
5
+ ## Usage
6
+
7
+ Use tags to label, categorize, or organize items using keywords that describe them.
8
+
9
+ ### Do:
10
+
11
+ - Use to indicate or highlight a certain attribute of an item.
12
+ - Use to show that content is mapped to one or multiple categories.
13
+ - Use to indicate that a certain filter is active.
14
+ - Use short labeling for easy scanning.
15
+ - Have a large number of tags horizontally scrollable, swipeable, or navigable with arrows.
16
+ - Have tags in a predefined space and move to the next line once they meet the boundary.
17
+ - Use color themes such as success, neutral, warning, and error for better visual perception
18
+ - Include icons to improve the faster perception.
19
+ - Add a link for further explanation about the tag for better understandability (With modal).
20
+ - Add a link for additional information that is not necessary for the task completion (With modal).
21
+
22
+ ### Don't:
23
+
24
+ - Don't use more than two words (only if necessary).
25
+ - Don't implement something else than a link or button.
26
+ - Don't use Tags for navigation.
27
+
28
+ ## Accessibility support
29
+
30
+ This component does not include any special accessibility features.
31
+
32
+ ## Development considerations
33
+
34
+ Tags should communicate status or category in visible text. Do not rely on color or icon alone.
35
+
36
+ ### Common do's and don'ts
37
+
38
+ - **Do** include descriptive text in the default slot.
39
+ - **Do** use color and icon as supporting cues, not the only indicator.
40
+ - **Don't** use an icon-only tag without visible text.
41
+
42
+ ## API
43
+
44
+ ### Properties
45
+
46
+ | Property | Type | Default | Description |
47
+ | --- | --- | --- | --- |
48
+ | `compact` | `boolean` | `false` | Reduces the tag's padding and height for use in dense layouts where vertical space is limited. |
49
+ | `icon` | `'none'`<br>one of 290 icon names — see [icon names](references/icons.md) | `'none'` | Sets the icon displayed inside the tag alongside the label. Use `none` to render the tag without an icon. |
50
+ | `iconSource` | `string` | `undefined` | Sets a URL to a custom SVG icon, overriding the built-in icon set when a brand-specific icon is needed. |
51
+ | `variant` | `'primary'` `'secondary'` `'info'` `'info-frosted'` `'warning'` `'warning-frosted'` `'success'` `'success-frosted'` `'error'` `'error-frosted'` | `'secondary'` | Sets the visual style of the tag, which controls its background and text colors (e.g. `primary`, `secondary`, `notification-info`). |
52
+
53
+ ### Slots
54
+
55
+ | Slot | Required | Allowed tag names | Description |
56
+ | --- | --- | --- | --- |
57
+ | _(default)_ | no | — | Default slot for the tag content. |
58
+
59
+ ## Examples
60
+
61
+ | Example | When to use | File |
62
+ | --- | --- | --- |
63
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
64
+ | With slotted button | It is possible to add a `<button>` tag into the `p-tag` component. | [./examples/SlottedButton.ts](./examples/SlottedButton.ts) |
65
+ | With slotted link | It is possible to add an `<a>` tag to the `p-tag` component. | [./examples/SlottedLink.ts](./examples/SlottedLink.ts) |
66
+ | Multiline | The contents of the `p-tag` component are rendered with `white-space: nowrap` by default. | [./examples/Multiline.ts](./examples/Multiline.ts) |
@@ -0,0 +1,15 @@
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-tag-dismissible>
8
+ Some label
9
+ </p-tag-dismissible>
10
+ `,
11
+ changeDetection: ChangeDetectionStrategy.OnPush,
12
+ standalone: true,
13
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
14
+ })
15
+ export class ExampleComponent {}
@@ -0,0 +1,75 @@
1
+ # p-tag-dismissible
2
+
3
+ `p-tag-dismissible` is used in contexts where the user can actively remove a tag. It is often seen in filtering.
4
+
5
+ ## Usage
6
+
7
+ Allows users to quickly refine the result of data they want to be presented on the page.
8
+
9
+ ### Do:
10
+
11
+ - Use to show that a certain filter is active.
12
+ - Use this component with a label if additional information is needed (e.g. category an attribute/filter refers to).
13
+
14
+ ### Don't:
15
+
16
+ - Don't use it for other interactions than dismissing a selection.
17
+ - Don't have long content that causes multiline.
18
+
19
+ ## Accessibility support
20
+
21
+ ### Keyboard
22
+
23
+ | Key / state | Function |
24
+ | --- | --- |
25
+ | `Tab`, `Shift-Tab` | Moves focus to the next (or previous) focusable element. |
26
+ | `Enter`, `Space` | Removes the element. |
27
+
28
+ ### ARIA enhancements
29
+
30
+ #### External **ARIA** provided by the `aria` property:
31
+
32
+ | ARIA | Usage |
33
+ | --- | --- |
34
+ | `aria-label` | Defines a string value that labels the interactive element. |
35
+
36
+ #### Internal **ARIA** that is managed by the component:
37
+
38
+ | ARIA | Usage |
39
+ | --- | --- |
40
+ | `aria-hidden="true"` | The "close" icon is hidden from assistive technologies. |
41
+
42
+ ## Development considerations
43
+
44
+ ### Focus handling
45
+
46
+ Ensure that when a `p-tag-dismissible` is removed, the focus is set to the previous or next `p-tag-dismissible` or to another focusable element. This prevents losing the focus order.
47
+
48
+ ### Common do's and don'ts
49
+
50
+ - **Do** provide a visible `label` that describes the tag content.
51
+ - **Do** pass dismiss-button ARIA through the `aria` prop when the default action text is insufficient.
52
+ - **Do** move focus to a sensible target after removing a tag.
53
+ - **Don't** add native `aria-*` attributes directly on the component host.
54
+
55
+ ## API
56
+
57
+ ### Properties
58
+
59
+ | Property | Type | Default | Description |
60
+ | --- | --- | --- | --- |
61
+ | `aria` | `TagDismissibleAriaAttribute` | `undefined` | Sets ARIA attributes on the dismiss button element, for example use `aria-label` to provide a descriptive close action for screen readers. |
62
+ | `compact` | `boolean` | `false` | Reduces the tag's padding and height for use in dense layouts where vertical space is limited. |
63
+ | `label` | `string` | `undefined` | Sets the visible label text displayed inside the tag alongside the dismiss button. |
64
+
65
+ ### Slots
66
+
67
+ | Slot | Required | Allowed tag names | Description |
68
+ | --- | --- | --- | --- |
69
+ | _(default)_ | no | — | Default slot for the tag content. |
70
+
71
+ ## Examples
72
+
73
+ | Example | When to use | File |
74
+ | --- | --- | --- |
75
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
@@ -0,0 +1,15 @@
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-text>
8
+ The quick brown fox jumps over the lazy dog
9
+ </p-text>
10
+ `,
11
+ changeDetection: ChangeDetectionStrategy.OnPush,
12
+ standalone: true,
13
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
14
+ })
15
+ export class ExampleComponent {}
@@ -0,0 +1,21 @@
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-text tag="blockquote">
8
+ The quick brown fox jumps over the lazy dog
9
+ </p-text>
10
+
11
+ <p-text>
12
+ <blockquote>
13
+ The quick brown fox jumps over the lazy dog
14
+ </blockquote>
15
+ </p-text>
16
+ `,
17
+ changeDetection: ChangeDetectionStrategy.OnPush,
18
+ standalone: true,
19
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
20
+ })
21
+ export class ExampleComponent {}
@@ -0,0 +1,15 @@
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-text class="text-[3rem]" size="inherit">
8
+ The quick brown fox jumps over the lazy dog
9
+ </p-text>
10
+ `,
11
+ changeDetection: ChangeDetectionStrategy.OnPush,
12
+ standalone: true,
13
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
14
+ })
15
+ export class ExampleComponent {}
@@ -0,0 +1,15 @@
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-text [size]="{'base': 'sm', 'l': '2xl'}">
8
+ The quick brown fox jumps over the lazy dog
9
+ </p-text>
10
+ `,
11
+ changeDetection: ChangeDetectionStrategy.OnPush,
12
+ standalone: true,
13
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
14
+ })
15
+ export class ExampleComponent {}
@@ -0,0 +1,68 @@
1
+ # p-text
2
+
3
+ `p-text` is used to specify paragraph styling in documents.
4
+
5
+ > **Recommendation**
6
+ >
7
+ > Although the component is very sophisticated, it's recommended (if possible) to use the corresponding utility classes of the "@porsche-design-system/components-{js | angular | react | vue}/tailwindcss" sub-package or any of the other styling solutions for best performance since way less DOM nodes are required to render. Further information can be found [here](../../styles/tailwindcss.md).
8
+
9
+ ## Usage
10
+
11
+ p-text is used to specify paragraph styling
12
+
13
+ ### Do:
14
+
15
+ - Use p-text for all running body copy, descriptions, and supporting text.
16
+ - Default to text-small for standard paragraphs; scale up for intros or short content blocks.
17
+ - Use text-xx-small for legal disclaimers or metadata.
18
+ - Maintain spacing and alignment using the fluid grid and responsive typography.
19
+ - Always use the predefined text styles to ensure readability and scalability.
20
+
21
+ ### Don't:
22
+
23
+ - Don’t use p-text styles for section titles or visual emphasis—use p-heading or p-display.
24
+ - Don’t apply unapproved font sizes, weights, or custom spacing.
25
+
26
+ ## Accessibility support
27
+
28
+ This component does not include any special accessibility features.
29
+
30
+ ## Development considerations
31
+
32
+ ### Semantic markup
33
+
34
+ Use the `tag` prop to choose the correct HTML element. Do not pick heading tags only for visual styling.
35
+
36
+ ### Common do's and don'ts
37
+
38
+ - **Do** evaluate correct semantic meaning, e.g. use `tag="p"` for regular paragraphs.
39
+ - **Don't** nest text components.
40
+
41
+ ## API
42
+
43
+ ### Properties
44
+
45
+ | Property | Type | Default | Description |
46
+ | --- | --- | --- | --- |
47
+ | `align` | `'start'` `'center'` `'end'` `'inherit'` | `'start'` | Text alignment of the text. Use 'start' for left-aligned text (in LTR), 'center' for centered, 'end' for right-aligned (in LTR), or 'inherit' to adopt the parent's alignment. |
48
+ | `color` | `'primary'` `'contrast-higher'` `'contrast-high'` `'contrast-medium'` `'success'` `'warning'` `'error'` `'info'` `'inherit'` | `'primary'` | Text color of the text. Use 'primary' for default, 'contrast-higher' / 'contrast-high' / 'contrast-medium' for alternative emphasis levels, 'success' / 'warning' / 'error' / 'info' for status messages, or 'inherit' to adopt the parent's color. |
49
+ | `ellipsis` | `boolean` | `false` | Adds an ellipsis to a single line of text if it overflows the container width. When enabled, the text is truncated to a single line with `text-overflow: ellipsis`. Cannot be combined with multi-line content. |
50
+ | `hyphens` | `'none'` `'manual'` `'auto'` `'inherit'` | `'inherit'` | Controls the hyphenation behavior of the text. Use 'auto' to let the browser automatically hyphenate words at appropriate points, 'manual' to only hyphenate at manually inserted hyphenation points (e.g. `&shy;`), 'none' to disable hyphenation entirely, or 'inherit' to adopt the parent's hyphenation setting. |
51
+ | `size` | `'2xs'` `'xs'` `'sm'` `'md'` `'lg'` `'xl'` `'2xl'` `'3xl'` `'4xl'` `'5xl'` `'inherit'`<br>_deprecated:_ `'xx-small'` `'x-small'` `'small'` `'medium'` `'large'` `'x-large'`<br>`BreakpointCustomizable<TextSize>` | `'sm'` | Size of the text. Also defines the size for specific breakpoints, like {base: "sm", l: "md"}. You always need to provide a base value when doing this. Use 'inherit' to adopt the parent's font size. |
52
+ | `tag` | `'p'` `'span'` `'div'` `'address'` `'blockquote'` `'figcaption'` `'cite'` `'time'` `'legend'` | `'p'` | Sets the HTML tag of the rendered element to ensure correct semantic meaning (e.g. 'p' for paragraphs, 'blockquote' for quotes, 'time' for dates). |
53
+ | `weight` | `'normal'` `'semibold'` `'bold'`<br>_deprecated:_ `'regular'` `'semi-bold'` | `'normal'` | The font weight of the text. Use 'normal' for regular body text, 'semibold' for slightly emphasized text, or 'bold' for strong emphasis. |
54
+
55
+ ### Slots
56
+
57
+ | Slot | Required | Allowed tag names | Description |
58
+ | --- | --- | --- | --- |
59
+ | _(default)_ | no | — | Default slot for the text to render. |
60
+
61
+ ## Examples
62
+
63
+ | Example | When to use | File |
64
+ | --- | --- | --- |
65
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
66
+ | Static Size | There are predefined fluid text sizes for the text component which should cover most use cases. | [./examples/Size.ts](./examples/Size.ts) |
67
+ | Responsive Size | The `size` property accepts a breakpoint object to render different text sizes per viewport. | [./examples/SizeResponsive.ts](./examples/SizeResponsive.ts) |
68
+ | Semantics | To provide more contextual HTML semantics you can either pass them with the `tag` property or directly inside a slot. | [./examples/Semantics.ts](./examples/Semantics.ts) |
@@ -0,0 +1,31 @@
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-text-list>
8
+ <p-text-list-item>
9
+ The quick brown fox jumps over the lazy dog
10
+ </p-text-list-item>
11
+ <p-text-list-item>
12
+ The quick brown fox jumps over the lazy dog
13
+ <p-text-list>
14
+ <p-text-list-item>
15
+ The quick brown fox jumps over the lazy dog
16
+ </p-text-list-item>
17
+ <p-text-list-item>
18
+ The quick brown fox jumps over the lazy dog
19
+ </p-text-list-item>
20
+ </p-text-list>
21
+ </p-text-list-item>
22
+ <p-text-list-item>
23
+ The quick brown fox jumps over the lazy dog
24
+ </p-text-list-item>
25
+ </p-text-list>
26
+ `,
27
+ changeDetection: ChangeDetectionStrategy.OnPush,
28
+ standalone: true,
29
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
30
+ })
31
+ export class ExampleComponent {}
@@ -0,0 +1,68 @@
1
+ # p-text-list
2
+
3
+ The `p-text-list` component is used to display listed data in form of an unordered or ordered list. A list depends on two parts (like any native HTML list): A list wrapper which defines the type of the list (unordered or ordered) and the list items. Nesting is also provided and follows the same nesting rules like native HTML lists. For more complex data you should consider the use of a data table.
4
+
5
+ ## Usage
6
+
7
+ ### Do:
8
+
9
+ - Use to display short pieces of information in the form of an unordered or ordered list.
10
+ - Use an Unordered List to display content with equal value and an Ordered List for sequenced content.
11
+ - Arrange list items in a logical way such as from highest to the lowest level. If necessary split the content into smaller and more specific categories and group them.
12
+ - Stick to a homogeneous writing structure and style within one list.
13
+ - Use sentence-style capitalization for each list item capitalizing only the first letter.
14
+
15
+ ### Don't:
16
+
17
+ - Don't exceed two hierarchy levels in Text Lists.
18
+ - Don't mix active with passive voice or declarative with imperative sentences within one list.
19
+
20
+ ## Accessibility support
21
+
22
+ This component does not include any special accessibility features.
23
+
24
+ ## Development considerations
25
+
26
+ ### List semantics
27
+
28
+ Choose the list `type` based on whether item order matters to understanding the content.
29
+
30
+ ### Common do's and don'ts
31
+
32
+ - **Do** use `type="unordered"` for related items without required sequence.
33
+ - **Do** use `type="numbered"` or `type="alphabetically"` when step order or ranking matters.
34
+ - **Don't** use a numbered list for items that are not sequential.
35
+
36
+ ## API
37
+
38
+ ### Properties
39
+
40
+ | Property | Type | Default | Description |
41
+ | --- | --- | --- | --- |
42
+ | `type` | `'unordered'` `'numbered'` `'alphabetically'` | `'unordered'` | Sets the list type to either `unordered` (bulleted) or `ordered` (numbered), controlling the rendered HTML element (`ul` vs `ol`). |
43
+
44
+ ### Slots
45
+
46
+ | Slot | Required | Allowed tag names | Description |
47
+ | --- | --- | --- | --- |
48
+ | _(default)_ | no | — | Default slot for the `p-text-list-item` tags or nested `p-text-list` tags. |
49
+
50
+ ## Sub-components
51
+
52
+ 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.
53
+
54
+ ### `p-text-list-item`
55
+
56
+ Allowed parent: `p-text-list`.
57
+
58
+ #### Slots
59
+
60
+ | Slot | Required | Allowed tag names | Description |
61
+ | --- | --- | --- | --- |
62
+ | _(default)_ | no | — | Default slot for the content. |
63
+
64
+ ## Examples
65
+
66
+ | Example | When to use | File |
67
+ | --- | --- | --- |
68
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.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-textarea name="some-name" label="Some label"></p-textarea>
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-textarea formControlName="myTextarea" [label]="'Some Label'" [required]="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
+ myTextarea: 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,42 @@
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-textarea name="some-name" state="error">
8
+ <span slot="label" id="some-label-id">
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" id="some-description-id">
23
+ Some description with a
24
+ <a href="https://designsystem.porsche.com" class="underline">
25
+ link
26
+ </a>
27
+ .
28
+ </span>
29
+ <span slot="message" id="some-message-id">
30
+ Some error message with a
31
+ <a href="https://designsystem.porsche.com" class="underline">
32
+ link
33
+ </a>
34
+ .
35
+ </span>
36
+ </p-textarea>
37
+ `,
38
+ changeDetection: ChangeDetectionStrategy.OnPush,
39
+ standalone: true,
40
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
41
+ })
42
+ export class ExampleComponent {}
@@ -0,0 +1,122 @@
1
+ # p-textarea
2
+
3
+ The `p-textarea` component is a multi-line text input control. Don't use a Textarea component if you want to allow users to enter shorter responses that are no longer than a single line, such as a phone number or name. In this case, you should use one of the input components.
4
+
5
+ A `label` is a caption which informs the user what information a particular form field is asking for. The `p-textarea` 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
+ While a `placeholder` is optional but recommended to be set whenever bits of example content or hints shall be shown to give the user visual cues to fill out the form.
8
+
9
+ Instead of relying on slotted content, the `p-textarea` component offers a `value` attribute and property that remain synchronized with user input.
10
+
11
+ ## Usage
12
+
13
+ ### Do:
14
+
15
+ - Use in forms when users need to enter and edit an amount of text that’s longer than a single line.
16
+ - Keep the label text short and descriptive (one or two words).
17
+ - Place validation text right below the Textarea box.
18
+ - Respect the min-height.
19
+ - Mark required fields with a red asterisk to improve the usability of forms.
20
+ - Use the Pure variant (without label) only if the context clearly describes the purpose.
21
+
22
+ ### Don't:
23
+
24
+ - Don't use when text entry is expected to be short. Use an input instead to avoid confusing users.
25
+ - Don't overwhelm users with too many Textareas on a single page. Stick to no more than two Textareas.
26
+
27
+ ## Accessibility support
28
+
29
+ ### Keyboard
30
+
31
+ | Key / state | Function |
32
+ | --- | --- |
33
+ | `Tab`, `Shift-Tab` | Moves focus to the next (or previous) focusable element. |
34
+
35
+ ### ARIA enhancements
36
+
37
+ #### Internal **ARIA** that is managed by the component:
38
+
39
+ | ARIA | Usage |
40
+ | --- | --- |
41
+ | `aria-describedby="IDREF"` | Defines the accessible description combined with the status message. |
42
+ | `role="status"`, `role="alert"` | When `message` and `state` or `loading` prop change, the status message is announced. |
43
+ | `aria-hidden="true"` | If `required` attribute is set, the visible asterisk indicator is hidden from assistive technologies. |
44
+ | `aria-invalid="true"` | If `error` state is set. |
45
+ | `aria-live="polite"` | If the `maxlength` attribute is present, the counter is announced via ARIA live region. |
46
+
47
+ ## Development considerations
48
+
49
+ ### Disabled state
50
+
51
+ 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.
52
+
53
+ ### Common do's and don'ts
54
+
55
+ - **Do** provide a descriptive label, especially for open text questions.
56
+ - **Do** use helper text to describe expected format, length, or sensitive content rules.
57
+ - **Do** surface validation with state/message so screen readers get updates.
58
+ - **Don't** use placeholder-only instructions.
59
+ - **Don't** use `hide-label` without an accessible name.
60
+
61
+ ## API
62
+
63
+ ### Properties
64
+
65
+ | Property | Type | Default | Description |
66
+ | --- | --- | --- | --- |
67
+ | `autoComplete` | `string` | `undefined` | Provides the browser with a hint to enable text autofill suggestions for the textarea (e.g. `autocomplete='on'`). |
68
+ | `compact` | `boolean` | `false` | Reduces the textarea's initial height and padding for use in dense layouts where vertical space is limited. |
69
+ | `counter` | `boolean` | `false` | Shows a live character counter below the textarea indicating how many characters the user has typed relative to `maxLength`. |
70
+ | `description` | `string` | `''` | Sets a supplementary description displayed below the label to give users additional guidance about the textarea. |
71
+ | `disabled` | `boolean` | `false` | Prevents user interaction with the textarea and excludes its value from form submissions. |
72
+ | `form` | `string` | `undefined` | Associates the textarea with a form element by its ID when the textarea is not a direct descendant of that form. |
73
+ | `hideLabel` | `boolean`<br>`BreakpointCustomizable<boolean>` | `false` | Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values. |
74
+ | `label` | `string` | `''` | Sets the visible label text displayed above the textarea to identify its purpose. |
75
+ | `maxLength` | `number` | `undefined` | Sets the maximum number of characters the user is allowed to enter into the textarea. |
76
+ | `message` | `string` | `''` | Sets the validation feedback message displayed below the textarea when `state` is `success` or `error`. |
77
+ | `minLength` | `number` | `undefined` | Sets the minimum number of characters required for the textarea's value to pass constraint validation. |
78
+ | `name` _(required)_ | `string` | `undefined` | Sets the name of the textarea submitted with the form data to identify this field's value on the server. |
79
+ | `placeholder` | `string` | `''` | Sets placeholder text displayed inside the textarea when it is empty to hint at the expected content format. |
80
+ | `readOnly` | `boolean` | `false` | Makes the textarea read-only so users cannot modify the value, while still including it in form submissions. |
81
+ | `required` | `boolean` | `false` | Marks the textarea as required so the form cannot be submitted while this field is empty. |
82
+ | `resize` | `'none'` `'both'` `'horizontal'` `'vertical'` `'block'` `'inline'` | `'vertical'` | Controls whether and in which direction the user can resize the textarea (`horizontal`, `vertical`, `both`, or `none`). |
83
+ | `rows` | `number` | `7` | Sets the initial visible height of the textarea in lines of text. Has no effect when the `--p-textarea-field-sizing` CSS variable is set to `content`. |
84
+ | `spellCheck` | `boolean` | `undefined` | Controls whether the browser's built-in spell-checking and grammar checking is enabled for the textarea content. |
85
+ | `state` | `'none'` `'error'` `'success'` | `'none'` | Sets the validation state of the textarea, which controls its visual appearance and feedback message style (`none`, `success`, `error`). |
86
+ | `value` | `string | null` | `''` | Sets the current multi-line text value of the textarea and reflects any changes made by the user. |
87
+ | `wrap` | `'hard'` `'soft'` `'off'` | `'soft'` | Controls how the submitted text wraps in the form data: `soft` wraps only visually, `hard` inserts line breaks at the textarea width. |
88
+
89
+ ### Events
90
+
91
+ | Event | Type | Description |
92
+ | --- | --- | --- |
93
+ | `blur` | `CustomEvent<TextareaBlurEventDetail>`<br>`Event` | Emitted when the textarea element loses focus, regardless of whether the value changed. |
94
+ | `change` | `CustomEvent<TextareaChangeEventDetail>`<br>`Event` | Emitted when the textarea loses focus after its value was changed, equivalent to the native `change` event. |
95
+ | `input` | `CustomEvent<TextareaInputEventDetail>`<br>`InputEvent` | Emitted on every keystroke or value change as a direct result of user interaction, equivalent to the native `input` event. |
96
+
97
+ ### Slots
98
+
99
+ | Slot | Required | Allowed tag names | Description |
100
+ | --- | --- | --- | --- |
101
+ | `label` | no | — | Shows a label. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
102
+ | `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`). |
103
+ | `description` | no | — | Shows a description. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
104
+ | `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. |
105
+
106
+ ### CSS Variables
107
+
108
+ | CSS Variable | Default | Description |
109
+ | --- | --- | --- |
110
+ | `--p-textarea-field-sizing` | `unset` | Controls CSS `field-sizing` for textarea. |
111
+ | `--p-textarea-min-width` | `52px` | Minimum width of the textarea. |
112
+ | `--p-textarea-max-width` | `unset` | Maximum width of the textarea. |
113
+ | `--p-textarea-min-height` | `unset` | Minimum height of the textarea. |
114
+ | `--p-textarea-max-height` | `unset` | Maximum height of the textarea. |
115
+
116
+ ## Examples
117
+
118
+ | Example | When to use | File |
119
+ | --- | --- | --- |
120
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
121
+ | Form | The `p-textarea` can be integrated into a form in two ways: **controlled** or **uncontrolled**, depending on your needs. | [./examples/Form.ts](./examples/Form.ts) |
122
+ | Slots | Use named slots when `label`, `description` or `message` need markup such as a link. | [./examples/Slots.ts](./examples/Slots.ts) |
@@ -0,0 +1,23 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule, ToastManager } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <button type="button" (click)="onButtonClick()">Queue Toast</button>
8
+ <p-toast></p-toast>
9
+ `,
10
+ changeDetection: ChangeDetectionStrategy.OnPush,
11
+ standalone: true,
12
+ imports: [PorscheDesignSystemModule],
13
+ })
14
+ export class ExampleComponent {
15
+ private counter = 1;
16
+
17
+ constructor(private toastManager: ToastManager) {}
18
+
19
+ onButtonClick() {
20
+ this.toastManager.addMessage({ text: `Some message ${this.counter}`, state: 'success' });
21
+ this.counter++;
22
+ }
23
+ }