@porsche-design-system/components-react 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 (289) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/bin/pds-skill.js +259 -0
  3. package/esm/lib/components/button.wrapper.d.ts +2 -2
  4. package/esm/lib/components/link.wrapper.d.ts +2 -2
  5. package/package.json +4 -3
  6. package/skill/SKILL.md +136 -0
  7. package/skill/references/components/p-accordion/examples/Default.tsx +24 -0
  8. package/skill/references/components/p-accordion/examples/InteractiveElementsInSummary.tsx +28 -0
  9. package/skill/references/components/p-accordion/examples/StickySummary.tsx +24 -0
  10. package/skill/references/components/p-accordion/p-accordion.md +95 -0
  11. package/skill/references/components/p-ai-tag/examples/Default.tsx +10 -0
  12. package/skill/references/components/p-ai-tag/examples/WithinCheckbox.tsx +30 -0
  13. package/skill/references/components/p-ai-tag/examples/WithinFormLabel.tsx +37 -0
  14. package/skill/references/components/p-ai-tag/examples/WithinImage.tsx +13 -0
  15. package/skill/references/components/p-ai-tag/examples/WithinInputSearch.tsx +12 -0
  16. package/skill/references/components/p-ai-tag/examples/WithinRadioGroup.tsx +29 -0
  17. package/skill/references/components/p-ai-tag/examples/WithinTable.tsx +91 -0
  18. package/skill/references/components/p-ai-tag/examples/WithinText.tsx +14 -0
  19. package/skill/references/components/p-ai-tag/p-ai-tag.md +47 -0
  20. package/skill/references/components/p-banner/examples/Customization.tsx +35 -0
  21. package/skill/references/components/p-banner/examples/Default.tsx +24 -0
  22. package/skill/references/components/p-banner/p-banner.md +92 -0
  23. package/skill/references/components/p-button/examples/Default.tsx +12 -0
  24. package/skill/references/components/p-button/examples/Form.tsx +28 -0
  25. package/skill/references/components/p-button/examples/FormAttribute.tsx +31 -0
  26. package/skill/references/components/p-button/p-button.md +118 -0
  27. package/skill/references/components/p-button-pure/examples/CustomClickableArea.tsx +12 -0
  28. package/skill/references/components/p-button-pure/examples/Default.tsx +12 -0
  29. package/skill/references/components/p-button-pure/examples/Form.tsx +28 -0
  30. package/skill/references/components/p-button-pure/examples/FormAttribute.tsx +32 -0
  31. package/skill/references/components/p-button-pure/p-button-pure.md +118 -0
  32. package/skill/references/components/p-button-tile/examples/ColorScheme.tsx +15 -0
  33. package/skill/references/components/p-button-tile/examples/Default.tsx +18 -0
  34. package/skill/references/components/p-button-tile/examples/FooterSlot.tsx +29 -0
  35. package/skill/references/components/p-button-tile/examples/Hyphens.tsx +33 -0
  36. package/skill/references/components/p-button-tile/examples/UiBehaviour.tsx +41 -0
  37. package/skill/references/components/p-button-tile/p-button-tile.md +115 -0
  38. package/skill/references/components/p-canvas/examples/Default.tsx +10 -0
  39. package/skill/references/components/p-canvas/p-canvas.md +91 -0
  40. package/skill/references/components/p-carousel/examples/Default.tsx +23 -0
  41. package/skill/references/components/p-carousel/examples/DynamicSlides.tsx +32 -0
  42. package/skill/references/components/p-carousel/examples/FlexibleWidths.tsx +29 -0
  43. package/skill/references/components/p-carousel/examples/FocusOnCenterSlide.tsx +56 -0
  44. package/skill/references/components/p-carousel/examples/Intl.tsx +20 -0
  45. package/skill/references/components/p-carousel/examples/JumpToSlide.tsx +42 -0
  46. package/skill/references/components/p-carousel/p-carousel.md +142 -0
  47. package/skill/references/components/p-checkbox/examples/Default.tsx +10 -0
  48. package/skill/references/components/p-checkbox/examples/Form.tsx +45 -0
  49. package/skill/references/components/p-checkbox/examples/Indeterminate.tsx +13 -0
  50. package/skill/references/components/p-checkbox/examples/Slots.tsx +54 -0
  51. package/skill/references/components/p-checkbox/examples/WrappedLabel.tsx +24 -0
  52. package/skill/references/components/p-checkbox/p-checkbox.md +122 -0
  53. package/skill/references/components/p-crest/examples/CustomClickableArea.tsx +10 -0
  54. package/skill/references/components/p-crest/examples/Default.tsx +10 -0
  55. package/skill/references/components/p-crest/examples/Link.tsx +10 -0
  56. package/skill/references/components/p-crest/p-crest.md +65 -0
  57. package/skill/references/components/p-display/examples/Color.tsx +12 -0
  58. package/skill/references/components/p-display/examples/Default.tsx +12 -0
  59. package/skill/references/components/p-display/examples/Semantics.tsx +18 -0
  60. package/skill/references/components/p-display/examples/Size.tsx +12 -0
  61. package/skill/references/components/p-display/examples/SizeResponsive.tsx +12 -0
  62. package/skill/references/components/p-display/p-display.md +78 -0
  63. package/skill/references/components/p-divider/examples/Default.tsx +10 -0
  64. package/skill/references/components/p-divider/examples/Responsive.tsx +12 -0
  65. package/skill/references/components/p-divider/examples/Vertical.tsx +12 -0
  66. package/skill/references/components/p-divider/p-divider.md +49 -0
  67. package/skill/references/components/p-drilldown/examples/CustomContent.tsx +164 -0
  68. package/skill/references/components/p-drilldown/examples/Default.tsx +117 -0
  69. package/skill/references/components/p-drilldown/p-drilldown.md +168 -0
  70. package/skill/references/components/p-fieldset/examples/Default.tsx +12 -0
  71. package/skill/references/components/p-fieldset/examples/Required.tsx +13 -0
  72. package/skill/references/components/p-fieldset/examples/SlottedLabel.tsx +15 -0
  73. package/skill/references/components/p-fieldset/examples/SlottedMessage.tsx +15 -0
  74. package/skill/references/components/p-fieldset/p-fieldset.md +88 -0
  75. package/skill/references/components/p-flag/examples/Default.tsx +10 -0
  76. package/skill/references/components/p-flag/examples/ResponsiveSize.tsx +10 -0
  77. package/skill/references/components/p-flag/examples/Size.tsx +13 -0
  78. package/skill/references/components/p-flag/examples/SizeCssVar.tsx +10 -0
  79. package/skill/references/components/p-flag/p-flag.md +68 -0
  80. package/skill/references/components/p-flyout/examples/CustomStyling.tsx +45 -0
  81. package/skill/references/components/p-flyout/examples/Default.tsx +42 -0
  82. package/skill/references/components/p-flyout/examples/Form.tsx +54 -0
  83. package/skill/references/components/p-flyout/examples/StickyTop.tsx +42 -0
  84. package/skill/references/components/p-flyout/p-flyout.md +128 -0
  85. package/skill/references/components/p-heading/examples/Color.tsx +12 -0
  86. package/skill/references/components/p-heading/examples/Default.tsx +12 -0
  87. package/skill/references/components/p-heading/examples/Semantics.tsx +18 -0
  88. package/skill/references/components/p-heading/p-heading.md +78 -0
  89. package/skill/references/components/p-icon/examples/Color.tsx +13 -0
  90. package/skill/references/components/p-icon/examples/ColorCssVar.tsx +10 -0
  91. package/skill/references/components/p-icon/examples/Custom.tsx +10 -0
  92. package/skill/references/components/p-icon/examples/Default.tsx +10 -0
  93. package/skill/references/components/p-icon/examples/Overview.tsx +588 -0
  94. package/skill/references/components/p-icon/examples/ResponsiveSize.tsx +10 -0
  95. package/skill/references/components/p-icon/examples/Size.tsx +13 -0
  96. package/skill/references/components/p-icon/examples/SizeCssVar.tsx +10 -0
  97. package/skill/references/components/p-icon/p-icon.md +88 -0
  98. package/skill/references/components/p-inline-notification/examples/ActionButton.tsx +25 -0
  99. package/skill/references/components/p-inline-notification/examples/Default.tsx +10 -0
  100. package/skill/references/components/p-inline-notification/examples/EventHandling.tsx +25 -0
  101. package/skill/references/components/p-inline-notification/p-inline-notification.md +74 -0
  102. package/skill/references/components/p-input-date/examples/Default.tsx +10 -0
  103. package/skill/references/components/p-input-date/examples/Form.tsx +45 -0
  104. package/skill/references/components/p-input-date/examples/Slots.tsx +41 -0
  105. package/skill/references/components/p-input-date/p-input-date.md +142 -0
  106. package/skill/references/components/p-input-email/examples/Default.tsx +10 -0
  107. package/skill/references/components/p-input-email/examples/Form.tsx +51 -0
  108. package/skill/references/components/p-input-email/examples/Slots.tsx +41 -0
  109. package/skill/references/components/p-input-email/p-input-email.md +146 -0
  110. package/skill/references/components/p-input-month/examples/Default.tsx +10 -0
  111. package/skill/references/components/p-input-month/examples/Form.tsx +45 -0
  112. package/skill/references/components/p-input-month/examples/Slots.tsx +41 -0
  113. package/skill/references/components/p-input-month/p-input-month.md +142 -0
  114. package/skill/references/components/p-input-number/examples/Default.tsx +10 -0
  115. package/skill/references/components/p-input-number/examples/Form.tsx +51 -0
  116. package/skill/references/components/p-input-number/examples/Slots.tsx +41 -0
  117. package/skill/references/components/p-input-number/p-input-number.md +150 -0
  118. package/skill/references/components/p-input-password/examples/Default.tsx +10 -0
  119. package/skill/references/components/p-input-password/examples/Form.tsx +51 -0
  120. package/skill/references/components/p-input-password/examples/Slots.tsx +39 -0
  121. package/skill/references/components/p-input-password/examples/Toggle.tsx +10 -0
  122. package/skill/references/components/p-input-password/p-input-password.md +145 -0
  123. package/skill/references/components/p-input-search/examples/AriaCombobox.tsx +35 -0
  124. package/skill/references/components/p-input-search/examples/Default.tsx +10 -0
  125. package/skill/references/components/p-input-search/examples/Form.tsx +52 -0
  126. package/skill/references/components/p-input-search/examples/Slots.tsx +41 -0
  127. package/skill/references/components/p-input-search/p-input-search.md +182 -0
  128. package/skill/references/components/p-input-tel/examples/Default.tsx +10 -0
  129. package/skill/references/components/p-input-tel/examples/Form.tsx +45 -0
  130. package/skill/references/components/p-input-tel/examples/Slots.tsx +41 -0
  131. package/skill/references/components/p-input-tel/p-input-tel.md +145 -0
  132. package/skill/references/components/p-input-text/examples/Controlled.tsx +36 -0
  133. package/skill/references/components/p-input-text/examples/Default.tsx +10 -0
  134. package/skill/references/components/p-input-text/examples/Form.tsx +45 -0
  135. package/skill/references/components/p-input-text/examples/Slots.tsx +41 -0
  136. package/skill/references/components/p-input-text/p-input-text.md +150 -0
  137. package/skill/references/components/p-input-time/examples/Default.tsx +10 -0
  138. package/skill/references/components/p-input-time/examples/Form.tsx +45 -0
  139. package/skill/references/components/p-input-time/examples/Slots.tsx +41 -0
  140. package/skill/references/components/p-input-time/p-input-time.md +144 -0
  141. package/skill/references/components/p-input-url/examples/Default.tsx +10 -0
  142. package/skill/references/components/p-input-url/examples/Form.tsx +45 -0
  143. package/skill/references/components/p-input-url/examples/Slots.tsx +41 -0
  144. package/skill/references/components/p-input-url/p-input-url.md +145 -0
  145. package/skill/references/components/p-input-week/examples/Default.tsx +10 -0
  146. package/skill/references/components/p-input-week/examples/Form.tsx +45 -0
  147. package/skill/references/components/p-input-week/examples/Slots.tsx +41 -0
  148. package/skill/references/components/p-input-week/p-input-week.md +142 -0
  149. package/skill/references/components/p-link/examples/Default.tsx +12 -0
  150. package/skill/references/components/p-link/examples/FrameworkRouting.tsx +14 -0
  151. package/skill/references/components/p-link/examples/Icon.tsx +17 -0
  152. package/skill/references/components/p-link/p-link.md +101 -0
  153. package/skill/references/components/p-link-pure/examples/CustomClickableArea.tsx +12 -0
  154. package/skill/references/components/p-link-pure/examples/Default.tsx +12 -0
  155. package/skill/references/components/p-link-pure/examples/FrameworkRouting.tsx +14 -0
  156. package/skill/references/components/p-link-pure/examples/Icon.tsx +17 -0
  157. package/skill/references/components/p-link-pure/p-link-pure.md +110 -0
  158. package/skill/references/components/p-link-tile/examples/ColorScheme.tsx +15 -0
  159. package/skill/references/components/p-link-tile/examples/Default.tsx +18 -0
  160. package/skill/references/components/p-link-tile/examples/FooterSlot.tsx +29 -0
  161. package/skill/references/components/p-link-tile/examples/Hyphens.tsx +34 -0
  162. package/skill/references/components/p-link-tile/examples/UiBehaviour.tsx +41 -0
  163. package/skill/references/components/p-link-tile/examples/WithVideo.tsx +15 -0
  164. package/skill/references/components/p-link-tile/p-link-tile.md +105 -0
  165. package/skill/references/components/p-link-tile-product/examples/Default.tsx +22 -0
  166. package/skill/references/components/p-link-tile-product/examples/FrameworkRouting.tsx +25 -0
  167. package/skill/references/components/p-link-tile-product/p-link-tile-product.md +93 -0
  168. package/skill/references/components/p-modal/examples/AlertDialog.tsx +39 -0
  169. package/skill/references/components/p-modal/examples/CustomStyling.tsx +26 -0
  170. package/skill/references/components/p-modal/examples/Default.tsx +39 -0
  171. package/skill/references/components/p-modal/examples/Scrollable.tsx +43 -0
  172. package/skill/references/components/p-modal/p-modal.md +135 -0
  173. package/skill/references/components/p-model-signature/examples/CustomStyling.tsx +14 -0
  174. package/skill/references/components/p-model-signature/examples/Default.tsx +10 -0
  175. package/skill/references/components/p-model-signature/examples/MaskBlendMode.tsx +32 -0
  176. package/skill/references/components/p-model-signature/examples/MaskImage.tsx +12 -0
  177. package/skill/references/components/p-model-signature/examples/MaskVideo.tsx +12 -0
  178. package/skill/references/components/p-model-signature/examples/SafeZone.tsx +60 -0
  179. package/skill/references/components/p-model-signature/p-model-signature.md +62 -0
  180. package/skill/references/components/p-multi-select/examples/AsyncFilter.tsx +136 -0
  181. package/skill/references/components/p-multi-select/examples/Default.tsx +29 -0
  182. package/skill/references/components/p-multi-select/examples/Form.tsx +53 -0
  183. package/skill/references/components/p-multi-select/examples/Optgroups.tsx +42 -0
  184. package/skill/references/components/p-multi-select/examples/SelectedSlot.tsx +94 -0
  185. package/skill/references/components/p-multi-select/examples/SetValue.tsx +80 -0
  186. package/skill/references/components/p-multi-select/examples/Slots.tsx +48 -0
  187. package/skill/references/components/p-multi-select/p-multi-select.md +197 -0
  188. package/skill/references/components/p-pagination/examples/Default.tsx +10 -0
  189. package/skill/references/components/p-pagination/p-pagination.md +83 -0
  190. package/skill/references/components/p-pin-code/examples/CopyPaste.tsx +10 -0
  191. package/skill/references/components/p-pin-code/examples/Default.tsx +10 -0
  192. package/skill/references/components/p-pin-code/examples/Form.tsx +45 -0
  193. package/skill/references/components/p-pin-code/examples/Slots.tsx +39 -0
  194. package/skill/references/components/p-pin-code/p-pin-code.md +109 -0
  195. package/skill/references/components/p-popover/examples/Default.tsx +14 -0
  196. package/skill/references/components/p-popover/examples/SlottedButton.tsx +15 -0
  197. package/skill/references/components/p-popover/p-popover.md +116 -0
  198. package/skill/references/components/p-radio-group/examples/Default.tsx +17 -0
  199. package/skill/references/components/p-radio-group/examples/Form.tsx +53 -0
  200. package/skill/references/components/p-radio-group/examples/Slots.tsx +69 -0
  201. package/skill/references/components/p-radio-group/p-radio-group.md +157 -0
  202. package/skill/references/components/p-scroller/examples/Default.tsx +51 -0
  203. package/skill/references/components/p-scroller/examples/Height.tsx +26 -0
  204. package/skill/references/components/p-scroller/examples/ScrollToPosition.tsx +58 -0
  205. package/skill/references/components/p-scroller/p-scroller.md +93 -0
  206. package/skill/references/components/p-segmented-control/examples/Default.tsx +26 -0
  207. package/skill/references/components/p-segmented-control/examples/Form.tsx +52 -0
  208. package/skill/references/components/p-segmented-control/examples/Slots.tsx +54 -0
  209. package/skill/references/components/p-segmented-control/examples/WithLabels.tsx +26 -0
  210. package/skill/references/components/p-segmented-control/p-segmented-control.md +162 -0
  211. package/skill/references/components/p-select/examples/AsyncFilter.tsx +136 -0
  212. package/skill/references/components/p-select/examples/Default.tsx +29 -0
  213. package/skill/references/components/p-select/examples/Form.tsx +53 -0
  214. package/skill/references/components/p-select/examples/Optgroups.tsx +42 -0
  215. package/skill/references/components/p-select/examples/Required.tsx +48 -0
  216. package/skill/references/components/p-select/examples/SelectedSlot.tsx +124 -0
  217. package/skill/references/components/p-select/examples/SetValue.tsx +80 -0
  218. package/skill/references/components/p-select/examples/Slots.tsx +48 -0
  219. package/skill/references/components/p-select/examples/SlottedImages.tsx +35 -0
  220. package/skill/references/components/p-select/p-select.md +194 -0
  221. package/skill/references/components/p-sheet/examples/Default.tsx +31 -0
  222. package/skill/references/components/p-sheet/p-sheet.md +121 -0
  223. package/skill/references/components/p-spinner/examples/Color.tsx +13 -0
  224. package/skill/references/components/p-spinner/examples/ColorCssVar.tsx +10 -0
  225. package/skill/references/components/p-spinner/examples/Default.tsx +10 -0
  226. package/skill/references/components/p-spinner/examples/ResponsiveSize.tsx +10 -0
  227. package/skill/references/components/p-spinner/examples/Size.tsx +13 -0
  228. package/skill/references/components/p-spinner/examples/SizeCssVar.tsx +10 -0
  229. package/skill/references/components/p-spinner/p-spinner.md +96 -0
  230. package/skill/references/components/p-stepper-horizontal/examples/Default.tsx +23 -0
  231. package/skill/references/components/p-stepper-horizontal/examples/FrameworkImplementation.tsx +100 -0
  232. package/skill/references/components/p-stepper-horizontal/p-stepper-horizontal.md +109 -0
  233. package/skill/references/components/p-switch/examples/Default.tsx +19 -0
  234. package/skill/references/components/p-switch/p-switch.md +103 -0
  235. package/skill/references/components/p-table/examples/Advanced.tsx +186 -0
  236. package/skill/references/components/p-table/examples/CaptionProperty.tsx +37 -0
  237. package/skill/references/components/p-table/examples/CaptionSlot.tsx +40 -0
  238. package/skill/references/components/p-table/examples/Default.tsx +117 -0
  239. package/skill/references/components/p-table/examples/HideLabel.tsx +37 -0
  240. package/skill/references/components/p-table/examples/LayoutFixed.tsx +50 -0
  241. package/skill/references/components/p-table/examples/Sorting.tsx +86 -0
  242. package/skill/references/components/p-table/p-table.md +189 -0
  243. package/skill/references/components/p-tabs/examples/ActiveTab.tsx +26 -0
  244. package/skill/references/components/p-tabs/examples/Default.tsx +26 -0
  245. package/skill/references/components/p-tabs/examples/Gradient.tsx +111 -0
  246. package/skill/references/components/p-tabs/examples/Labelling.tsx +26 -0
  247. package/skill/references/components/p-tabs/p-tabs.md +136 -0
  248. package/skill/references/components/p-tabs-bar/examples/Default.tsx +27 -0
  249. package/skill/references/components/p-tabs-bar/examples/Gradient.tsx +78 -0
  250. package/skill/references/components/p-tabs-bar/examples/Labelling.tsx +27 -0
  251. package/skill/references/components/p-tabs-bar/examples/Links.tsx +20 -0
  252. package/skill/references/components/p-tabs-bar/p-tabs-bar.md +181 -0
  253. package/skill/references/components/p-tag/examples/Default.tsx +12 -0
  254. package/skill/references/components/p-tag/examples/Multiline.tsx +14 -0
  255. package/skill/references/components/p-tag/examples/SlottedButton.tsx +41 -0
  256. package/skill/references/components/p-tag/examples/SlottedLink.tsx +41 -0
  257. package/skill/references/components/p-tag/p-tag.md +66 -0
  258. package/skill/references/components/p-tag-dismissible/examples/Default.tsx +12 -0
  259. package/skill/references/components/p-tag-dismissible/p-tag-dismissible.md +75 -0
  260. package/skill/references/components/p-text/examples/Default.tsx +12 -0
  261. package/skill/references/components/p-text/examples/Semantics.tsx +18 -0
  262. package/skill/references/components/p-text/examples/Size.tsx +12 -0
  263. package/skill/references/components/p-text/examples/SizeResponsive.tsx +12 -0
  264. package/skill/references/components/p-text/p-text.md +68 -0
  265. package/skill/references/components/p-text-list/examples/Default.tsx +28 -0
  266. package/skill/references/components/p-text-list/p-text-list.md +68 -0
  267. package/skill/references/components/p-textarea/examples/Default.tsx +10 -0
  268. package/skill/references/components/p-textarea/examples/Form.tsx +45 -0
  269. package/skill/references/components/p-textarea/examples/Slots.tsx +39 -0
  270. package/skill/references/components/p-textarea/p-textarea.md +122 -0
  271. package/skill/references/components/p-toast/examples/Default.tsx +22 -0
  272. package/skill/references/components/p-toast/p-toast.md +61 -0
  273. package/skill/references/components/p-wordmark/examples/CustomClickableArea.tsx +10 -0
  274. package/skill/references/components/p-wordmark/examples/Default.tsx +10 -0
  275. package/skill/references/components/p-wordmark/examples/Size.tsx +10 -0
  276. package/skill/references/components/p-wordmark/p-wordmark.md +66 -0
  277. package/skill/references/icons.md +5 -0
  278. package/skill/references/styles/emotion.md +439 -0
  279. package/skill/references/styles/scss.md +402 -0
  280. package/skill/references/styles/tailwindcss.md +356 -0
  281. package/skill/references/styles/vanilla-extract.md +444 -0
  282. package/skill/references/stylesheets.md +331 -0
  283. package/skill/references/tokens.md +323 -0
  284. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +1 -1
  285. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +1 -1
  286. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +1 -1
  287. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +1 -1
  288. package/ssr/esm/lib/components/button.wrapper.d.ts +2 -2
  289. package/ssr/esm/lib/components/link.wrapper.d.ts +2 -2
