@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,67 @@
|
|
|
1
|
+
# p-segmented-control accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Missing group label
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PSegmentedControl name="size">
|
|
11
|
+
<PSegmentedControlItem value="s">
|
|
12
|
+
S
|
|
13
|
+
</PSegmentedControlItem>
|
|
14
|
+
<PSegmentedControlItem value="m">
|
|
15
|
+
M
|
|
16
|
+
</PSegmentedControlItem>
|
|
17
|
+
</PSegmentedControl>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
#### ✅ Recommended
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
<PSegmentedControl label="T-shirt size" name="size" description="Select your preferred size.">
|
|
24
|
+
<PSegmentedControlItem value="s">
|
|
25
|
+
S
|
|
26
|
+
</PSegmentedControlItem>
|
|
27
|
+
<PSegmentedControlItem value="m">
|
|
28
|
+
M
|
|
29
|
+
</PSegmentedControlItem>
|
|
30
|
+
</PSegmentedControl>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Hidden label without accessible name
|
|
34
|
+
|
|
35
|
+
#### ❌ Anti-pattern
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
<PSegmentedControl name="size" hideLabel={true}>
|
|
39
|
+
<PSegmentedControlItem value="s">
|
|
40
|
+
S
|
|
41
|
+
</PSegmentedControlItem>
|
|
42
|
+
</PSegmentedControl>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### ✅ Recommended
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
<PSegmentedControl label="T-shirt size" name="size" hideLabel={true}>
|
|
49
|
+
<PSegmentedControlItem value="s">
|
|
50
|
+
S
|
|
51
|
+
</PSegmentedControlItem>
|
|
52
|
+
</PSegmentedControl>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Validation feedback via state and message API
|
|
56
|
+
|
|
57
|
+
#### ❌ Anti-pattern
|
|
58
|
+
|
|
59
|
+
```tsx
|
|
60
|
+
<PSegmentedControl label="T-shirt size" name="size" aria-invalid={true} message="Required"></PSegmentedControl>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
#### ✅ Recommended
|
|
64
|
+
|
|
65
|
+
```tsx
|
|
66
|
+
<PSegmentedControl label="T-shirt size" name="size" required={true} state="error" message="Select a size to continue."></PSegmentedControl>
|
|
67
|
+
```
|
|
@@ -86,6 +86,10 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
|
|
|
86
86
|
- **Don't** add native `aria-*` attributes directly on the component host.
|
|
87
87
|
- **Don't** use `hide-label` without an accessible name.
|
|
88
88
|
|
|
89
|
+
## Integration examples
|
|
90
|
+
|
|
91
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
92
|
+
|
|
89
93
|
## API
|
|
90
94
|
|
|
91
95
|
### Properties
|
|
@@ -104,7 +108,7 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
|
|
|
104
108
|
| `noWrap` | `boolean` | `false` | Prevents items from wrapping to new rows and renders them in a single horizontally scrollable row instead. |
|
|
105
109
|
| `required` | `boolean` | `false` | Marks the segmented control as required so the form cannot be submitted until one option is selected. |
|
|
106
110
|
| `state` | `'none'` `'error'` `'success'` | `'none'` | Sets the validation state of the segmented control, controlling its visual appearance and feedback message style (`none`, `success`, `error`). |
|
|
107
|
-
| `value` | `string | number` | `undefined` | Sets the currently selected item's value and pre-selects the matching option when the component renders. |
|
|
111
|
+
| `value` | `string | number | null` | `undefined` | Sets the currently selected item's value and pre-selects the matching option when the component renders. Matches an item strictly by type and value, meaning string or number only match an item whose value has the same type and equal value. Use undefined or null for no preselection. Please note that FormData always serializes values as strings, so when participating in a native (uncontrolled) form a number value is restored as string via formStateRestoreCallback and will no longer strictly match a number-typed item. This limitation only applies to native form state restoration; in controlled forms (where the consumer manages value directly via the change event), the number type is preserved end-to-end. |
|
|
108
112
|
|
|
109
113
|
### Events
|
|
110
114
|
|
|
@@ -141,7 +145,7 @@ Allowed parent: `p-segmented-control`.
|
|
|
141
145
|
| --- | --- | --- | --- |
|
|
142
146
|
| `aria` | `SegmentedControlItemAriaAttribute` | `undefined` | Sets ARIA attributes on the item's button element to improve accessibility for screen readers. |
|
|
143
147
|
| `disabled` | `boolean` | `false` | Prevents this item from being selected and visually dims it; the parent's value will not change to this item's value. |
|
|
144
|
-
| `icon` | `''`<br>one of
|
|
148
|
+
| `icon` | `''`<br>one of 293 icon names — see [icon names](references/icons.md) | `undefined` | Sets an icon rendered inside the item button using an icon name from the PDS icon library. |
|
|
145
149
|
| `iconSource` | `string` | `undefined` | Sets a URL to a custom SVG icon for the item button, overriding the built-in icon set. |
|
|
146
150
|
| `label` | `string` | `undefined` | Sets a visible text label rendered inside the item button, used when no slotted content is provided. |
|
|
147
151
|
| `value` _(required)_ | `string | number` | `undefined` | Sets the value emitted by the parent `p-segmented-control` when this item is selected. This property is*required**. |
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# p-select accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Prompt option used instead of a label
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PSelect name="model">
|
|
11
|
+
<PSelectOption value="">
|
|
12
|
+
Select a model
|
|
13
|
+
</PSelectOption>
|
|
14
|
+
<PSelectOption value="carrera">
|
|
15
|
+
911 Carrera
|
|
16
|
+
</PSelectOption>
|
|
17
|
+
<PSelectOption value="carrera-s">
|
|
18
|
+
911 Carrera S
|
|
19
|
+
</PSelectOption>
|
|
20
|
+
</PSelect>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
#### ✅ Recommended
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
<PSelect label="Porsche model" name="model" description="Choose the model for your configuration.">
|
|
27
|
+
<PSelectOption value="carrera">
|
|
28
|
+
911 Carrera
|
|
29
|
+
</PSelectOption>
|
|
30
|
+
<PSelectOption value="carrera-s">
|
|
31
|
+
911 Carrera S
|
|
32
|
+
</PSelectOption>
|
|
33
|
+
</PSelect>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Ambiguous option labels without field context
|
|
37
|
+
|
|
38
|
+
#### ❌ Anti-pattern
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
<PSelect label="Model" name="model">
|
|
42
|
+
<PSelectOption value="base">
|
|
43
|
+
Base
|
|
44
|
+
</PSelectOption>
|
|
45
|
+
<PSelectOption value="s">
|
|
46
|
+
S
|
|
47
|
+
</PSelectOption>
|
|
48
|
+
</PSelect>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
#### ✅ Recommended
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
<PSelect label="Porsche 911 trim" name="model" description="Select the trim level for your configuration.">
|
|
55
|
+
<PSelectOption value="carrera">
|
|
56
|
+
911 Carrera
|
|
57
|
+
</PSelectOption>
|
|
58
|
+
<PSelectOption value="carrera-s">
|
|
59
|
+
911 Carrera S
|
|
60
|
+
</PSelectOption>
|
|
61
|
+
</PSelect>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Hidden label without accessible name
|
|
65
|
+
|
|
66
|
+
#### ❌ Anti-pattern
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
<PSelect name="model" hideLabel={true}>
|
|
70
|
+
<PSelectOption value="carrera">
|
|
71
|
+
911 Carrera
|
|
72
|
+
</PSelectOption>
|
|
73
|
+
</PSelect>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### ✅ Recommended
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
<PSelect label="Porsche model" name="model" hideLabel={true}>
|
|
80
|
+
<PSelectOption value="carrera">
|
|
81
|
+
911 Carrera
|
|
82
|
+
</PSelectOption>
|
|
83
|
+
</PSelect>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Validation feedback via state and message API
|
|
87
|
+
|
|
88
|
+
#### ❌ Anti-pattern
|
|
89
|
+
|
|
90
|
+
```tsx
|
|
91
|
+
<PSelect label="Porsche model" name="model" aria-invalid={true} message="Required">
|
|
92
|
+
<PSelectOption value="carrera">
|
|
93
|
+
911 Carrera
|
|
94
|
+
</PSelectOption>
|
|
95
|
+
<PSelectOption value="carrera-s">
|
|
96
|
+
911 Carrera S
|
|
97
|
+
</PSelectOption>
|
|
98
|
+
</PSelect>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
#### ✅ Recommended
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
<PSelect label="Porsche model" name="model" state="error" message="Select a model to continue with your configuration.">
|
|
105
|
+
<PSelectOption value="carrera">
|
|
106
|
+
911 Carrera
|
|
107
|
+
</PSelectOption>
|
|
108
|
+
<PSelectOption value="carrera-s">
|
|
109
|
+
911 Carrera S
|
|
110
|
+
</PSelectOption>
|
|
111
|
+
</PSelect>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Error state without recovery guidance
|
|
115
|
+
|
|
116
|
+
#### ❌ Anti-pattern
|
|
117
|
+
|
|
118
|
+
```tsx
|
|
119
|
+
<PSelect label="Porsche model" name="model" state="error" message="Invalid">
|
|
120
|
+
<PSelectOption value="carrera">
|
|
121
|
+
911 Carrera
|
|
122
|
+
</PSelectOption>
|
|
123
|
+
<PSelectOption value="carrera-s">
|
|
124
|
+
911 Carrera S
|
|
125
|
+
</PSelectOption>
|
|
126
|
+
</PSelect>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
#### ✅ Recommended
|
|
130
|
+
|
|
131
|
+
```tsx
|
|
132
|
+
<PSelect label="Porsche model" name="model" required={true} state="error" message="Select a Porsche model. This field is required to continue.">
|
|
133
|
+
<PSelectOption value="carrera">
|
|
134
|
+
911 Carrera
|
|
135
|
+
</PSelectOption>
|
|
136
|
+
<PSelectOption value="carrera-s">
|
|
137
|
+
911 Carrera S
|
|
138
|
+
</PSelectOption>
|
|
139
|
+
</PSelect>
|
|
140
|
+
```
|
package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/AsyncFilter.tsx
RENAMED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
type SelectChangeEventDetail,
|
|
10
10
|
type SelectToggleEventDetail,
|
|
11
11
|
} from '@porsche-design-system/components-react';
|
|
12
|
-
import { useCallback, useRef, useState } from 'react';
|
|
12
|
+
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
13
13
|
|
|
14
14
|
const useDebounce = <T,>(callback: (value: T) => void, delay = 400) => {
|
|
15
15
|
const timer = useRef<number | undefined>(undefined);
|
|
@@ -19,6 +19,20 @@ const useDebounce = <T,>(callback: (value: T) => void, delay = 400) => {
|
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
+
const getFilterStatusMessage = (
|
|
23
|
+
searchValue: string,
|
|
24
|
+
optionCount: number,
|
|
25
|
+
isLoading: boolean,
|
|
26
|
+
error: string | null
|
|
27
|
+
): string => {
|
|
28
|
+
if (error) return '';
|
|
29
|
+
if (isLoading) return 'Loading options';
|
|
30
|
+
const term = searchValue.trim();
|
|
31
|
+
if (!term) return '';
|
|
32
|
+
if (optionCount === 0) return 'No results found';
|
|
33
|
+
return optionCount === 1 ? '1 result available' : `${optionCount} results available`;
|
|
34
|
+
};
|
|
35
|
+
|
|
22
36
|
export const Example = () => {
|
|
23
37
|
const [value, setValue] = useState<PSelectProps['value']>(undefined);
|
|
24
38
|
const [options, setOptions] = useState<{ value: string; label: string }[]>([]);
|
|
@@ -83,6 +97,11 @@ export const Example = () => {
|
|
|
83
97
|
}
|
|
84
98
|
};
|
|
85
99
|
|
|
100
|
+
const filterStatusMessage = useMemo(
|
|
101
|
+
() => getFilterStatusMessage(searchValue, options.length, initialLoading || loading, error),
|
|
102
|
+
[searchValue, options.length, initialLoading, loading, error]
|
|
103
|
+
);
|
|
104
|
+
|
|
86
105
|
return (
|
|
87
106
|
<PSelect name="async-search-select" label="Async Search" value={value} onChange={onChange} onToggle={onToggle}>
|
|
88
107
|
<PInputSearch
|
|
@@ -100,6 +119,11 @@ export const Example = () => {
|
|
|
100
119
|
onChange={(e: any) => e.stopPropagation()}
|
|
101
120
|
/>
|
|
102
121
|
|
|
122
|
+
{/* Persistent status announcer for assistive technologies (keep always in the DOM) */}
|
|
123
|
+
<div slot="options-status" className="sr-only" aria-live="polite" aria-atomic="true">
|
|
124
|
+
{filterStatusMessage}
|
|
125
|
+
</div>
|
|
126
|
+
|
|
103
127
|
{/* Initial skeleton loading */}
|
|
104
128
|
{initialLoading &&
|
|
105
129
|
!error &&
|
|
@@ -112,15 +136,14 @@ export const Example = () => {
|
|
|
112
136
|
</PSelectOption>
|
|
113
137
|
))}
|
|
114
138
|
|
|
115
|
-
{/* No filter results */}
|
|
116
|
-
{!initialLoading && options.length === 0 && !error && (
|
|
139
|
+
{/* No filter results (visual only; announcements come from the live region) */}
|
|
140
|
+
{!initialLoading && !loading && options.length === 0 && !error && (
|
|
117
141
|
<div
|
|
118
142
|
slot="options-status"
|
|
119
143
|
className="text-contrast-medium cursor-not-allowed py-static-sm px-[12px]"
|
|
120
|
-
|
|
144
|
+
aria-hidden="true"
|
|
121
145
|
>
|
|
122
|
-
|
|
123
|
-
<span className="sr-only">No results found</span>
|
|
146
|
+
–
|
|
124
147
|
</div>
|
|
125
148
|
)}
|
|
126
149
|
|
|
@@ -79,6 +79,10 @@ In general, avoid using the `disabled` state. Disabled elements are no longer fo
|
|
|
79
79
|
- **Don't** use very short or ambiguous option labels when context is important.
|
|
80
80
|
- **Don't** use `hide-label` without an accessible name.
|
|
81
81
|
|
|
82
|
+
## Integration examples
|
|
83
|
+
|
|
84
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
85
|
+
|
|
82
86
|
## API
|
|
83
87
|
|
|
84
88
|
### Properties
|
|
@@ -137,7 +141,7 @@ Allowed parents: `p-multi-select`, `p-optgroup`.
|
|
|
137
141
|
| Property | Type | Default | Description |
|
|
138
142
|
| --- | --- | --- | --- |
|
|
139
143
|
| `disabled` | `boolean` | `false` | Disables the option, preventing it from being selected. |
|
|
140
|
-
| `value` _(required)_ | `string | number` | `undefined` | Sets the value submitted with the form data when
|
|
144
|
+
| `value` _(required)_ | `string | number` | `undefined` | Sets the required option value submitted with the form data when selected. Must be a string or number. |
|
|
141
145
|
|
|
142
146
|
#### Slots
|
|
143
147
|
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# p-sheet accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### ARIA on trigger button host vs aria prop
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PButton aria-haspopup="dialog">
|
|
11
|
+
Filter results
|
|
12
|
+
</PButton>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
#### ✅ Recommended
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
<PButton aria={{'aria-haspopup': 'dialog'}}>
|
|
19
|
+
Filter results
|
|
20
|
+
</PButton>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Dialog label on component host vs header slot
|
|
24
|
+
|
|
25
|
+
#### ❌ Anti-pattern
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
<PSheet aria-label="Filters">
|
|
29
|
+
...
|
|
30
|
+
</PSheet>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### ✅ Recommended
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
<PSheet>
|
|
37
|
+
<PHeading slot="header" tag="h2" size="lg">
|
|
38
|
+
Filter results
|
|
39
|
+
</PHeading>
|
|
40
|
+
...
|
|
41
|
+
</PSheet>
|
|
42
|
+
|
|
43
|
+
{/* or with aria prop when no visible header is shown */}
|
|
44
|
+
|
|
45
|
+
<PSheet aria={{'aria-label': 'Filter results'}}>
|
|
46
|
+
...
|
|
47
|
+
</PSheet>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Sheet trigger without popup semantics
|
|
51
|
+
|
|
52
|
+
#### ❌ Anti-pattern
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
<PButton>
|
|
56
|
+
Open
|
|
57
|
+
</PButton>
|
|
58
|
+
|
|
59
|
+
<PSheet>
|
|
60
|
+
<PHeading slot="header" tag="h2" size="lg">
|
|
61
|
+
Filters
|
|
62
|
+
</PHeading>
|
|
63
|
+
...
|
|
64
|
+
</PSheet>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
#### ✅ Recommended
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
<PButton aria={{'aria-haspopup': 'dialog'}}>
|
|
71
|
+
Filter results
|
|
72
|
+
</PButton>
|
|
73
|
+
|
|
74
|
+
<PSheet>
|
|
75
|
+
<PHeading slot="header" tag="h2" size="lg">
|
|
76
|
+
Filter results
|
|
77
|
+
</PHeading>
|
|
78
|
+
...
|
|
79
|
+
</PSheet>
|
|
80
|
+
```
|
|
@@ -75,6 +75,10 @@ Set `aria-haspopup` on the trigger so users know a dialog will open. Ensure the
|
|
|
75
75
|
- **Don't** add raw host-level ARIA attributes as a workaround.
|
|
76
76
|
- **Don't** use unclear trigger copy like "Open" when the sheet purpose is not obvious.
|
|
77
77
|
|
|
78
|
+
## Integration examples
|
|
79
|
+
|
|
80
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
81
|
+
|
|
78
82
|
## API
|
|
79
83
|
|
|
80
84
|
### Properties
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# p-spinner accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Spinner mounted only when loading starts
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
{isLoading && <PSpinner />}
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<PSpinner aria={{'aria-label': 'Loading vehicle configuration'}}></PSpinner>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Spinner without loading message
|
|
20
|
+
|
|
21
|
+
#### ❌ Anti-pattern
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<PSpinner></PSpinner>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
#### ✅ Recommended
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<PSpinner aria={{'aria-label': 'Loading vehicle configuration'}}></PSpinner>
|
|
31
|
+
```
|
|
@@ -54,6 +54,10 @@ To provide feedback to screen reader users, it is mandatory to announce the load
|
|
|
54
54
|
- **Do** provide a specific loading message through the `aria` prop.
|
|
55
55
|
- **Don't** mount the spinner only at the moment loading starts without a label.
|
|
56
56
|
|
|
57
|
+
## Integration examples
|
|
58
|
+
|
|
59
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
60
|
+
|
|
57
61
|
## Notes
|
|
58
62
|
|
|
59
63
|
### Disable animation
|
package/skills/pds-knowledge-react/references/components/p-stepper-horizontal/accessibility.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# p-stepper-horizontal accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Generic step labels without context
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PStepperHorizontal>
|
|
11
|
+
<PStepperHorizontalItem state="complete">
|
|
12
|
+
Step 1
|
|
13
|
+
</PStepperHorizontalItem>
|
|
14
|
+
<PStepperHorizontalItem state="current">
|
|
15
|
+
Step 2
|
|
16
|
+
</PStepperHorizontalItem>
|
|
17
|
+
</PStepperHorizontal>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
#### ✅ Recommended
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
<PStepperHorizontal>
|
|
24
|
+
<PStepperHorizontalItem state="complete">
|
|
25
|
+
Configure vehicle
|
|
26
|
+
</PStepperHorizontalItem>
|
|
27
|
+
<PStepperHorizontalItem state="current">
|
|
28
|
+
Choose delivery date
|
|
29
|
+
</PStepperHorizontalItem>
|
|
30
|
+
<PStepperHorizontalItem>
|
|
31
|
+
Review and confirm
|
|
32
|
+
</PStepperHorizontalItem>
|
|
33
|
+
</PStepperHorizontal>
|
|
34
|
+
```
|
|
@@ -60,6 +60,10 @@ By clicking on a previous step, the `p-stepper-horizontal` emits the `update` ev
|
|
|
60
60
|
- **Do** reflect the current step with the item `state` prop (`current`, `complete`, `warning`).
|
|
61
61
|
- **Don't** use generic labels like "Step 1" without describing the step purpose.
|
|
62
62
|
|
|
63
|
+
## Integration examples
|
|
64
|
+
|
|
65
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
66
|
+
|
|
63
67
|
## API
|
|
64
68
|
|
|
65
69
|
### Properties
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# p-switch accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Switch without descriptive label
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PSwitch name="notifications"></PSwitch>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<PSwitch name="notifications">
|
|
17
|
+
Email notifications for order updates
|
|
18
|
+
</PSwitch>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Hidden label without accessible name
|
|
22
|
+
|
|
23
|
+
#### ❌ Anti-pattern
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
<PSwitch name="notifications" hideLabel={true}></PSwitch>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
#### ✅ Recommended
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
<PSwitch name="notifications" hideLabel={true}>
|
|
33
|
+
Email notifications for order updates
|
|
34
|
+
</PSwitch>
|
|
35
|
+
```
|
|
@@ -66,6 +66,10 @@ The switch accessible name comes from the default slot. Provide concise, descrip
|
|
|
66
66
|
- **Do** use `hide-label` only when the label text remains in the slot for screen readers.
|
|
67
67
|
- **Don't** use an icon or visual state alone without descriptive label text.
|
|
68
68
|
|
|
69
|
+
## Integration examples
|
|
70
|
+
|
|
71
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
72
|
+
|
|
69
73
|
## API
|
|
70
74
|
|
|
71
75
|
### Properties
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# p-table accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Data table without caption
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<PTable>
|
|
11
|
+
<PTableHead>
|
|
12
|
+
...
|
|
13
|
+
</PTableHead>
|
|
14
|
+
<PTableBody>
|
|
15
|
+
...
|
|
16
|
+
</PTableBody>
|
|
17
|
+
</PTable>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
#### ✅ Recommended
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
<PTable caption="Available Porsche 911 models and starting prices">
|
|
24
|
+
<PTableHead>
|
|
25
|
+
...
|
|
26
|
+
</PTableHead>
|
|
27
|
+
<PTableBody>
|
|
28
|
+
...
|
|
29
|
+
</PTableBody>
|
|
30
|
+
</PTable>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Column with hidden label
|
|
34
|
+
|
|
35
|
+
#### ❌ Anti-pattern
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
<PTableHeadCell hideLabel={true}></PTableHeadCell>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### ✅ Recommended
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
<PTableHeadCell hideLabel={true}>
|
|
45
|
+
Model
|
|
46
|
+
</PTableHeadCell>
|
|
47
|
+
```
|
package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Sorting.tsx
RENAMED
|
@@ -30,21 +30,21 @@ const headSorting: HeadSorting[] = [
|
|
|
30
30
|
|
|
31
31
|
type DataSorting = {
|
|
32
32
|
col1: string;
|
|
33
|
-
col2:
|
|
33
|
+
col2: number;
|
|
34
34
|
col3: string;
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
const dataSorting: DataSorting[] = [
|
|
38
|
-
{
|
|
39
|
-
col1: 'Name A',
|
|
40
|
-
col2: '9',
|
|
41
|
-
col3: '01.06.2021',
|
|
42
|
-
},
|
|
43
38
|
{
|
|
44
39
|
col1: 'Name Z',
|
|
45
|
-
col2:
|
|
40
|
+
col2: 1,
|
|
46
41
|
col3: '24.06.2021',
|
|
47
42
|
},
|
|
43
|
+
{
|
|
44
|
+
col1: 'Name A',
|
|
45
|
+
col2: 9,
|
|
46
|
+
col3: '01.06.2021',
|
|
47
|
+
},
|
|
48
48
|
];
|
|
49
49
|
|
|
50
50
|
export const Example = () => {
|
|
@@ -56,7 +56,8 @@ export const Example = () => {
|
|
|
56
56
|
setHead((prev) => prev.map((item) => ({ ...item, active: false, ...(item.id === id && e.detail) })));
|
|
57
57
|
setData((prev) =>
|
|
58
58
|
[...prev].sort((a, b) => {
|
|
59
|
-
|
|
59
|
+
const result = String(a[id]).localeCompare(String(b[id]), undefined, { numeric: true });
|
|
60
|
+
return direction === 'asc' ? result : -result;
|
|
60
61
|
})
|
|
61
62
|
);
|
|
62
63
|
}, []);
|
|
@@ -50,6 +50,10 @@ It is a controlled component. This means it does not contain any internal state,
|
|
|
50
50
|
- **Do** keep visible header text for sortable columns.
|
|
51
51
|
- **Don't** use `hide-label` on a sortable column without an alternative accessible name.
|
|
52
52
|
|
|
53
|
+
## Integration examples
|
|
54
|
+
|
|
55
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
56
|
+
|
|
53
57
|
## Tests
|
|
54
58
|
|
|
55
59
|
### Automated
|
|
@@ -184,6 +188,6 @@ Allowed parents: `p-table-body`, `p-table-head`.
|
|
|
184
188
|
| Caption via Property | A caption that describes the content of the table is mandatory to fulfill accessibility criteria. | [./examples/CaptionProperty.tsx](./examples/CaptionProperty.tsx) |
|
|
185
189
|
| Caption via Slot | Instead of using the the property, the table's caption can be provided via the `caption` slot. | [./examples/CaptionSlot.tsx](./examples/CaptionSlot.tsx) |
|
|
186
190
|
| Layout: fixed | By setting `layout` to `fixed`, you can take full control over each column width, which would otherwise be controlled by its content. | [./examples/LayoutFixed.tsx](./examples/LayoutFixed.tsx) |
|
|
187
|
-
| Sortable Columns |
|
|
191
|
+
| Sortable Columns | Sorting is controlled, so the initial row order must match the active column's `direction` and both must remain synchronized when handling the `update` event. | [./examples/Sorting.tsx](./examples/Sorting.tsx) |
|
|
188
192
|
| Hide Column Label | Sometimes you want to hide the visible label of a `p-table-head-cell`, for example when the column's content is self-explanatory. | [./examples/HideLabel.tsx](./examples/HideLabel.tsx) |
|
|
189
193
|
| Advanced Table | The appearance of a table's contents can be customized as illustrated in the following example. | [./examples/Advanced.tsx](./examples/Advanced.tsx) |
|