@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,182 @@
|
|
|
1
|
+
# p-input-search
|
|
2
|
+
|
|
3
|
+
The `p-input-search` component offers a versatile, user-friendly interface for entering and submitting search queries. It supports direct keyboard input and includes a clear button for convenience. The `start` and `end` slots enable flexible insertion of custom content.
|
|
4
|
+
|
|
5
|
+
A `label` is a caption which informs the user what information a particular form field is asking for. The `p-input-search` component can be used with or without a label, but it's recommended to keep the label visible for better accessibility whenever possible. When used without a label, it's mandatory to provide a descriptive label text for screen readers.
|
|
6
|
+
|
|
7
|
+
While a `placeholder` is optional but recommended to be set whenever bits of example content or hints shall be shown to give the user visual cues to fill out the form.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
### Do:
|
|
12
|
+
|
|
13
|
+
- Use when a keyword or key value for a search request is necessary.
|
|
14
|
+
- Use without a label only when the context is clear.
|
|
15
|
+
- Use with a slotted locate button when a locate action can be performed.
|
|
16
|
+
- Use a loading state to indicate a search is being performed.
|
|
17
|
+
- Use an asterisk to indicate required fields.
|
|
18
|
+
- Use success or error messages if the user input was inappropriate.
|
|
19
|
+
- Use search suggestions or recent history when it adds contextual value.
|
|
20
|
+
|
|
21
|
+
### Don't:
|
|
22
|
+
|
|
23
|
+
- Don’t use labels with more than two words whenever possible (keep them short and descriptive).
|
|
24
|
+
- Don’t use instructional or descriptive text as the label.
|
|
25
|
+
- Don’t use p-input-search for purposes other than search.
|
|
26
|
+
- Don’t use compact variants in marketing applications.
|
|
27
|
+
- Don’t manipulate or replace the default search icon.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Related Components
|
|
32
|
+
|
|
33
|
+
- [Input Date](../p-input-date/p-input-date.md)
|
|
34
|
+
- [Input Email](../p-input-email/p-input-email.md)
|
|
35
|
+
- [Input Month](../p-input-month/p-input-month.md)
|
|
36
|
+
- [Input Number](../p-input-number/p-input-number.md)
|
|
37
|
+
- [Input Password](../p-input-password/p-input-password.md)
|
|
38
|
+
- [Input Tel](../p-input-tel/p-input-tel.md)
|
|
39
|
+
- [Input Text](../p-input-text/p-input-text.md)
|
|
40
|
+
- [Input Time](../p-input-time/p-input-time.md)
|
|
41
|
+
- [Input Url](../p-input-url/p-input-url.md)
|
|
42
|
+
- [Input Week](../p-input-week/p-input-week.md)
|
|
43
|
+
|
|
44
|
+
## Accessibility support
|
|
45
|
+
|
|
46
|
+
### Keyboard
|
|
47
|
+
|
|
48
|
+
| Key / state | Function |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| `Tab`, `Shift-Tab` | Moves focus to the next (or previous) focusable element. |
|
|
51
|
+
|
|
52
|
+
### ARIA enhancements
|
|
53
|
+
|
|
54
|
+
#### External **ARIA** provided by the `aria` property:
|
|
55
|
+
|
|
56
|
+
Use the `aria` property to pass supported attributes to the **native `<input>` inside the shadow DOM**, for example when you implement a combobox-style pattern (search field + suggestion list).
|
|
57
|
+
|
|
58
|
+
| ARIA | Usage |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| `role` | Overrides the implicit role when needed (e.g. `combobox` for an autocomplete pattern alongside a separate listbox). |
|
|
61
|
+
| `aria-autocomplete` | Indicates whether and how the component predicts text (`none`, `inline`, `list`, `both`). |
|
|
62
|
+
| `aria-controls` | Identifies the element(s) whose contents or presence are controlled by the input (e.g. the suggestion list’s id). |
|
|
63
|
+
| `aria-expanded` | Indicates whether the suggestion popup or related surface is expanded or collapsed. |
|
|
64
|
+
| `aria-haspopup` | Indicates that activating the input triggers a popup (e.g. `listbox`, `dialog`). |
|
|
65
|
+
| `aria-label` | Defines an accessible name when the visible label is insufficient or hidden; prefer a visible `label` for most cases. |
|
|
66
|
+
|
|
67
|
+
You can pass a JSON object on the element (vanilla JS) or use your framework’s prop binding, for example `aria={{ role: 'combobox', 'aria-expanded': isOpen, 'aria-haspopup': 'listbox' }}`.
|
|
68
|
+
|
|
69
|
+
#### Internal **ARIA** that is managed by the component:
|
|
70
|
+
|
|
71
|
+
The following apply in addition to any `aria` values you pass. On the **native search input**, `aria-describedby`, `aria-invalid`, `aria-disabled`, and `aria-readonly` are always set by the component and **take precedence** over the same keys if they were supplied in `aria`.
|
|
72
|
+
|
|
73
|
+
| ARIA | Usage |
|
|
74
|
+
| --- | --- |
|
|
75
|
+
| `aria-describedby="IDREF"` | Combines references for description, state message, and loading feedback on the native input. |
|
|
76
|
+
| `aria-invalid="true"` | When `state` is `error`. |
|
|
77
|
+
| `aria-disabled="true"` | When `disabled` or `loading` is active. |
|
|
78
|
+
| `aria-readonly="true"` | When `readOnly` is active. |
|
|
79
|
+
| `role="status"`, `role="alert"` | When `message` and `state` or `loading` change, the status message region is exposed for announcements. |
|
|
80
|
+
| `aria-hidden="true"` | On decorative icons (e.g. search indicator). |
|
|
81
|
+
|
|
82
|
+
## Development considerations
|
|
83
|
+
|
|
84
|
+
### Disabled state
|
|
85
|
+
|
|
86
|
+
In general, avoid using the `disabled` state. Disabled elements are no longer focusable and may be missed by screen reader users. They can also confuse sighted users if the reason they are disabled is not made clear.
|
|
87
|
+
|
|
88
|
+
### Combobox and suggestion lists
|
|
89
|
+
|
|
90
|
+
For a search field that controls a separate list of suggestions, set the `aria` property so the input exposes the expected semantics supported by this component, for example:
|
|
91
|
+
|
|
92
|
+
- `role: 'combobox'`
|
|
93
|
+
- `aria-controls` referring to the id of the associated listbox (or other controlled region). Hint: currently not supported across shadow DOM boundaries
|
|
94
|
+
- `aria-expanded` reflecting open/closed state
|
|
95
|
+
- `aria-haspopup` indicating the presence of a popup (e.g. `listbox`)
|
|
96
|
+
- `aria-autocomplete` as required by your pattern
|
|
97
|
+
|
|
98
|
+
Associate the suggestion list and keyboard interaction in the host application according to the [ARIA combobox pattern](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/) you implement there.
|
|
99
|
+
|
|
100
|
+
### Common do's and don'ts
|
|
101
|
+
|
|
102
|
+
- **Do** keep a persistent `label` and pass combobox-related ARIA through the `aria` prop when needed.
|
|
103
|
+
- **Do** use the component state/message API so validation and status changes are announced.
|
|
104
|
+
- **Do** use clear error wording that helps users recover.
|
|
105
|
+
- **Don't** rely on placeholder text as the only label.
|
|
106
|
+
- **Don't** add native `aria-*` attributes directly on the component host.
|
|
107
|
+
- **Don't** use `hide-label` without an accessible name.
|
|
108
|
+
|
|
109
|
+
## Limitations
|
|
110
|
+
|
|
111
|
+
Due to the nature of **Web Components** and **shadow DOM**, there are limitations when using some **ARIA** attributes to define (IDREF) relationships between elements across different shadow DOMs or shadow DOM/light DOM combinations.
|
|
112
|
+
|
|
113
|
+
| ARIA | Support |
|
|
114
|
+
| --- | --- |
|
|
115
|
+
| `aria-owns` | 🚫 |
|
|
116
|
+
| `aria-activedescendant` | 🚫 |
|
|
117
|
+
|
|
118
|
+
## Integration examples
|
|
119
|
+
|
|
120
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
121
|
+
|
|
122
|
+
## API
|
|
123
|
+
|
|
124
|
+
### Properties
|
|
125
|
+
|
|
126
|
+
| Property | Type | Default | Description |
|
|
127
|
+
| --- | --- | --- | --- |
|
|
128
|
+
| `aria` | `InputSearchAriaAttribute` | `undefined` | Sets additional ARIA attributes on the search input, useful for combobox patterns (e.g. `role="combobox"`, `aria-expanded`). |
|
|
129
|
+
| `autoComplete` | `string` | `undefined` | Provides the browser with a data type hint to enable relevant autofill suggestions. |
|
|
130
|
+
| `clear` | `boolean` | `false` | Shows a clear button (×) inside the field that resets the value to empty when clicked. |
|
|
131
|
+
| `compact` | `boolean` | `false` | Reduces the input height and padding for a more compact layout. |
|
|
132
|
+
| `description` | `string` | `''` | Sets a supplementary description displayed below the label to provide additional context. |
|
|
133
|
+
| `disabled` | `boolean` | `false` | Disables the field, preventing all input. The value is not submitted with the form. |
|
|
134
|
+
| `form` | `string` | `undefined` | Associates the field with a form element by its ID when the field is not nested directly inside it. |
|
|
135
|
+
| `hideLabel` | `boolean`<br>`BreakpointCustomizable<boolean>` | `false` | Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values. |
|
|
136
|
+
| `indicator` | `boolean` | `false` | Shows a magnifying glass icon inside the field as a visual affordance for search input. |
|
|
137
|
+
| `label` | `string` | `''` | Sets the visible label text displayed above the input field. |
|
|
138
|
+
| `loading` _(experimental)_ | `boolean` | `false` | @experimental Disables the field and displays a loading spinner to indicate an ongoing operation. |
|
|
139
|
+
| `maxLength` | `number` | `undefined` | Sets the maximum number of characters the user can enter. |
|
|
140
|
+
| `message` | `string` | `''` | Sets the validation feedback message displayed below the field when `state` is `success` or `error`. |
|
|
141
|
+
| `minLength` | `number` | `undefined` | Sets the minimum number of characters required for the field to be considered valid. |
|
|
142
|
+
| `name` _(required)_ | `string` | `undefined` | Sets the name submitted with the form data to identify this field's value on the server. |
|
|
143
|
+
| `placeholder` | `string` | `''` | Sets placeholder text shown inside the field when it is empty. |
|
|
144
|
+
| `readOnly` | `boolean` | `false` | Makes the field read-only — the value is displayed but cannot be edited. The value is still submitted with the form. |
|
|
145
|
+
| `required` | `boolean` | `false` | Marks the field as required — form submission is blocked while this field is empty. |
|
|
146
|
+
| `state` | `'none'` `'error'` `'success'` | `'none'` | Sets the validation state, controlling the visual appearance and style of the feedback message (`none`, `success`, `error`). |
|
|
147
|
+
| `value` | `string | null` | `''` | Sets the current search query value of the field. |
|
|
148
|
+
|
|
149
|
+
### Events
|
|
150
|
+
|
|
151
|
+
| Event | Type | Description |
|
|
152
|
+
| --- | --- | --- |
|
|
153
|
+
| `blur` | `CustomEvent<InputSearchBlurEventDetail>`<br>`Event` | Emitted when the input loses focus, regardless of whether the value changed. |
|
|
154
|
+
| `change` | `CustomEvent<InputSearchChangeEventDetail>`<br>`Event` | Emitted when the input loses focus after its value was changed. |
|
|
155
|
+
| `input` | `CustomEvent<InputSearchInputEventDetail>`<br>`InputEvent` | Emitted when the value has been changed as a direct result of a user action. |
|
|
156
|
+
|
|
157
|
+
### Slots
|
|
158
|
+
|
|
159
|
+
| Slot | Required | Allowed tag names | Description |
|
|
160
|
+
| --- | --- | --- | --- |
|
|
161
|
+
| `label` | no | — | Shows a label. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
|
|
162
|
+
| `label-after` | no | — | Places additional content after the label text (for content that should not be part of the label, e.g. external links or `p-popover`). |
|
|
163
|
+
| `description` | no | — | Shows a description. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
|
|
164
|
+
| `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. |
|
|
165
|
+
| `start` | no | — | Shows content at the start of the input (e.g. icon). |
|
|
166
|
+
| `end` | no | — | Shows content at the end of the input (e.g. search button). |
|
|
167
|
+
|
|
168
|
+
### CSS Variables
|
|
169
|
+
|
|
170
|
+
| CSS Variable | Default | Description |
|
|
171
|
+
| --- | --- | --- |
|
|
172
|
+
| `--ref-p-input-slotted-padding` | — | When slotting a `p-button-pure` or `p-link-pure` this variable needs to be set as `padding` in oder to adjust the alignment correctly. |
|
|
173
|
+
| `--ref-p-input-slotted-margin` | — | When slotting a `p-button-pure` or `p-link-pure` this variable needs to be set as `margin` in oder to adjust the spacings correctly. |
|
|
174
|
+
|
|
175
|
+
## Examples
|
|
176
|
+
|
|
177
|
+
| Example | When to use | File |
|
|
178
|
+
| --- | --- | --- |
|
|
179
|
+
| Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
|
|
180
|
+
| Form | The `p-input-search` can be integrated into a form in two ways: **controlled** or **uncontrolled**, depending on your needs. | [./examples/Form.ts](./examples/Form.ts) |
|
|
181
|
+
| Slots | Use named slots when `label`, `description` or `message` need markup such as a link. | [./examples/Slots.ts](./examples/Slots.ts) |
|
|
182
|
+
| Used as a Combobox | You can pass an `aria` property to expose extra semantics on the **native input** (see [accessibility](./p-input-search.md)). | [./examples/AriaCombobox.ts](./examples/AriaCombobox.ts) |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# p-input-tel accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Placeholder used as the only label
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<p-input-tel name="phone" placeholder="Phone"></p-input-tel>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<p-input-tel name="phone" label="Phone number" description="Include your country code, for example +49."></p-input-tel>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Hidden label without accessible name
|
|
20
|
+
|
|
21
|
+
#### ❌ Anti-pattern
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<p-input-tel name="phone" [hideLabel]="true"></p-input-tel>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
#### ✅ Recommended
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<p-input-tel name="phone" [hideLabel]="true" label="Phone number"></p-input-tel>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Validation feedback via state and message API
|
|
34
|
+
|
|
35
|
+
#### ❌ Anti-pattern
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<p-input-tel name="phone" label="Phone number" [aria-invalid]="true" message="Invalid"></p-input-tel>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### ✅ Recommended
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<p-input-tel name="phone" label="Phone number" state="error" message="Enter a valid phone number including your country code."></p-input-tel>
|
|
45
|
+
```
|
|
@@ -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-input-tel label="Some label" name="some-name" [indicator]="true"></p-input-tel>
|
|
8
|
+
`,
|
|
9
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
10
|
+
standalone: true,
|
|
11
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
12
|
+
})
|
|
13
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'porsche-design-system-app',
|
|
7
|
+
template: `
|
|
8
|
+
<form [formGroup]="form" (ngSubmit)="onSubmit()" class="flex flex-col gap-fluid-sm">
|
|
9
|
+
<p-input-tel formControlName="myInputTel" [label]="'Some Label'" [indicator]="true" />
|
|
10
|
+
<div class="flex gap-fluid-sm">
|
|
11
|
+
<p-button type="submit">Submit</p-button>
|
|
12
|
+
<p-button type="reset">Reset</p-button>
|
|
13
|
+
</div>
|
|
14
|
+
<p-text>Last submitted data: {{ submittedValue }}</p-text>
|
|
15
|
+
</form>
|
|
16
|
+
`,
|
|
17
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
|
+
standalone: true,
|
|
19
|
+
imports: [PorscheDesignSystemModule, FormsModule, ReactiveFormsModule], // <-- PDS module is imported here
|
|
20
|
+
})
|
|
21
|
+
export class ExampleComponent {
|
|
22
|
+
form = new FormGroup({
|
|
23
|
+
myInputTel: new FormControl<string>(''),
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
submittedValue: any = undefined;
|
|
27
|
+
|
|
28
|
+
onSubmit(): void {
|
|
29
|
+
this.submittedValue = JSON.stringify(this.form.value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -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-input-tel state="error">
|
|
8
|
+
<span slot="label">
|
|
9
|
+
Some label with a
|
|
10
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
11
|
+
link
|
|
12
|
+
</a>
|
|
13
|
+
and a "label-after" slot.
|
|
14
|
+
</span>
|
|
15
|
+
<p-popover slot="label-after">
|
|
16
|
+
Some Popover content with a
|
|
17
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
18
|
+
link
|
|
19
|
+
</a>
|
|
20
|
+
.
|
|
21
|
+
</p-popover>
|
|
22
|
+
<span slot="description">
|
|
23
|
+
Some description with a
|
|
24
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
25
|
+
link
|
|
26
|
+
</a>
|
|
27
|
+
.
|
|
28
|
+
</span>
|
|
29
|
+
<p-icon slot="start" name="home" color="contrast-medium" [aria-hidden]="true"></p-icon>
|
|
30
|
+
<p-button-pure slot="end" icon="delete" [hideLabel]="true" class="p-(--ref-p-input-slotted-padding) m-(--ref-p-input-slotted-margin)" [aria]="{'aria-label': 'Delete'}"></p-button-pure>
|
|
31
|
+
<span slot="message">
|
|
32
|
+
Some error message with a
|
|
33
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
34
|
+
link
|
|
35
|
+
</a>
|
|
36
|
+
.
|
|
37
|
+
</span>
|
|
38
|
+
</p-input-tel>
|
|
39
|
+
`,
|
|
40
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
41
|
+
standalone: true,
|
|
42
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
43
|
+
})
|
|
44
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# p-input-tel
|
|
2
|
+
|
|
3
|
+
The `p-input-tel` component provides a user-friendly, accessible interface for entering valid telephone numbers. It leverages native HTML5 telephone validation and ensures appropriate keyboard behavior on mobile devices. It includes `start` and `end` slots to flexibly incorporate icons, buttons, or other elements within the input field.
|
|
4
|
+
|
|
5
|
+
A `label` is a caption which informs the user what information a particular form field is asking for. The `p-input-tel` component can be used with or without a label, but it's recommended to keep the label visible for better accessibility whenever possible. When used without a label, it's mandatory to provide a descriptive label text for screen readers.
|
|
6
|
+
|
|
7
|
+
While a `placeholder` is optional but recommended to be set whenever bits of example content or hints shall be shown to give the user visual cues to fill out the form.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
The `p-input-tel` component is specifically designed for collecting telephone numbers. It leverages built-in browser validation to ensure that input follows the correct phone number format. This makes it a better choice than a generic text input when phone number validation, proper keyboard behavior on mobile devices, and accessibility are important. For further guidance, see the [MDN documentation on tel inputs](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/tel#using_tel_inputs).
|
|
12
|
+
|
|
13
|
+
### Do:
|
|
14
|
+
|
|
15
|
+
- Use when requesting a telephone number from the user.
|
|
16
|
+
- Use without a label only when the context is clear.
|
|
17
|
+
- Use for validation and error of input.
|
|
18
|
+
- Use asterisk for required fields.
|
|
19
|
+
|
|
20
|
+
### Don't:
|
|
21
|
+
|
|
22
|
+
- Don't use labels with more than two words whenever possible (keep it short and descriptive).
|
|
23
|
+
- Don't use an instructional or description text for the label.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Related Components
|
|
28
|
+
|
|
29
|
+
- [Input Date](../p-input-date/p-input-date.md)
|
|
30
|
+
- [Input Email](../p-input-email/p-input-email.md)
|
|
31
|
+
- [Input Month](../p-input-month/p-input-month.md)
|
|
32
|
+
- [Input Number](../p-input-number/p-input-number.md)
|
|
33
|
+
- [Input Password](../p-input-password/p-input-password.md)
|
|
34
|
+
- [Input Search](../p-input-search/p-input-search.md)
|
|
35
|
+
- [Input Text](../p-input-text/p-input-text.md)
|
|
36
|
+
- [Input Time](../p-input-time/p-input-time.md)
|
|
37
|
+
- [Input Url](../p-input-url/p-input-url.md)
|
|
38
|
+
- [Input Week](../p-input-week/p-input-week.md)
|
|
39
|
+
|
|
40
|
+
## Accessibility support
|
|
41
|
+
|
|
42
|
+
### Keyboard
|
|
43
|
+
|
|
44
|
+
| Key / state | Function |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `Tab`, `Shift-Tab` | Moves focus to the next (or previous) focusable element. |
|
|
47
|
+
|
|
48
|
+
### ARIA enhancements
|
|
49
|
+
|
|
50
|
+
#### Internal **ARIA** that is managed by the component:
|
|
51
|
+
|
|
52
|
+
| ARIA | Usage |
|
|
53
|
+
| --- | --- |
|
|
54
|
+
| `aria-describedby="IDREF"` | Defines the accessible description combined with the status message. |
|
|
55
|
+
| `role="status"`, `role="alert"` | When `message` and `state` or `loading` prop change, the status message is announced. |
|
|
56
|
+
| `aria-hidden="true"` | If `required` attribute is set, the visible asterisk indicator is hidden from assistive technologies. |
|
|
57
|
+
| `aria-invalid="true"` | If `error` state is set. |
|
|
58
|
+
| `aria-live="polite"` | If the `maxlength` attribute is present, the counter is announced via ARIA live region. |
|
|
59
|
+
|
|
60
|
+
## Development considerations
|
|
61
|
+
|
|
62
|
+
### Disabled state
|
|
63
|
+
|
|
64
|
+
In general, avoid using the `disabled` state. Disabled elements are no longer focusable and may be missed by screen reader users. They can also confuse sighted users if the reason they are disabled is not made clear.
|
|
65
|
+
|
|
66
|
+
### Common do's and don'ts
|
|
67
|
+
|
|
68
|
+
- **Do** keep a persistent label and use helper/description text when additional context is required.
|
|
69
|
+
- **Do** use the component state/message API so validation and status changes are announced.
|
|
70
|
+
- **Do** use clear error wording that helps users recover.
|
|
71
|
+
- **Don't** rely on placeholder text as the only label.
|
|
72
|
+
- **Don't** use `hide-label` without an accessible name.
|
|
73
|
+
|
|
74
|
+
## Limitations
|
|
75
|
+
|
|
76
|
+
Due to the nature of **Web Components** and **shadow DOM**, there are limitations when using some **ARIA** attributes to define relationships between elements across different shadow DOMs or shadow DOM/light DOM combinations.
|
|
77
|
+
|
|
78
|
+
| ARIA | Support |
|
|
79
|
+
| --- | --- |
|
|
80
|
+
| `aria-labelledby` | 🚫 |
|
|
81
|
+
| `aria-describedby` | 🚫 |
|
|
82
|
+
|
|
83
|
+
## Integration examples
|
|
84
|
+
|
|
85
|
+
See [accessibility integration examples](./accessibility.md) for paired anti-pattern and recommended implementations.
|
|
86
|
+
|
|
87
|
+
## API
|
|
88
|
+
|
|
89
|
+
### Properties
|
|
90
|
+
|
|
91
|
+
| Property | Type | Default | Description |
|
|
92
|
+
| --- | --- | --- | --- |
|
|
93
|
+
| `autoComplete` | `string` | `undefined` | Provides the browser with a phone number autofill hint (e.g. `autocomplete='tel'`). |
|
|
94
|
+
| `compact` | `boolean` | `false` | Reduces the input height and padding for a more compact layout. |
|
|
95
|
+
| `description` | `string` | `''` | Sets a supplementary description displayed below the label to provide additional context. |
|
|
96
|
+
| `disabled` | `boolean` | `false` | Disables the field, preventing all input. The value is not submitted with the form. |
|
|
97
|
+
| `form` | `string` | `undefined` | Associates the field with a form element by its ID when the field is not nested directly inside it. |
|
|
98
|
+
| `hideLabel` | `boolean`<br>`BreakpointCustomizable<boolean>` | `false` | Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values. |
|
|
99
|
+
| `indicator` | `boolean` | `false` | Shows a phone icon at the start of the field as a visual indicator for telephone input. |
|
|
100
|
+
| `label` | `string` | `''` | Sets the visible label text displayed above the input field. |
|
|
101
|
+
| `loading` _(experimental)_ | `boolean` | `false` | @experimental Disables the field and displays a loading spinner to indicate an ongoing operation. |
|
|
102
|
+
| `maxLength` | `number` | `undefined` | Sets the maximum number of characters the user can enter. |
|
|
103
|
+
| `message` | `string` | `''` | Sets the validation feedback message displayed below the field when `state` is `success` or `error`. |
|
|
104
|
+
| `minLength` | `number` | `undefined` | Sets the minimum number of characters required for the field to be considered valid. |
|
|
105
|
+
| `name` _(required)_ | `string` | `undefined` | Sets the name submitted with the form data to identify this field's value on the server. |
|
|
106
|
+
| `pattern` | `string` | `undefined` | Sets a regular expression the entered value must match to be valid. Overrides the browser's default telephone validation. |
|
|
107
|
+
| `placeholder` | `string` | `''` | Sets placeholder text shown inside the field when it is empty, such as an example phone number format. |
|
|
108
|
+
| `readOnly` | `boolean` | `false` | Makes the field read-only — the value is displayed but cannot be edited. The value is still submitted with the form. |
|
|
109
|
+
| `required` | `boolean` | `false` | Marks the field as required — form submission is blocked while this field is empty. |
|
|
110
|
+
| `state` | `'none'` `'error'` `'success'` | `'none'` | Sets the validation state, controlling the visual appearance and style of the feedback message (`none`, `success`, `error`). |
|
|
111
|
+
| `value` | `string | null` | `''` | Sets the current telephone number value of the field. |
|
|
112
|
+
|
|
113
|
+
### Events
|
|
114
|
+
|
|
115
|
+
| Event | Type | Description |
|
|
116
|
+
| --- | --- | --- |
|
|
117
|
+
| `blur` | `CustomEvent<InputTelBlurEventDetail>`<br>`Event` | Emitted when the input loses focus, regardless of whether the value changed. |
|
|
118
|
+
| `change` | `CustomEvent<InputTelChangeEventDetail>`<br>`Event` | Emitted when the input loses focus after its value was changed. |
|
|
119
|
+
| `input` | `CustomEvent<InputTelInputEventDetail>`<br>`InputEvent` | Emitted on every value change as the user types. |
|
|
120
|
+
|
|
121
|
+
### Slots
|
|
122
|
+
|
|
123
|
+
| Slot | Required | Allowed tag names | Description |
|
|
124
|
+
| --- | --- | --- | --- |
|
|
125
|
+
| `label` | no | — | Shows a label. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
|
|
126
|
+
| `label-after` | no | — | Places additional content after the label text (for content that should not be part of the label, e.g. external links or `p-popover`). |
|
|
127
|
+
| `description` | no | — | Shows a description. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed. |
|
|
128
|
+
| `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. |
|
|
129
|
+
| `start` | no | — | Shows content at the start of the input (e.g. unit prefix). |
|
|
130
|
+
| `end` | no | — | Shows content at the end of the input (e.g. toggle button, unit suffix). |
|
|
131
|
+
|
|
132
|
+
### CSS Variables
|
|
133
|
+
|
|
134
|
+
| CSS Variable | Default | Description |
|
|
135
|
+
| --- | --- | --- |
|
|
136
|
+
| `--ref-p-input-slotted-padding` | — | When slotting a `p-button-pure` or `p-link-pure` this variable needs to be set as `padding` in oder to adjust the alignment correctly. |
|
|
137
|
+
| `--ref-p-input-slotted-margin` | — | When slotting a `p-button-pure` or `p-link-pure` this variable needs to be set as `margin` in oder to adjust the spacings correctly. |
|
|
138
|
+
|
|
139
|
+
## Examples
|
|
140
|
+
|
|
141
|
+
| Example | When to use | File |
|
|
142
|
+
| --- | --- | --- |
|
|
143
|
+
| Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
|
|
144
|
+
| Form | The `p-input-tel` can be integrated into a form in two ways: **controlled** or **uncontrolled**, depending on your needs. | [./examples/Form.ts](./examples/Form.ts) |
|
|
145
|
+
| Slots | Use named slots when `label`, `description` or `message` need markup such as a link. | [./examples/Slots.ts](./examples/Slots.ts) |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# p-input-text accessibility integration examples
|
|
2
|
+
|
|
3
|
+
## Integration examples
|
|
4
|
+
|
|
5
|
+
### Placeholder used as the only label
|
|
6
|
+
|
|
7
|
+
#### ❌ Anti-pattern
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<p-input-text name="email" placeholder="Email"></p-input-text>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### ✅ Recommended
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<p-input-text name="email" label="Email address" description="We use this to send your confirmation."></p-input-text>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Hidden label without accessible name
|
|
20
|
+
|
|
21
|
+
#### ❌ Anti-pattern
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<p-input-text name="reference" [hideLabel]="true"></p-input-text>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
#### ✅ Recommended
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<p-input-text name="reference" [hideLabel]="true" label="Order reference"></p-input-text>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Validation feedback via state and message API
|
|
34
|
+
|
|
35
|
+
#### ❌ Anti-pattern
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<p-input-text name="email" label="Email" [aria-invalid]="true" message="Invalid"></p-input-text>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### ✅ Recommended
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<p-input-text name="email" label="Email address" state="error" message="Enter a valid email address, for example name@example.com."></p-input-text>
|
|
45
|
+
```
|
package/skills/pds-knowledge-angular/references/components/p-input-text/examples/Controlled.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
type InputTextInputEventDetail,
|
|
4
|
+
type PInputTextProps,
|
|
5
|
+
PorscheDesignSystemModule,
|
|
6
|
+
} from '@porsche-design-system/components-angular';
|
|
7
|
+
|
|
8
|
+
@Component({
|
|
9
|
+
selector: 'porsche-design-system-app',
|
|
10
|
+
template: `
|
|
11
|
+
<p-input-text name="some-name" label="Some Label" [value]="value" (input)="onInput($event)" />
|
|
12
|
+
<p-text>{{ debugText }}</p-text>
|
|
13
|
+
`,
|
|
14
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
15
|
+
standalone: true,
|
|
16
|
+
imports: [PorscheDesignSystemModule],
|
|
17
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
18
|
+
})
|
|
19
|
+
export class ExampleComponent {
|
|
20
|
+
value: PInputTextProps['value'] = '';
|
|
21
|
+
get debugText(): string {
|
|
22
|
+
return `Value: ${this.value}`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
onInput(e: CustomEvent<InputTextInputEventDetail>) {
|
|
26
|
+
const target = e.target as HTMLElement & { value: string };
|
|
27
|
+
|
|
28
|
+
if (target.value.length > 3) {
|
|
29
|
+
const newValue = target.value.slice(0, 3);
|
|
30
|
+
this.value = newValue;
|
|
31
|
+
// The web component doesn't prevent native input, so we must manually reset the input element's value.
|
|
32
|
+
// Angular won't re-render since setState with the truncated value doesn't trigger a change when it's already set.
|
|
33
|
+
target.value = newValue;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -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-input-text label="Some label" name="some-name"></p-input-text>
|
|
8
|
+
`,
|
|
9
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
10
|
+
standalone: true,
|
|
11
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
12
|
+
})
|
|
13
|
+
export class ExampleComponent {}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'porsche-design-system-app',
|
|
7
|
+
template: `
|
|
8
|
+
<form [formGroup]="form" (ngSubmit)="onSubmit()" class="flex flex-col gap-fluid-sm">
|
|
9
|
+
<p-input-text formControlName="myInputText" [label]="'Some Label'" />
|
|
10
|
+
<div class="flex gap-fluid-sm">
|
|
11
|
+
<p-button type="submit">Submit</p-button>
|
|
12
|
+
<p-button type="reset">Reset</p-button>
|
|
13
|
+
</div>
|
|
14
|
+
<p-text>Last submitted data: {{ submittedValue }}</p-text>
|
|
15
|
+
</form>
|
|
16
|
+
`,
|
|
17
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
|
+
standalone: true,
|
|
19
|
+
imports: [PorscheDesignSystemModule, FormsModule, ReactiveFormsModule], // <-- PDS module is imported here
|
|
20
|
+
})
|
|
21
|
+
export class ExampleComponent {
|
|
22
|
+
form = new FormGroup({
|
|
23
|
+
myInputText: new FormControl<string>(''),
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
submittedValue: any = undefined;
|
|
27
|
+
|
|
28
|
+
onSubmit(): void {
|
|
29
|
+
this.submittedValue = JSON.stringify(this.form.value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -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-input-text state="error">
|
|
8
|
+
<span slot="label">
|
|
9
|
+
Some label with a
|
|
10
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
11
|
+
link
|
|
12
|
+
</a>
|
|
13
|
+
and a "label-after" slot.
|
|
14
|
+
</span>
|
|
15
|
+
<p-popover slot="label-after">
|
|
16
|
+
Some Popover content with a
|
|
17
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
18
|
+
link
|
|
19
|
+
</a>
|
|
20
|
+
.
|
|
21
|
+
</p-popover>
|
|
22
|
+
<span slot="description">
|
|
23
|
+
Some description with a
|
|
24
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
25
|
+
link
|
|
26
|
+
</a>
|
|
27
|
+
.
|
|
28
|
+
</span>
|
|
29
|
+
<p-icon slot="start" name="shopping-cart" color="contrast-medium" [aria-hidden]="true"></p-icon>
|
|
30
|
+
<p-button-pure slot="end" icon="delete" [hideLabel]="true" class="p-(--ref-p-input-slotted-padding) m-(--ref-p-input-slotted-margin)" [aria]="{'aria-label': 'Delete'}"></p-button-pure>
|
|
31
|
+
<span slot="message">
|
|
32
|
+
Some error message with a
|
|
33
|
+
<a href="https://designsystem.porsche.com" class="underline">
|
|
34
|
+
link
|
|
35
|
+
</a>
|
|
36
|
+
.
|
|
37
|
+
</span>
|
|
38
|
+
</p-input-text>
|
|
39
|
+
`,
|
|
40
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
41
|
+
standalone: true,
|
|
42
|
+
imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
|
|
43
|
+
})
|
|
44
|
+
export class ExampleComponent {}
|