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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/CHANGELOG.md +85 -2
  2. package/OSS_NOTICE +5532 -2115
  3. package/bin/pds-skill.js +166 -79
  4. package/cjs/lib/components/ai-tag.wrapper.cjs +1 -1
  5. package/cjs/lib/components/radio-group.wrapper.cjs +1 -1
  6. package/esm/lib/components/ai-tag.wrapper.d.ts +4 -4
  7. package/esm/lib/components/ai-tag.wrapper.mjs +1 -1
  8. package/esm/lib/components/input-number.wrapper.d.ts +6 -6
  9. package/esm/lib/components/input-text.wrapper.d.ts +6 -6
  10. package/esm/lib/components/multi-select-option.wrapper.d.ts +2 -2
  11. package/esm/lib/components/pin-code.wrapper.d.ts +6 -6
  12. package/esm/lib/components/radio-group-option.wrapper.d.ts +4 -4
  13. package/esm/lib/components/radio-group.wrapper.d.ts +4 -6
  14. package/esm/lib/components/radio-group.wrapper.mjs +1 -1
  15. package/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
  16. package/esm/lib/components/wordmark.wrapper.d.ts +2 -2
  17. package/esm/lib/types.d.ts +184 -213
  18. package/package.json +6 -2
  19. package/{skill → skills/pds-knowledge-react}/SKILL.md +6 -6
  20. package/skills/pds-knowledge-react/references/components/p-accordion/accessibility.md +63 -0
  21. package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/p-accordion.md +4 -0
  22. package/skills/pds-knowledge-react/references/components/p-ai-tag/p-ai-tag.md +47 -0
  23. package/skills/pds-knowledge-react/references/components/p-banner/accessibility.md +37 -0
  24. package/{skill → skills/pds-knowledge-react}/references/components/p-banner/p-banner.md +4 -0
  25. package/skills/pds-knowledge-react/references/components/p-button/accessibility.md +61 -0
  26. package/{skill → skills/pds-knowledge-react}/references/components/p-button/p-button.md +5 -1
  27. package/skills/pds-knowledge-react/references/components/p-button-pure/accessibility.md +61 -0
  28. package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/p-button-pure.md +5 -1
  29. package/skills/pds-knowledge-react/references/components/p-button-tile/accessibility.md +31 -0
  30. package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/p-button-tile.md +5 -1
  31. package/skills/pds-knowledge-react/references/components/p-canvas/examples/Default.tsx +111 -0
  32. package/{skill → skills/pds-knowledge-react}/references/components/p-canvas/p-canvas.md +4 -0
  33. package/skills/pds-knowledge-react/references/components/p-carousel/accessibility.md +61 -0
  34. package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/p-carousel.md +5 -1
  35. package/skills/pds-knowledge-react/references/components/p-checkbox/accessibility.md +31 -0
  36. package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/p-checkbox.md +4 -0
  37. package/skills/pds-knowledge-react/references/components/p-crest/accessibility.md +17 -0
  38. package/{skill → skills/pds-knowledge-react}/references/components/p-crest/p-crest.md +4 -0
  39. package/skills/pds-knowledge-react/references/components/p-divider/accessibility.md +41 -0
  40. package/{skill → skills/pds-knowledge-react}/references/components/p-divider/p-divider.md +4 -0
  41. package/skills/pds-knowledge-react/references/components/p-drilldown/accessibility.md +65 -0
  42. package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/p-drilldown.md +4 -0
  43. package/skills/pds-knowledge-react/references/components/p-fieldset/accessibility.md +37 -0
  44. package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/p-fieldset.md +4 -0
  45. package/skills/pds-knowledge-react/references/components/p-flag/accessibility.md +39 -0
  46. package/{skill → skills/pds-knowledge-react}/references/components/p-flag/p-flag.md +4 -0
  47. package/skills/pds-knowledge-react/references/components/p-flyout/accessibility.md +80 -0
  48. package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/p-flyout.md +4 -0
  49. package/skills/pds-knowledge-react/references/components/p-heading/accessibility.md +29 -0
  50. package/{skill → skills/pds-knowledge-react}/references/components/p-heading/p-heading.md +4 -0
  51. package/skills/pds-knowledge-react/references/components/p-icon/accessibility.md +39 -0
  52. package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Overview.tsx +6 -0
  53. package/{skill → skills/pds-knowledge-react}/references/components/p-icon/p-icon.md +5 -1
  54. package/skills/pds-knowledge-react/references/components/p-inline-notification/accessibility.md +36 -0
  55. package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/p-inline-notification.md +5 -1
  56. package/skills/pds-knowledge-react/references/components/p-input-date/accessibility.md +45 -0
  57. package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/p-input-date.md +4 -0
  58. package/skills/pds-knowledge-react/references/components/p-input-email/accessibility.md +45 -0
  59. package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/p-input-email.md +4 -0
  60. package/skills/pds-knowledge-react/references/components/p-input-month/accessibility.md +45 -0
  61. package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/p-input-month.md +4 -0
  62. package/skills/pds-knowledge-react/references/components/p-input-number/accessibility.md +45 -0
  63. package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/p-input-number.md +7 -3
  64. package/skills/pds-knowledge-react/references/components/p-input-password/accessibility.md +45 -0
  65. package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/p-input-password.md +4 -0
  66. package/skills/pds-knowledge-react/references/components/p-input-search/accessibility.md +59 -0
  67. package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/p-input-search.md +4 -0
  68. package/skills/pds-knowledge-react/references/components/p-input-tel/accessibility.md +45 -0
  69. package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/p-input-tel.md +4 -0
  70. package/skills/pds-knowledge-react/references/components/p-input-text/accessibility.md +45 -0
  71. package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/p-input-text.md +7 -3
  72. package/skills/pds-knowledge-react/references/components/p-input-time/accessibility.md +45 -0
  73. package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/p-input-time.md +4 -0
  74. package/skills/pds-knowledge-react/references/components/p-input-url/accessibility.md +45 -0
  75. package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/p-input-url.md +4 -0
  76. package/skills/pds-knowledge-react/references/components/p-input-week/accessibility.md +45 -0
  77. package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/p-input-week.md +4 -0
  78. package/skills/pds-knowledge-react/references/components/p-link/accessibility.md +73 -0
  79. package/{skill → skills/pds-knowledge-react}/references/components/p-link/p-link.md +5 -1
  80. package/skills/pds-knowledge-react/references/components/p-link-pure/accessibility.md +73 -0
  81. package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/p-link-pure.md +5 -1
  82. package/skills/pds-knowledge-react/references/components/p-link-tile/accessibility.md +31 -0
  83. package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/p-link-tile.md +4 -0
  84. package/skills/pds-knowledge-react/references/components/p-modal/accessibility.md +80 -0
  85. package/{skill → skills/pds-knowledge-react}/references/components/p-modal/p-modal.md +4 -0
  86. package/skills/pds-knowledge-react/references/components/p-multi-select/accessibility.md +78 -0
  87. package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/AsyncFilter.tsx +29 -6
  88. package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/p-multi-select.md +6 -2
  89. package/skills/pds-knowledge-react/references/components/p-pagination/accessibility.md +23 -0
  90. package/{skill → skills/pds-knowledge-react}/references/components/p-pagination/p-pagination.md +4 -0
  91. package/skills/pds-knowledge-react/references/components/p-pin-code/accessibility.md +45 -0
  92. package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/p-pin-code.md +6 -2
  93. package/skills/pds-knowledge-react/references/components/p-popover/accessibility.md +61 -0
  94. package/{skill → skills/pds-knowledge-react}/references/components/p-popover/p-popover.md +4 -0
  95. package/skills/pds-knowledge-react/references/components/p-radio-group/accessibility.md +63 -0
  96. package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Form.tsx +2 -2
  97. package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/p-radio-group.md +7 -3
  98. package/skills/pds-knowledge-react/references/components/p-scroller/accessibility.md +31 -0
  99. package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/p-scroller.md +4 -0
  100. package/skills/pds-knowledge-react/references/components/p-segmented-control/accessibility.md +67 -0
  101. package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/p-segmented-control.md +6 -2
  102. package/skills/pds-knowledge-react/references/components/p-select/accessibility.md +140 -0
  103. package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/AsyncFilter.tsx +29 -6
  104. package/{skill → skills/pds-knowledge-react}/references/components/p-select/p-select.md +5 -1
  105. package/skills/pds-knowledge-react/references/components/p-sheet/accessibility.md +80 -0
  106. package/{skill → skills/pds-knowledge-react}/references/components/p-sheet/p-sheet.md +4 -0
  107. package/skills/pds-knowledge-react/references/components/p-spinner/accessibility.md +31 -0
  108. package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/p-spinner.md +4 -0
  109. package/skills/pds-knowledge-react/references/components/p-stepper-horizontal/accessibility.md +34 -0
  110. package/{skill → skills/pds-knowledge-react}/references/components/p-stepper-horizontal/p-stepper-horizontal.md +4 -0
  111. package/skills/pds-knowledge-react/references/components/p-switch/accessibility.md +35 -0
  112. package/{skill → skills/pds-knowledge-react}/references/components/p-switch/p-switch.md +4 -0
  113. package/skills/pds-knowledge-react/references/components/p-table/accessibility.md +47 -0
  114. package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Sorting.tsx +9 -8
  115. package/{skill → skills/pds-knowledge-react}/references/components/p-table/p-table.md +5 -1
  116. package/skills/pds-knowledge-react/references/components/p-tabs/accessibility.md +56 -0
  117. package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/p-tabs.md +4 -0
  118. package/skills/pds-knowledge-react/references/components/p-tabs-bar/accessibility.md +61 -0
  119. package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/p-tabs-bar.md +4 -0
  120. package/skills/pds-knowledge-react/references/components/p-tag/accessibility.md +19 -0
  121. package/{skill → skills/pds-knowledge-react}/references/components/p-tag/p-tag.md +5 -1
  122. package/skills/pds-knowledge-react/references/components/p-tag-dismissible/accessibility.md +35 -0
  123. package/{skill → skills/pds-knowledge-react}/references/components/p-tag-dismissible/p-tag-dismissible.md +4 -0
  124. package/skills/pds-knowledge-react/references/components/p-text/accessibility.md +21 -0
  125. package/{skill → skills/pds-knowledge-react}/references/components/p-text/p-text.md +4 -0
  126. package/skills/pds-knowledge-react/references/components/p-text-list/accessibility.md +31 -0
  127. package/{skill → skills/pds-knowledge-react}/references/components/p-text-list/p-text-list.md +4 -0
  128. package/skills/pds-knowledge-react/references/components/p-textarea/accessibility.md +45 -0
  129. package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/p-textarea.md +4 -0
  130. package/{skill → skills/pds-knowledge-react}/references/components/p-toast/p-toast.md +1 -1
  131. package/skills/pds-knowledge-react/references/components/p-wordmark/accessibility.md +31 -0
  132. package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/p-wordmark.md +5 -1
  133. package/skills/pds-knowledge-react/references/icons.md +5 -0
  134. package/{skill → skills/pds-knowledge-react}/references/styles/tailwindcss.md +1 -1
  135. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +207 -8
  136. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +241 -40
  137. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/ai-tag.wrapper.cjs +1 -1
  138. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group.wrapper.cjs +1 -1
  139. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.cjs +4 -1
  140. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/filter-status-announcer.cjs +7 -0
  141. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +3 -1
  142. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/no-results-option.cjs +1 -1
  143. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +7 -3
  144. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.cjs +4 -0
  145. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.cjs +5 -1
  146. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +3 -4
  147. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +207 -9
  148. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +237 -41
  149. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/ai-tag.wrapper.mjs +1 -1
  150. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group.wrapper.mjs +1 -1
  151. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +4 -1
  152. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/filter-status-announcer.mjs +5 -0
  153. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +3 -1
  154. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/no-results-option.mjs +1 -1
  155. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +7 -3
  156. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.mjs +4 -0
  157. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.mjs +5 -1
  158. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +3 -4
  159. package/ssr/esm/lib/components/ai-tag.wrapper.d.ts +4 -4
  160. package/ssr/esm/lib/components/input-number.wrapper.d.ts +6 -6
  161. package/ssr/esm/lib/components/input-text.wrapper.d.ts +6 -6
  162. package/ssr/esm/lib/components/multi-select-option.wrapper.d.ts +2 -2
  163. package/ssr/esm/lib/components/pin-code.wrapper.d.ts +6 -6
  164. package/ssr/esm/lib/components/radio-group-option.wrapper.d.ts +4 -4
  165. package/ssr/esm/lib/components/radio-group.wrapper.d.ts +4 -6
  166. package/ssr/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
  167. package/ssr/esm/lib/components/wordmark.wrapper.d.ts +2 -2
  168. package/ssr/esm/lib/dsr-components/carousel.d.ts +3 -0
  169. package/ssr/esm/lib/dsr-components/filter-status-announcer.d.ts +6 -0
  170. package/ssr/esm/lib/dsr-components/multi-select.d.ts +1 -0
  171. package/ssr/esm/lib/dsr-components/pin-code.d.ts +1 -0
  172. package/ssr/esm/lib/dsr-components/radio-group.d.ts +1 -0
  173. package/ssr/esm/lib/dsr-components/segmented-control.d.ts +1 -0
  174. package/ssr/esm/lib/dsr-components/select.d.ts +1 -1
  175. package/ssr/esm/lib/types.d.ts +184 -213
  176. package/skill/references/components/p-ai-tag/p-ai-tag.md +0 -47
  177. package/skill/references/components/p-canvas/examples/Default.tsx +0 -10
  178. package/skill/references/icons.md +0 -5
  179. /package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/examples/Default.tsx +0 -0
  180. /package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/examples/InteractiveElementsInSummary.tsx +0 -0
  181. /package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/examples/StickySummary.tsx +0 -0
  182. /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/Default.tsx +0 -0
  183. /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinCheckbox.tsx +0 -0
  184. /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinFormLabel.tsx +0 -0
  185. /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinImage.tsx +0 -0
  186. /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinInputSearch.tsx +0 -0
  187. /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinRadioGroup.tsx +0 -0
  188. /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinTable.tsx +0 -0
  189. /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinText.tsx +0 -0
  190. /package/{skill → skills/pds-knowledge-react}/references/components/p-banner/examples/Customization.tsx +0 -0
  191. /package/{skill → skills/pds-knowledge-react}/references/components/p-banner/examples/Default.tsx +0 -0
  192. /package/{skill → skills/pds-knowledge-react}/references/components/p-button/examples/Default.tsx +0 -0
  193. /package/{skill → skills/pds-knowledge-react}/references/components/p-button/examples/Form.tsx +0 -0
  194. /package/{skill → skills/pds-knowledge-react}/references/components/p-button/examples/FormAttribute.tsx +0 -0
  195. /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/CustomClickableArea.tsx +0 -0
  196. /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/Default.tsx +0 -0
  197. /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/Form.tsx +0 -0
  198. /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/FormAttribute.tsx +0 -0
  199. /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/ColorScheme.tsx +0 -0
  200. /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/Default.tsx +0 -0
  201. /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/FooterSlot.tsx +0 -0
  202. /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/Hyphens.tsx +0 -0
  203. /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/UiBehaviour.tsx +0 -0
  204. /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/Default.tsx +0 -0
  205. /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/DynamicSlides.tsx +0 -0
  206. /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/FlexibleWidths.tsx +0 -0
  207. /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/FocusOnCenterSlide.tsx +0 -0
  208. /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/Intl.tsx +0 -0
  209. /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/JumpToSlide.tsx +0 -0
  210. /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Default.tsx +0 -0
  211. /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Form.tsx +0 -0
  212. /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Indeterminate.tsx +0 -0
  213. /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Slots.tsx +0 -0
  214. /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/WrappedLabel.tsx +0 -0
  215. /package/{skill → skills/pds-knowledge-react}/references/components/p-crest/examples/CustomClickableArea.tsx +0 -0
  216. /package/{skill → skills/pds-knowledge-react}/references/components/p-crest/examples/Default.tsx +0 -0
  217. /package/{skill → skills/pds-knowledge-react}/references/components/p-crest/examples/Link.tsx +0 -0
  218. /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Color.tsx +0 -0
  219. /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Default.tsx +0 -0
  220. /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Semantics.tsx +0 -0
  221. /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Size.tsx +0 -0
  222. /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/SizeResponsive.tsx +0 -0
  223. /package/{skill → skills/pds-knowledge-react}/references/components/p-display/p-display.md +0 -0
  224. /package/{skill → skills/pds-knowledge-react}/references/components/p-divider/examples/Default.tsx +0 -0
  225. /package/{skill → skills/pds-knowledge-react}/references/components/p-divider/examples/Responsive.tsx +0 -0
  226. /package/{skill → skills/pds-knowledge-react}/references/components/p-divider/examples/Vertical.tsx +0 -0
  227. /package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/examples/CustomContent.tsx +0 -0
  228. /package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/examples/Default.tsx +0 -0
  229. /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/Default.tsx +0 -0
  230. /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/Required.tsx +0 -0
  231. /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/SlottedLabel.tsx +0 -0
  232. /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/SlottedMessage.tsx +0 -0
  233. /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/Default.tsx +0 -0
  234. /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/ResponsiveSize.tsx +0 -0
  235. /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/Size.tsx +0 -0
  236. /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/SizeCssVar.tsx +0 -0
  237. /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/CustomStyling.tsx +0 -0
  238. /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/Default.tsx +0 -0
  239. /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/Form.tsx +0 -0
  240. /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/StickyTop.tsx +0 -0
  241. /package/{skill → skills/pds-knowledge-react}/references/components/p-heading/examples/Color.tsx +0 -0
  242. /package/{skill → skills/pds-knowledge-react}/references/components/p-heading/examples/Default.tsx +0 -0
  243. /package/{skill → skills/pds-knowledge-react}/references/components/p-heading/examples/Semantics.tsx +0 -0
  244. /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Color.tsx +0 -0
  245. /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/ColorCssVar.tsx +0 -0
  246. /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Custom.tsx +0 -0
  247. /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Default.tsx +0 -0
  248. /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/ResponsiveSize.tsx +0 -0
  249. /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Size.tsx +0 -0
  250. /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/SizeCssVar.tsx +0 -0
  251. /package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/examples/ActionButton.tsx +0 -0
  252. /package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/examples/Default.tsx +0 -0
  253. /package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/examples/EventHandling.tsx +0 -0
  254. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/examples/Default.tsx +0 -0
  255. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/examples/Form.tsx +0 -0
  256. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/examples/Slots.tsx +0 -0
  257. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/examples/Default.tsx +0 -0
  258. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/examples/Form.tsx +0 -0
  259. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/examples/Slots.tsx +0 -0
  260. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/examples/Default.tsx +0 -0
  261. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/examples/Form.tsx +0 -0
  262. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/examples/Slots.tsx +0 -0
  263. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/examples/Default.tsx +0 -0
  264. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/examples/Form.tsx +0 -0
  265. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/examples/Slots.tsx +0 -0
  266. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Default.tsx +0 -0
  267. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Form.tsx +0 -0
  268. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Slots.tsx +0 -0
  269. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Toggle.tsx +0 -0
  270. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/AriaCombobox.tsx +0 -0
  271. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/Default.tsx +0 -0
  272. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/Form.tsx +0 -0
  273. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/Slots.tsx +0 -0
  274. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/examples/Default.tsx +0 -0
  275. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/examples/Form.tsx +0 -0
  276. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/examples/Slots.tsx +0 -0
  277. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Controlled.tsx +0 -0
  278. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Default.tsx +0 -0
  279. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Form.tsx +0 -0
  280. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Slots.tsx +0 -0
  281. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/examples/Default.tsx +0 -0
  282. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/examples/Form.tsx +0 -0
  283. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/examples/Slots.tsx +0 -0
  284. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/examples/Default.tsx +0 -0
  285. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/examples/Form.tsx +0 -0
  286. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/examples/Slots.tsx +0 -0
  287. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/examples/Default.tsx +0 -0
  288. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/examples/Form.tsx +0 -0
  289. /package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/examples/Slots.tsx +0 -0
  290. /package/{skill → skills/pds-knowledge-react}/references/components/p-link/examples/Default.tsx +0 -0
  291. /package/{skill → skills/pds-knowledge-react}/references/components/p-link/examples/FrameworkRouting.tsx +0 -0
  292. /package/{skill → skills/pds-knowledge-react}/references/components/p-link/examples/Icon.tsx +0 -0
  293. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/CustomClickableArea.tsx +0 -0
  294. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/Default.tsx +0 -0
  295. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/FrameworkRouting.tsx +0 -0
  296. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/Icon.tsx +0 -0
  297. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/ColorScheme.tsx +0 -0
  298. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/Default.tsx +0 -0
  299. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/FooterSlot.tsx +0 -0
  300. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/Hyphens.tsx +0 -0
  301. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/UiBehaviour.tsx +0 -0
  302. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/WithVideo.tsx +0 -0
  303. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile-product/examples/Default.tsx +0 -0
  304. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile-product/examples/FrameworkRouting.tsx +0 -0
  305. /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile-product/p-link-tile-product.md +0 -0
  306. /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/AlertDialog.tsx +0 -0
  307. /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/CustomStyling.tsx +0 -0
  308. /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/Default.tsx +0 -0
  309. /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/Scrollable.tsx +0 -0
  310. /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/CustomStyling.tsx +0 -0
  311. /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/Default.tsx +0 -0
  312. /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/MaskBlendMode.tsx +0 -0
  313. /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/MaskImage.tsx +0 -0
  314. /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/MaskVideo.tsx +0 -0
  315. /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/SafeZone.tsx +0 -0
  316. /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/p-model-signature.md +0 -0
  317. /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Default.tsx +0 -0
  318. /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Form.tsx +0 -0
  319. /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Optgroups.tsx +0 -0
  320. /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/SelectedSlot.tsx +0 -0
  321. /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/SetValue.tsx +0 -0
  322. /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Slots.tsx +0 -0
  323. /package/{skill → skills/pds-knowledge-react}/references/components/p-pagination/examples/Default.tsx +0 -0
  324. /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/CopyPaste.tsx +0 -0
  325. /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/Default.tsx +0 -0
  326. /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/Form.tsx +0 -0
  327. /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/Slots.tsx +0 -0
  328. /package/{skill → skills/pds-knowledge-react}/references/components/p-popover/examples/Default.tsx +0 -0
  329. /package/{skill → skills/pds-knowledge-react}/references/components/p-popover/examples/SlottedButton.tsx +0 -0
  330. /package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Default.tsx +0 -0
  331. /package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Slots.tsx +0 -0
  332. /package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/examples/Default.tsx +0 -0
  333. /package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/examples/Height.tsx +0 -0
  334. /package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/examples/ScrollToPosition.tsx +0 -0
  335. /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/Default.tsx +0 -0
  336. /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/Form.tsx +0 -0
  337. /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/Slots.tsx +0 -0
  338. /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/WithLabels.tsx +0 -0
  339. /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Default.tsx +0 -0
  340. /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Form.tsx +0 -0
  341. /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Optgroups.tsx +0 -0
  342. /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Required.tsx +0 -0
  343. /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/SelectedSlot.tsx +0 -0
  344. /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/SetValue.tsx +0 -0
  345. /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Slots.tsx +0 -0
  346. /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/SlottedImages.tsx +0 -0
  347. /package/{skill → skills/pds-knowledge-react}/references/components/p-sheet/examples/Default.tsx +0 -0
  348. /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/Color.tsx +0 -0
  349. /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/ColorCssVar.tsx +0 -0
  350. /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/Default.tsx +0 -0
  351. /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/ResponsiveSize.tsx +0 -0
  352. /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/Size.tsx +0 -0
  353. /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/SizeCssVar.tsx +0 -0
  354. /package/{skill → skills/pds-knowledge-react}/references/components/p-stepper-horizontal/examples/Default.tsx +0 -0
  355. /package/{skill → skills/pds-knowledge-react}/references/components/p-stepper-horizontal/examples/FrameworkImplementation.tsx +0 -0
  356. /package/{skill → skills/pds-knowledge-react}/references/components/p-switch/examples/Default.tsx +0 -0
  357. /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Advanced.tsx +0 -0
  358. /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/CaptionProperty.tsx +0 -0
  359. /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/CaptionSlot.tsx +0 -0
  360. /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Default.tsx +0 -0
  361. /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/HideLabel.tsx +0 -0
  362. /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/LayoutFixed.tsx +0 -0
  363. /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/ActiveTab.tsx +0 -0
  364. /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/Default.tsx +0 -0
  365. /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/Gradient.tsx +0 -0
  366. /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/Labelling.tsx +0 -0
  367. /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Default.tsx +0 -0
  368. /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Gradient.tsx +0 -0
  369. /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Labelling.tsx +0 -0
  370. /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Links.tsx +0 -0
  371. /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/Default.tsx +0 -0
  372. /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/Multiline.tsx +0 -0
  373. /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/SlottedButton.tsx +0 -0
  374. /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/SlottedLink.tsx +0 -0
  375. /package/{skill → skills/pds-knowledge-react}/references/components/p-tag-dismissible/examples/Default.tsx +0 -0
  376. /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/Default.tsx +0 -0
  377. /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/Semantics.tsx +0 -0
  378. /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/Size.tsx +0 -0
  379. /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/SizeResponsive.tsx +0 -0
  380. /package/{skill → skills/pds-knowledge-react}/references/components/p-text-list/examples/Default.tsx +0 -0
  381. /package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/examples/Default.tsx +0 -0
  382. /package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/examples/Form.tsx +0 -0
  383. /package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/examples/Slots.tsx +0 -0
  384. /package/{skill → skills/pds-knowledge-react}/references/components/p-toast/examples/Default.tsx +0 -0
  385. /package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/examples/CustomClickableArea.tsx +0 -0
  386. /package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/examples/Default.tsx +0 -0
  387. /package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/examples/Size.tsx +0 -0
  388. /package/{skill → skills/pds-knowledge-react}/references/styles/emotion.md +0 -0
  389. /package/{skill → skills/pds-knowledge-react}/references/styles/scss.md +0 -0
  390. /package/{skill → skills/pds-knowledge-react}/references/styles/vanilla-extract.md +0 -0
  391. /package/{skill → skills/pds-knowledge-react}/references/stylesheets.md +0 -0
  392. /package/{skill → skills/pds-knowledge-react}/references/tokens.md +0 -0
