@porsche-design-system/components-react 4.6.0-rc.0 → 4.6.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +85 -2
- package/OSS_NOTICE +5532 -2115
- package/bin/pds-skill.js +166 -79
- package/cjs/lib/components/ai-tag.wrapper.cjs +1 -1
- package/cjs/lib/components/radio-group.wrapper.cjs +1 -1
- package/esm/lib/components/ai-tag.wrapper.d.ts +4 -4
- package/esm/lib/components/ai-tag.wrapper.mjs +1 -1
- package/esm/lib/components/input-number.wrapper.d.ts +6 -6
- package/esm/lib/components/input-text.wrapper.d.ts +6 -6
- package/esm/lib/components/multi-select-option.wrapper.d.ts +2 -2
- package/esm/lib/components/pin-code.wrapper.d.ts +6 -6
- package/esm/lib/components/radio-group-option.wrapper.d.ts +4 -4
- package/esm/lib/components/radio-group.wrapper.d.ts +4 -6
- package/esm/lib/components/radio-group.wrapper.mjs +1 -1
- package/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
- package/esm/lib/components/wordmark.wrapper.d.ts +2 -2
- package/esm/lib/types.d.ts +184 -213
- package/package.json +6 -2
- package/{skill → skills/pds-knowledge-react}/SKILL.md +6 -6
- package/skills/pds-knowledge-react/references/components/p-accordion/accessibility.md +63 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/p-accordion.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-ai-tag/p-ai-tag.md +47 -0
- package/skills/pds-knowledge-react/references/components/p-banner/accessibility.md +37 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-banner/p-banner.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-button/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-button/p-button.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-button-pure/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/p-button-pure.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-button-tile/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/p-button-tile.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-canvas/examples/Default.tsx +111 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-canvas/p-canvas.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-carousel/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/p-carousel.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-checkbox/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/p-checkbox.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-crest/accessibility.md +17 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-crest/p-crest.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-divider/accessibility.md +41 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-divider/p-divider.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-drilldown/accessibility.md +65 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/p-drilldown.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-fieldset/accessibility.md +37 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/p-fieldset.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-flag/accessibility.md +39 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-flag/p-flag.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-flyout/accessibility.md +80 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/p-flyout.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-heading/accessibility.md +29 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-heading/p-heading.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-icon/accessibility.md +39 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Overview.tsx +6 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-icon/p-icon.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-inline-notification/accessibility.md +36 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/p-inline-notification.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-input-date/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/p-input-date.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-email/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/p-input-email.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-month/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/p-input-month.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-number/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/p-input-number.md +7 -3
- package/skills/pds-knowledge-react/references/components/p-input-password/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/p-input-password.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-search/accessibility.md +59 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/p-input-search.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-tel/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/p-input-tel.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-text/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/p-input-text.md +7 -3
- package/skills/pds-knowledge-react/references/components/p-input-time/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/p-input-time.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-url/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/p-input-url.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-input-week/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/p-input-week.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-link/accessibility.md +73 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-link/p-link.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-link-pure/accessibility.md +73 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/p-link-pure.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-link-tile/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/p-link-tile.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-modal/accessibility.md +80 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-modal/p-modal.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-multi-select/accessibility.md +78 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/AsyncFilter.tsx +29 -6
- package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/p-multi-select.md +6 -2
- package/skills/pds-knowledge-react/references/components/p-pagination/accessibility.md +23 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-pagination/p-pagination.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-pin-code/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/p-pin-code.md +6 -2
- package/skills/pds-knowledge-react/references/components/p-popover/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-popover/p-popover.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-radio-group/accessibility.md +63 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Form.tsx +2 -2
- package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/p-radio-group.md +7 -3
- package/skills/pds-knowledge-react/references/components/p-scroller/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/p-scroller.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-segmented-control/accessibility.md +67 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/p-segmented-control.md +6 -2
- package/skills/pds-knowledge-react/references/components/p-select/accessibility.md +140 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/AsyncFilter.tsx +29 -6
- package/{skill → skills/pds-knowledge-react}/references/components/p-select/p-select.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-sheet/accessibility.md +80 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-sheet/p-sheet.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-spinner/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/p-spinner.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-stepper-horizontal/accessibility.md +34 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-stepper-horizontal/p-stepper-horizontal.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-switch/accessibility.md +35 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-switch/p-switch.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-table/accessibility.md +47 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Sorting.tsx +9 -8
- package/{skill → skills/pds-knowledge-react}/references/components/p-table/p-table.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-tabs/accessibility.md +56 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/p-tabs.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-tabs-bar/accessibility.md +61 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/p-tabs-bar.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-tag/accessibility.md +19 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-tag/p-tag.md +5 -1
- package/skills/pds-knowledge-react/references/components/p-tag-dismissible/accessibility.md +35 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-tag-dismissible/p-tag-dismissible.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-text/accessibility.md +21 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-text/p-text.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-text-list/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-text-list/p-text-list.md +4 -0
- package/skills/pds-knowledge-react/references/components/p-textarea/accessibility.md +45 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/p-textarea.md +4 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-toast/p-toast.md +1 -1
- package/skills/pds-knowledge-react/references/components/p-wordmark/accessibility.md +31 -0
- package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/p-wordmark.md +5 -1
- package/skills/pds-knowledge-react/references/icons.md +5 -0
- package/{skill → skills/pds-knowledge-react}/references/styles/tailwindcss.md +1 -1
- package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +207 -8
- package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +241 -40
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/ai-tag.wrapper.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group.wrapper.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.cjs +4 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/filter-status-announcer.cjs +7 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +3 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/no-results-option.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +7 -3
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.cjs +4 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.cjs +5 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +3 -4
- package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +207 -9
- package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +237 -41
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/ai-tag.wrapper.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group.wrapper.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +4 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/filter-status-announcer.mjs +5 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +3 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/no-results-option.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +7 -3
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.mjs +4 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.mjs +5 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +3 -4
- package/ssr/esm/lib/components/ai-tag.wrapper.d.ts +4 -4
- package/ssr/esm/lib/components/input-number.wrapper.d.ts +6 -6
- package/ssr/esm/lib/components/input-text.wrapper.d.ts +6 -6
- package/ssr/esm/lib/components/multi-select-option.wrapper.d.ts +2 -2
- package/ssr/esm/lib/components/pin-code.wrapper.d.ts +6 -6
- package/ssr/esm/lib/components/radio-group-option.wrapper.d.ts +4 -4
- package/ssr/esm/lib/components/radio-group.wrapper.d.ts +4 -6
- package/ssr/esm/lib/components/segmented-control.wrapper.d.ts +4 -4
- package/ssr/esm/lib/components/wordmark.wrapper.d.ts +2 -2
- package/ssr/esm/lib/dsr-components/carousel.d.ts +3 -0
- package/ssr/esm/lib/dsr-components/filter-status-announcer.d.ts +6 -0
- package/ssr/esm/lib/dsr-components/multi-select.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/pin-code.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/radio-group.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/segmented-control.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/select.d.ts +1 -1
- package/ssr/esm/lib/types.d.ts +184 -213
- package/skill/references/components/p-ai-tag/p-ai-tag.md +0 -47
- package/skill/references/components/p-canvas/examples/Default.tsx +0 -10
- package/skill/references/icons.md +0 -5
- /package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/examples/InteractiveElementsInSummary.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-accordion/examples/StickySummary.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinCheckbox.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinFormLabel.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinImage.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinInputSearch.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinRadioGroup.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinTable.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-ai-tag/examples/WithinText.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-banner/examples/Customization.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-banner/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button/examples/FormAttribute.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/CustomClickableArea.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-pure/examples/FormAttribute.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/ColorScheme.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/FooterSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/Hyphens.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-button-tile/examples/UiBehaviour.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/DynamicSlides.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/FlexibleWidths.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/FocusOnCenterSlide.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/Intl.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-carousel/examples/JumpToSlide.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Indeterminate.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-checkbox/examples/WrappedLabel.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-crest/examples/CustomClickableArea.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-crest/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-crest/examples/Link.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Color.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Semantics.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/examples/SizeResponsive.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-display/p-display.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-divider/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-divider/examples/Responsive.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-divider/examples/Vertical.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/examples/CustomContent.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-drilldown/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/Required.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/SlottedLabel.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-fieldset/examples/SlottedMessage.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/ResponsiveSize.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flag/examples/SizeCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/CustomStyling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-flyout/examples/StickyTop.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-heading/examples/Color.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-heading/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-heading/examples/Semantics.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Color.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/ColorCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Custom.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/ResponsiveSize.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-icon/examples/SizeCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/examples/ActionButton.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-inline-notification/examples/EventHandling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-date/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-email/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-month/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-number/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-password/examples/Toggle.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/AriaCombobox.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-search/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-tel/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Controlled.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-text/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-time/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-url/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-input-week/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link/examples/FrameworkRouting.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link/examples/Icon.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/CustomClickableArea.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/FrameworkRouting.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-pure/examples/Icon.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/ColorScheme.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/FooterSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/Hyphens.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/UiBehaviour.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile/examples/WithVideo.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile-product/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile-product/examples/FrameworkRouting.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-link-tile-product/p-link-tile-product.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/AlertDialog.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/CustomStyling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-modal/examples/Scrollable.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/CustomStyling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/MaskBlendMode.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/MaskImage.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/MaskVideo.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/examples/SafeZone.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-model-signature/p-model-signature.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Optgroups.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/SelectedSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/SetValue.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-multi-select/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pagination/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/CopyPaste.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-pin-code/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-popover/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-popover/examples/SlottedButton.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-radio-group/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/examples/Height.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-scroller/examples/ScrollToPosition.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-segmented-control/examples/WithLabels.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Optgroups.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Required.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/SelectedSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/SetValue.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-select/examples/SlottedImages.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-sheet/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/Color.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/ColorCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/ResponsiveSize.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-spinner/examples/SizeCssVar.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-stepper-horizontal/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-stepper-horizontal/examples/FrameworkImplementation.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-switch/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Advanced.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/CaptionProperty.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/CaptionSlot.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/HideLabel.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-table/examples/LayoutFixed.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/ActiveTab.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/Gradient.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs/examples/Labelling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Gradient.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Labelling.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tabs-bar/examples/Links.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/Multiline.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/SlottedButton.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag/examples/SlottedLink.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-tag-dismissible/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/Semantics.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text/examples/SizeResponsive.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-text-list/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/examples/Form.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-textarea/examples/Slots.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-toast/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/examples/CustomClickableArea.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/examples/Default.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/components/p-wordmark/examples/Size.tsx +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/styles/emotion.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/styles/scss.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/styles/vanilla-extract.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/stylesheets.md +0 -0
- /package/{skill → skills/pds-knowledge-react}/references/tokens.md +0 -0
package/bin/pds-skill.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
// Links
|
|
4
|
-
// wrapper exposes this same bin through the local node_modules/.bin directory;
|
|
5
|
-
// which installed wrapper supplies the
|
|
3
|
+
// Links locally installed Porsche Design System wrapper skills into the consumer project.
|
|
4
|
+
// Every wrapper package exposes this same bin through the local node_modules/.bin directory;
|
|
5
|
+
// --package selects which installed wrapper supplies the skills, independently of which
|
|
6
|
+
// wrapper supplies the bin.
|
|
6
7
|
//
|
|
7
|
-
// --location is the destination parent directory for the
|
|
8
|
-
// `.github/skills`). Relative locations resolve from the cwd.
|
|
8
|
+
// --location is the destination parent directory for the skill links (e.g. `.claude/skills`,
|
|
9
|
+
// `.agents`, `.github/skills`). Relative locations resolve from the cwd.
|
|
9
10
|
//
|
|
10
|
-
//
|
|
11
|
+
// --skill may be repeated to install only named skills. Omit it to install all discovered skills.
|
|
12
|
+
//
|
|
13
|
+
// pds-skill --package <package> --location <dir> [--skill <name>...]
|
|
11
14
|
//
|
|
12
15
|
// This is the canonical source copied into all four wrapper package distributions by their
|
|
13
16
|
// `build:subPackages:skill:bin` steps.
|
|
@@ -23,13 +26,14 @@ const SUPPORTED_PACKAGES = [
|
|
|
23
26
|
'@porsche-design-system/components-vue',
|
|
24
27
|
];
|
|
25
28
|
const USAGE = [
|
|
26
|
-
'Usage: pds-skill --package <package> --location <dir>',
|
|
29
|
+
'Usage: pds-skill --package <package> --location <dir> [--skill <name>...]',
|
|
27
30
|
'',
|
|
28
31
|
'Required options:',
|
|
29
32
|
' -p, --package <package> locally installed Porsche Design System wrapper',
|
|
30
|
-
' -l, --location <dir> destination parent directory for the skill
|
|
33
|
+
' -l, --location <dir> destination parent directory for the skill links',
|
|
31
34
|
'',
|
|
32
35
|
'Options:',
|
|
36
|
+
' -s, --skill <name> install only the named skill (repeatable); omit to install all',
|
|
33
37
|
' -h, --help print this usage',
|
|
34
38
|
'',
|
|
35
39
|
`Supported packages: ${SUPPORTED_PACKAGES.join(', ')}`,
|
|
@@ -50,6 +54,7 @@ const parseOptions = (args) => {
|
|
|
50
54
|
options: {
|
|
51
55
|
package: { type: 'string', short: 'p' },
|
|
52
56
|
location: { type: 'string', short: 'l' },
|
|
57
|
+
skill: { type: 'string', short: 's', multiple: true },
|
|
53
58
|
help: { type: 'boolean', short: 'h' },
|
|
54
59
|
},
|
|
55
60
|
strict: true,
|
|
@@ -60,8 +65,6 @@ const parseOptions = (args) => {
|
|
|
60
65
|
}
|
|
61
66
|
};
|
|
62
67
|
|
|
63
|
-
const linkNameFromPackage = (packageName) => packageName.slice(1).replace('/', '-');
|
|
64
|
-
|
|
65
68
|
const readPackageManifest = (packageJsonPath) => {
|
|
66
69
|
let content;
|
|
67
70
|
try {
|
|
@@ -86,7 +89,21 @@ const readPackageManifest = (packageJsonPath) => {
|
|
|
86
89
|
}
|
|
87
90
|
};
|
|
88
91
|
|
|
89
|
-
|
|
92
|
+
/** Parse the frontmatter `name:` value from SKILL.md content. Returns null if not found. */
|
|
93
|
+
const parseFrontmatterName = (content) => {
|
|
94
|
+
const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
95
|
+
if (!fmMatch) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const nameMatch = fmMatch[1].match(/^name:\s*(\S+)/m);
|
|
99
|
+
return nameMatch ? nameMatch[1] : null;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Validate that the SKILL.md at skillMdPath is a readable regular file with a frontmatter name
|
|
104
|
+
* matching expectedName. Calls fail() on any violation.
|
|
105
|
+
*/
|
|
106
|
+
const validateSkillMd = (skillMdPath, expectedName) => {
|
|
90
107
|
let stats;
|
|
91
108
|
try {
|
|
92
109
|
stats = fs.statSync(skillMdPath);
|
|
@@ -104,18 +121,45 @@ const validateSkillEntry = (skillMdPath) => {
|
|
|
104
121
|
fail(`${skillMdPath} is not a file. Reinstall the package and re-run.`);
|
|
105
122
|
}
|
|
106
123
|
|
|
124
|
+
let content;
|
|
107
125
|
try {
|
|
108
|
-
|
|
109
|
-
fs.closeSync(descriptor);
|
|
126
|
+
content = fs.readFileSync(skillMdPath, 'utf8');
|
|
110
127
|
} catch (error) {
|
|
111
128
|
if (isPermissionError(error)) {
|
|
112
129
|
fail(`Cannot read ${skillMdPath}: permission denied. Check the package permissions and re-run.`);
|
|
113
130
|
}
|
|
114
131
|
throw error;
|
|
115
132
|
}
|
|
133
|
+
|
|
134
|
+
const name = parseFrontmatterName(content);
|
|
135
|
+
if (name !== expectedName) {
|
|
136
|
+
fail(
|
|
137
|
+
`${skillMdPath} has frontmatter name "${name ?? '(none)'}" but its directory is "${expectedName}". Reinstall the package and re-run.`
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
/** Preflight the destination link path. Fails if something other than a symlink (or nothing) exists there. */
|
|
143
|
+
const preflightDestLink = (linkPath, show) => {
|
|
144
|
+
let existing;
|
|
145
|
+
try {
|
|
146
|
+
existing = fs.lstatSync(linkPath);
|
|
147
|
+
} catch (error) {
|
|
148
|
+
if (error.code === 'ENOENT') {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (isPermissionError(error)) {
|
|
152
|
+
fail(`Cannot inspect ${show(linkPath)}: permission denied. Check the destination permissions and re-run.`);
|
|
153
|
+
}
|
|
154
|
+
throw error;
|
|
155
|
+
}
|
|
156
|
+
if (!existing.isSymbolicLink()) {
|
|
157
|
+
fail(`Refusing to replace ${show(linkPath)}: it exists and is not a symlink. Remove it manually and re-run.`);
|
|
158
|
+
}
|
|
116
159
|
};
|
|
117
160
|
|
|
118
|
-
|
|
161
|
+
/** Resolve the installed package directory by walking up from cwd. Fails if not found. */
|
|
162
|
+
const resolvePackageDir = (packageName, cwd) => {
|
|
119
163
|
if (!SUPPORTED_PACKAGES.includes(packageName)) {
|
|
120
164
|
fail(`Unsupported package: ${packageName}\n${USAGE}`);
|
|
121
165
|
}
|
|
@@ -130,9 +174,7 @@ const skillDirFromPackage = (packageName, cwd) => {
|
|
|
130
174
|
if (installedName !== packageName) {
|
|
131
175
|
fail(`Expected ${packageName} at ${packageDir}, but found ${installedName || 'a package without a name'}.`);
|
|
132
176
|
}
|
|
133
|
-
|
|
134
|
-
validateSkillEntry(path.join(skillDir, 'SKILL.md'));
|
|
135
|
-
return skillDir;
|
|
177
|
+
return packageDir;
|
|
136
178
|
}
|
|
137
179
|
|
|
138
180
|
const parent = path.dirname(dir);
|
|
@@ -143,20 +185,36 @@ const skillDirFromPackage = (packageName, cwd) => {
|
|
|
143
185
|
}
|
|
144
186
|
};
|
|
145
187
|
|
|
188
|
+
/** Discover sorted child directory names under skillsDir. Returns empty array if the dir is absent. */
|
|
189
|
+
const discoverSkillNames = (skillsDir) => {
|
|
190
|
+
let entries;
|
|
191
|
+
try {
|
|
192
|
+
entries = fs.readdirSync(skillsDir, { withFileTypes: true });
|
|
193
|
+
} catch (error) {
|
|
194
|
+
if (isMissingPathError(error)) {
|
|
195
|
+
return [];
|
|
196
|
+
}
|
|
197
|
+
if (isPermissionError(error)) {
|
|
198
|
+
fail(`Cannot read ${skillsDir}: permission denied. Check the package permissions and re-run.`);
|
|
199
|
+
}
|
|
200
|
+
throw error;
|
|
201
|
+
}
|
|
202
|
+
return entries
|
|
203
|
+
.filter((e) => e.isDirectory())
|
|
204
|
+
.map((e) => e.name)
|
|
205
|
+
.sort();
|
|
206
|
+
};
|
|
207
|
+
|
|
146
208
|
const main = () => {
|
|
147
209
|
const options = parseOptions(process.argv.slice(2));
|
|
148
210
|
if (options.help) {
|
|
149
211
|
console.log(USAGE);
|
|
150
212
|
return;
|
|
151
213
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
!options.location && '--location',
|
|
155
|
-
].filter(Boolean);
|
|
214
|
+
|
|
215
|
+
const missingOptions = [!options.package && '--package', !options.location && '--location'].filter(Boolean);
|
|
156
216
|
if (missingOptions.length > 0) {
|
|
157
|
-
fail(
|
|
158
|
-
`Missing required option${missingOptions.length > 1 ? 's' : ''}: ${missingOptions.join(' and ')}\n${USAGE}`
|
|
159
|
-
);
|
|
217
|
+
fail(`Missing required option${missingOptions.length > 1 ? 's' : ''}: ${missingOptions.join(' and ')}\n${USAGE}`);
|
|
160
218
|
}
|
|
161
219
|
|
|
162
220
|
if (process.versions.pnp) {
|
|
@@ -168,92 +226,121 @@ const main = () => {
|
|
|
168
226
|
const cwd = process.cwd();
|
|
169
227
|
const packageName = options.package;
|
|
170
228
|
const destArg = options.location;
|
|
171
|
-
const
|
|
172
|
-
|
|
229
|
+
const requestedSkills = options.skill ?? [];
|
|
230
|
+
|
|
231
|
+
const packageDir = resolvePackageDir(packageName, cwd);
|
|
232
|
+
const skillsDir = path.join(packageDir, 'skills');
|
|
233
|
+
const discovered = discoverSkillNames(skillsDir);
|
|
234
|
+
|
|
235
|
+
if (discovered.length === 0) {
|
|
236
|
+
fail(`The installed package does not ship any skills at ${skillsDir}. Upgrade the package and re-run.`);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Validate --skill filters; unknown names fail clearly.
|
|
240
|
+
if (requestedSkills.length > 0) {
|
|
241
|
+
const unknown = requestedSkills.filter((s) => !discovered.includes(s));
|
|
242
|
+
if (unknown.length > 0) {
|
|
243
|
+
fail(
|
|
244
|
+
`Unknown skill${unknown.length > 1 ? 's' : ''}: ${unknown.join(', ')}. ` +
|
|
245
|
+
`Available: ${[...discovered].sort().join(', ')}.`
|
|
246
|
+
);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// Deterministic sorted selection.
|
|
251
|
+
const selected =
|
|
252
|
+
requestedSkills.length > 0
|
|
253
|
+
? [...new Set(requestedSkills)].filter((s) => discovered.includes(s)).sort()
|
|
254
|
+
: discovered;
|
|
173
255
|
|
|
174
|
-
const
|
|
175
|
-
const linkPath = path.join(skillsDir, linkName);
|
|
256
|
+
const destDir = path.isAbsolute(destArg) ? destArg : path.resolve(cwd, destArg);
|
|
176
257
|
|
|
177
|
-
// Prefer a cwd-relative path in messages;
|
|
258
|
+
// Prefer a cwd-relative path in messages; fall back to absolute when outside.
|
|
178
259
|
const show = (target) => {
|
|
179
260
|
const rel = path.relative(cwd, target);
|
|
180
261
|
return rel && !rel.startsWith('..') && !path.isAbsolute(rel) ? rel : target;
|
|
181
262
|
};
|
|
182
263
|
|
|
264
|
+
// Preflight every selected skill tree before touching the destination at all.
|
|
265
|
+
for (const skillName of selected) {
|
|
266
|
+
validateSkillMd(path.join(skillsDir, skillName, 'SKILL.md'), skillName);
|
|
267
|
+
}
|
|
268
|
+
|
|
183
269
|
try {
|
|
184
|
-
fs.mkdirSync(
|
|
270
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
185
271
|
} catch (error) {
|
|
186
272
|
if (error.code === 'ENOTDIR' || error.code === 'EEXIST') {
|
|
187
|
-
fail(`Cannot create ${show(
|
|
273
|
+
fail(`Cannot create ${show(destDir)}: a parent path exists as a file, not a directory. Remove it and re-run.`);
|
|
188
274
|
}
|
|
189
275
|
if (isPermissionError(error)) {
|
|
190
|
-
fail(`Cannot create ${show(
|
|
276
|
+
fail(`Cannot create ${show(destDir)}: permission denied. Check the destination permissions and re-run.`);
|
|
191
277
|
}
|
|
192
278
|
throw error;
|
|
193
279
|
}
|
|
194
280
|
|
|
195
|
-
//
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
let existing = null;
|
|
199
|
-
try {
|
|
200
|
-
existing = fs.lstatSync(linkPath);
|
|
201
|
-
} catch (error) {
|
|
202
|
-
if (error.code === 'ENOENT') {
|
|
203
|
-
existing = null;
|
|
204
|
-
} else if (isPermissionError(error)) {
|
|
205
|
-
fail(`Cannot inspect ${show(linkPath)}: permission denied. Check the destination permissions and re-run.`);
|
|
206
|
-
} else {
|
|
207
|
-
throw error;
|
|
208
|
-
}
|
|
281
|
+
// Preflight all destination links before any mutation.
|
|
282
|
+
for (const skillName of selected) {
|
|
283
|
+
preflightDestLink(path.join(destDir, skillName), show);
|
|
209
284
|
}
|
|
210
|
-
if (existing) {
|
|
211
|
-
if (!existing.isSymbolicLink()) {
|
|
212
|
-
fail(`Refusing to replace ${show(linkPath)}: it exists and is not a symlink. Remove it manually and re-run.`);
|
|
213
|
-
}
|
|
214
285
|
|
|
286
|
+
// All preflights passed — perform link operations.
|
|
287
|
+
const linkType = process.platform === 'win32' ? 'junction' : 'dir';
|
|
288
|
+
for (const skillName of selected) {
|
|
289
|
+
const skillDir = path.join(skillsDir, skillName);
|
|
290
|
+
const linkPath = path.join(destDir, skillName);
|
|
291
|
+
|
|
292
|
+
// Idempotent: repoint an existing symlink (including a dangling one), but never touch a
|
|
293
|
+
// real directory a user may have hand-maintained — the preflight above already rejected that.
|
|
294
|
+
let existingLink = null;
|
|
215
295
|
try {
|
|
216
|
-
|
|
217
|
-
console.log(`Porsche Design System skill already linked: ${show(linkPath)} -> ${skillDir}`);
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
296
|
+
existingLink = fs.lstatSync(linkPath);
|
|
220
297
|
} catch (error) {
|
|
221
|
-
if (error.code
|
|
222
|
-
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
|
|
298
|
+
if (error.code !== 'ENOENT') {
|
|
299
|
+
throw error;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (existingLink?.isSymbolicLink()) {
|
|
304
|
+
try {
|
|
305
|
+
if (fs.realpathSync(linkPath) === fs.realpathSync(skillDir)) {
|
|
306
|
+
console.log(`Porsche Design System skill already linked: ${show(linkPath)} -> ${skillDir}`);
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
} catch (error) {
|
|
310
|
+
if (error.code !== 'ENOENT') {
|
|
311
|
+
if (isPermissionError(error)) {
|
|
312
|
+
fail(`Cannot inspect ${show(linkPath)}: permission denied. Check the destination permissions and re-run.`);
|
|
313
|
+
}
|
|
314
|
+
throw error;
|
|
315
|
+
}
|
|
316
|
+
// Dangling symlink — fall through to replace it.
|
|
317
|
+
}
|
|
318
|
+
try {
|
|
319
|
+
fs.rmSync(linkPath, { force: true });
|
|
320
|
+
} catch (error) {
|
|
321
|
+
if (isPermissionError(error)) {
|
|
322
|
+
fail(`Cannot replace ${show(linkPath)}: permission denied. Check the destination permissions and re-run.`);
|
|
323
|
+
}
|
|
226
324
|
throw error;
|
|
227
325
|
}
|
|
228
326
|
}
|
|
327
|
+
|
|
229
328
|
try {
|
|
230
|
-
fs.
|
|
329
|
+
fs.symlinkSync(skillDir, linkPath, linkType);
|
|
231
330
|
} catch (error) {
|
|
331
|
+
if (process.platform === 'win32' && error.code === 'EPERM') {
|
|
332
|
+
fail(
|
|
333
|
+
`Could not create the skill junction on Windows (EPERM). Check the destination permissions or create it manually:\n mklink /J "${linkPath}" "${skillDir}"`
|
|
334
|
+
);
|
|
335
|
+
}
|
|
232
336
|
if (isPermissionError(error)) {
|
|
233
|
-
fail(`Cannot
|
|
337
|
+
fail(`Cannot create ${show(linkPath)}: permission denied. Check the destination permissions and re-run.`);
|
|
234
338
|
}
|
|
235
339
|
throw error;
|
|
236
340
|
}
|
|
237
|
-
}
|
|
238
341
|
|
|
239
|
-
|
|
240
|
-
// the absolute target we already hold. macOS/Linux use a normal directory symlink.
|
|
241
|
-
const linkType = process.platform === 'win32' ? 'junction' : 'dir';
|
|
242
|
-
try {
|
|
243
|
-
fs.symlinkSync(skillDir, linkPath, linkType);
|
|
244
|
-
} catch (error) {
|
|
245
|
-
if (process.platform === 'win32' && error.code === 'EPERM') {
|
|
246
|
-
fail(
|
|
247
|
-
`Could not create the skill junction on Windows (EPERM). Check the destination permissions or create it manually:\n mklink /J "${linkPath}" "${skillDir}"`
|
|
248
|
-
);
|
|
249
|
-
}
|
|
250
|
-
if (isPermissionError(error)) {
|
|
251
|
-
fail(`Cannot create ${show(linkPath)}: permission denied. Check the destination permissions and re-run.`);
|
|
252
|
-
}
|
|
253
|
-
throw error;
|
|
342
|
+
console.log(`Linked Porsche Design System skill: ${show(linkPath)} -> ${skillDir}`);
|
|
254
343
|
}
|
|
255
|
-
|
|
256
|
-
console.log(`Linked Porsche Design System skill: ${show(linkPath)} -> ${skillDir}`);
|
|
257
344
|
};
|
|
258
345
|
|
|
259
346
|
main();
|
|
@@ -6,7 +6,7 @@ var react = require('react');
|
|
|
6
6
|
var hooks = require('../../hooks.cjs');
|
|
7
7
|
var utils = require('../../utils.cjs');
|
|
8
8
|
|
|
9
|
-
const PAiTag = /*#__PURE__*/ react.forwardRef(({ locale = '
|
|
9
|
+
const PAiTag = /*#__PURE__*/ react.forwardRef(({ locale = 'en-US', variant = 'generated', className, ...rest }, ref) => {
|
|
10
10
|
const elementRef = react.useRef(undefined);
|
|
11
11
|
const WebComponentTag = hooks.usePrefix('p-ai-tag');
|
|
12
12
|
const propsToSync = [locale, variant];
|
|
@@ -6,7 +6,7 @@ var react = require('react');
|
|
|
6
6
|
var hooks = require('../../hooks.cjs');
|
|
7
7
|
var utils = require('../../utils.cjs');
|
|
8
8
|
|
|
9
|
-
const PRadioGroup = /*#__PURE__*/ react.forwardRef(({ compact = false, description = '', direction = 'column', disabled = false, form, hideLabel = false, label = '', loading = false, message = '', name, onBlur, onChange, required = false, state = 'none', value
|
|
9
|
+
const PRadioGroup = /*#__PURE__*/ react.forwardRef(({ compact = false, description = '', direction = 'column', disabled = false, form, hideLabel = false, label = '', loading = false, message = '', name, onBlur, onChange, required = false, state = 'none', value, className, ...rest }, ref) => {
|
|
10
10
|
const elementRef = react.useRef(undefined);
|
|
11
11
|
hooks.useEventCallback(elementRef, 'blur', onBlur);
|
|
12
12
|
hooks.useEventCallback(elementRef, 'change', onChange);
|
|
@@ -2,8 +2,8 @@ import type { BaseProps } from '../../BaseProps';
|
|
|
2
2
|
import type { AiTagLocale, AiTagVariant } from '../types';
|
|
3
3
|
export type PAiTagProps = BaseProps & {
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @default '
|
|
5
|
+
* Market locale for the AI text (BCP47, e.g. `en-US`). Language-only `en` is supported for international markets. POSIX forms (e.g. `en_US`) are deprecated but still accepted. Copy is resolved by language; unknown languages fall back to English.
|
|
6
|
+
* @default 'en-US'
|
|
7
7
|
*/
|
|
8
8
|
locale?: AiTagLocale;
|
|
9
9
|
/**
|
|
@@ -14,8 +14,8 @@ export type PAiTagProps = BaseProps & {
|
|
|
14
14
|
};
|
|
15
15
|
export declare const PAiTag: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "inputMode" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
* @default '
|
|
17
|
+
* Market locale for the AI text (BCP47, e.g. `en-US`). Language-only `en` is supported for international markets. POSIX forms (e.g. `en_US`) are deprecated but still accepted. Copy is resolved by language; unknown languages fall back to English.
|
|
18
|
+
* @default 'en-US'
|
|
19
19
|
*/
|
|
20
20
|
locale?: AiTagLocale;
|
|
21
21
|
/**
|
|
@@ -4,7 +4,7 @@ import { forwardRef, useRef } from 'react';
|
|
|
4
4
|
import { usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
|
|
5
5
|
import { syncRef } from '../../utils.mjs';
|
|
6
6
|
|
|
7
|
-
const PAiTag = /*#__PURE__*/ forwardRef(({ locale = '
|
|
7
|
+
const PAiTag = /*#__PURE__*/ forwardRef(({ locale = 'en-US', variant = 'generated', className, ...rest }, ref) => {
|
|
8
8
|
const elementRef = useRef(undefined);
|
|
9
9
|
const WebComponentTag = usePrefix('p-ai-tag');
|
|
10
10
|
const propsToSync = [locale, variant];
|
|
@@ -66,11 +66,11 @@ export type PInputNumberProps = BaseProps & {
|
|
|
66
66
|
*/
|
|
67
67
|
onBlur?: (event: CustomEvent<InputNumberBlurEventDetail>) => void;
|
|
68
68
|
/**
|
|
69
|
-
* Emitted when the number input loses focus after its value was changed.
|
|
69
|
+
* Emitted when the number input loses focus after its value was changed. The component value and native event target value are strings after user input.
|
|
70
70
|
*/
|
|
71
71
|
onChange?: (event: CustomEvent<InputNumberChangeEventDetail>) => void;
|
|
72
72
|
/**
|
|
73
|
-
* Emitted when the value has been changed as a direct result of a user action.
|
|
73
|
+
* Emitted when the value has been changed as a direct result of a user action. The component value and native event target value are strings.
|
|
74
74
|
*/
|
|
75
75
|
onInput?: (event: CustomEvent<InputNumberInputEventDetail>) => void;
|
|
76
76
|
/**
|
|
@@ -99,7 +99,7 @@ export type PInputNumberProps = BaseProps & {
|
|
|
99
99
|
*/
|
|
100
100
|
step?: number;
|
|
101
101
|
/**
|
|
102
|
-
* Sets the current numeric value
|
|
102
|
+
* Sets the current numeric value. Strings and numbers are accepted for programmatic assignment, but user input updates the value as a string to mirror native input behavior.
|
|
103
103
|
* @default ''
|
|
104
104
|
*/
|
|
105
105
|
value?: string | number | null;
|
|
@@ -170,11 +170,11 @@ export declare const PInputNumber: import("react").ForwardRefExoticComponent<Omi
|
|
|
170
170
|
*/
|
|
171
171
|
onBlur?: (event: CustomEvent<InputNumberBlurEventDetail>) => void;
|
|
172
172
|
/**
|
|
173
|
-
* Emitted when the number input loses focus after its value was changed.
|
|
173
|
+
* Emitted when the number input loses focus after its value was changed. The component value and native event target value are strings after user input.
|
|
174
174
|
*/
|
|
175
175
|
onChange?: (event: CustomEvent<InputNumberChangeEventDetail>) => void;
|
|
176
176
|
/**
|
|
177
|
-
* Emitted when the value has been changed as a direct result of a user action.
|
|
177
|
+
* Emitted when the value has been changed as a direct result of a user action. The component value and native event target value are strings.
|
|
178
178
|
*/
|
|
179
179
|
onInput?: (event: CustomEvent<InputNumberInputEventDetail>) => void;
|
|
180
180
|
/**
|
|
@@ -203,7 +203,7 @@ export declare const PInputNumber: import("react").ForwardRefExoticComponent<Omi
|
|
|
203
203
|
*/
|
|
204
204
|
step?: number;
|
|
205
205
|
/**
|
|
206
|
-
* Sets the current numeric value
|
|
206
|
+
* Sets the current numeric value. Strings and numbers are accepted for programmatic assignment, but user input updates the value as a string to mirror native input behavior.
|
|
207
207
|
* @default ''
|
|
208
208
|
*/
|
|
209
209
|
value?: string | number | null;
|
|
@@ -66,11 +66,11 @@ export type PInputTextProps = BaseProps & {
|
|
|
66
66
|
*/
|
|
67
67
|
onBlur?: (event: CustomEvent<InputTextBlurEventDetail>) => void;
|
|
68
68
|
/**
|
|
69
|
-
* Emitted when the input loses focus after its value was changed.
|
|
69
|
+
* Emitted when the input loses focus after its value was changed. The component value and native event target value are strings after user input.
|
|
70
70
|
*/
|
|
71
71
|
onChange?: (event: CustomEvent<InputTextChangeEventDetail>) => void;
|
|
72
72
|
/**
|
|
73
|
-
* Emitted on every value change as the user types.
|
|
73
|
+
* Emitted on every value change as the user types. The component value and native event target value are strings.
|
|
74
74
|
*/
|
|
75
75
|
onInput?: (event: CustomEvent<InputTextInputEventDetail>) => void;
|
|
76
76
|
/**
|
|
@@ -98,7 +98,7 @@ export type PInputTextProps = BaseProps & {
|
|
|
98
98
|
*/
|
|
99
99
|
state?: InputTextState;
|
|
100
100
|
/**
|
|
101
|
-
* Sets the current text value
|
|
101
|
+
* Sets the current text value. Numbers are accepted for programmatic assignment, but user input updates the value as a string.
|
|
102
102
|
* @default ''
|
|
103
103
|
*/
|
|
104
104
|
value?: string | number | null;
|
|
@@ -169,11 +169,11 @@ export declare const PInputText: import("react").ForwardRefExoticComponent<Omit<
|
|
|
169
169
|
*/
|
|
170
170
|
onBlur?: (event: CustomEvent<InputTextBlurEventDetail>) => void;
|
|
171
171
|
/**
|
|
172
|
-
* Emitted when the input loses focus after its value was changed.
|
|
172
|
+
* Emitted when the input loses focus after its value was changed. The component value and native event target value are strings after user input.
|
|
173
173
|
*/
|
|
174
174
|
onChange?: (event: CustomEvent<InputTextChangeEventDetail>) => void;
|
|
175
175
|
/**
|
|
176
|
-
* Emitted on every value change as the user types.
|
|
176
|
+
* Emitted on every value change as the user types. The component value and native event target value are strings.
|
|
177
177
|
*/
|
|
178
178
|
onInput?: (event: CustomEvent<InputTextInputEventDetail>) => void;
|
|
179
179
|
/**
|
|
@@ -201,7 +201,7 @@ export declare const PInputText: import("react").ForwardRefExoticComponent<Omit<
|
|
|
201
201
|
*/
|
|
202
202
|
state?: InputTextState;
|
|
203
203
|
/**
|
|
204
|
-
* Sets the current text value
|
|
204
|
+
* Sets the current text value. Numbers are accepted for programmatic assignment, but user input updates the value as a string.
|
|
205
205
|
* @default ''
|
|
206
206
|
*/
|
|
207
207
|
value?: string | number | null;
|
|
@@ -6,7 +6,7 @@ export type PMultiSelectOptionProps = BaseProps & {
|
|
|
6
6
|
*/
|
|
7
7
|
disabled?: boolean;
|
|
8
8
|
/**
|
|
9
|
-
* Sets the value submitted with the form data when
|
|
9
|
+
* Sets the required option value submitted with the form data when selected. Must be a string or number.
|
|
10
10
|
*/
|
|
11
11
|
value: string | number;
|
|
12
12
|
};
|
|
@@ -17,7 +17,7 @@ export declare const PMultiSelectOption: import("react").ForwardRefExoticCompone
|
|
|
17
17
|
*/
|
|
18
18
|
disabled?: boolean;
|
|
19
19
|
/**
|
|
20
|
-
* Sets the value submitted with the form data when
|
|
20
|
+
* Sets the required option value submitted with the form data when selected. Must be a string or number.
|
|
21
21
|
*/
|
|
22
22
|
value: string | number;
|
|
23
23
|
} & {
|
|
@@ -54,7 +54,7 @@ export type PPinCodeProps = BaseProps & {
|
|
|
54
54
|
*/
|
|
55
55
|
onBlur?: (event: CustomEvent<void>) => void;
|
|
56
56
|
/**
|
|
57
|
-
* Emitted when the pin code value changes as the user types, carrying
|
|
57
|
+
* Emitted when the pin code value changes as the user types, carrying `{ value: string; isComplete: boolean }` in the event detail.
|
|
58
58
|
*/
|
|
59
59
|
onChange?: (event: CustomEvent<PinCodeChangeEventDetail>) => void;
|
|
60
60
|
/**
|
|
@@ -73,10 +73,10 @@ export type PPinCodeProps = BaseProps & {
|
|
|
73
73
|
*/
|
|
74
74
|
type?: PinCodeType;
|
|
75
75
|
/**
|
|
76
|
-
* Sets the current concatenated value
|
|
76
|
+
* Sets the current concatenated value. Numbers are accepted for programmatic assignment, but user input updates the value as a string.
|
|
77
77
|
* @default ''
|
|
78
78
|
*/
|
|
79
|
-
value?: string;
|
|
79
|
+
value?: string | number | null;
|
|
80
80
|
};
|
|
81
81
|
export declare const PPinCode: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "inputMode" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
82
82
|
/**
|
|
@@ -132,7 +132,7 @@ export declare const PPinCode: import("react").ForwardRefExoticComponent<Omit<im
|
|
|
132
132
|
*/
|
|
133
133
|
onBlur?: (event: CustomEvent<void>) => void;
|
|
134
134
|
/**
|
|
135
|
-
* Emitted when the pin code value changes as the user types, carrying
|
|
135
|
+
* Emitted when the pin code value changes as the user types, carrying `{ value: string; isComplete: boolean }` in the event detail.
|
|
136
136
|
*/
|
|
137
137
|
onChange?: (event: CustomEvent<PinCodeChangeEventDetail>) => void;
|
|
138
138
|
/**
|
|
@@ -151,10 +151,10 @@ export declare const PPinCode: import("react").ForwardRefExoticComponent<Omit<im
|
|
|
151
151
|
*/
|
|
152
152
|
type?: PinCodeType;
|
|
153
153
|
/**
|
|
154
|
-
* Sets the current concatenated value
|
|
154
|
+
* Sets the current concatenated value. Numbers are accepted for programmatic assignment, but user input updates the value as a string.
|
|
155
155
|
* @default ''
|
|
156
156
|
*/
|
|
157
|
-
value?: string;
|
|
157
|
+
value?: string | number | null;
|
|
158
158
|
} & {
|
|
159
159
|
children?: import("react").ReactNode | undefined;
|
|
160
160
|
} & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -15,9 +15,9 @@ export type PRadioGroupOptionProps = BaseProps & {
|
|
|
15
15
|
*/
|
|
16
16
|
loading?: boolean;
|
|
17
17
|
/**
|
|
18
|
-
* Sets the
|
|
18
|
+
* Sets the required option value. Must be a string or number and is selected when it strictly matches the parent `p-radio-group` value by type and value.
|
|
19
19
|
*/
|
|
20
|
-
value
|
|
20
|
+
value: string | number;
|
|
21
21
|
};
|
|
22
22
|
export declare const PRadioGroupOption: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "inputMode" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
23
23
|
/**
|
|
@@ -35,9 +35,9 @@ export declare const PRadioGroupOption: import("react").ForwardRefExoticComponen
|
|
|
35
35
|
*/
|
|
36
36
|
loading?: boolean;
|
|
37
37
|
/**
|
|
38
|
-
* Sets the
|
|
38
|
+
* Sets the required option value. Must be a string or number and is selected when it strictly matches the parent `p-radio-group` value by type and value.
|
|
39
39
|
*/
|
|
40
|
-
value
|
|
40
|
+
value: string | number;
|
|
41
41
|
} & {
|
|
42
42
|
children?: import("react").ReactNode | undefined;
|
|
43
43
|
} & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -68,10 +68,9 @@ export type PRadioGroupProps = BaseProps & {
|
|
|
68
68
|
*/
|
|
69
69
|
state?: RadioGroupState;
|
|
70
70
|
/**
|
|
71
|
-
* Sets the currently selected value that pre-selects the matching radio option and reflects user changes.
|
|
72
|
-
* @default ''
|
|
71
|
+
* Sets the currently selected value that pre-selects the matching radio option and reflects user changes. Matches an option strictly by type and value, meaning string or number only match an option whose value has the same type and equal value. Use undefined or null for no preselection; these values never match an option because every option requires a string or number value. Please note that FormData always serializes values as strings, so when participating in a native (uncontrolled) form a number value is restored as string via formStateRestoreCallback and will no longer strictly match a number-typed option. This limitation only applies to native form state restoration; in controlled forms (where the consumer manages value directly via the change event), the number type is preserved end-to-end.
|
|
73
72
|
*/
|
|
74
|
-
value?: string;
|
|
73
|
+
value?: string | number | null;
|
|
75
74
|
};
|
|
76
75
|
export declare const PRadioGroup: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "inputMode" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
77
76
|
/**
|
|
@@ -141,10 +140,9 @@ export declare const PRadioGroup: import("react").ForwardRefExoticComponent<Omit
|
|
|
141
140
|
*/
|
|
142
141
|
state?: RadioGroupState;
|
|
143
142
|
/**
|
|
144
|
-
* Sets the currently selected value that pre-selects the matching radio option and reflects user changes.
|
|
145
|
-
* @default ''
|
|
143
|
+
* Sets the currently selected value that pre-selects the matching radio option and reflects user changes. Matches an option strictly by type and value, meaning string or number only match an option whose value has the same type and equal value. Use undefined or null for no preselection; these values never match an option because every option requires a string or number value. Please note that FormData always serializes values as strings, so when participating in a native (uncontrolled) form a number value is restored as string via formStateRestoreCallback and will no longer strictly match a number-typed option. This limitation only applies to native form state restoration; in controlled forms (where the consumer manages value directly via the change event), the number type is preserved end-to-end.
|
|
146
144
|
*/
|
|
147
|
-
value?: string;
|
|
145
|
+
value?: string | number | null;
|
|
148
146
|
} & {
|
|
149
147
|
children?: import("react").ReactNode | undefined;
|
|
150
148
|
} & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -4,7 +4,7 @@ import { forwardRef, useRef } from 'react';
|
|
|
4
4
|
import { useEventCallback, usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
|
|
5
5
|
import { syncRef } from '../../utils.mjs';
|
|
6
6
|
|
|
7
|
-
const PRadioGroup = /*#__PURE__*/ forwardRef(({ compact = false, description = '', direction = 'column', disabled = false, form, hideLabel = false, label = '', loading = false, message = '', name, onBlur, onChange, required = false, state = 'none', value
|
|
7
|
+
const PRadioGroup = /*#__PURE__*/ forwardRef(({ compact = false, description = '', direction = 'column', disabled = false, form, hideLabel = false, label = '', loading = false, message = '', name, onBlur, onChange, required = false, state = 'none', value, className, ...rest }, ref) => {
|
|
8
8
|
const elementRef = useRef(undefined);
|
|
9
9
|
useEventCallback(elementRef, 'blur', onBlur);
|
|
10
10
|
useEventCallback(elementRef, 'change', onChange);
|