@@ -0,0 +1,186 @@
1
+ import React from 'react';
2
+ import {
3
+ PButtonPure,
4
+ PHeading,
5
+ PTable,
6
+ PTableBody,
7
+ PTableCell,
8
+ PTableHead,
9
+ PTableHeadCell,
10
+ PTableHeadRow,
11
+ PTableRow,
12
+ PText,
13
+ type TableUpdateEventDetail,
14
+ } from '@porsche-design-system/components-react';
15
+ import { useCallback, useState } from 'react';
16
+
17
+ type HeadAdvanced = {
18
+ id: string;
19
+ name: string;
20
+ hideLabel: boolean;
21
+ active?: boolean;
22
+ direction?: 'asc' | 'desc';
23
+ };
24
+
25
+ const headAdvanced: HeadAdvanced[] = [
26
+ { name: 'Model', id: 'model' } as HeadAdvanced,
27
+ { name: 'Interest', id: 'interest' } as HeadAdvanced,
28
+ { name: 'VIN', id: 'vin' } as HeadAdvanced,
29
+ { name: 'Purchase Intention', id: 'purchaseIntention' } as HeadAdvanced,
30
+ { name: 'Status', id: 'status' } as HeadAdvanced,
31
+ { name: 'Comment', id: 'comment' } as HeadAdvanced,
32
+ { name: 'Lead ID', id: 'leadId' } as HeadAdvanced,
33
+ { name: 'Select Wrapper', id: 'selectWrapper' } as HeadAdvanced,
34
+ { name: 'Select', id: 'select' } as HeadAdvanced,
35
+ { name: 'Multi-Select', id: 'multiSelect' } as HeadAdvanced,
36
+ { name: 'Action', id: 'action', hideLabel: true } as HeadAdvanced,
37
+ ].map((item, i) => ({
38
+ ...item,
39
+ ...(i > 0 &&
40
+ i < 7 &&
41
+ i !== 5 && {
42
+ active: i === 1,
43
+ direction: 'asc',
44
+ }),
45
+ }));
46
+
47
+ type DataAdvanced = {
48
+ imageUrl: string;
49
+ model: string;
50
+ date: string;
51
+ interest: string;
52
+ vin: string;
53
+ purchaseIntention: string;
54
+ status: string;
55
+ comment: string;
56
+ leadId: string;
57
+ };
58
+
59
+ const dataAdvanced: DataAdvanced[] = [
60
+ {
61
+ imageUrl: 'assets/718.png',
62
+ model: '718',
63
+ date: '23.06.2021',
64
+ interest: 'New Car',
65
+ vin: '1FM5K7F84FGB16304',
66
+ purchaseIntention: '08/2021',
67
+ status: 'Won',
68
+ comment: '-',
69
+ leadId: '0000824402',
70
+ },
71
+ {
72
+ imageUrl: 'assets/panamera.png',
73
+ model: 'Panamera',
74
+ date: '19.06.2021',
75
+ interest: 'New Car',
76
+ vin: '2GCEC13T141374801',
77
+ purchaseIntention: '11/2021',
78
+ status: 'Lost',
79
+ comment: 'Some multiline text and a column with a min width.',
80
+ leadId: '0000824409',
81
+ },
82
+ {
83
+ imageUrl: 'assets/911.png',
84
+ model: '911',
85
+ date: '19.05.2021',
86
+ interest: 'Used Car',
87
+ vin: '5GAKVCKD8EJ335750',
88
+ purchaseIntention: '09/2021',
89
+ status: 'Won',
90
+ comment: '-',
91
+ leadId: '0000824408',
92
+ },
93
+ {
94
+ imageUrl: 'assets/macan.png',
95
+ model: 'Macan',
96
+ date: '10.05.2021',
97
+ interest: 'Used Car',
98
+ vin: '1FMPU17L83LC09302',
99
+ purchaseIntention: '07/2021',
100
+ status: 'Lost',
101
+ comment: '-',
102
+ leadId: '0000824407',
103
+ },
104
+ {
105
+ imageUrl: 'assets/taycan.png',
106
+ model: 'Taycan',
107
+ date: '03.05.2021',
108
+ interest: 'New Car',
109
+ vin: 'JN1BY1AR3BM375187',
110
+ purchaseIntention: '05/2021',
111
+ status: 'Won',
112
+ comment: '-',
113
+ leadId: '0000824406',
114
+ },
115
+ ];
116
+
117
+ export const Example = () => {
118
+ const [head, setHead] = useState(headAdvanced);
119
+ const [data, setData] = useState(dataAdvanced);
120
+
121
+ const onUpdate = useCallback((e: CustomEvent<TableUpdateEventDetail>) => {
122
+ const { id, direction } = e.detail as TableUpdateEventDetail & { id: keyof DataAdvanced };
123
+ setHead((prev) => prev.map((item) => ({ ...item, active: false, ...(item.id === id && e.detail) })));
124
+ setData((prev) =>
125
+ [...prev].sort((a, b) => {
126
+ return direction === 'asc' ? a[id].localeCompare(b[id]) : b[id].localeCompare(a[id]);
127
+ })
128
+ );
129
+ }, []);
130
+
131
+ return (
132
+ <PTable onUpdate={onUpdate}>
133
+ <PHeading slot="caption" size="large" tag="h3">
134
+ Some visual caption
135
+ </PHeading>
136
+ <PTableHead>
137
+ <PTableHeadRow>
138
+ {head.map((item, i) => (
139
+ <PTableHeadCell key={i} sort={item} hideLabel={item.hideLabel}>
140
+ {item.name}
141
+ </PTableHeadCell>
142
+ ))}
143
+ </PTableHeadRow>
144
+ </PTableHead>
145
+ <PTableBody>
146
+ {data.map((item, i) => (
147
+ <PTableRow key={i}>
148
+ <PTableCell>
149
+ <div style={{ display: 'flex' }}>
150
+ <img
151
+ src={item.imageUrl}
152
+ width={80}
153
+ height={45}
154
+ style={{ marginRight: '.5rem', objectFit: 'contain', maxWidth: 'none' }}
155
+ alt=""
156
+ />
157
+ <div>
158
+ <PText weight="semi-bold">{item.model}</PText>
159
+ <PText size="x-small">{item.date}</PText>
160
+ </div>
161
+ </div>
162
+ </PTableCell>
163
+ <PTableCell>{item.interest}</PTableCell>
164
+ <PTableCell>
165
+ <a href="https://porsche.com">{item.vin}</a>
166
+ </PTableCell>
167
+ <PTableCell>{item.purchaseIntention}</PTableCell>
168
+ <PTableCell>{item.status}</PTableCell>
169
+ <PTableCell multiline={true} style={{ minWidth: '10rem' }}>
170
+ {item.comment}
171
+ </PTableCell>
172
+ <PTableCell>{item.leadId}</PTableCell>
173
+ <PTableCell>
174
+ <PButtonPure icon="edit" style={{ padding: '.5rem' }}>
175
+ Edit
176
+ </PButtonPure>
177
+ <PButtonPure icon="delete" style={{ padding: '.5rem' }}>
178
+ Delete
179
+ </PButtonPure>
180
+ </PTableCell>
181
+ </PTableRow>
182
+ ))}
183
+ </PTableBody>
184
+ </PTable>
185
+ );
186
+ };
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { PTable, PTableBody, PTableCell, PTableHead, PTableHeadCell, PTableHeadRow, PTableRow } from '@porsche-design-system/components-react';
3
+
4
+ export const Example = () => {
5
+ return (
6
+ <>
7
+ <PTable caption="Some caption">
8
+ <PTableHead>
9
+ <PTableHeadRow>
10
+ <PTableHeadCell>
11
+ Column 1
12
+ </PTableHeadCell>
13
+ <PTableHeadCell>
14
+ Column 2
15
+ </PTableHeadCell>
16
+ <PTableHeadCell>
17
+ Column 3
18
+ </PTableHeadCell>
19
+ </PTableHeadRow>
20
+ </PTableHead>
21
+ <PTableBody>
22
+ <PTableRow>
23
+ <PTableCell>
24
+ Cell 1
25
+ </PTableCell>
26
+ <PTableCell>
27
+ Cell 2
28
+ </PTableCell>
29
+ <PTableCell>
30
+ Cell 3
31
+ </PTableCell>
32
+ </PTableRow>
33
+ </PTableBody>
34
+ </PTable>
35
+ </>
36
+ )
37
+ }
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { PHeading, PTable, PTableBody, PTableCell, PTableHead, PTableHeadCell, PTableHeadRow, PTableRow } from '@porsche-design-system/components-react';
3
+
4
+ export const Example = () => {
5
+ return (
6
+ <>
7
+ <PTable>
8
+ <PHeading slot="caption" size="large" tag="h3">
9
+ Some slotted caption
10
+ </PHeading>
11
+ <PTableHead>
12
+ <PTableHeadRow>
13
+ <PTableHeadCell>
14
+ Column 1
15
+ </PTableHeadCell>
16
+ <PTableHeadCell>
17
+ Column 2
18
+ </PTableHeadCell>
19
+ <PTableHeadCell>
20
+ Column 3
21
+ </PTableHeadCell>
22
+ </PTableHeadRow>
23
+ </PTableHead>
24
+ <PTableBody>
25
+ <PTableRow>
26
+ <PTableCell>
27
+ Cell 1
28
+ </PTableCell>
29
+ <PTableCell>
30
+ Cell 2
31
+ </PTableCell>
32
+ <PTableCell>
33
+ Cell 3
34
+ </PTableCell>
35
+ </PTableRow>
36
+ </PTableBody>
37
+ </PTable>
38
+ </>
39
+ )
40
+ }
@@ -0,0 +1,117 @@
1
+ import React from 'react';
2
+ import { PTable, PTableBody, PTableCell, PTableHead, PTableHeadCell, PTableHeadRow, PTableRow } from '@porsche-design-system/components-react';
3
+
4
+ export const Example = () => {
5
+ return (
6
+ <>
7
+ <PTable caption="Some caption">
8
+ <PTableHead>
9
+ <PTableHeadRow>
10
+ <PTableHeadCell>
11
+ Model
12
+ </PTableHeadCell>
13
+ <PTableHeadCell>
14
+ Date
15
+ </PTableHeadCell>
16
+ <PTableHeadCell>
17
+ Purchase Intention
18
+ </PTableHeadCell>
19
+ <PTableHeadCell>
20
+ Status
21
+ </PTableHeadCell>
22
+ <PTableHeadCell>
23
+ Lead ID
24
+ </PTableHeadCell>
25
+ </PTableHeadRow>
26
+ </PTableHead>
27
+ <PTableBody>
28
+ <PTableRow>
29
+ <PTableCell>
30
+ 718 Cayman
31
+ </PTableCell>
32
+ <PTableCell>
33
+ 23.06.2021
34
+ </PTableCell>
35
+ <PTableCell>
36
+ New Car
37
+ </PTableCell>
38
+ <PTableCell>
39
+ Won
40
+ </PTableCell>
41
+ <PTableCell>
42
+ 0000824402
43
+ </PTableCell>
44
+ </PTableRow>
45
+ <PTableRow>
46
+ <PTableCell>
47
+ Panamera 4S
48
+ </PTableCell>
49
+ <PTableCell>
50
+ 19.06.2021
51
+ </PTableCell>
52
+ <PTableCell>
53
+ New Car
54
+ </PTableCell>
55
+ <PTableCell>
56
+ Lost
57
+ </PTableCell>
58
+ <PTableCell>
59
+ 0000824409
60
+ </PTableCell>
61
+ </PTableRow>
62
+ <PTableRow>
63
+ <PTableCell>
64
+ 911 Carrera S
65
+ </PTableCell>
66
+ <PTableCell>
67
+ 19.05.2021
68
+ </PTableCell>
69
+ <PTableCell>
70
+ Used Car
71
+ </PTableCell>
72
+ <PTableCell>
73
+ Won
74
+ </PTableCell>
75
+ <PTableCell>
76
+ 0000824408
77
+ </PTableCell>
78
+ </PTableRow>
79
+ <PTableRow>
80
+ <PTableCell>
81
+ Macan Turbo
82
+ </PTableCell>
83
+ <PTableCell>
84
+ 10.05.2021
85
+ </PTableCell>
86
+ <PTableCell>
87
+ Used Car
88
+ </PTableCell>
89
+ <PTableCell>
90
+ Lost
91
+ </PTableCell>
92
+ <PTableCell>
93
+ 0000824407
94
+ </PTableCell>
95
+ </PTableRow>
96
+ <PTableRow>
97
+ <PTableCell>
98
+ Taycan
99
+ </PTableCell>
100
+ <PTableCell>
101
+ 03.05.2021
102
+ </PTableCell>
103
+ <PTableCell>
104
+ New Car
105
+ </PTableCell>
106
+ <PTableCell>
107
+ Won
108
+ </PTableCell>
109
+ <PTableCell>
110
+ 0000824406
111
+ </PTableCell>
112
+ </PTableRow>
113
+ </PTableBody>
114
+ </PTable>
115
+ </>
116
+ )
117
+ }
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { PTable, PTableBody, PTableCell, PTableHead, PTableHeadCell, PTableHeadRow, PTableRow } from '@porsche-design-system/components-react';
3
+
4
+ export const Example = () => {
5
+ return (
6
+ <>
7
+ <PTable caption="Some caption">
8
+ <PTableHead>
9
+ <PTableHeadRow>
10
+ <PTableHeadCell>
11
+ Column 1
12
+ </PTableHeadCell>
13
+ <PTableHeadCell>
14
+ Column 2
15
+ </PTableHeadCell>
16
+ <PTableHeadCell hideLabel={true}>
17
+ Column 3
18
+ </PTableHeadCell>
19
+ </PTableHeadRow>
20
+ </PTableHead>
21
+ <PTableBody>
22
+ <PTableRow>
23
+ <PTableCell>
24
+ Cell 1
25
+ </PTableCell>
26
+ <PTableCell>
27
+ Cell 2
28
+ </PTableCell>
29
+ <PTableCell>
30
+ Cell 3
31
+ </PTableCell>
32
+ </PTableRow>
33
+ </PTableBody>
34
+ </PTable>
35
+ </>
36
+ )
37
+ }
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import { PTable, PTableBody, PTableCell, PTableHead, PTableHeadCell, PTableHeadRow, PTableRow, PText } from '@porsche-design-system/components-react';
3
+
4
+ export const Example = () => {
5
+ return (
6
+ <>
7
+ <PTable caption="Some caption" layout="fixed">
8
+ <PTableHead>
9
+ <PTableHeadRow>
10
+ <PTableHeadCell className="w-[50%] max-w-[50%]">
11
+ Column 1 (50%)
12
+ </PTableHeadCell>
13
+ <PTableHeadCell className="w-[150px] max-w-[150px]">
14
+ Column 2 (150px)
15
+ </PTableHeadCell>
16
+ <PTableHeadCell>
17
+ Column 3 (auto)
18
+ </PTableHeadCell>
19
+ </PTableHeadRow>
20
+ </PTableHead>
21
+ <PTableBody>
22
+ <PTableRow>
23
+ <PTableCell className="w-[50%] max-w-[50%]">
24
+ Cell 1
25
+ </PTableCell>
26
+ <PTableCell className="w-[150px] max-w-[150px]">
27
+ Cell 2
28
+ </PTableCell>
29
+ <PTableCell>
30
+ Cell 3
31
+ </PTableCell>
32
+ </PTableRow>
33
+ <PTableRow>
34
+ <PTableCell className="w-[50%] max-w-[50%]">
35
+ Cell 1
36
+ </PTableCell>
37
+ <PTableCell className="w-[150px] max-w-[150px]">
38
+ <PText ellipsis={true} title="Cell 2 with more content">
39
+ Cell 2 with more content
40
+ </PText>
41
+ </PTableCell>
42
+ <PTableCell>
43
+ Cell 3
44
+ </PTableCell>
45
+ </PTableRow>
46
+ </PTableBody>
47
+ </PTable>
48
+ </>
49
+ )
50
+ }
@@ -0,0 +1,86 @@
1
+ import React from 'react';
2
+ import {
3
+ PTable,
4
+ PTableBody,
5
+ PTableCell,
6
+ PTableHead,
7
+ PTableHeadCell,
8
+ PTableHeadRow,
9
+ PTableRow,
10
+ type TableUpdateEventDetail,
11
+ } from '@porsche-design-system/components-react';
12
+ import { useCallback, useState } from 'react';
13
+
14
+ type HeadSorting = {
15
+ id: string;
16
+ name: string;
17
+ active?: boolean;
18
+ direction?: 'asc' | 'desc';
19
+ };
20
+
21
+ const headSorting: HeadSorting[] = [
22
+ { name: 'Column 1', id: 'col1' } as HeadSorting,
23
+ { name: 'Column 2', id: 'col2' } as HeadSorting,
24
+ { name: 'Column 3', id: 'col3' } as HeadSorting,
25
+ ].map((item, i) => ({
26
+ ...item,
27
+ active: i === 1,
28
+ direction: 'asc',
29
+ }));
30
+
31
+ type DataSorting = {
32
+ col1: string;
33
+ col2: string;
34
+ col3: string;
35
+ };
36
+
37
+ const dataSorting: DataSorting[] = [
38
+ {
39
+ col1: 'Name A',
40
+ col2: '9',
41
+ col3: '01.06.2021',
42
+ },
43
+ {
44
+ col1: 'Name Z',
45
+ col2: '1',
46
+ col3: '24.06.2021',
47
+ },
48
+ ];
49
+
50
+ export const Example = () => {
51
+ const [head, setHead] = useState(headSorting);
52
+ const [data, setData] = useState(dataSorting);
53
+
54
+ const onUpdate = useCallback((e: CustomEvent<TableUpdateEventDetail>) => {
55
+ const { id, direction } = e.detail as TableUpdateEventDetail & { id: keyof DataSorting };
56
+ setHead((prev) => prev.map((item) => ({ ...item, active: false, ...(item.id === id && e.detail) })));
57
+ setData((prev) =>
58
+ [...prev].sort((a, b) => {
59
+ return direction === 'asc' ? a[id].localeCompare(b[id]) : b[id].localeCompare(a[id]);
60
+ })
61
+ );
62
+ }, []);
63
+
64
+ return (
65
+ <PTable caption="Some caption" onUpdate={onUpdate}>
66
+ <PTableHead>
67
+ <PTableHeadRow>
68
+ {head.map((item, i) => (
69
+ <PTableHeadCell key={i} sort={item}>
70
+ {item.name}
71
+ </PTableHeadCell>
72
+ ))}
73
+ </PTableHeadRow>
74
+ </PTableHead>
75
+ <PTableBody>
76
+ {data.map((item, i) => (
77
+ <PTableRow key={i}>
78
+ <PTableCell>{item.col1}</PTableCell>
79
+ <PTableCell>{item.col2}</PTableCell>
80
+ <PTableCell>{item.col3}</PTableCell>
81
+ </PTableRow>
82
+ ))}
83
+ </PTableBody>
84
+ </PTable>
85
+ );
86
+ };