@@ -0,0 +1,67 @@
1
+ # p-segmented-control accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Missing group label
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```tsx
10
+ <PSegmentedControl name="size">
11
+ <PSegmentedControlItem value="s">
12
+ S
13
+ </PSegmentedControlItem>
14
+ <PSegmentedControlItem value="m">
15
+ M
16
+ </PSegmentedControlItem>
17
+ </PSegmentedControl>
18
+ ```
19
+
20
+ #### ✅ Recommended
21
+
22
+ ```tsx
23
+ <PSegmentedControl label="T-shirt size" name="size" description="Select your preferred size.">
24
+ <PSegmentedControlItem value="s">
25
+ S
26
+ </PSegmentedControlItem>
27
+ <PSegmentedControlItem value="m">
28
+ M
29
+ </PSegmentedControlItem>
30
+ </PSegmentedControl>
31
+ ```
32
+
33
+ ### Hidden label without accessible name
34
+
35
+ #### ❌ Anti-pattern
36
+
37
+ ```tsx
38
+ <PSegmentedControl name="size" hideLabel={true}>
39
+ <PSegmentedControlItem value="s">
40
+ S
41
+ </PSegmentedControlItem>
42
+ </PSegmentedControl>
43
+ ```
44
+
45
+ #### ✅ Recommended
46
+
47
+ ```tsx
48
+ <PSegmentedControl label="T-shirt size" name="size" hideLabel={true}>
49
+ <PSegmentedControlItem value="s">
50
+ S
51
+ </PSegmentedControlItem>
52
+ </PSegmentedControl>
53
+ ```
54
+
55
+ ### Validation feedback via state and message API
56
+
57
+ #### ❌ Anti-pattern
58
+
59
+ ```tsx
60
+ <PSegmentedControl label="T-shirt size" name="size" aria-invalid={true} message="Required"></PSegmentedControl>
61
+ ```
62
+
63
+ #### ✅ Recommended
64
+
65
+ ```tsx
66
+ <PSegmentedControl label="T-shirt size" name="size" required={true} state="error" message="Select a size to continue."></PSegmentedControl>
67
+ ```
@@ -86,6 +86,10 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
86
86
  - **Don't** add native `aria-*` attributes directly on the component host.
