@porsche-design-system/components-angular 4.5.0 → 4.6.0-rc.1
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 +32 -0
- package/ag-grid/package.json +6 -0
- package/bin/pds-skill.js +346 -0
- package/emotion/package.json +6 -0
- package/fesm2022/porsche-design-system-components-angular.mjs +232 -232
- package/fesm2022/porsche-design-system-components-angular.mjs.map +1 -1
- package/jsdom-polyfill/package.json +5 -0
- package/meta/package.json +6 -0
- package/package.json +5 -2
- package/partials/package.json +6 -0
- package/skills/pds-knowledge-angular/SKILL.md +124 -0
- package/skills/pds-knowledge-angular/references/components/p-accordion/accessibility.md +63 -0
- package/skills/pds-knowledge-angular/references/components/p-accordion/examples/Default.ts +26 -0
- package/skills/pds-knowledge-angular/references/components/p-accordion/examples/InteractiveElementsInSummary.ts +30 -0
- package/skills/pds-knowledge-angular/references/components/p-accordion/examples/StickySummary.ts +26 -0
- package/skills/pds-knowledge-angular/references/components/p-accordion/p-accordion.md +99 -0
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinCheckbox.ts +33 -0
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinFormLabel.ts +40 -0
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinImage.ts +16 -0
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinInputSearch.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinRadioGroup.ts +32 -0
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinTable.ts +94 -0
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/examples/WithinText.ts +17 -0
- package/skills/pds-knowledge-angular/references/components/p-ai-tag/p-ai-tag.md +47 -0
- package/skills/pds-knowledge-angular/references/components/p-banner/accessibility.md +35 -0
- package/skills/pds-knowledge-angular/references/components/p-banner/examples/Customization.ts +37 -0
- package/skills/pds-knowledge-angular/references/components/p-banner/examples/Default.ts +26 -0
- package/skills/pds-knowledge-angular/references/components/p-banner/p-banner.md +96 -0
- package/skills/pds-knowledge-angular/references/components/p-button/accessibility.md +61 -0
- package/skills/pds-knowledge-angular/references/components/p-button/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-button/examples/Form.ts +26 -0
- package/skills/pds-knowledge-angular/references/components/p-button/examples/FormAttribute.ts +30 -0
- package/skills/pds-knowledge-angular/references/components/p-button/p-button.md +122 -0
- package/skills/pds-knowledge-angular/references/components/p-button-pure/accessibility.md +61 -0
- package/skills/pds-knowledge-angular/references/components/p-button-pure/examples/CustomClickableArea.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-button-pure/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-button-pure/examples/Form.ts +26 -0
- package/skills/pds-knowledge-angular/references/components/p-button-pure/examples/FormAttribute.ts +30 -0
- package/skills/pds-knowledge-angular/references/components/p-button-pure/p-button-pure.md +122 -0
- package/skills/pds-knowledge-angular/references/components/p-button-tile/accessibility.md +31 -0
- package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/ColorScheme.ts +18 -0
- package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/Default.ts +21 -0
- package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/FooterSlot.ts +32 -0
- package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/Hyphens.ts +38 -0
- package/skills/pds-knowledge-angular/references/components/p-button-tile/examples/UiBehaviour.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-button-tile/p-button-tile.md +119 -0
- package/skills/pds-knowledge-angular/references/components/p-canvas/examples/Default.ts +105 -0
- package/skills/pds-knowledge-angular/references/components/p-canvas/p-canvas.md +95 -0
- package/skills/pds-knowledge-angular/references/components/p-carousel/accessibility.md +61 -0
- package/skills/pds-knowledge-angular/references/components/p-carousel/examples/Default.ts +26 -0
- package/skills/pds-knowledge-angular/references/components/p-carousel/examples/DynamicSlides.ts +37 -0
- package/skills/pds-knowledge-angular/references/components/p-carousel/examples/FlexibleWidths.ts +32 -0
- package/skills/pds-knowledge-angular/references/components/p-carousel/examples/FocusOnCenterSlide.ts +65 -0
- package/skills/pds-knowledge-angular/references/components/p-carousel/examples/Intl.ts +23 -0
- package/skills/pds-knowledge-angular/references/components/p-carousel/examples/JumpToSlide.ts +50 -0
- package/skills/pds-knowledge-angular/references/components/p-carousel/p-carousel.md +146 -0
- package/skills/pds-knowledge-angular/references/components/p-checkbox/accessibility.md +31 -0
- package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/Indeterminate.ts +16 -0
- package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/Slots.ts +57 -0
- package/skills/pds-knowledge-angular/references/components/p-checkbox/examples/WrappedLabel.ts +27 -0
- package/skills/pds-knowledge-angular/references/components/p-checkbox/p-checkbox.md +126 -0
- package/skills/pds-knowledge-angular/references/components/p-crest/accessibility.md +17 -0
- package/skills/pds-knowledge-angular/references/components/p-crest/examples/CustomClickableArea.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-crest/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-crest/examples/Link.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-crest/p-crest.md +69 -0
- package/skills/pds-knowledge-angular/references/components/p-display/examples/Color.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-display/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-display/examples/Semantics.ts +21 -0
- package/skills/pds-knowledge-angular/references/components/p-display/examples/Size.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-display/examples/SizeResponsive.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-display/p-display.md +78 -0
- package/skills/pds-knowledge-angular/references/components/p-divider/accessibility.md +41 -0
- package/skills/pds-knowledge-angular/references/components/p-divider/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-divider/examples/Responsive.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-divider/examples/Vertical.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-divider/p-divider.md +53 -0
- package/skills/pds-knowledge-angular/references/components/p-drilldown/accessibility.md +65 -0
- package/skills/pds-knowledge-angular/references/components/p-drilldown/examples/CustomContent.ts +166 -0
- package/skills/pds-knowledge-angular/references/components/p-drilldown/examples/Default.ts +119 -0
- package/skills/pds-knowledge-angular/references/components/p-drilldown/p-drilldown.md +172 -0
- package/skills/pds-knowledge-angular/references/components/p-fieldset/accessibility.md +37 -0
- package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/Required.ts +16 -0
- package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/SlottedLabel.ts +18 -0
- package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/SlottedMessage.ts +18 -0
- package/skills/pds-knowledge-angular/references/components/p-fieldset/p-fieldset.md +92 -0
- package/skills/pds-knowledge-angular/references/components/p-flag/accessibility.md +39 -0
- package/skills/pds-knowledge-angular/references/components/p-flag/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-flag/examples/ResponsiveSize.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-flag/examples/Size.ts +16 -0
- package/skills/pds-knowledge-angular/references/components/p-flag/examples/SizeCssVar.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-flag/p-flag.md +72 -0
- package/skills/pds-knowledge-angular/references/components/p-flyout/accessibility.md +80 -0
- package/skills/pds-knowledge-angular/references/components/p-flyout/examples/CustomStyling.ts +47 -0
- package/skills/pds-knowledge-angular/references/components/p-flyout/examples/Default.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-flyout/examples/Form.ts +47 -0
- package/skills/pds-knowledge-angular/references/components/p-flyout/examples/StickyTop.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-flyout/p-flyout.md +132 -0
- package/skills/pds-knowledge-angular/references/components/p-heading/accessibility.md +29 -0
- package/skills/pds-knowledge-angular/references/components/p-heading/examples/Color.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-heading/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-heading/examples/Semantics.ts +21 -0
- package/skills/pds-knowledge-angular/references/components/p-heading/p-heading.md +82 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/accessibility.md +39 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/examples/Color.ts +16 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/examples/ColorCssVar.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/examples/Custom.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/examples/Overview.ts +591 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/examples/ResponsiveSize.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/examples/Size.ts +16 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/examples/SizeCssVar.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-icon/p-icon.md +92 -0
- package/skills/pds-knowledge-angular/references/components/p-inline-notification/accessibility.md +38 -0
- package/skills/pds-knowledge-angular/references/components/p-inline-notification/examples/ActionButton.ts +29 -0
- package/skills/pds-knowledge-angular/references/components/p-inline-notification/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-inline-notification/examples/EventHandling.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-inline-notification/p-inline-notification.md +78 -0
- package/skills/pds-knowledge-angular/references/components/p-input-date/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-date/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-date/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-date/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-date/p-input-date.md +142 -0
- package/skills/pds-knowledge-angular/references/components/p-input-email/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-email/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-email/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-email/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-email/p-input-email.md +146 -0
- package/skills/pds-knowledge-angular/references/components/p-input-month/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-month/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-month/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-month/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-month/p-input-month.md +142 -0
- package/skills/pds-knowledge-angular/references/components/p-input-number/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-number/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-number/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-number/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-number/p-input-number.md +150 -0
- package/skills/pds-knowledge-angular/references/components/p-input-password/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-password/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-password/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-password/examples/Slots.ts +42 -0
- package/skills/pds-knowledge-angular/references/components/p-input-password/examples/Toggle.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-password/p-input-password.md +145 -0
- package/skills/pds-knowledge-angular/references/components/p-input-search/accessibility.md +59 -0
- package/skills/pds-knowledge-angular/references/components/p-input-search/examples/AriaCombobox.ts +38 -0
- package/skills/pds-knowledge-angular/references/components/p-input-search/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-search/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-search/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-search/p-input-search.md +182 -0
- package/skills/pds-knowledge-angular/references/components/p-input-tel/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-tel/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-tel/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-tel/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-tel/p-input-tel.md +145 -0
- package/skills/pds-knowledge-angular/references/components/p-input-text/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-text/examples/Controlled.ts +36 -0
- package/skills/pds-knowledge-angular/references/components/p-input-text/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-text/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-text/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-text/p-input-text.md +150 -0
- package/skills/pds-knowledge-angular/references/components/p-input-time/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-time/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-time/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-time/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-time/p-input-time.md +144 -0
- package/skills/pds-knowledge-angular/references/components/p-input-url/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-url/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-url/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-url/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-url/p-input-url.md +145 -0
- package/skills/pds-knowledge-angular/references/components/p-input-week/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-input-week/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-input-week/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-input-week/examples/Slots.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-input-week/p-input-week.md +142 -0
- package/skills/pds-knowledge-angular/references/components/p-link/accessibility.md +73 -0
- package/skills/pds-knowledge-angular/references/components/p-link/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-link/examples/FrameworkRouting.ts +17 -0
- package/skills/pds-knowledge-angular/references/components/p-link/examples/Icon.ts +20 -0
- package/skills/pds-knowledge-angular/references/components/p-link/p-link.md +105 -0
- package/skills/pds-knowledge-angular/references/components/p-link-pure/accessibility.md +73 -0
- package/skills/pds-knowledge-angular/references/components/p-link-pure/examples/CustomClickableArea.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-link-pure/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-link-pure/examples/FrameworkRouting.ts +17 -0
- package/skills/pds-knowledge-angular/references/components/p-link-pure/examples/Icon.ts +20 -0
- package/skills/pds-knowledge-angular/references/components/p-link-pure/p-link-pure.md +114 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile/accessibility.md +31 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/ColorScheme.ts +18 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/Default.ts +21 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/FooterSlot.ts +32 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/Hyphens.ts +39 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/UiBehaviour.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile/examples/WithVideo.ts +18 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile/p-link-tile.md +109 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile-product/examples/Default.ts +24 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile-product/examples/FrameworkRouting.ts +27 -0
- package/skills/pds-knowledge-angular/references/components/p-link-tile-product/p-link-tile-product.md +93 -0
- package/skills/pds-knowledge-angular/references/components/p-modal/accessibility.md +80 -0
- package/skills/pds-knowledge-angular/references/components/p-modal/examples/AlertDialog.ts +41 -0
- package/skills/pds-knowledge-angular/references/components/p-modal/examples/CustomStyling.ts +28 -0
- package/skills/pds-knowledge-angular/references/components/p-modal/examples/Default.ts +41 -0
- package/skills/pds-knowledge-angular/references/components/p-modal/examples/Scrollable.ts +45 -0
- package/skills/pds-knowledge-angular/references/components/p-modal/p-modal.md +139 -0
- package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/CustomStyling.ts +17 -0
- package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/MaskBlendMode.ts +35 -0
- package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/MaskImage.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/MaskVideo.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-model-signature/examples/SafeZone.ts +63 -0
- package/skills/pds-knowledge-angular/references/components/p-model-signature/p-model-signature.md +62 -0
- package/skills/pds-knowledge-angular/references/components/p-multi-select/accessibility.md +78 -0
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/AsyncFilter.ts +149 -0
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Default.ts +32 -0
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Form.ts +38 -0
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Optgroups.ts +45 -0
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/SelectedSlot.ts +103 -0
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/SetValue.ts +76 -0
- package/skills/pds-knowledge-angular/references/components/p-multi-select/examples/Slots.ts +51 -0
- package/skills/pds-knowledge-angular/references/components/p-multi-select/p-multi-select.md +201 -0
- package/skills/pds-knowledge-angular/references/components/p-pagination/accessibility.md +23 -0
- package/skills/pds-knowledge-angular/references/components/p-pagination/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-pagination/p-pagination.md +87 -0
- package/skills/pds-knowledge-angular/references/components/p-pin-code/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/CopyPaste.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-pin-code/examples/Slots.ts +42 -0
- package/skills/pds-knowledge-angular/references/components/p-pin-code/p-pin-code.md +113 -0
- package/skills/pds-knowledge-angular/references/components/p-popover/accessibility.md +61 -0
- package/skills/pds-knowledge-angular/references/components/p-popover/examples/Default.ts +17 -0
- package/skills/pds-knowledge-angular/references/components/p-popover/examples/SlottedButton.ts +18 -0
- package/skills/pds-knowledge-angular/references/components/p-popover/p-popover.md +120 -0
- package/skills/pds-knowledge-angular/references/components/p-radio-group/accessibility.md +63 -0
- package/skills/pds-knowledge-angular/references/components/p-radio-group/examples/Default.ts +20 -0
- package/skills/pds-knowledge-angular/references/components/p-radio-group/examples/Form.ts +38 -0
- package/skills/pds-knowledge-angular/references/components/p-radio-group/examples/Slots.ts +72 -0
- package/skills/pds-knowledge-angular/references/components/p-radio-group/p-radio-group.md +161 -0
- package/skills/pds-knowledge-angular/references/components/p-scroller/accessibility.md +31 -0
- package/skills/pds-knowledge-angular/references/components/p-scroller/examples/Default.ts +54 -0
- package/skills/pds-knowledge-angular/references/components/p-scroller/examples/Height.ts +29 -0
- package/skills/pds-knowledge-angular/references/components/p-scroller/examples/ScrollToPosition.ts +43 -0
- package/skills/pds-knowledge-angular/references/components/p-scroller/p-scroller.md +97 -0
- package/skills/pds-knowledge-angular/references/components/p-segmented-control/accessibility.md +67 -0
- package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/Default.ts +29 -0
- package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/Form.ts +37 -0
- package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/Slots.ts +57 -0
- package/skills/pds-knowledge-angular/references/components/p-segmented-control/examples/WithLabels.ts +29 -0
- package/skills/pds-knowledge-angular/references/components/p-segmented-control/p-segmented-control.md +166 -0
- package/skills/pds-knowledge-angular/references/components/p-select/accessibility.md +140 -0
- package/skills/pds-knowledge-angular/references/components/p-select/examples/AsyncFilter.ts +149 -0
- package/skills/pds-knowledge-angular/references/components/p-select/examples/Default.ts +32 -0
- package/skills/pds-knowledge-angular/references/components/p-select/examples/Form.ts +38 -0
- package/skills/pds-knowledge-angular/references/components/p-select/examples/Optgroups.ts +45 -0
- package/skills/pds-knowledge-angular/references/components/p-select/examples/Required.ts +48 -0
- package/skills/pds-knowledge-angular/references/components/p-select/examples/SelectedSlot.ts +130 -0
- package/skills/pds-knowledge-angular/references/components/p-select/examples/SetValue.ts +71 -0
- package/skills/pds-knowledge-angular/references/components/p-select/examples/Slots.ts +51 -0
- package/skills/pds-knowledge-angular/references/components/p-select/examples/SlottedImages.ts +38 -0
- package/skills/pds-knowledge-angular/references/components/p-select/p-select.md +198 -0
- package/skills/pds-knowledge-angular/references/components/p-sheet/accessibility.md +80 -0
- package/skills/pds-knowledge-angular/references/components/p-sheet/examples/Default.ts +33 -0
- package/skills/pds-knowledge-angular/references/components/p-sheet/p-sheet.md +125 -0
- package/skills/pds-knowledge-angular/references/components/p-spinner/accessibility.md +33 -0
- package/skills/pds-knowledge-angular/references/components/p-spinner/examples/Color.ts +16 -0
- package/skills/pds-knowledge-angular/references/components/p-spinner/examples/ColorCssVar.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-spinner/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-spinner/examples/ResponsiveSize.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-spinner/examples/Size.ts +16 -0
- package/skills/pds-knowledge-angular/references/components/p-spinner/examples/SizeCssVar.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-spinner/p-spinner.md +100 -0
- package/skills/pds-knowledge-angular/references/components/p-stepper-horizontal/accessibility.md +34 -0
- package/skills/pds-knowledge-angular/references/components/p-stepper-horizontal/examples/Default.ts +26 -0
- package/skills/pds-knowledge-angular/references/components/p-stepper-horizontal/examples/FrameworkImplementation.ts +107 -0
- package/skills/pds-knowledge-angular/references/components/p-stepper-horizontal/p-stepper-horizontal.md +113 -0
- package/skills/pds-knowledge-angular/references/components/p-switch/accessibility.md +35 -0
- package/skills/pds-knowledge-angular/references/components/p-switch/examples/Default.ts +21 -0
- package/skills/pds-knowledge-angular/references/components/p-switch/p-switch.md +107 -0
- package/skills/pds-knowledge-angular/references/components/p-table/accessibility.md +47 -0
- package/skills/pds-knowledge-angular/references/components/p-table/examples/Advanced.ts +162 -0
- package/skills/pds-knowledge-angular/references/components/p-table/examples/CaptionProperty.ts +40 -0
- package/skills/pds-knowledge-angular/references/components/p-table/examples/CaptionSlot.ts +43 -0
- package/skills/pds-knowledge-angular/references/components/p-table/examples/Default.ts +120 -0
- package/skills/pds-knowledge-angular/references/components/p-table/examples/HideLabel.ts +40 -0
- package/skills/pds-knowledge-angular/references/components/p-table/examples/LayoutFixed.ts +53 -0
- package/skills/pds-knowledge-angular/references/components/p-table/examples/Sorting.ts +80 -0
- package/skills/pds-knowledge-angular/references/components/p-table/p-table.md +193 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs/accessibility.md +56 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs/examples/ActiveTab.ts +29 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs/examples/Default.ts +29 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs/examples/Gradient.ts +114 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs/examples/Labelling.ts +29 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs/p-tabs.md +140 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs-bar/accessibility.md +61 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs-bar/examples/Default.ts +29 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs-bar/examples/Gradient.ts +80 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs-bar/examples/Labelling.ts +29 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs-bar/examples/Links.ts +23 -0
- package/skills/pds-knowledge-angular/references/components/p-tabs-bar/p-tabs-bar.md +185 -0
- package/skills/pds-knowledge-angular/references/components/p-tag/accessibility.md +19 -0
- package/skills/pds-knowledge-angular/references/components/p-tag/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-tag/examples/Multiline.ts +17 -0
- package/skills/pds-knowledge-angular/references/components/p-tag/examples/SlottedButton.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-tag/examples/SlottedLink.ts +44 -0
- package/skills/pds-knowledge-angular/references/components/p-tag/p-tag.md +70 -0
- package/skills/pds-knowledge-angular/references/components/p-tag-dismissible/accessibility.md +35 -0
- package/skills/pds-knowledge-angular/references/components/p-tag-dismissible/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-tag-dismissible/p-tag-dismissible.md +79 -0
- package/skills/pds-knowledge-angular/references/components/p-text/accessibility.md +21 -0
- package/skills/pds-knowledge-angular/references/components/p-text/examples/Default.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-text/examples/Semantics.ts +21 -0
- package/skills/pds-knowledge-angular/references/components/p-text/examples/Size.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-text/examples/SizeResponsive.ts +15 -0
- package/skills/pds-knowledge-angular/references/components/p-text/p-text.md +72 -0
- package/skills/pds-knowledge-angular/references/components/p-text-list/accessibility.md +31 -0
- package/skills/pds-knowledge-angular/references/components/p-text-list/examples/Default.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-text-list/p-text-list.md +72 -0
- package/skills/pds-knowledge-angular/references/components/p-textarea/accessibility.md +45 -0
- package/skills/pds-knowledge-angular/references/components/p-textarea/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-textarea/examples/Form.ts +31 -0
- package/skills/pds-knowledge-angular/references/components/p-textarea/examples/Slots.ts +42 -0
- package/skills/pds-knowledge-angular/references/components/p-textarea/p-textarea.md +126 -0
- package/skills/pds-knowledge-angular/references/components/p-toast/examples/Default.ts +23 -0
- package/skills/pds-knowledge-angular/references/components/p-toast/p-toast.md +61 -0
- package/skills/pds-knowledge-angular/references/components/p-wordmark/accessibility.md +31 -0
- package/skills/pds-knowledge-angular/references/components/p-wordmark/examples/CustomClickableArea.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-wordmark/examples/Default.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-wordmark/examples/Size.ts +13 -0
- package/skills/pds-knowledge-angular/references/components/p-wordmark/p-wordmark.md +70 -0
- package/skills/pds-knowledge-angular/references/icons.md +5 -0
- package/skills/pds-knowledge-angular/references/styles/emotion.md +439 -0
- package/skills/pds-knowledge-angular/references/styles/scss.md +402 -0
- package/skills/pds-knowledge-angular/references/styles/tailwindcss.md +356 -0
- package/skills/pds-knowledge-angular/references/styles/vanilla-extract.md +444 -0
- package/skills/pds-knowledge-angular/references/stylesheets.md +331 -0
- package/skills/pds-knowledge-angular/references/tokens.md +323 -0
- package/testing/package.json +5 -0
- package/tokens/package.json +6 -0
- package/types/porsche-design-system-components-angular.d.ts +2 -2
- package/vanilla-extract/package.json +6 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-fieldset label="Some legend label" [required]="true">
|
|
8
|
+
<p-input-text label="Some label" name="some-name-1" [required]="true"></p-input-text>
|
|
9
|
+
<p-input-text label="Some label" name="some-name-2" [required]="true" class="mt-fluid-sm"></p-input-text>
|
|
10
|
+
</p-fieldset>
|
|
11
|
+
`,
|
|
12
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13
|
+
standalone: true,
|
|
14
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
15
|
+
})
|
|
16
|
+
export class ExampleComponent {}
|
package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/SlottedLabel.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-fieldset>
|
|
8
|
+
<span slot="label">
|
|
9
|
+
Some legend label
|
|
10
|
+
</span>
|
|
11
|
+
<p-input-text label="Some label" name="some-name"></p-input-text>
|
|
12
|
+
</p-fieldset>
|
|
13
|
+
`,
|
|
14
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
15
|
+
standalone: true,
|
|
16
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
17
|
+
})
|
|
18
|
+
export class ExampleComponent {}
|
package/skills/pds-knowledge-angular/references/components/p-fieldset/examples/SlottedMessage.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-fieldset label="Some legend label" state="error">
|
|
8
|
+
<p-input-text label="Some label" name="some-name"></p-input-text>
|
|
9
|
+
<span slot="message">
|
|
10
|
+
Some error message
|
|
11
|
+
</span>
|
|
12
|
+
</p-fieldset>
|
|
13
|
+
`,
|
|
14
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
15
|
+
standalone: true,
|
|
16
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
17
|
+
})
|
|
18
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# p-fieldset
|
|
2
|
+
|
|
3
|
+
The `p-fieldset` is a grouping component for wrapping contextual associated form elements. Its visible part is an HTML *legend* element, which can be seen like a headline for describing the meaning of a form block. You can see some usage examples on our [form patterns section](https://designsystem.porsche.com/patterns/forms/resources/).
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
### Do:
|
|
8
|
+
|
|
9
|
+
- Use to group related fields together to make them more organized and easier to understand for users.
|
|
10
|
+
- Use descriptive and clear labels for the field sets to help users quickly understand what information is being requested.
|
|
11
|
+
- Use for grouping several form controls as well as labels within a form.
|
|
12
|
+
- Use it for grouping several checkboxes.
|
|
13
|
+
- Use it for creating a date picker.
|
|
14
|
+
- Use consistent formatting and styling for field sets to maintain visual consistency and improve the overall user experience.
|
|
15
|
+
- Use field sets to control the visibility of groups of fields that are not always necessary, such as advanced options or additional information.
|
|
16
|
+
- Test your field sets with users to ensure they are effective in improving the usability of your forms or page layouts.
|
|
17
|
+
|
|
18
|
+
### Don't:
|
|
19
|
+
|
|
20
|
+
- Don't use too many field sets on a single form or page layout.
|
|
21
|
+
- Don't use to hide important information or fields that users need to complete a form.
|
|
22
|
+
- Don't rely solely on field sets to improve the usability of your forms or page layouts.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Behavior
|
|
27
|
+
|
|
28
|
+
### Sections including form elements
|
|
29
|
+
|
|
30
|
+
[Form pattern guideline](https://designsystem.porsche.com/patterns/forms).
|
|
31
|
+
|
|
32
|
+
## Accessibility support
|
|
33
|
+
|
|
34
|
+
### ARIA enhancements
|
|
35
|
+
|
|
36
|
+
#### External **ARIA** provided by the `aria` property:
|
|
37
|
+
|
|
38
|
+
| ARIA | Usage |
|
|
39
|
+
| --- | --- |
|
|
40
|
+
| `role="radiogroup"` | Changes the default role of `group` to `radiogroup` |
|
|
41
|
+
|
|
42
|
+
#### Internal **ARIA** that is managed by the component:
|
|
43
|
+
|
|
44
|
+
| ARIA | Usage |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `role="alert"` | When content is populated or changed in `state="error"`, the component announces it immediately. |
|
|
47
|
+
| `aria-required="true"` | Indicates if all children of the fieldset group are required. |
|
|
48
|
+
| `aria-invalid="true"` | If `error` state is set. |
|
|
49
|
+
| `aria-describedby="IDREF"` | References the accessible description when `state` message is provided. |
|
|
50
|
+
|
|
51
|
+
## Development considerations
|
|
52
|
+
|
|
53
|
+
### Common do's and don'ts
|
|
54
|
+
|
|
55
|
+
- **Do** provide a clear `label` that describes the grouped fields.
|
|
56
|
+
- **Do** use the component state/message API so group validation is announced.
|
|
57
|
+
- **Do** use `aria="{ 'role': 'radiogroup' }"` only when the fieldset contains custom radio controls.
|
|
58
|
+
- **Don't** set `state="error"` without a descriptive `message`.
|
|
59
|
+
|
|
60
|
+
## Integration examples
|
|
61
|
+
|
|
62
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
63
|
+
|
|
64
|
+
## API
|
|
65
|
+
|
|
66
|
+
### Properties
|
|
67
|
+
|
|
68
|
+
| Property | Type | Default | Description |
|
|
69
|
+
| --- | --- | --- | --- |
|
|
70
|
+
| `aria` | `'radiogroup'` | `undefined` | Overrides the ARIA role on the fieldset — use `radiogroup` when grouping radio buttons. |
|
|
71
|
+
| `label` | `string` | `''` | Sets the visible legend text displayed above the grouped form controls. |
|
|
72
|
+
| `labelSize` | `'small'` `'medium'` | `'medium'` | Sets the font size of the fieldset label (`small`, `medium`, or `large`). |
|
|
73
|
+
| `message` | `string` | `''` | Sets the validation feedback message displayed below the fieldset when `state` is `success` or `error`. |
|
|
74
|
+
| `required` | `boolean` | `false` | Marks all controls within the fieldset as required and adds a required indicator to the label. |
|
|
75
|
+
| `state` | `'none'` `'error'` `'success'` | `'none'` | Sets the validation state of the fieldset, controlling the color and style of the feedback message. |
|
|
76
|
+
|
|
77
|
+
### Slots
|
|
78
|
+
|
|
79
|
+
| Slot | Required | Allowed tag names | Description |
|
|
80
|
+
| --- | --- | --- | --- |
|
|
81
|
+
| `label` | no | — | Shows a label. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
|
|
82
|
+
| _(default)_ | no | — | Default slot for the main content. |
|
|
83
|
+
| `message` | no | — | Shows a state message. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
|
|
84
|
+
|
|
85
|
+
## Examples
|
|
86
|
+
|
|
87
|
+
| Example | When to use | File |
|
|
88
|
+
| --- | --- | --- |
|
|
89
|
+
| Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
|
|
90
|
+
| Slotted label | Slotted label | [./examples/SlottedLabel.ts](./examples/SlottedLabel.ts) |
|
|
91
|
+
| Slotted message | Slotted message | [./examples/SlottedMessage.ts](./examples/SlottedMessage.ts) |
|
|
92
|
+
| Required | Setting `required="true"` on `p-fieldset` only renders the asterisk on the legend and sets `aria-required` on the underlying `<fieldset>` element. | [./examples/Required.ts](./examples/Required.ts) |
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# p-flag accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Informative flag without accessible name
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<p-flag name="germany"></p-flag>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<p-flag name="germany" [aria]="{'aria-label': 'Germany'}"></p-flag>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Decorative flag with redundant label
|
|
20
|
+
|
|
21
|
+
#### ❌ Anti-pattern
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<p-flag name="germany" [aria]="{'aria-label': 'Germany'}"></p-flag>
|
|
25
|
+
|
|
26
|
+
<p-text>
|
|
27
|
+
Germany
|
|
28
|
+
</p-text>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
#### ✅ Recommended
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<p-flag name="germany" [ariaHidden]="true"></p-flag>
|
|
35
|
+
|
|
36
|
+
<p-text>
|
|
37
|
+
Germany
|
|
38
|
+
</p-text>
|
|
39
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-flag [aria]="{'aria-label': 'Flag of Germany'}"></p-flag>
|
|
8
|
+
`,
|
|
9
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
10
|
+
standalone: true,
|
|
11
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
12
|
+
})
|
|
13
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-flag name="de" [size]="{'base': 'sm', 'l': '2xl'}" [aria]="{'aria-label': 'Flag of Germany'}"></p-flag>
|
|
8
|
+
`,
|
|
9
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
10
|
+
standalone: true,
|
|
11
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
12
|
+
})
|
|
13
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-text class="text-[48px]" size="inherit">
|
|
8
|
+
<p-flag class="me-static-sm" size="inherit" name="de" [aria]="{'aria-label': 'Flag of Germany'}"></p-flag>
|
|
9
|
+
Some text
|
|
10
|
+
</p-text>
|
|
11
|
+
`,
|
|
12
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13
|
+
standalone: true,
|
|
14
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
15
|
+
})
|
|
16
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-flag class="[--p-flag-size:48px]" name="de" [aria]="{'aria-label': 'Flag of Germany'}"></p-flag>
|
|
8
|
+
`,
|
|
9
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
10
|
+
standalone: true,
|
|
11
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
12
|
+
})
|
|
13
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# p-flag
|
|
2
|
+
|
|
3
|
+
The `p-flag` component displays a country or region flag and should be used to communicate geographic context visually.
|
|
4
|
+
|
|
5
|
+
Flags are universally recognized symbols that enable rapid visual communication. Alongside icons, colors, and typography, they are a fundamental part of the Porsche design language and help create a seamless user experience.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
The following guidelines provide instructions for designers and developers on the appropriate use of the `flag` component for effective communication and user experience.
|
|
10
|
+
|
|
11
|
+
### Do:
|
|
12
|
+
|
|
13
|
+
- **Use the `flag` component for country identification.** The primary purpose is to represent a nation, such as specifying a user's country of origin, shipping location, or detailing product availability.
|
|
14
|
+
|
|
15
|
+
- **Pair the flag with a label for clarity.** While flags are great for quick visual recognition, they can be ambiguous. Always accompany a flag with a country name or an appropriate label to avoid confusion.
|
|
16
|
+
|
|
17
|
+
- **Use the two-letter ISO 3166-1 alpha-2 code.** This standard ensures consistency, reduces errors, and makes it easier to integrate with other systems and APIs.
|
|
18
|
+
|
|
19
|
+
### Don't:
|
|
20
|
+
|
|
21
|
+
- **Don't use flags to represent a language.** Many languages are spoken in multiple countries (e.g., Spanish). A flag represents a nation, not a language. Use language codes or names instead.
|
|
22
|
+
|
|
23
|
+
- **Don't use flags to represent an emotion or concept.** Flags are powerful symbols of national identity. Using them as generic icons can dilute their meaning and cause user confusion.
|
|
24
|
+
|
|
25
|
+
- **Don't rely solely on the flag icon.** Always provide an aria-label for accessibility. Screen readers cannot interpret flags, and without a descriptive label, you create an inaccessible user experience.
|
|
26
|
+
|
|
27
|
+
## Accessibility support
|
|
28
|
+
|
|
29
|
+
### ARIA enhancements
|
|
30
|
+
|
|
31
|
+
#### External **ARIA** provided by the `aria` property:
|
|
32
|
+
|
|
33
|
+
| ARIA | Usage |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| `aria-label` | Defines a string value that labels the element (through the `alt` attribute). |
|
|
36
|
+
|
|
37
|
+
## Development considerations
|
|
38
|
+
|
|
39
|
+
### Common do's and don'ts
|
|
40
|
+
|
|
41
|
+
- **Do** pass a country or region name through the `aria` prop when the flag conveys meaning.
|
|
42
|
+
- **Do** hide decorative flags from assistive technologies when adjacent text already names the country or region.
|
|
43
|
+
- **Don't** leave informative flags without an accessible name.
|
|
44
|
+
|
|
45
|
+
## Integration examples
|
|
46
|
+
|
|
47
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
48
|
+
|
|
49
|
+
## API
|
|
50
|
+
|
|
51
|
+
### Properties
|
|
52
|
+
|
|
53
|
+
| Property | Type | Default | Description |
|
|
54
|
+
| --- | --- | --- | --- |
|
|
55
|
+
| `aria` | `FlagAriaAttribute` | `undefined` | A map of ARIA attributes to enhance the flag's accessibility. For example, use `{ 'aria-label': 'German flag' }` to provide a descriptive label for screen readers. |
|
|
56
|
+
| `name` | `'ad'` `'ae'` `'al'` `'am'` `'ar'` `'at'` `'au'` `'az'` `'ba'` `'bd'` `'be'` `'bg'` `'bh'` `'bn'` `'bo'` `'br'` `'by'` `'ca'` `'ch'` `'cl'` `'cn'` `'co'` `'cr'` `'cw'` `'cy'` `'cz'` `'de'` `'dk'` `'do'` `'dz'` `'ec'` `'ee'` `'eg'` `'es'` `'fi'` `'fr'` `'gb'` `'ge'` `'gh'` `'gi'` `'gr'` `'gt'` `'hk'` `'hn'` `'hr'` `'ht'` `'hu'` `'id'` `'ie'` `'il'` `'in'` `'is'` `'it'` `'jm'` `'jo'` `'jp'` `'ke'` `'kh'` `'kr'` `'kw'` `'kz'` `'lb'` `'li'` `'lk'` `'lt'` `'lu'` `'lv'` `'ma'` `'mc'` `'md'` `'me'` `'mk'` `'mn'` `'mo'` `'mq'` `'mt'` `'mu'` `'mx'` `'my'` `'ng'` `'nl'` `'no'` `'nz'` `'om'` `'pa'` `'pe'` `'pf'` `'ph'` `'pk'` `'pl'` `'pr'` `'pt'` `'py'` `'qa'` `'re'` `'ro'` `'rs'` `'ru'` `'sa'` `'se'` `'sg'` `'si'` `'sk'` `'sv'` `'th'` `'tn'` `'tr'` `'tt'` `'tw'` `'ua'` `'us'` `'uy'` `'uz'` `'ve'` `'vn'` `'xx'` `'za'` | `'de'` | Specifies the country flag to display. Use the two-letter ISO 3166-1 alpha-2 country code. For example, use `us` for the United States, `de` for Germany, `gb` for Great Britain. |
|
|
57
|
+
| `size` | `'2xs'` `'xs'` `'sm'` `'md'` `'lg'` `'xl'` `'2xl'` `'3xl'` `'4xl'` `'5xl'` `'inherit'`<br>_deprecated:_ `'xx-small'` `'x-small'` `'small'` `'medium'` `'large'` `'x-large'` `'xx-large'`<br>`BreakpointCustomizable<FlagSize>` | `'sm'` | Defines the size of the flag, aligned with the typographic scale used by components such as p-icon, p-spinner, p-text, and p-heading. When set to `inherit`, the size is derived from a custom font-size defined on a parent element, calculated against the global line-height (based on `ex`-unit) to remain visually consistent with other typographic-scale-based components. |
|
|
58
|
+
|
|
59
|
+
### CSS Variables
|
|
60
|
+
|
|
61
|
+
| CSS Variable | Default | Description |
|
|
62
|
+
| --- | --- | --- |
|
|
63
|
+
| `--p-flag-size` | — | Defines the width and height of the flag. Overrides the `size` property when set. |
|
|
64
|
+
|
|
65
|
+
## Examples
|
|
66
|
+
|
|
67
|
+
| Example | When to use | File |
|
|
68
|
+
| --- | --- | --- |
|
|
69
|
+
| Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
|
|
70
|
+
| Size via Prop | The `size` property offers a set of predefined sizes that cover most use cases. | [./examples/Size.ts](./examples/Size.ts) |
|
|
71
|
+
| Size via CSS Variable | For full control over the flag's dimensions, use the custom CSS variable `--p-flag-size`, which accepts any valid CSS length value. | [./examples/SizeCssVar.ts](./examples/SizeCssVar.ts) |
|
|
72
|
+
| Responsive Size | The `size` property supports `BreakpointCustomizable` values, allowing you to define different sizes for each major breakpoint (`xs`, `s`, `m`, `l`, `xl`). | [./examples/ResponsiveSize.ts](./examples/ResponsiveSize.ts) |
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# p-flyout accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### ARIA on trigger button host vs aria prop
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<p-button aria-haspopup="dialog">
|
|
11
|
+
Open dialog
|
|
12
|
+
</p-button>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
#### ✅ Recommended
|
|
16
|
+
|
|
17
|
+
```html
|
|
18
|
+
<p-button [aria]="{'aria-haspopup': 'dialog'}">
|
|
19
|
+
Open dialog
|
|
20
|
+
</p-button>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Dialog label on component host vs header slot
|
|
24
|
+
|
|
25
|
+
#### ❌ Anti-pattern
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<p-flyout aria-label="Navigation">
|
|
29
|
+
...
|
|
30
|
+
</p-flyout>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### ✅ Recommended
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<p-flyout>
|
|
37
|
+
<p-heading slot="header" tag="h2" size="lg">
|
|
38
|
+
Main navigation
|
|
39
|
+
</p-heading>
|
|
40
|
+
...
|
|
41
|
+
</p-flyout>
|
|
42
|
+
|
|
43
|
+
<!-- or with aria prop when no visible header is shown -->
|
|
44
|
+
|
|
45
|
+
<p-flyout [aria]="{'aria-label': 'Main navigation'}">
|
|
46
|
+
...
|
|
47
|
+
</p-flyout>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Flyout trigger without popup semantics
|
|
51
|
+
|
|
52
|
+
#### ❌ Anti-pattern
|
|
53
|
+
|
|
54
|
+
```html
|
|
55
|
+
<p-button>
|
|
56
|
+
Open dialog
|
|
57
|
+
</p-button>
|
|
58
|
+
|
|
59
|
+
<p-flyout>
|
|
60
|
+
<p-heading slot="header" tag="h2" size="lg">
|
|
61
|
+
Dialog heading
|
|
62
|
+
</p-heading>
|
|
63
|
+
...
|
|
64
|
+
</p-flyout>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
#### ✅ Recommended
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<p-button [aria]="{'aria-haspopup': 'dialog'}">
|
|
71
|
+
Open dialog
|
|
72
|
+
</p-button>
|
|
73
|
+
|
|
74
|
+
<p-flyout>
|
|
75
|
+
<p-heading slot="header" tag="h2" size="lg">
|
|
76
|
+
Dialog heading
|
|
77
|
+
</p-heading>
|
|
78
|
+
...
|
|
79
|
+
</p-flyout>
|
|
80
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-button type="button" [aria]="{'aria-haspopup': 'dialog'}" (click)="onClick()">
|
|
8
|
+
Open Flyout
|
|
9
|
+
</p-button>
|
|
10
|
+
|
|
11
|
+
<p-flyout [open]="open" [aria]="{'aria-label': 'Some Heading'}" footerBehavior="fixed" class="[--p-flyout-width:90vw]" (dismiss)="onDismiss()">
|
|
12
|
+
<div class="-mt-(--ref-p-flyout-pt) -mx-(--ref-p-flyout-px) h-[300px]">
|
|
13
|
+
<img class="w-full h-full object-cover" src="assets/lights.jpg" alt="Some image description" />
|
|
14
|
+
</div>
|
|
15
|
+
<p-display class="mt-fluid-md" size="small" tag="h2">
|
|
16
|
+
Some heading
|
|
17
|
+
</p-display>
|
|
18
|
+
<p-text class="mt-fluid-sm">
|
|
19
|
+
Some paragraph.
|
|
20
|
+
</p-text>
|
|
21
|
+
<div slot="footer" class="grid grid-cols-[auto_1fr_auto] gap-static-sm justify-items-center">
|
|
22
|
+
<p-button-pure icon="arrow-left" type="button" [hideLabel]="true">
|
|
23
|
+
Prev
|
|
24
|
+
</p-button-pure>
|
|
25
|
+
<p-text>
|
|
26
|
+
1/4
|
|
27
|
+
</p-text>
|
|
28
|
+
<p-button-pure icon="arrow-right" type="button" [hideLabel]="true">
|
|
29
|
+
Next
|
|
30
|
+
</p-button-pure>
|
|
31
|
+
</div>
|
|
32
|
+
</p-flyout>
|
|
33
|
+
`,
|
|
34
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35
|
+
standalone: true,
|
|
36
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
37
|
+
})
|
|
38
|
+
export class ExampleComponent {
|
|
39
|
+
open = false;
|
|
40
|
+
|
|
41
|
+
onClick() {
|
|
42
|
+
this.open = true;
|
|
43
|
+
}
|
|
44
|
+
onDismiss() {
|
|
45
|
+
this.open = false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-button type="button" [aria]="{'aria-haspopup': 'dialog'}" (click)="onClick()">
|
|
8
|
+
Open Flyout
|
|
9
|
+
</p-button>
|
|
10
|
+
|
|
11
|
+
<p-flyout [open]="open" [aria]="{'aria-label': 'Some Heading'}" (dismiss)="onDismiss()">
|
|
12
|
+
<p-heading slot="header" size="large" tag="h2">
|
|
13
|
+
Some Heading
|
|
14
|
+
</p-heading>
|
|
15
|
+
<p-text>
|
|
16
|
+
Some Content
|
|
17
|
+
</p-text>
|
|
18
|
+
<div slot="footer">
|
|
19
|
+
<p-button type="button">
|
|
20
|
+
Proceed
|
|
21
|
+
</p-button>
|
|
22
|
+
<p-button type="button" variant="secondary">
|
|
23
|
+
Cancel
|
|
24
|
+
</p-button>
|
|
25
|
+
</div>
|
|
26
|
+
<p-text slot="sub-footer">
|
|
27
|
+
Some additional Sub-Footer
|
|
28
|
+
</p-text>
|
|
29
|
+
</p-flyout>
|
|
30
|
+
`,
|
|
31
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
|
+
standalone: true,
|
|
33
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
34
|
+
})
|
|
35
|
+
export class ExampleComponent {
|
|
36
|
+
open = false;
|
|
37
|
+
|
|
38
|
+
onClick() {
|
|
39
|
+
this.open = true;
|
|
40
|
+
}
|
|
41
|
+
onDismiss() {
|
|
42
|
+
this.open = false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-button type="button" [aria]="{ 'aria-haspopup': 'dialog' }" (click)="onOpen()">Open Flyout</p-button>
|
|
8
|
+
<p-flyout [open]="isFlyoutOpen" (dismiss)="onDismiss()" [aria]="{ 'aria-label': 'Some Heading' }">
|
|
9
|
+
<p-heading slot="header" size="large" tag="h2">Some Heading</p-heading>
|
|
10
|
+
<form id="some-form" (submit)="onSubmit($event)">
|
|
11
|
+
<p-checkbox name="some-checkbox" label="Some Label"></p-checkbox>
|
|
12
|
+
<p-textarea name="some-textarea" label="Some Label"></p-textarea>
|
|
13
|
+
</form>
|
|
14
|
+
<p-button slot="footer" type="submit" form="some-form">Submit</p-button>
|
|
15
|
+
<p-button slot="footer" type="reset" [variant]="'secondary'" form="some-form">Reset</p-button>
|
|
16
|
+
<p-text slot="sub-footer">
|
|
17
|
+
Last submitted data:
|
|
18
|
+
<br/><br/>
|
|
19
|
+
checkbox: {{checkboxValue}}
|
|
20
|
+
<br/>
|
|
21
|
+
textarea: {{textareaValue}}
|
|
22
|
+
</p-text>
|
|
23
|
+
</p-flyout>
|
|
24
|
+
`,
|
|
25
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26
|
+
standalone: true,
|
|
27
|
+
imports: [PorscheDesignSystemModule],
|
|
28
|
+
})
|
|
29
|
+
export class ExampleComponent {
|
|
30
|
+
isFlyoutOpen = false;
|
|
31
|
+
checkboxValue: string = 'none';
|
|
32
|
+
textareaValue: string = 'none';
|
|
33
|
+
|
|
34
|
+
onOpen() {
|
|
35
|
+
this.isFlyoutOpen = true;
|
|
36
|
+
}
|
|
37
|
+
onDismiss() {
|
|
38
|
+
this.isFlyoutOpen = false;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
onSubmit(e: Event): void {
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
const formData = new FormData(e.target as HTMLFormElement);
|
|
44
|
+
this.checkboxValue = formData.get('some-checkbox')?.toString() || 'none';
|
|
45
|
+
this.textareaValue = formData.get('some-textarea')?.toString() || 'none';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'porsche-design-system-app',
|
|
6
|
+
template: `
|
|
7
|
+
<p-button type="button" [aria]="{'aria-haspopup': 'dialog'}" (click)="onClick()">
|
|
8
|
+
Open Flyout
|
|
9
|
+
</p-button>
|
|
10
|
+
|
|
11
|
+
<p-flyout [open]="open" [aria]="{'aria-label': 'Some Heading'}" (dismiss)="onDismiss()">
|
|
12
|
+
<p-heading slot="header" size="large" tag="h2">
|
|
13
|
+
Some Heading
|
|
14
|
+
</p-heading>
|
|
15
|
+
<div class="grid grid-cols-[2fr_1fr] gap-static-md items-start">
|
|
16
|
+
<div class="sticky top-[calc(var(--p-flyout-sticky-top,0)+16px)] p-static-md bg-surface">
|
|
17
|
+
Some sticky element within content relying on --p-flyout-sticky-top
|
|
18
|
+
</div>
|
|
19
|
+
<div>
|
|
20
|
+
<p-text>
|
|
21
|
+
Some Content Begin
|
|
22
|
+
</p-text>
|
|
23
|
+
<div class="w-[10px] h-[120vh] bg-[deeppink]"></div>
|
|
24
|
+
<p-text>
|
|
25
|
+
Some Content End
|
|
26
|
+
</p-text>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</p-flyout>
|
|
30
|
+
`,
|
|
31
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
|
+
standalone: true,
|
|
33
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
34
|
+
})
|
|
35
|
+
export class ExampleComponent {
|
|
36
|
+
open = false;
|
|
37
|
+
|
|
38
|
+
onClick() {
|
|
39
|
+
this.open = true;
|
|
40
|
+
}
|
|
41
|
+
onDismiss() {
|
|
42
|
+
this.open = false;
|
|
43
|
+
}
|
|
44
|
+
}
|