@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,37 @@
|
|
|
1
|
+
# p-banner accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Banner mounted only when shown
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
{hasError && (
|
|
11
|
+
<PBanner open heading="Error">
|
|
12
|
+
Something went wrong.
|
|
13
|
+
</PBanner>
|
|
14
|
+
)}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
#### ✅ Recommended
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
{/* Pre-render the banner and update content when needed. */}
|
|
21
|
+
|
|
22
|
+
<PBanner id="form-banner" heading="Error" description="Check the highlighted fields and try again." state="error"></PBanner>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Error feedback without descriptive content
|
|
26
|
+
|
|
27
|
+
#### ❌ Anti-pattern
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<PBanner open={true} state="error" description="Error"></PBanner>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### ✅ Recommended
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
<PBanner open={true} state="error" heading="Payment could not be processed" description="Check your card details or try another payment method."></PBanner>
|
|
37
|
+
```
|
|
@@ -43,6 +43,10 @@ The `Banner` component uses `role="status"` and `role="alert"` to announce **con
|
|
|
43
43
|
- **Do** return focus to the trigger or at a logical place after the banner is dismissed.
|
|
44
44
|
- **Don't** mount the entire banner only at the moment it should be announced.
|
|
45
45
|
|
|
46
|
+
## Integration examples
|
|
47
|
+
|
|
48
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
49
|
+
|
|
46
50
|
## API
|
|
47
51
|
|
|
48
52
|
### Properties
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# p-button 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" aria-label="Open details of product XYZ">
|
|
11
|
+
Open details
|
|
12
|
+
</PButton>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
#### ✅ Recommended
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
<PButton aria={{'aria-haspopup': 'dialog', 'aria-label': 'Open details of product XYZ'}}>
|
|
19
|
+
Open details
|
|
20
|
+
</PButton>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Icon-only button without accessible name
|
|
24
|
+
|
|
25
|
+
#### ❌ Anti-pattern
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
<PButton icon="plus"></PButton>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
#### ✅ Recommended
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
<PButton icon="plus" hideLabel={true}>
|
|
35
|
+
Add item XYZ to shopping cart
|
|
36
|
+
</PButton>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Vague button label without context
|
|
40
|
+
|
|
41
|
+
#### ❌ Anti-pattern
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
<PButton icon="plus">
|
|
45
|
+
Add
|
|
46
|
+
</PButton>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
#### ✅ Recommended
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
<PButton icon="plus" aria={{'aria-label': 'Add item XYZ to shopping cart'}}>
|
|
53
|
+
Add
|
|
54
|
+
</PButton>
|
|
55
|
+
|
|
56
|
+
{/* or use descriptive visible text */}
|
|
57
|
+
|
|
58
|
+
<PButton icon="plus">
|
|
59
|
+
Add item XYZ to cart
|
|
60
|
+
</PButton>
|
|
61
|
+
```
|
|
@@ -84,6 +84,10 @@ If the text of a button does not clearly indicate what the button's behavior is,
|
|
|
84
84
|
- **Don't** add native `aria-*` attributes directly on the component host.
|
|
85
85
|
- **Don't** rely on short generic button labels like "Show" or "Add" without context.
|
|
86
86
|
|
|
87
|
+
## Integration examples
|
|
88
|
+
|
|
89
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
90
|
+
|
|
87
91
|
## API
|
|
88
92
|
|
|
89
93
|
### Properties
|
|
@@ -95,7 +99,7 @@ If the text of a button does not clearly indicate what the button's behavior is,
|
|
|
95
99
|
| `disabled` | `boolean` | `false` | Disables the button, preventing all interaction and blocking events. |
|
|
96
100
|
| `form` | `string` | `undefined` | Associates the button with a form element by its ID, so it can submit or reset that form even when placed outside of it. |
|
|
97
101
|
| `hideLabel` | `boolean`<br>`BreakpointCustomizable<boolean>` | `false` | Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values. |
|
|
98
|
-
| `icon` | `'none'`<br>one of
|
|
102
|
+
| `icon` | `'none'`<br>one of 293 icon names — see [icon names](references/icons.md) | `'none'` | Sets the icon displayed inside the button. Use `none` to show no icon. |
|
|
99
103
|
| `iconSource` | `string` | `undefined` | Sets a path to a custom SVG icon, used instead of the built-in icon set. |
|
|
100
104
|
| `loading` | `boolean` | `false` | Disables the button and replaces its content with a loading spinner to indicate an ongoing operation. |
|
|
101
105
|
| `name` | `string` | `undefined` | Sets the name submitted with the form data when this button triggers form submission. |
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# p-button-pure accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### ARIA on component host vs aria prop
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PButtonPure aria-haspopup="dialog" aria-label="Open details of product XYZ">
|
|
11
|
+
Open details
|
|
12
|
+
</PButtonPure>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
#### ✅ Recommended
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
<PButtonPure aria={{'aria-haspopup': 'dialog', 'aria-label': 'Open details of product XYZ'}}>
|
|
19
|
+
Open details
|
|
20
|
+
</PButtonPure>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Icon-only button without accessible name
|
|
24
|
+
|
|
25
|
+
#### ❌ Anti-pattern
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
<PButtonPure icon="plus"></PButtonPure>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
#### ✅ Recommended
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
<PButtonPure icon="plus" hideLabel={true}>
|
|
35
|
+
Add item XYZ to shopping cart
|
|
36
|
+
</PButtonPure>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Vague button label without context
|
|
40
|
+
|
|
41
|
+
#### ❌ Anti-pattern
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
<PButtonPure icon="plus">
|
|
45
|
+
Add
|
|
46
|
+
</PButtonPure>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
#### ✅ Recommended
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
<PButtonPure icon="plus" aria={{'aria-label': 'Add item XYZ to shopping cart'}}>
|
|
53
|
+
Add
|
|
54
|
+
</PButtonPure>
|
|
55
|
+
|
|
56
|
+
{/* or use descriptive visible text */}
|
|
57
|
+
|
|
58
|
+
<PButtonPure icon="plus">
|
|
59
|
+
Add item XYZ to cart
|
|
60
|
+
</PButtonPure>
|
|
61
|
+
```
|
package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/p-button-pure.md
RENAMED
|
@@ -79,6 +79,10 @@ If the text of a button does not clearly indicate what the button's behavior is,
|
|
|
79
79
|
- **Don't** add native `aria-*` attributes directly on the component host.
|
|
80
80
|
- **Don't** rely on short generic button labels like "Show" or "Add" without context.
|
|
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
|
|
@@ -92,7 +96,7 @@ If the text of a button does not clearly indicate what the button's behavior is,
|
|
|
92
96
|
| `disabled` | `boolean` | `false` | Disables the button, preventing all interaction and blocking events. |
|
|
93
97
|
| `form` | `string` | `undefined` | Associates the button with a form element by its ID, so it can submit or reset that form even when placed outside of it. |
|
|
94
98
|
| `hideLabel` | `boolean`<br>`BreakpointCustomizable<boolean>` | `false` | Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values. |
|
|
95
|
-
| `icon` | `''`<br>one of
|
|
99
|
+
| `icon` | `''`<br>one of 293 icon names — see [icon names](references/icons.md) | `'arrow-right'` | Sets the icon displayed next to the label. |
|
|
96
100
|
| `iconSource` | `string` | `undefined` | Sets a path to a custom SVG icon, used instead of the built-in icon set. |
|
|
97
101
|
| `loading` | `boolean` | `false` | Disables the button and replaces its icon with a loading spinner to indicate an ongoing operation. |
|
|
98
102
|
| `name` | `string` | `undefined` | Sets the name submitted with the form data when this button triggers form submission. |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# p-button-tile accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### ARIA on component host vs aria prop
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PButtonTile label="Open" aria-label="Open details of Porsche Taycan" aria-haspopup="dialog"></PButtonTile>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<PButtonTile label="Open" aria={{'aria-haspopup': 'dialog', 'aria-label': 'Open details of Porsche Taycan'}}></PButtonTile>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Vague tile label without context
|
|
20
|
+
|
|
21
|
+
#### ❌ Anti-pattern
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<PButtonTile label="Open"></PButtonTile>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
#### ✅ Recommended
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<PButtonTile label="Configure Porsche Taycan"></PButtonTile>
|
|
31
|
+
```
|
package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/p-button-tile.md
RENAMED
|
@@ -75,6 +75,10 @@ If the text of the button does not clearly indicate what the button's function i
|
|
|
75
75
|
- **Do** add `aria-label` on slotted `<video>` elements used as backgrounds.
|
|
76
76
|
- **Don't** add native `aria-*` attributes directly on the component host.
|
|
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
|
|
@@ -88,7 +92,7 @@ If the text of the button does not clearly indicate what the button's function i
|
|
|
88
92
|
| `description` _(required)_ | `string` | `undefined` | Sets the description text displayed in the tile's content area. |
|
|
89
93
|
| `disabled` | `boolean` | `false` | Disables the tile, preventing button interaction. |
|
|
90
94
|
| `gradient` | `boolean` | `false` | Shows a gradient overlay over the media slot to improve text legibility on bright images or videos. |
|
|
91
|
-
| `icon` | `'none'`<br>one of
|
|
95
|
+
| `icon` | `'none'`<br>one of 293 icon names — see [icon names](references/icons.md) | `'none'` | Sets the icon displayed in the tile's action button. Use `none` to show no icon. |
|
|
92
96
|
| `iconSource` | `string` | `undefined` | Sets a path to a custom SVG icon for the action button, used instead of the built-in icon set. |
|
|
93
97
|
| `label` _(required)_ | `string` | `undefined` | Sets the accessible label text of the action button rendered inside the tile. |
|
|
94
98
|
| `loading` | `boolean` | `false` | Disables the tile and shows a loading spinner to indicate an ongoing operation. |
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
type CanvasSidebarStartUpdateEventDetail,
|
|
4
|
+
PButton,
|
|
5
|
+
PCanvas,
|
|
6
|
+
PHeading,
|
|
7
|
+
PText,
|
|
8
|
+
} from '@porsche-design-system/components-react';
|
|
9
|
+
import { breakpointS } from '@porsche-design-system/components-react/emotion';
|
|
10
|
+
import { useCallback, useState } from 'react';
|
|
11
|
+
|
|
12
|
+
export const Example = () => {
|
|
13
|
+
const [isSidebarStartOpen, setIsSidebarStartOpen] = useState<boolean>(
|
|
14
|
+
// initially, sidebar should be closed on mobile and opened on desktop
|
|
15
|
+
window.matchMedia(`(min-width: ${breakpointS}px)`).matches
|
|
16
|
+
);
|
|
17
|
+
const [isSidebarEndOpen, setIsSidebarEndOpen] = useState<boolean>(false);
|
|
18
|
+
|
|
19
|
+
const onSidebarStartUpdate = useCallback((e: CustomEvent<CanvasSidebarStartUpdateEventDetail>) => {
|
|
20
|
+
setIsSidebarStartOpen(e.detail.open);
|
|
21
|
+
}, []);
|
|
22
|
+
const onSidebarEndOpen = useCallback(() => {
|
|
23
|
+
setIsSidebarEndOpen(true);
|
|
24
|
+
}, []);
|
|
25
|
+
const onSidebarEndDismiss = useCallback(() => {
|
|
26
|
+
setIsSidebarEndOpen(false);
|
|
27
|
+
}, []);
|
|
28
|
+
|
|
29
|
+
const style = `
|
|
30
|
+
.-col-span-full-1 {
|
|
31
|
+
grid-column: 1 / -1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.-col-span-full-2 {
|
|
35
|
+
grid-column: 2 / -2;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.-col-span-full-3 {
|
|
39
|
+
grid-column: 3 / -3;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.-col-span-4 {
|
|
43
|
+
grid-column: span 4;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.tile {
|
|
47
|
+
margin-top: 16px;
|
|
48
|
+
display: flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
justify-content: center;
|
|
51
|
+
padding: 16px;
|
|
52
|
+
background: lightpink;
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<>
|
|
58
|
+
<style dangerouslySetInnerHTML={{ __html: style }} />
|
|
59
|
+
<PCanvas
|
|
60
|
+
sidebarStartOpen={isSidebarStartOpen}
|
|
61
|
+
sidebarEndOpen={isSidebarEndOpen}
|
|
62
|
+
onSidebarStartUpdate={onSidebarStartUpdate}
|
|
63
|
+
onSidebarEndDismiss={onSidebarEndDismiss}
|
|
64
|
+
>
|
|
65
|
+
<a slot="title" href="#">
|
|
66
|
+
App Name
|
|
67
|
+
</a>
|
|
68
|
+
|
|
69
|
+
<PButton
|
|
70
|
+
slot="header-end"
|
|
71
|
+
icon="configurate"
|
|
72
|
+
variant="secondary"
|
|
73
|
+
compact={true}
|
|
74
|
+
hideLabel={true}
|
|
75
|
+
onClick={onSidebarEndOpen}
|
|
76
|
+
>
|
|
77
|
+
Open sidebar
|
|
78
|
+
</PButton>
|
|
79
|
+
|
|
80
|
+
<div className="-p-canvas-grid">
|
|
81
|
+
<PText className="-col-span-full-1">Content</PText>
|
|
82
|
+
|
|
83
|
+
<div className="tile -col-span-4">Grid span 4x</div>
|
|
84
|
+
<div className="tile -col-span-4">Grid span 4x</div>
|
|
85
|
+
<div className="tile -col-span-4">Grid span 4x</div>
|
|
86
|
+
|
|
87
|
+
<div className="tile -col-span-full-1">12 Grid columns</div>
|
|
88
|
+
<div className="tile -col-span-full-2">10 Grid columns</div>
|
|
89
|
+
<div className="tile -col-span-full-3">8 Grid columns</div>
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
<div slot="footer" className="-p-canvas-grid">
|
|
93
|
+
<PText className="-col-span-full-1">Footer</PText>
|
|
94
|
+
<div className="tile -col-span-full-1">12 Grid columns</div>
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
<div slot="sidebar-start">
|
|
98
|
+
<PText>Sidebar Start</PText>
|
|
99
|
+
</div>
|
|
100
|
+
|
|
101
|
+
<PHeading slot="sidebar-end-header" tag="h2" size="small">
|
|
102
|
+
Sidebar End Header
|
|
103
|
+
</PHeading>
|
|
104
|
+
|
|
105
|
+
<div slot="sidebar-end">
|
|
106
|
+
<PText>Sidebar End</PText>
|
|
107
|
+
</div>
|
|
108
|
+
</PCanvas>
|
|
109
|
+
</>
|
|
110
|
+
);
|
|
111
|
+
};
|
|
@@ -10,6 +10,10 @@ The canvas component provides a CSS utility class which comes with a basic 12 co
|
|
|
10
10
|
.-p-canvas-grid // experimental, might be removed in a future release
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
+
> **Porsche Grid compatibility**
|
|
14
|
+
>
|
|
15
|
+
> The standard Porsche Grid currently supports only top-level layouts that span the full viewport width. Do not use it inside the `p-canvas` default or footer slots because their available width can be reduced by open sidebars. Use `.-p-canvas-grid` instead.
|
|
16
|
+
|
|
13
17
|
The canvas component has some values which can be overwritten by **CSS Variables**.
|
|
14
18
|
|
|
15
19
|
```scss
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# p-carousel accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### ARIA on component host vs aria prop
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PCarousel aria-label="Slider">
|
|
11
|
+
{/* slides */}
|
|
12
|
+
</PCarousel>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
#### ✅ Recommended
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
<PCarousel aria={{'aria-label': 'Featured Porsche models'}}>
|
|
19
|
+
{/* slides */}
|
|
20
|
+
</PCarousel>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Carousel without skip path for keyboard users
|
|
24
|
+
|
|
25
|
+
#### ❌ Anti-pattern
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
<PCarousel>
|
|
29
|
+
{/* many slides (>6 items) */}
|
|
30
|
+
</PCarousel>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### ✅ Recommended
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
<PCarousel skipLinkTarget="#after-carousel" aria={{'aria-label': 'Highlights'}}>
|
|
37
|
+
{/* many slides (>6 items) */}
|
|
38
|
+
</PCarousel>
|
|
39
|
+
|
|
40
|
+
<PHeading tag="h2" id="after-carousel">
|
|
41
|
+
Next section
|
|
42
|
+
</PHeading>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Vague carousel label
|
|
46
|
+
|
|
47
|
+
#### ❌ Anti-pattern
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
<PCarousel aria={{'aria-label': 'Slider'}}>
|
|
51
|
+
{/* slides */}
|
|
52
|
+
</PCarousel>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### ✅ Recommended
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<PCarousel aria={{'aria-label': 'Featured Porsche models'}}>
|
|
59
|
+
{/* slides */}
|
|
60
|
+
</PCarousel>
|
|
61
|
+
```
|
|
@@ -59,7 +59,7 @@ Therefore, the `p-carousel`'s content has to be divided into multiple parts or s
|
|
|
59
59
|
| `aria-labelledby="IDREF"` | References the accessible name. |
|
|
60
60
|
| `aria-roledescription="carousel"` | Specifies the role as "carousel". |
|
|
61
61
|
| `aria-roledescription="slide"` | Specifies the role of the carousel item as "slide". |
|
|
62
|
-
| `aria-live="polite"` | Announces
|
|
62
|
+
| `aria-live="polite"` | Announces page position after control-driven movement (prev/next, pagination, drag), e.g. "2 of 8" via `intl.slideLabel`. Not announced when navigating by focusing slides. |
|
|
63
63
|
|
|
64
64
|
## Development considerations
|
|
65
65
|
|
|
@@ -78,6 +78,10 @@ Through the `skipLinkTarget` property, a skip link for keyboard users can be pro
|
|
|
78
78
|
- **Don't** force keyboard users to tab through every slide control when a skip path is needed.
|
|
79
79
|
- **Don't** use vague labels that do not communicate carousel context.
|
|
80
80
|
|
|
81
|
+
## Integration examples
|
|
82
|
+
|
|
83
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
84
|
+
|
|
81
85
|
## API
|
|
82
86
|
|
|
83
87
|
### Properties
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# p-checkbox accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Hidden label without accessible name
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PCheckbox name="terms" hideLabel={true}></PCheckbox>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<PCheckbox name="terms" hideLabel={true} label="I accept the terms and conditions"></PCheckbox>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Validation feedback via state and message API
|
|
20
|
+
|
|
21
|
+
#### ❌ Anti-pattern
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<PCheckbox name="terms" label="I accept the terms and conditions" aria-invalid={true} message="Required"></PCheckbox>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
#### ✅ Recommended
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<PCheckbox name="terms" label="I accept the terms and conditions" required={true} state="error" message="Accept the terms and conditions to continue."></PCheckbox>
|
|
31
|
+
```
|
|
@@ -68,6 +68,10 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
|
|
|
68
68
|
- **Don't** use `hide-label` without an accessible name.
|
|
69
69
|
- **Don't** use `hide-label` when it is not clear what the checkbox controls.
|
|
70
70
|
|
|
71
|
+
## Integration examples
|
|
72
|
+
|
|
73
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
74
|
+
|
|
71
75
|
## API
|
|
72
76
|
|
|
73
77
|
### Properties
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# p-crest accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### ARIA on component host vs aria prop
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PCrest href="/" aria-label="Porsche home"></PCrest>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<PCrest href="/" aria={{'aria-label': 'Porsche home'}}></PCrest>
|
|
17
|
+
```
|
|
@@ -46,6 +46,10 @@ You can use native `click`, `focus`, `focusin`, `blur` and `focusout` events on
|
|
|
46
46
|
- **Do** provide a descriptive `aria-label` for linked crests, for example "Porsche home".
|
|
47
47
|
- **Don't** add native `aria-*` attributes directly on the component host.
|
|
48
48
|
|
|
49
|
+
## Integration examples
|
|
50
|
+
|
|
51
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
52
|
+
|
|
49
53
|
## API
|
|
50
54
|
|
|
51
55
|
### Properties
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# p-divider accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Divider as the only section separator
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PText>
|
|
11
|
+
Delivery details
|
|
12
|
+
</PText>
|
|
13
|
+
|
|
14
|
+
<PDivider></PDivider>
|
|
15
|
+
|
|
16
|
+
<PText>
|
|
17
|
+
Payment details
|
|
18
|
+
</PText>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
#### ✅ Recommended
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<PHeading tag="h2" size="md">
|
|
25
|
+
Delivery details
|
|
26
|
+
</PHeading>
|
|
27
|
+
|
|
28
|
+
<PText>
|
|
29
|
+
...
|
|
30
|
+
</PText>
|
|
31
|
+
|
|
32
|
+
<PDivider></PDivider>
|
|
33
|
+
|
|
34
|
+
<PHeading tag="h2" size="md">
|
|
35
|
+
Payment details
|
|
36
|
+
</PHeading>
|
|
37
|
+
|
|
38
|
+
<PText>
|
|
39
|
+
...
|
|
40
|
+
</PText>
|
|
41
|
+
```
|
|
@@ -31,6 +31,10 @@ A divider is visual separation only. Use headings, landmarks, or section structu
|
|
|
31
31
|
- **Do** pair dividers with headings or landmarks that describe the sections they separate.
|
|
32
32
|
- **Don't** rely on a divider alone to communicate a new major section.
|
|
33
33
|
|
|
34
|
+
## Integration examples
|
|
35
|
+
|
|
36
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
37
|
+
|
|
34
38
|
## API
|
|
35
39
|
|
|
36
40
|
### Properties
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# p-drilldown 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
|
+
Menu
|
|
12
|
+
</PButton>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
#### ✅ Recommended
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
<PButton aria={{'aria-haspopup': 'dialog'}}>
|
|
19
|
+
Vehicle menu
|
|
20
|
+
</PButton>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Drilldown label on component host vs aria prop
|
|
24
|
+
|
|
25
|
+
#### ❌ Anti-pattern
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
<PDrilldown open={true} aria-label="Navigation">
|
|
29
|
+
...
|
|
30
|
+
</PDrilldown>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### ✅ Recommended
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
<PDrilldown open={true} aria={{'aria-label': 'Vehicle navigation'}}>
|
|
37
|
+
...
|
|
38
|
+
</PDrilldown>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Trigger without popup semantics or context
|
|
42
|
+
|
|
43
|
+
#### ❌ Anti-pattern
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
<PButton>
|
|
47
|
+
Menu
|
|
48
|
+
</PButton>
|
|
49
|
+
|
|
50
|
+
<PDrilldown>
|
|
51
|
+
...
|
|
52
|
+
</PDrilldown>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### ✅ Recommended
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<PButton aria={{'aria-haspopup': 'dialog'}}>
|
|
59
|
+
Vehicle menu
|
|
60
|
+
</PButton>
|
|
61
|
+
|
|
62
|
+
<PDrilldown aria={{'aria-label': 'Vehicle navigation'}}>
|
|
63
|
+
...
|
|
64
|
+
</PDrilldown>
|
|
65
|
+
```
|
package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/p-drilldown.md
RENAMED
|
@@ -74,6 +74,10 @@ To inform users that the trigger button opens a `dialog`, the `aria-haspopup` at
|
|
|
74
74
|
- **Do** provide a meaningful dialog label through the drilldown `aria` prop when needed.
|
|
75
75
|
- **Don't** add native `aria-*` attributes directly on the component host.
|
|
76
76
|
|
|
77
|
+
## Integration examples
|
|
78
|
+
|
|
79
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
80
|
+
|
|
77
81
|
## API
|
|
78
82
|
|
|
79
83
|
### Properties
|