87
87
  - **Don't** use `hide-label` without an accessible name.
88
88
 
89
+ ## Integration examples
90
+
91
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
92
+
89
93
  ## API
90
94
 
91
95
  ### Properties
@@ -104,7 +108,7 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
104
108
  | `noWrap` | `boolean` | `false` | Prevents items from wrapping to new rows and renders them in a single horizontally scrollable row instead. |
105
109
  | `required` | `boolean` | `false` | Marks the segmented control as required so the form cannot be submitted until one option is selected. |
106
110
  | `state` | `'none'` `'error'` `'success'` | `'none'` | Sets the validation state of the segmented control, controlling its visual appearance and feedback message style (`none`, `success`, `error`). |
107
- | `value` | `string | number` | `undefined` | Sets the currently selected item's value and pre-selects the matching option when the component renders. |
111
+ | `value` | `string | number | null` | `undefined` | Sets the currently selected item's value and pre-selects the matching option when the component renders. Matches an item strictly by type and value, meaning string or number only match an item whose value has the same type and equal value. Use undefined or null for no preselection. Please note that FormData always serializes values as strings, so when participating in a native (uncontrolled) form a number value is restored as string via formStateRestoreCallback and will no longer strictly match a number-typed item. This limitation only applies to native form state restoration; in controlled forms (where the consumer manages value directly via the change event), the number type is preserved end-to-end. |
108
112
 
