@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.
- package/CHANGELOG.md +85 -2
- package/OSS_NOTICE +5532 -2115
- package/bin/pds-skill.js +166 -79
- package/cjs/lib/components/ai-tag.wrapper.cjs +1 -1
- package/cjs/lib/components/radio-group.wrapper.cjs +1 -1
- package/esm/lib/components/ai-tag.wrapper.d.ts +4 -4
- package/esm/lib/components/ai-tag.wrapper.mjs +1 -1
- package/esm/lib/components/input-number.wrapper.d.ts +6 -6
- package/esm/lib/components/input-text.wrapper.d.ts +6 -6
- package/esm/lib/components/multi-select-option.wrapper.d.ts +2 -2
- package/esm/lib/components/pin-code.wrapper.d.ts +6 -6
- package/esm/lib/components/radio-group-option.wrapper.d.ts +4 -4
- package/esm/lib/components/radio-group.wrapper.d.ts +4 -6
- package/esm/lib/components/radio-group.wrapper.mjs +1 -1
- package/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
- package/esm/lib/components/wordmark.wrapper.d.ts +2 -2
- package/esm/lib/types.d.ts +184 -213
- package/package.json +6 -2
- package/{skill → skills/pds-knowledge-react}/SKILL.md +6 -6
- package/skills/pds-knowledge-react/references/components/p-accordion/accessibility.md +63 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/p-accordion.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-ai-tag/p-ai-tag.md +47 -0
- package/skills/pds-knowledge-react/references/components/p-banner/accessibility.md +37 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-banner/p-banner.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-button/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-button/p-button.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-button-pure/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/p-button-pure.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-button-tile/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/p-button-tile.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-canvas/examples/Default.tsx +111 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-canvas/p-canvas.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-carousel/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/p-carousel.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-checkbox/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/p-checkbox.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-crest/accessibility.md +17 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-crest/p-crest.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-divider/accessibility.md +41 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-divider/p-divider.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-drilldown/accessibility.md +65 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/p-drilldown.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-fieldset/accessibility.md +37 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/p-fieldset.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-flag/accessibility.md +39 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-flag/p-flag.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-flyout/accessibility.md +80 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/p-flyout.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-heading/accessibility.md +29 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-heading/p-heading.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-icon/accessibility.md +39 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Overview.tsx +6 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-icon/p-icon.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-inline-notification/accessibility.md +36 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/p-inline-notification.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-input-date/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/p-input-date.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-email/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/p-input-email.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-month/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/p-input-month.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-number/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/p-input-number.md +7 -3
- package/skills/pds-knowledge-react/references/components/p-input-password/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/p-input-password.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-search/accessibility.md +59 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/p-input-search.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-tel/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/p-input-tel.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-text/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/p-input-text.md +7 -3
- package/skills/pds-knowledge-react/references/components/p-input-time/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/p-input-time.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-url/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/p-input-url.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-week/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/p-input-week.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-link/accessibility.md +73 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-link/p-link.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-link-pure/accessibility.md +73 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/p-link-pure.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-link-tile/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/p-link-tile.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-modal/accessibility.md +80 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-modal/p-modal.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-multi-select/accessibility.md +78 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/AsyncFilter.tsx +29 -6
- package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/p-multi-select.md +6 -2
- package/skills/pds-knowledge-react/references/components/p-pagination/accessibility.md +23 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-pagination/p-pagination.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-pin-code/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/p-pin-code.md +6 -2
- package/skills/pds-knowledge-react/references/components/p-popover/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-popover/p-popover.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-radio-group/accessibility.md +63 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Form.tsx +2 -2
- package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/p-radio-group.md +7 -3
- package/skills/pds-knowledge-react/references/components/p-scroller/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/p-scroller.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-segmented-control/accessibility.md +67 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/p-segmented-control.md +6 -2
- package/skills/pds-knowledge-react/references/components/p-select/accessibility.md +140 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/AsyncFilter.tsx +29 -6
- package/{skill → skills/pds-knowledge-react}/references/components/p-select/p-select.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-sheet/accessibility.md +80 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-sheet/p-sheet.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-spinner/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/p-spinner.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-stepper-horizontal/accessibility.md +34 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-stepper-horizontal/p-stepper-horizontal.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-switch/accessibility.md +35 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-switch/p-switch.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-table/accessibility.md +47 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Sorting.tsx +9 -8
- package/{skill → skills/pds-knowledge-react}/references/components/p-table/p-table.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-tabs/accessibility.md +56 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/p-tabs.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-tabs-bar/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/p-tabs-bar.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-tag/accessibility.md +19 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-tag/p-tag.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-tag-dismissible/accessibility.md +35 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-tag-dismissible/p-tag-dismissible.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-text/accessibility.md +21 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-text/p-text.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-text-list/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-text-list/p-text-list.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-textarea/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/p-textarea.md +4 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-toast/p-toast.md +1 -1
- package/skills/pds-knowledge-react/references/components/p-wordmark/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/p-wordmark.md +5 -1
- package/skills/pds-knowledge-react/references/icons.md +5 -0
- package/{skill → skills/pds-knowledge-react}/references/styles/tailwindcss.md +1 -1
- package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +207 -8
- package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +241 -40
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/ai-tag.wrapper.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group.wrapper.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.cjs +4 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/filter-status-announcer.cjs +7 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +3 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/no-results-option.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +7 -3
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.cjs +4 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.cjs +5 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +3 -4
- package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +207 -9
- package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +237 -41
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/ai-tag.wrapper.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group.wrapper.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +4 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/filter-status-announcer.mjs +5 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +3 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/no-results-option.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +7 -3
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.mjs +4 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.mjs +5 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +3 -4
- package/ssr/esm/lib/components/ai-tag.wrapper.d.ts +4 -4
- package/ssr/esm/lib/components/input-number.wrapper.d.ts +6 -6
- package/ssr/esm/lib/components/input-text.wrapper.d.ts +6 -6
- package/ssr/esm/lib/components/multi-select-option.wrapper.d.ts +2 -2
- package/ssr/esm/lib/components/pin-code.wrapper.d.ts +6 -6
- package/ssr/esm/lib/components/radio-group-option.wrapper.d.ts +4 -4
- package/ssr/esm/lib/components/radio-group.wrapper.d.ts +4 -6
- package/ssr/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
- package/ssr/esm/lib/components/wordmark.wrapper.d.ts +2 -2
- package/ssr/esm/lib/dsr-components/carousel.d.ts +3 -0
- package/ssr/esm/lib/dsr-components/filter-status-announcer.d.ts +6 -0
- package/ssr/esm/lib/dsr-components/multi-select.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/pin-code.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/radio-group.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/segmented-control.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/select.d.ts +1 -1
- package/ssr/esm/lib/types.d.ts +184 -213
- package/skill/references/components/p-ai-tag/p-ai-tag.md +0 -47
- package/skill/references/components/p-canvas/examples/Default.tsx +0 -10
- package/skill/references/icons.md +0 -5
- /package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/examples/InteractiveElementsInSummary.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/examples/StickySummary.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinCheckbox.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinFormLabel.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinImage.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinInputSearch.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinRadioGroup.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinTable.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinText.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-banner/examples/Customization.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-banner/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button/examples/FormAttribute.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/CustomClickableArea.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/FormAttribute.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/ColorScheme.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/FooterSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/Hyphens.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/UiBehaviour.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/DynamicSlides.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/FlexibleWidths.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/FocusOnCenterSlide.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/Intl.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/JumpToSlide.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Indeterminate.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/WrappedLabel.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-crest/examples/CustomClickableArea.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-crest/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-crest/examples/Link.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Color.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Semantics.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/SizeResponsive.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/p-display.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-divider/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-divider/examples/Responsive.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-divider/examples/Vertical.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/examples/CustomContent.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/Required.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/SlottedLabel.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/SlottedMessage.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/ResponsiveSize.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/SizeCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/CustomStyling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/StickyTop.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-heading/examples/Color.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-heading/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-heading/examples/Semantics.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Color.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/ColorCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Custom.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/ResponsiveSize.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/SizeCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/examples/ActionButton.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/examples/EventHandling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Toggle.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/AriaCombobox.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Controlled.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link/examples/FrameworkRouting.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link/examples/Icon.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/CustomClickableArea.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/FrameworkRouting.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/Icon.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/ColorScheme.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/FooterSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/Hyphens.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/UiBehaviour.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/WithVideo.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile-product/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile-product/examples/FrameworkRouting.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile-product/p-link-tile-product.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/AlertDialog.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/CustomStyling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/Scrollable.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/CustomStyling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/MaskBlendMode.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/MaskImage.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/MaskVideo.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/SafeZone.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/p-model-signature.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Optgroups.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/SelectedSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/SetValue.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pagination/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/CopyPaste.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-popover/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-popover/examples/SlottedButton.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/examples/Height.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/examples/ScrollToPosition.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/WithLabels.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Optgroups.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Required.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/SelectedSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/SetValue.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/SlottedImages.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-sheet/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/Color.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/ColorCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/ResponsiveSize.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/SizeCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-stepper-horizontal/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-stepper-horizontal/examples/FrameworkImplementation.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-switch/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Advanced.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/CaptionProperty.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/CaptionSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/HideLabel.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/LayoutFixed.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/ActiveTab.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/Gradient.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/Labelling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Gradient.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Labelling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Links.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/Multiline.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/SlottedButton.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/SlottedLink.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag-dismissible/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/Semantics.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/SizeResponsive.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text-list/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-toast/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/examples/CustomClickableArea.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/styles/emotion.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/styles/scss.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/styles/vanilla-extract.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/stylesheets.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/tokens.md +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# p-modal accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### ARIA on component host vs aria prop
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PButton aria-haspopup="dialog">
|
|
11
|
+
Details of product XYZ
|
|
12
|
+
</PButton>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
#### ✅ Recommended
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
<PButton aria={{'aria-haspopup': 'dialog'}}>
|
|
19
|
+
Details of product XYZ
|
|
20
|
+
</PButton>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Dialog label on component host vs header slot
|
|
24
|
+
|
|
25
|
+
#### ❌ Anti-pattern
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
<PModal aria-label="Details">
|
|
29
|
+
...
|
|
30
|
+
</PModal>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### ✅ Recommended
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
<PModal>
|
|
37
|
+
<PHeading slot="header" tag="h2" size="lg">
|
|
38
|
+
Details of product XYZ
|
|
39
|
+
</PHeading>
|
|
40
|
+
...
|
|
41
|
+
</PModal>
|
|
42
|
+
|
|
43
|
+
{/* or with aria prop when no visible header is shown */}
|
|
44
|
+
|
|
45
|
+
<PModal aria={{'aria-label': 'Details of product XYZ'}}>
|
|
46
|
+
...
|
|
47
|
+
</PModal>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Modal trigger without popup semantics or context
|
|
51
|
+
|
|
52
|
+
#### ❌ Anti-pattern
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
<PButton>
|
|
56
|
+
Open
|
|
57
|
+
</PButton>
|
|
58
|
+
|
|
59
|
+
<PModal>
|
|
60
|
+
<PHeading slot="header" tag="h2" size="lg">
|
|
61
|
+
Details
|
|
62
|
+
</PHeading>
|
|
63
|
+
...
|
|
64
|
+
</PModal>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
#### ✅ Recommended
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
<PButton aria={{'aria-haspopup': 'dialog'}}>
|
|
71
|
+
Details of product XYZ
|
|
72
|
+
</PButton>
|
|
73
|
+
|
|
74
|
+
<PModal>
|
|
75
|
+
<PHeading slot="header" tag="h2" size="lg">
|
|
76
|
+
Details of product XYZ
|
|
77
|
+
</PHeading>
|
|
78
|
+
...
|
|
79
|
+
</PModal>
|
|
80
|
+
```
|
|
@@ -80,6 +80,10 @@ To inform users that the trigger button opens a `dialog`, the `aria-haspopup` at
|
|
|
80
80
|
- **Don't** add raw host-level ARIA attributes as a workaround.
|
|
81
81
|
- **Don't** use unclear trigger copy like "Open" when the destination is not obvious.
|
|
82
82
|
|
|
83
|
+
## Integration examples
|
|
84
|
+
|
|
85
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
86
|
+
|
|
83
87
|
## API
|
|
84
88
|
|
|
85
89
|
### Properties
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# p-multi-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
|
+
<PMultiSelect name="features">
|
|
11
|
+
<PMultiSelectOption value="">
|
|
12
|
+
Select features
|
|
13
|
+
</PMultiSelectOption>
|
|
14
|
+
<PMultiSelectOption value="sport">
|
|
15
|
+
Sport Chrono Package
|
|
16
|
+
</PMultiSelectOption>
|
|
17
|
+
</PMultiSelect>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
#### ✅ Recommended
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
<PMultiSelect label="Optional features" name="features" description="Select all features for your configuration.">
|
|
24
|
+
<PMultiSelectOption value="sport">
|
|
25
|
+
Sport Chrono Package
|
|
26
|
+
</PMultiSelectOption>
|
|
27
|
+
<PMultiSelectOption value="audio">
|
|
28
|
+
BOSE Surround Sound
|
|
29
|
+
</PMultiSelectOption>
|
|
30
|
+
</PMultiSelect>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Hidden label without accessible name
|
|
34
|
+
|
|
35
|
+
#### ❌ Anti-pattern
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
<PMultiSelect name="features" hideLabel={true}>
|
|
39
|
+
<PMultiSelectOption value="sport">
|
|
40
|
+
Sport Chrono Package
|
|
41
|
+
</PMultiSelectOption>
|
|
42
|
+
</PMultiSelect>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### ✅ Recommended
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
<PMultiSelect label="Optional features" name="features" hideLabel={true}>
|
|
49
|
+
<PMultiSelectOption value="sport">
|
|
50
|
+
Sport Chrono Package
|
|
51
|
+
</PMultiSelectOption>
|
|
52
|
+
</PMultiSelect>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Validation feedback via state and message API
|
|
56
|
+
|
|
57
|
+
#### ❌ Anti-pattern
|
|
58
|
+
|
|
59
|
+
```tsx
|
|
60
|
+
<PMultiSelect label="Optional features" name="features" aria-invalid={true} message="Required">
|
|
61
|
+
<PMultiSelectOption value="sport">
|
|
62
|
+
Sport Chrono Package
|
|
63
|
+
</PMultiSelectOption>
|
|
64
|
+
</PMultiSelect>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
#### ✅ Recommended
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
<PMultiSelect label="Optional features" name="features" required={true} state="error" message="Select at least one feature to continue.">
|
|
71
|
+
<PMultiSelectOption value="sport">
|
|
72
|
+
Sport Chrono Package
|
|
73
|
+
</PMultiSelectOption>
|
|
74
|
+
<PMultiSelectOption value="audio">
|
|
75
|
+
BOSE Surround Sound
|
|
76
|
+
</PMultiSelectOption>
|
|
77
|
+
</PMultiSelect>
|
|
78
|
+
```
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
PMultiSelectOption,
|
|
10
10
|
type PMultiSelectProps,
|
|
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<PMultiSelectProps['value']>([]);
|
|
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
|
<PMultiSelect 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
|
</PMultiSelectOption>
|
|
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
|
-
|
|
144
|
+
aria-hidden="true"
|
|
121
145
|
>
|
|
122
|
-
|
|
123
|
-
<span className="sr-only">No results found</span>
|
|
146
|
+
–
|
|
124
147
|
</div>
|
|
125
148
|
)}
|
|
126
149
|
|
package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/p-multi-select.md
RENAMED
|
@@ -4,7 +4,7 @@ The `p-multi-select` component is a versatile custom form element that facilitat
|
|
|
4
4
|
|
|
5
5
|
Many of the properties closely resemble those found in the [select](../p-select/p-select.md) and other form components (e.g. `label`, `description`, `state`, `message`, `hideLabel`, `disabled`, `required` & `dropdownDirection`). The `p-multi-select` offers a search field by default. When the user types in a search string, the options are reduced by matching the options text.
|
|
6
6
|
|
|
7
|
-
Options are slotted using the `p-multi-select-option` component. Each option needs to have an assigned value, which can be passed via an attribute or property and needs to be
|
|
7
|
+
Options are slotted using the `p-multi-select-option` component. Each option needs to have an assigned value, which can be passed via an attribute or property and needs to be a string or number. `null` and `undefined` are not valid option values. Initial selection states can only be achieved using the value property on the `p-multi-select` component ([More Info](./p-multi-select.md)). Options don't have a selected attribute or property. If an option should be visible but not selectable, it can be disabled by using the `disabled` attribute.
|
|
8
8
|
|
|
9
9
|
**Hint:** The `p-multi-select` utilizes the [Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API) to render its dropdown on the `#top-layer` which enables it to be shown correctly even when used e.g. within a scroll container.
|
|
10
10
|
|
|
@@ -85,6 +85,10 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
|
|
|
85
85
|
- **Don't** use a prompt option or adjacent text as a substitute for a field label.
|
|
86
86
|
- **Don't** use `hide-label` without an accessible name.
|
|
87
87
|
|
|
88
|
+
## Integration examples
|
|
89
|
+
|
|
90
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
91
|
+
|
|
88
92
|
## API
|
|
89
93
|
|
|
90
94
|
### Properties
|
|
@@ -142,7 +146,7 @@ Allowed parents: `p-multi-select`, `p-optgroup`.
|
|
|
142
146
|
| Property | Type | Default | Description |
|
|
143
147
|
| --- | --- | --- | --- |
|
|
144
148
|
| `disabled` | `boolean` | `false` | Disables the option, preventing it from being selected. |
|
|
145
|
-
| `value` _(required)_ | `string | number` | `undefined` | Sets the value submitted with the form data when
|
|
149
|
+
| `value` _(required)_ | `string | number` | `undefined` | Sets the required option value submitted with the form data when selected. Must be a string or number. |
|
|
146
150
|
|
|
147
151
|
#### Slots
|
|
148
152
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# p-pagination accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Default English labels on a localized page
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<html lang="de_DE">
|
|
11
|
+
...
|
|
12
|
+
<PPagination totalItemsCount={120} itemsPerPage={10} activePage={1}></PPagination>
|
|
13
|
+
</html>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
#### ✅ Recommended
|
|
17
|
+
|
|
18
|
+
```tsx
|
|
19
|
+
<html lang="de_DE">
|
|
20
|
+
...
|
|
21
|
+
<PPagination totalItemsCount={120} itemsPerPage={10} activePage={1} intl={{'root': 'Seitennavigation', 'prev': 'Vorherige Seite', 'next': 'Nächste Seite', 'page': 'Seite'}}></PPagination>
|
|
22
|
+
</html>
|
|
23
|
+
```
|
package/{skill → skills/pds-knowledge-react}/references/components/p-pagination/p-pagination.md
RENAMED
|
@@ -54,6 +54,10 @@ To adapt the pagination to the specific viewport context, the amount of displaye
|
|
|
54
54
|
- **Do** keep prev/next and page button labels specific enough to identify the pagination control.
|
|
55
55
|
- **Don't** rely on default English `intl` strings on localized pages.
|
|
56
56
|
|
|
57
|
+
## Integration examples
|
|
58
|
+
|
|
59
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
60
|
+
|
|
57
61
|
## API
|
|
58
62
|
|
|
59
63
|
### Properties
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# p-pin-code accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Missing field label
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PPinCode name="verification" length={6}></PPinCode>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<PPinCode name="verification" length={6} label="Verification code" description="Enter the 6-digit code from your email."></PPinCode>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Hidden label without accessible name
|
|
20
|
+
|
|
21
|
+
#### ❌ Anti-pattern
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<PPinCode name="verification" length={6} hideLabel={true}></PPinCode>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
#### ✅ Recommended
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<PPinCode name="verification" length={6} hideLabel={true} label="Verification code"></PPinCode>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Validation feedback via state and message API
|
|
34
|
+
|
|
35
|
+
#### ❌ Anti-pattern
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
<PPinCode name="verification" label="Verification code" aria-invalid={true} message="Invalid"></PPinCode>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### ✅ Recommended
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
<PPinCode name="verification" length={6} label="Verification code" state="error" message="Enter the complete 6-digit verification code."></PPinCode>
|
|
45
|
+
```
|
|
@@ -58,6 +58,10 @@ In general, avoid using the `disabled="true"` state. Disabled elements are no lo
|
|
|
58
58
|
- **Do** use the component state/message API so validation and status changes are announced.
|
|
59
59
|
- **Don't** use `hide-label` without an accessible name.
|
|
60
60
|
|
|
61
|
+
## Integration examples
|
|
62
|
+
|
|
63
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
64
|
+
|
|
61
65
|
## API
|
|
62
66
|
|
|
63
67
|
### Properties
|
|
@@ -77,14 +81,14 @@ In general, avoid using the `disabled="true"` state. Disabled elements are no lo
|
|
|
77
81
|
| `required` | `boolean` | `false` | Marks the pin code as required so the form cannot be submitted until all fields are filled. |
|
|
78
82
|
| `state` | `'none'` `'error'` `'success'` | `'none'` | Sets the validation state of the pin code, which controls its visual appearance and feedback message style (`none`, `success`, `error`). |
|
|
79
83
|
| `type` | `'number'` `'password'` | `'number'` | Controls whether the individual input fields mask their content as password dots (`password`) or show digits (`number`). |
|
|
80
|
-
| `value` | `string` | `''` | Sets the current concatenated value
|
|
84
|
+
| `value` | `string | number | null` | `''` | Sets the current concatenated value. Numbers are accepted for programmatic assignment, but user input updates the value as a string. |
|
|
81
85
|
|
|
82
86
|
### Events
|
|
83
87
|
|
|
84
88
|
| Event | Type | Description |
|
|
85
89
|
| --- | --- | --- |
|
|
86
90
|
| `blur` | `CustomEvent<void>` | Emitted when the pin code component loses focus after the user finishes entering characters. |
|
|
87
|
-
| `change` | `CustomEvent<PinCodeChangeEventDetail>`<br>`{ value: string; isComplete: boolean }` | Emitted when the pin code value changes as the user types, carrying
|
|
91
|
+
| `change` | `CustomEvent<PinCodeChangeEventDetail>`<br>`{ value: string; isComplete: boolean }` | Emitted when the pin code value changes as the user types, carrying `{ value: string; isComplete: boolean }` in the event detail. |
|
|
88
92
|
|
|
89
93
|
### Controlled properties
|
|
90
94
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# p-popover accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### ARIA on component host vs aria prop
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PPopover aria-label="Specification details" description="Additional specification details."></PPopover>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<PPopover aria={{'aria-label': 'Specification details'}} description="Additional specification details."></PPopover>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Custom slotted trigger without accessible name
|
|
20
|
+
|
|
21
|
+
#### ❌ Anti-pattern
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<PPopover>
|
|
25
|
+
<button slot="button" type="button"></button>
|
|
26
|
+
Additional specification details.
|
|
27
|
+
</PPopover>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
#### ✅ Recommended
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<PPopover description="Additional specification details."></PPopover>
|
|
34
|
+
|
|
35
|
+
{/* or provide an accessible name on a custom slotted button */}
|
|
36
|
+
|
|
37
|
+
<PPopover>
|
|
38
|
+
<button slot="button" type="button" ariaLabel="Specification details">
|
|
39
|
+
i
|
|
40
|
+
</button>
|
|
41
|
+
Additional specification details.
|
|
42
|
+
</PPopover>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Custom slotted trigger without aria-expanded
|
|
46
|
+
|
|
47
|
+
#### ❌ Anti-pattern
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
<PPopover>
|
|
51
|
+
<button slot="button" type="button"></button>
|
|
52
|
+
</PPopover>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### ✅ Recommended
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<PPopover>
|
|
59
|
+
<button slot="button" type="button" ariaExpanded="false"></button>
|
|
60
|
+
</PPopover>
|
|
61
|
+
```
|
|
@@ -65,6 +65,10 @@ In **controlled** mode the consumer owns the `open` state, so the slotted trigge
|
|
|
65
65
|
- **Don't** use an unnamed custom slotted trigger button.
|
|
66
66
|
- **Don't** add native `aria-*` attributes directly on the component host.
|
|
67
67
|
|
|
68
|
+
## Integration examples
|
|
69
|
+
|
|
70
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
71
|
+
|
|
68
72
|
## API
|
|
69
73
|
|
|
70
74
|
### Properties
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# p-radio-group accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Missing group label
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PRadioGroup name="fuel">
|
|
11
|
+
<PRadioGroupOption value="electric" label="Electric"></PRadioGroupOption>
|
|
12
|
+
<PRadioGroupOption value="hybrid" label="Hybrid"></PRadioGroupOption>
|
|
13
|
+
</PRadioGroup>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
#### ✅ Recommended
|
|
17
|
+
|
|
18
|
+
```tsx
|
|
19
|
+
<PRadioGroup label="Powertrain" name="fuel" description="Select your preferred powertrain.">
|
|
20
|
+
<PRadioGroupOption value="electric" label="Electric"></PRadioGroupOption>
|
|
21
|
+
<PRadioGroupOption value="hybrid" label="Hybrid"></PRadioGroupOption>
|
|
22
|
+
</PRadioGroup>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Hidden label without accessible name
|
|
26
|
+
|
|
27
|
+
#### ❌ Anti-pattern
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<PRadioGroup name="fuel" hideLabel={true}>
|
|
31
|
+
<PRadioGroupOption value="electric" label="Electric"></PRadioGroupOption>
|
|
32
|
+
<PRadioGroupOption value="hybrid" label="Hybrid"></PRadioGroupOption>
|
|
33
|
+
</PRadioGroup>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
#### ✅ Recommended
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
<PRadioGroup label="Powertrain" name="fuel" hideLabel={true}>
|
|
40
|
+
<PRadioGroupOption value="electric" label="Electric"></PRadioGroupOption>
|
|
41
|
+
<PRadioGroupOption value="hybrid" label="Hybrid"></PRadioGroupOption>
|
|
42
|
+
</PRadioGroup>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Validation feedback via state and message API
|
|
46
|
+
|
|
47
|
+
#### ❌ Anti-pattern
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
<PRadioGroup label="Powertrain" name="fuel" aria-invalid={true} message="Required">
|
|
51
|
+
<PRadioGroupOption value="electric" label="Electric"></PRadioGroupOption>
|
|
52
|
+
<PRadioGroupOption value="hybrid" label="Hybrid"></PRadioGroupOption>
|
|
53
|
+
</PRadioGroup>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### ✅ Recommended
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
<PRadioGroup label="Powertrain" name="fuel" required={true} state="error" message="Select a powertrain to continue.">
|
|
60
|
+
<PRadioGroupOption value="electric" label="Electric"></PRadioGroupOption>
|
|
61
|
+
<PRadioGroupOption value="hybrid" label="Hybrid"></PRadioGroupOption>
|
|
62
|
+
</PRadioGroup>
|
|
63
|
+
```
|
package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Form.tsx
RENAMED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import { FormEvent, useState } from 'react';
|
|
11
11
|
|
|
12
12
|
export const Example = () => {
|
|
13
|
-
const [form, setForm] = useState
|
|
13
|
+
const [form, setForm] = useState<{ myRadioGroup: PRadioGroupProps['value'] }>({ myRadioGroup: null });
|
|
14
14
|
const [lastSubmittedData, setLastSubmittedData] = useState<any>();
|
|
15
15
|
|
|
16
16
|
const onChange = (e: CustomEvent<RadioGroupChangeEventDetail>) => {
|
|
@@ -28,7 +28,7 @@ export const Example = () => {
|
|
|
28
28
|
|
|
29
29
|
const onReset = (e: FormEvent<HTMLFormElement>) => {
|
|
30
30
|
e.preventDefault();
|
|
31
|
-
setForm({ myRadioGroup:
|
|
31
|
+
setForm({ myRadioGroup: null });
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
return (
|
package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/p-radio-group.md
RENAMED
|
@@ -6,7 +6,7 @@ The `p-radio-group` component is a versatile custom form element that enables th
|
|
|
6
6
|
>
|
|
7
7
|
> The `blur` event is emitted whenever the focused `p-radio-group-option` changes — not only when the entire `p-radio-group` loses focus. This means that switching between options within the same group will also trigger a `blur` event for the previously focused option.
|
|
8
8
|
|
|
9
|
-
Options are slotted using the `p-radio-group-option` component. Each option needs
|
|
9
|
+
Options are slotted using the `p-radio-group-option` component. Each option needs an assigned `string` or `number` value. The `p-radio-group` value matches an option strictly by type and value, so a number does not match the equivalent string. `undefined` and `null` are reserved for the radio group's unselected state and are not valid option values. Initial selection states can only be achieved using the `value` property on the `p-radio-group` component. If an option should be visible but not selectable, it can be disabled using the `disabled` attribute.
|
|
10
10
|
|
|
11
11
|
A `label` is a caption which informs the user what information a particular form field is asking for. The `p-radio-group` component can be used with or without a label, but it's recommended to keep the label visible for better accessibility whenever possible. When used without a label, it's best practice to provide a descriptive label text for screen readers.
|
|
12
12
|
|
|
@@ -70,6 +70,10 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
|
|
|
70
70
|
- **Don't** rely on adjacent text instead of the group `label` prop.
|
|
71
71
|
- **Don't** use `hide-label` without an accessible name.
|
|
72
72
|
|
|
73
|
+
## Integration examples
|
|
74
|
+
|
|
75
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
76
|
+
|
|
73
77
|
## Tests
|
|
74
78
|
|
|
75
79
|
### Automated
|
|
@@ -105,7 +109,7 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
|
|
|
105
109
|
| `name` _(required)_ | `string` | `undefined` | Sets the shared name attribute for all radio buttons in the group, grouping them for mutually exclusive selection. |
|
|
106
110
|
| `required` | `boolean` | `false` | Marks the radio group as required so the form cannot be submitted until one option is selected. |
|
|
107
111
|
| `state` | `'none'` `'error'` `'success'` | `'none'` | Sets the validation state of the radio group, controlling its visual appearance and feedback message style (`none`, `success`, `error`). |
|
|
108
|
-
| `value` | `string` | `
|
|
112
|
+
| `value` | `string | number | null` | `undefined` | Sets the currently selected value that pre-selects the matching radio option and reflects user changes. Matches an option strictly by type and value, meaning string or number only match an option whose value has the same type and equal value. Use undefined or null for no preselection; these values never match an option because every option requires a string or number value. 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 option. 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. |
|
|
109
113
|
|
|
110
114
|
### Events
|
|
111
115
|
|
|
@@ -139,7 +143,7 @@ Allowed parent: `p-radio-group`.
|
|
|
139
143
|
| `disabled` | `boolean` | `false` | Prevents this option from being selected and excludes its value from form submissions while it is disabled. |
|
|
140
144
|
| `label` | `string` | `undefined` | Sets the visible label text displayed next to the radio button that the user reads to identify the option. |
|
|
141
145
|
| `loading` _(experimental)_ | `boolean` | `false` | @experimental Disables this option and shows a spinner to indicate that this particular option is in a loading state. |
|
|
142
|
-
| `value` | `string` | `undefined` | Sets the
|
|
146
|
+
| `value` _(required)_ | `string | number` | `undefined` | Sets the required option value. Must be a string or number and is selected when it strictly matches the parent `p-radio-group` value by type and value. |
|
|
143
147
|
|
|
144
148
|
#### Slots
|
|
145
149
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# p-scroller accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### ARIA on component host vs aria prop
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PScroller aria-label="Section tags" aria-description="Section tags for the section overview">
|
|
11
|
+
<PTag>
|
|
12
|
+
Overview
|
|
13
|
+
</PTag>
|
|
14
|
+
<PTag>
|
|
15
|
+
Equipment
|
|
16
|
+
</PTag>
|
|
17
|
+
</PScroller>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
#### ✅ Recommended
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
<PScroller aria={{'aria-label': 'Section tags', 'aria-description': 'Section tags for the section overview'}}>
|
|
24
|
+
<PTag>
|
|
25
|
+
Overview
|
|
26
|
+
</PTag>
|
|
27
|
+
<PTag>
|
|
28
|
+
Equipment
|
|
29
|
+
</PTag>
|
|
30
|
+
</PScroller>
|
|
31
|
+
```
|
|
@@ -57,6 +57,10 @@ If the `p-scroller` component is accessed by keyboard navigation and is focused,
|
|
|
57
57
|
- **Do** pass `aria-label` and `aria-description` via the `aria` prop, not as host attributes.
|
|
58
58
|
- **Don't** add native `aria-*` attributes directly on the component host.
|
|
59
59
|
|
|
60
|
+
## Integration examples
|
|
61
|
+
|
|
62
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
63
|
+
|
|
60
64
|
## API
|
|
61
65
|
|
|
62
66
|
### Properties
|