109
113
  ### Events
110
114
 
@@ -141,7 +145,7 @@ Allowed parent: `p-segmented-control`.
141
145
  | --- | --- | --- | --- |
142
146
  | `aria` | `SegmentedControlItemAriaAttribute` | `undefined` | Sets ARIA attributes on the item's button element to improve accessibility for screen readers. |
143
147
  | `disabled` | `boolean` | `false` | Prevents this item from being selected and visually dims it; the parent's value will not change to this item's value. |
144
- | `icon` | `''`<br>one of 290 icon names — see [icon names](references/icons.md) | `undefined` | Sets an icon rendered inside the item button using an icon name from the PDS icon library. |
148
+ | `icon` | `''`<br>one of 293 icon names — see [icon names](references/icons.md) | `undefined` | Sets an icon rendered inside the item button using an icon name from the PDS icon library. |
145
149
  | `iconSource` | `string` | `undefined` | Sets a URL to a custom SVG icon for the item button, overriding the built-in icon set. |
146
150
  | `label` | `string` | `undefined` | Sets a visible text label rendered inside the item button, used when no slotted content is provided. |
147
151
  | `value` _(required)_ | `string | number` | `undefined` | Sets the value emitted by the parent `p-segmented-control` when this item is selected. This property is*required**. |
@@ -0,0 +1,140 @@
1
+ # p-select accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Prompt option used instead of a label
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```tsx
10
+ <PSelect name="model">
11
+ <PSelectOption value="">
12
+ Select a model
13
+ </PSelectOption>
14
+ <PSelectOption value="carrera">
15
+ 911 Carrera
16
+ </PSelectOption>
17
+ <PSelectOption value="carrera-s">
18
+ 911 Carrera S
19
+ </PSelectOption>
20
+ </PSelect>
21
+ ```
22
+
23
+ #### ✅ Recommended
24
+
25
+ ```tsx
26
+ <PSelect label="Porsche model" name="model" description="Choose the model for your configuration.">
27
+ <PSelectOption value="carrera">
28
+ 911 Carrera
29
+ </PSelectOption>
30
+ <PSelectOption value="carrera-s">
31
+ 911 Carrera S
32
+ </PSelectOption>
33
+ </PSelect>
34
+ ```
35
+
36
+ ### Ambiguous option labels without field context
37
+
38
+ #### ❌ Anti-pattern
39
+
40
+ ```tsx
41
+ <PSelect label="Model" name="model">
42
+ <PSelectOption value="base">
43
+ Base
44
+ </PSelectOption>
45
+ <PSelectOption value="s">
46
+ S
47
+ </PSelectOption>
48
+ </PSelect>
49
+ ```
50
+
51
+ #### ✅ Recommended
52
+
53
+ ```tsx
54
+ <PSelect label="Porsche 911 trim" name="model" description="Select the trim level for your configuration.">
55
+ <PSelectOption value="carrera">
56
+ 911 Carrera
57
+ </PSelectOption>
58
+ <PSelectOption value="carrera-s">
59
+ 911 Carrera S
60
+ </PSelectOption>
61
+ </PSelect>
62
+ ```
63
+
64
+ ### Hidden label without accessible name
65
+
66
+ #### ❌ Anti-pattern
67
+
68
+ ```tsx
69
+ <PSelect name="model" hideLabel={true}>
70
+ <PSelectOption value="carrera">
71
+ 911 Carrera
72
+ </PSelectOption>
73
+ </PSelect>
74
+ ```
75
+
76
+ #### ✅ Recommended
77
+
78
+ ```tsx
79
+ <PSelect label="Porsche model" name="model" hideLabel={true}>
80
+ <PSelectOption value="carrera">
81
+ 911 Carrera
82
+ </PSelectOption>
83
+ </PSelect>
84
+ ```
85
+
86
+ ### Validation feedback via state and message API
87
+
88
+ #### ❌ Anti-pattern
89
+
90
+ ```tsx
91
+ <PSelect label="Porsche model" name="model" aria-invalid={true} message="Required">
92
+ <PSelectOption value="carrera">
93
+ 911 Carrera
94
+ </PSelectOption>
95
+ <PSelectOption value="carrera-s">
96
+ 911 Carrera S
97
+ </PSelectOption>
98
+ </PSelect>
99
+ ```
100
+
101
+ #### ✅ Recommended
102
+
103
+ ```tsx
104
+ <PSelect label="Porsche model" name="model" state="error" message="Select a model to continue with your configuration.">
105
+ <PSelectOption value="carrera">
106
+ 911 Carrera
107
+ </PSelectOption>
108
+ <PSelectOption value="carrera-s">
109
+ 911 Carrera S
110
+ </PSelectOption>
111
+ </PSelect>
112
+ ```
113
+
114
+ ### Error state without recovery guidance
115
+
116
+ #### ❌ Anti-pattern
117
+
118
+ ```tsx
119
+ <PSelect label="Porsche model" name="model" state="error" message="Invalid">
120
+ <PSelectOption value="carrera">
121
+ 911 Carrera
122
+ </PSelectOption>
123
+ <PSelectOption value="carrera-s">
124
+ 911 Carrera S
125
+ </PSelectOption>
126
+ </PSelect>
127
+ ```
128
+
129
+ #### ✅ Recommended
130
+
131
+ ```tsx
132
+ <PSelect label="Porsche model" name="model" required={true} state="error" message="Select a Porsche model. This field is required to continue.">
133
+ <PSelectOption value="carrera">
134
+ 911 Carrera
135
+ </PSelectOption>
136
+ <PSelectOption value="carrera-s">
137
+ 911 Carrera S
138
+ </PSelectOption>
139
+ </PSelect>
140
+ ```
@@ -9,7 +9,7 @@ import {
9
9
  type SelectChangeEventDetail,
10
10
  type SelectToggleEventDetail,
11
11
  } from '@porsche-design-system/components-react';
12
- import { useCallback, useRef, useState } from 'react';
12
+ import { useCallback, useMemo, useRef, useState } from 'react';
13
13
 
14
14
  const useDebounce = <T,>(callback: (value: T) => void, delay = 400) => {
15
15
  const timer = useRef<number | undefined>(undefined);
@@ -19,6 +19,20 @@ const useDebounce = <T,>(callback: (value: T) => void, delay = 400) => {
19
19
  };
20
20
  };
21
21
 
22
+ const getFilterStatusMessage = (
23
+ searchValue: string,
24
+ optionCount: number,
25
+ isLoading: boolean,
26
+ error: string | null
27
+ ): string => {
28
+ if (error) return '';
29
+ if (isLoading) return 'Loading options';
30
+ const term = searchValue.trim();
31
+ if (!term) return '';
32
+ if (optionCount === 0) return 'No results found';
33
+ return optionCount === 1 ? '1 result available' : `${optionCount} results available`;
34
+ };
35
+
22
36
  export const Example = () => {
23
37
  const [value, setValue] = useState<PSelectProps['value']>(undefined);
24
38
  const [options, setOptions] = useState<{ value: string; label: string }[]>([]);
@@ -83,6 +97,11 @@ export const Example = () => {
83
97
  }
84
98
  };
85
99
 
100
+ const filterStatusMessage = useMemo(
101
+ () => getFilterStatusMessage(searchValue, options.length, initialLoading || loading, error),
102
+ [searchValue, options.length, initialLoading, loading, error]
103
+ );
104
+
86
105
  return (
87
106
  <PSelect name="async-search-select" label="Async Search" value={value} onChange={onChange} onToggle={onToggle}>
88
107
  <PInputSearch
@@ -100,6 +119,11 @@ export const Example = () => {
100
119
  onChange={(e: any) => e.stopPropagation()}
101
120
  />
102
121
 
122
+ {/* Persistent status announcer for assistive technologies (keep always in the DOM) */}
123
+ <div slot="options-status" className="sr-only" aria-live="polite" aria-atomic="true">
124
+ {filterStatusMessage}
125
+ </div>
126
+
103
127
  {/* Initial skeleton loading */}
104
128
  {initialLoading &&
105
129
  !error &&
@@ -112,15 +136,14 @@ export const Example = () => {
112
136
  </PSelectOption>
113
137
  ))}
114
138
 
115
- {/* No filter results */}
116
- {!initialLoading && options.length === 0 && !error && (
139
+ {/* No filter results (visual only; announcements come from the live region) */}
140
+ {!initialLoading && !loading && options.length === 0 && !error && (
117
141
  <div
118
142
  slot="options-status"
119
143
  className="text-contrast-medium cursor-not-allowed py-static-sm px-[12px]"
120
- role="alert"
144
+ aria-hidden="true"
121
145
  >
122
- <span aria-hidden="true">–</span>
123
- <span className="sr-only">No results found</span>
146
+
124
147
  </div>
125
148
  )}
126
149
 
@@ -79,6 +79,10 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
79
79
  - **Don't** use very short or ambiguous option labels when context is important.
80
80
  - **Don't** use `hide-label` without an accessible name.
81
81
 
82
+ ## Integration examples
83
+
84
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
85
+
82
86
  ## API
83
87
 
84
88
  ### Properties
@@ -137,7 +141,7 @@ Allowed parents: `p-multi-select`, `p-optgroup`.
137
141
  | Property | Type | Default | Description |
138
142
  | --- | --- | --- | --- |
139
143
  | `disabled` | `boolean` | `false` | Disables the option, preventing it from being selected. |
140
- | `value` _(required)_ | `string | number` | `undefined` | Sets the value submitted with the form data when this option is selected in the parent multi-select. |
144
+ | `value` _(required)_ | `string | number` | `undefined` | Sets the required option value submitted with the form data when selected. Must be a string or number. |
141
145
 
142
146
  #### Slots
143
147
 
@@ -0,0 +1,80 @@
1
+ # p-sheet accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### ARIA on trigger button host vs aria prop
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```tsx
10
+ <PButton aria-haspopup="dialog">
11
+ Filter results
12
+ </PButton>
13
+ ```
14
+
15
+ #### ✅ Recommended
16
+
17
+ ```tsx
18
+ <PButton aria={{'aria-haspopup': 'dialog'}}>
19
+ Filter results
20
+ </PButton>
21
+ ```
22
+
23
+ ### Dialog label on component host vs header slot
24
+
25
+ #### ❌ Anti-pattern
26
+
27
+ ```tsx
28
+ <PSheet aria-label="Filters">
29
+ ...
30
+ </PSheet>
31
+ ```
32
+
33
+ #### ✅ Recommended
34
+
35
+ ```tsx
36
+ <PSheet>
37
+ <PHeading slot="header" tag="h2" size="lg">
38
+ Filter results
39
+ </PHeading>
40
+ ...
41
+ </PSheet>
42
+
43
+ {/* or with aria prop when no visible header is shown */}
44
+
45
+ <PSheet aria={{'aria-label': 'Filter results'}}>
46
+ ...
47
+ </PSheet>
48
+ ```
49
+
50
+ ### Sheet trigger without popup semantics
51
+
52
+ #### ❌ Anti-pattern
53
+
54
+ ```tsx
55
+ <PButton>
56
+ Open
57
+ </PButton>
58
+
59
+ <PSheet>
60
+ <PHeading slot="header" tag="h2" size="lg">
61
+ Filters
62
+ </PHeading>
63
+ ...
64
+ </PSheet>
65
+ ```
66
+
67
+ #### ✅ Recommended
68
+
69
+ ```tsx
70
+ <PButton aria={{'aria-haspopup': 'dialog'}}>
71
+ Filter results
72
+ </PButton>
73
+
74
+ <PSheet>
75
+ <PHeading slot="header" tag="h2" size="lg">
76
+ Filter results
77
+ </PHeading>
78
+ ...
79
+ </PSheet>
80
+ ```
@@ -75,6 +75,10 @@ Set `aria-haspopup` on the trigger so users know a dialog will open. Ensure the
75
75
  - **Don't** add raw host-level ARIA attributes as a workaround.
76
76
  - **Don't** use unclear trigger copy like "Open" when the sheet purpose is not obvious.
77
77
 
78
+ ## Integration examples
79
+
80
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
81
+
78
82
  ## API
79
83
 
80
84
  ### Properties
@@ -0,0 +1,31 @@
1
+ # p-spinner accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Spinner mounted only when loading starts
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```tsx
10
+ {isLoading && <PSpinner />}
11
+ ```
12
+
13
+ #### ✅ Recommended
14
+
15
+ ```tsx
16
+ <PSpinner aria={{'aria-label': 'Loading vehicle configuration'}}></PSpinner>
17
+ ```
18
+
19
+ ### Spinner without loading message
20
+
21
+ #### ❌ Anti-pattern
22
+
23
+ ```tsx
24
+ <PSpinner></PSpinner>
25
+ ```
26
+
27
+ #### ✅ Recommended
28
+
29
+ ```tsx
30
+ <PSpinner aria={{'aria-label': 'Loading vehicle configuration'}}></PSpinner>
31
+ ```
@@ -54,6 +54,10 @@ To provide feedback to screen reader users, it is mandatory to announce the load
54
54
  - **Do** provide a specific loading message through the `aria` prop.
55
55
  - **Don't** mount the spinner only at the moment loading starts without a label.
56
56
 
57
+ ## Integration examples
58
+
59
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
60
+
57
61
  ## Notes
58
62
 
59
63
  ### Disable animation
@@ -0,0 +1,34 @@
1
+ # p-stepper-horizontal accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Generic step labels without context
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```tsx
10
+ <PStepperHorizontal>
11
+ <PStepperHorizontalItem state="complete">
12
+ Step 1
13
+ </PStepperHorizontalItem>
14
+ <PStepperHorizontalItem state="current">
15
+ Step 2
16
+ </PStepperHorizontalItem>
17
+ </PStepperHorizontal>
18
+ ```
19
+
20
+ #### ✅ Recommended
21
+
22
+ ```tsx
23
+ <PStepperHorizontal>
24
+ <PStepperHorizontalItem state="complete">
25
+ Configure vehicle
26
+ </PStepperHorizontalItem>
27
+ <PStepperHorizontalItem state="current">
28
+ Choose delivery date
29
+ </PStepperHorizontalItem>
30
+ <PStepperHorizontalItem>
31
+ Review and confirm
32
+ </PStepperHorizontalItem>
33
+ </PStepperHorizontal>
34
+ ```
@@ -60,6 +60,10 @@ By clicking on a previous step, the `p-stepper-horizontal` emits the `update` ev
60
60
  - **Do** reflect the current step with the item `state` prop (`current`, `complete`, `warning`).
61
61
  - **Don't** use generic labels like "Step 1" without describing the step purpose.
62
62
 
63
+ ## Integration examples
64
+
65
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
66
+
63
67
  ## API
64
68
 
65
69
  ### Properties
@@ -0,0 +1,35 @@
1
+ # p-switch accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Switch without descriptive label
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```tsx
10
+ <PSwitch name="notifications"></PSwitch>
11
+ ```
12
+
13
+ #### ✅ Recommended
14
+
15
+ ```tsx
16
+ <PSwitch name="notifications">
17
+ Email notifications for order updates
18
+ </PSwitch>
19
+ ```
20
+
21
+ ### Hidden label without accessible name
22
+
23
+ #### ❌ Anti-pattern
24
+
25
+ ```tsx
26
+ <PSwitch name="notifications" hideLabel={true}></PSwitch>
27
+ ```
28
+
29
+ #### ✅ Recommended
30
+
31
+ ```tsx
32
+ <PSwitch name="notifications" hideLabel={true}>
33
+ Email notifications for order updates
34
+ </PSwitch>
35
+ ```
@@ -66,6 +66,10 @@ The switch accessible name comes from the default slot. Provide concise, descrip
66
66
  - **Do** use `hide-label` only when the label text remains in the slot for screen readers.
67
67
  - **Don't** use an icon or visual state alone without descriptive label text.
68
68
 
69
+ ## Integration examples
70
+
71
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
72
+
69
73
  ## API
70
74
 
71
75
  ### Properties
@@ -0,0 +1,47 @@
1
+ # p-table accessibility integration examples
2
+
3
+ ## Integration examples
4
+
5
+ ### Data table without caption
6
+
7
+ #### ❌ Anti-pattern
8
+
9
+ ```tsx
10
+ <PTable>
11
+ <PTableHead>
12
+ ...
13
+ </PTableHead>
14
+ <PTableBody>
15
+ ...
16
+ </PTableBody>
17
+ </PTable>
18
+ ```
19
+
20
+ #### ✅ Recommended
21
+
22
+ ```tsx
23
+ <PTable caption="Available Porsche 911 models and starting prices">
24
+ <PTableHead>
25
+ ...
26
+ </PTableHead>
27
+ <PTableBody>
28
+ ...
29
+ </PTableBody>
30
+ </PTable>
31
+ ```
32
+
33
+ ### Column with hidden label
34
+
35
+ #### ❌ Anti-pattern
36
+
37
+ ```tsx
38
+ <PTableHeadCell hideLabel={true}></PTableHeadCell>
39
+ ```
40
+
41
+ #### ✅ Recommended
42
+
43
+ ```tsx
44
+ <PTableHeadCell hideLabel={true}>
45
+ Model
46
+ </PTableHeadCell>
47
+ ```
@@ -30,21 +30,21 @@ const headSorting: HeadSorting[] = [
30
30
 
31
31
  type DataSorting = {
32
32
  col1: string;
33
- col2: string;
33
+ col2: number;
34
34
  col3: string;
35
35
  };
36
36
 
37
37
  const dataSorting: DataSorting[] = [
38
- {
39
- col1: 'Name A',
40
- col2: '9',
41
- col3: '01.06.2021',
42
- },
43
38
  {
44
39
  col1: 'Name Z',
45
- col2: '1',
40
+ col2: 1,
46
41
  col3: '24.06.2021',
47
42
  },
43
+ {
44
+ col1: 'Name A',
45
+ col2: 9,
46
+ col3: '01.06.2021',
47
+ },
48
48
  ];
49
49
 
50
50
  export const Example = () => {
@@ -56,7 +56,8 @@ export const Example = () => {
56
56
  setHead((prev) => prev.map((item) => ({ ...item, active: false, ...(item.id === id && e.detail) })));
57
57
  setData((prev) =>
58
58
  [...prev].sort((a, b) => {
59
- return direction === 'asc' ? a[id].localeCompare(b[id]) : b[id].localeCompare(a[id]);
59
+ const result = String(a[id]).localeCompare(String(b[id]), undefined, { numeric: true });
60
+ return direction === 'asc' ? result : -result;
60
61
  })
61
62
  );
62
63
  }, []);
@@ -50,6 +50,10 @@ It is a controlled component. This means it does not contain any internal state,
50
50
  - **Do** keep visible header text for sortable columns.
51
51
  - **Don't** use `hide-label` on a sortable column without an alternative accessible name.
52
52
 
53
+ ## Integration examples
54
+
55
+ See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
56
+
53
57
  ## Tests
54
58
 
55
59
  ### Automated
@@ -184,6 +188,6 @@ Allowed parents: `p-table-body`, `p-table-head`.
184
188
  | Caption via Property | A caption that describes the content of the table is mandatory to fulfill accessibility criteria. | [./examples/CaptionProperty.tsx](./examples/CaptionProperty.tsx) |
185
189
  | Caption via Slot | Instead of using the the property, the table's caption can be provided via the `caption` slot. | [./examples/CaptionSlot.tsx](./examples/CaptionSlot.tsx) |
186
190
  | Layout: fixed | By setting `layout` to `fixed`, you can take full control over each column width, which would otherwise be controlled by its content. | [./examples/LayoutFixed.tsx](./examples/LayoutFixed.tsx) |
187
- | Sortable Columns | The `p-table`'s column headers can be configured by setting properties on each `p-table-head-cell`. | [./examples/Sorting.tsx](./examples/Sorting.tsx) |
191
+ | Sortable Columns | Sorting is controlled, so the initial row order must match the active column's `direction` and both must remain synchronized when handling the `update` event. | [./examples/Sorting.tsx](./examples/Sorting.tsx) |
188
192
  | Hide Column Label | Sometimes you want to hide the visible label of a `p-table-head-cell`, for example when the column's content is self-explanatory. | [./examples/HideLabel.tsx](./examples/HideLabel.tsx) |
189
193
  | Advanced Table | The appearance of a table's contents can be customized as illustrated in the following example. | [./examples/Advanced.tsx](./examples/Advanced.tsx) |