@pitchfork-ui/elements 0.0.0-stage → 0.1.0
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/LICENSE +21 -0
- package/README.md +73 -2
- package/dist/cjs/aria-5oCPUGFo.js +25 -0
- package/dist/cjs/aria-5oCPUGFo.js.map +1 -0
- package/dist/cjs/cartesian-C7GC9oo_.js +198 -0
- package/dist/cjs/cartesian-C7GC9oo_.js.map +1 -0
- package/dist/cjs/command-Du9CowoS.js +42 -0
- package/dist/cjs/command-Du9CowoS.js.map +1 -0
- package/dist/cjs/date-CzVt5Lej.js +170 -0
- package/dist/cjs/date-CzVt5Lej.js.map +1 -0
- package/dist/cjs/form-validity-BCrcqnZ7.js +37 -0
- package/dist/cjs/form-validity-BCrcqnZ7.js.map +1 -0
- package/dist/cjs/icons-Db3Bk5fj.js +81 -0
- package/dist/cjs/icons-Db3Bk5fj.js.map +1 -0
- package/dist/cjs/index-CIskGKk1.js +2307 -0
- package/dist/cjs/index-CIskGKk1.js.map +1 -0
- package/dist/cjs/index.cjs.js +5 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/keys-S3YTuCcn.js +20 -0
- package/dist/cjs/keys-S3YTuCcn.js.map +1 -0
- package/dist/cjs/loader.cjs.js +15 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/motion-Bjlaq-ac.js +45 -0
- package/dist/cjs/motion-Bjlaq-ac.js.map +1 -0
- package/dist/cjs/nav-C4LaACXb.js +27 -0
- package/dist/cjs/nav-C4LaACXb.js.map +1 -0
- package/dist/cjs/navigation-CZce-g58.js +35 -0
- package/dist/cjs/navigation-CZce-g58.js.map +1 -0
- package/dist/cjs/number-field-DIVYv25j.js +76 -0
- package/dist/cjs/number-field-DIVYv25j.js.map +1 -0
- package/dist/cjs/pf-accordion-item.cjs.entry.js +62 -0
- package/dist/cjs/pf-accordion-item.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-accordion.cjs.entry.js +146 -0
- package/dist/cjs/pf-accordion.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-alert.cjs.entry.js +67 -0
- package/dist/cjs/pf-alert.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-avatar-group.cjs.entry.js +120 -0
- package/dist/cjs/pf-avatar-group.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-avatar.cjs.entry.js +30 -0
- package/dist/cjs/pf-avatar.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-badge-group.cjs.entry.js +36 -0
- package/dist/cjs/pf-badge-group.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-badge.cjs.entry.js +22 -0
- package/dist/cjs/pf-badge.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-bar-chart.cjs.entry.js +112 -0
- package/dist/cjs/pf-bar-chart.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-breadcrumb.cjs.entry.js +43 -0
- package/dist/cjs/pf-breadcrumb.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-breadcrumbs.cjs.entry.js +96 -0
- package/dist/cjs/pf-breadcrumbs.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-button-group-item.cjs.entry.js +51 -0
- package/dist/cjs/pf-button-group-item.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-button-group.cjs.entry.js +102 -0
- package/dist/cjs/pf-button-group.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-button.cjs.entry.js +43 -0
- package/dist/cjs/pf-button.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-calendar.cjs.entry.js +222 -0
- package/dist/cjs/pf-calendar.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-card-content.cjs.entry.js +20 -0
- package/dist/cjs/pf-card-content.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-card-footer.cjs.entry.js +20 -0
- package/dist/cjs/pf-card-footer.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-card-header.cjs.entry.js +20 -0
- package/dist/cjs/pf-card-header.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-card.cjs.entry.js +20 -0
- package/dist/cjs/pf-card.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-carousel-slide.cjs.entry.js +33 -0
- package/dist/cjs/pf-carousel-slide.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-carousel.cjs.entry.js +170 -0
- package/dist/cjs/pf-carousel.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-chart-series.cjs.entry.js +33 -0
- package/dist/cjs/pf-chart-series.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-checkbox.cjs.entry.js +110 -0
- package/dist/cjs/pf-checkbox.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-code-snippet.cjs.entry.js +157 -0
- package/dist/cjs/pf-code-snippet.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-collapsible.cjs.entry.js +76 -0
- package/dist/cjs/pf-collapsible.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-combobox.cjs.entry.js +339 -0
- package/dist/cjs/pf-combobox.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-command-group.cjs.entry.js +22 -0
- package/dist/cjs/pf-command-group.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-command-item.cjs.entry.js +50 -0
- package/dist/cjs/pf-command-item.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-command-palette.cjs.entry.js +273 -0
- package/dist/cjs/pf-command-palette.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-content-divider.cjs.entry.js +55 -0
- package/dist/cjs/pf-content-divider.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-context-menu.cjs.entry.js +159 -0
- package/dist/cjs/pf-context-menu.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-credit-card.cjs.entry.js +40 -0
- package/dist/cjs/pf-credit-card.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-date-picker.cjs.entry.js +241 -0
- package/dist/cjs/pf-date-picker.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-date-range-picker.cjs.entry.js +476 -0
- package/dist/cjs/pf-date-range-picker.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-dropdown.cjs.entry.js +183 -0
- package/dist/cjs/pf-dropdown.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-empty-state.cjs.entry.js +55 -0
- package/dist/cjs/pf-empty-state.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-file-uploader.cjs.entry.js +312 -0
- package/dist/cjs/pf-file-uploader.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-gauge-chart.cjs.entry.js +41 -0
- package/dist/cjs/pf-gauge-chart.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-header-navigation.cjs.entry.js +77 -0
- package/dist/cjs/pf-header-navigation.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-heatmap.cjs.entry.js +252 -0
- package/dist/cjs/pf-heatmap.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-icon.cjs.entry.js +327 -0
- package/dist/cjs/pf-icon.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-inline-cta.cjs.entry.js +86 -0
- package/dist/cjs/pf-inline-cta.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-input.cjs.entry.js +122 -0
- package/dist/cjs/pf-input.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-kbd.cjs.entry.js +27 -0
- package/dist/cjs/pf-kbd.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-line-chart.cjs.entry.js +117 -0
- package/dist/cjs/pf-line-chart.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-loading-dots.cjs.entry.js +24 -0
- package/dist/cjs/pf-loading-dots.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-loading-skeleton.cjs.entry.js +43 -0
- package/dist/cjs/pf-loading-skeleton.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-loading-spinner.cjs.entry.js +30 -0
- package/dist/cjs/pf-loading-spinner.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-menu-item.cjs.entry.js +57 -0
- package/dist/cjs/pf-menu-item.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-menu-separator.cjs.entry.js +20 -0
- package/dist/cjs/pf-menu-separator.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-metric-card.cjs.entry.js +54 -0
- package/dist/cjs/pf-metric-card.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-metric-grid.cjs.entry.js +20 -0
- package/dist/cjs/pf-metric-grid.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-modal-body.cjs.entry.js +20 -0
- package/dist/cjs/pf-modal-body.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-modal-footer.cjs.entry.js +20 -0
- package/dist/cjs/pf-modal-footer.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-modal-header.cjs.entry.js +20 -0
- package/dist/cjs/pf-modal-header.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-modal.cjs.entry.js +141 -0
- package/dist/cjs/pf-modal.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-multi-select.cjs.entry.js +316 -0
- package/dist/cjs/pf-multi-select.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-nav-item.cjs.entry.js +58 -0
- package/dist/cjs/pf-nav-item.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-nav-section.cjs.entry.js +54 -0
- package/dist/cjs/pf-nav-section.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-notification.cjs.entry.js +68 -0
- package/dist/cjs/pf-notification.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-number-input.cjs.entry.js +192 -0
- package/dist/cjs/pf-number-input.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-option.cjs.entry.js +50 -0
- package/dist/cjs/pf-option.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-page-header.cjs.entry.js +35 -0
- package/dist/cjs/pf-page-header.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-pagination.cjs.entry.js +113 -0
- package/dist/cjs/pf-pagination.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-pie-chart.cjs.entry.js +94 -0
- package/dist/cjs/pf-pie-chart.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-pie-slice.cjs.entry.js +36 -0
- package/dist/cjs/pf-pie-slice.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-popover.cjs.entry.js +157 -0
- package/dist/cjs/pf-popover.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-progress-bar.cjs.entry.js +32 -0
- package/dist/cjs/pf-progress-bar.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-progress-circle.cjs.entry.js +40 -0
- package/dist/cjs/pf-progress-circle.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-progress-step.cjs.entry.js +42 -0
- package/dist/cjs/pf-progress-step.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-progress-steps.cjs.entry.js +99 -0
- package/dist/cjs/pf-progress-steps.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-radar-axis.cjs.entry.js +33 -0
- package/dist/cjs/pf-radar-axis.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-radar-chart.cjs.entry.js +185 -0
- package/dist/cjs/pf-radar-chart.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-radio-button.cjs.entry.js +73 -0
- package/dist/cjs/pf-radio-button.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-radio-group.cjs.entry.js +174 -0
- package/dist/cjs/pf-radio-group.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-rating-badge.cjs.entry.js +35 -0
- package/dist/cjs/pf-rating-badge.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-rating-stars.cjs.entry.js +46 -0
- package/dist/cjs/pf-rating-stars.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-resizable.cjs.entry.js +205 -0
- package/dist/cjs/pf-resizable.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-rich-text-editor.cjs.entry.js +261 -0
- package/dist/cjs/pf-rich-text-editor.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-scroll-area.cjs.entry.js +43 -0
- package/dist/cjs/pf-scroll-area.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-section-footer.cjs.entry.js +41 -0
- package/dist/cjs/pf-section-footer.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-section-header.cjs.entry.js +37 -0
- package/dist/cjs/pf-section-header.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-select.cjs.entry.js +412 -0
- package/dist/cjs/pf-select.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-sidebar-navigation.cjs.entry.js +103 -0
- package/dist/cjs/pf-sidebar-navigation.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-slideout-menu.cjs.entry.js +155 -0
- package/dist/cjs/pf-slideout-menu.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-slider.cjs.entry.js +125 -0
- package/dist/cjs/pf-slider.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-sparkline.cjs.entry.js +123 -0
- package/dist/cjs/pf-sparkline.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-switch.cjs.entry.js +110 -0
- package/dist/cjs/pf-switch.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-tab-panel.cjs.entry.js +41 -0
- package/dist/cjs/pf-tab-panel.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-tab.cjs.entry.js +96 -0
- package/dist/cjs/pf-tab.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-table-cell.cjs.entry.js +50 -0
- package/dist/cjs/pf-table-cell.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-table-row.cjs.entry.js +51 -0
- package/dist/cjs/pf-table-row.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-table.cjs.entry.js +145 -0
- package/dist/cjs/pf-table.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-tabs.cjs.entry.js +342 -0
- package/dist/cjs/pf-tabs.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-tag-input.cjs.entry.js +199 -0
- package/dist/cjs/pf-tag-input.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-tag.cjs.entry.js +32 -0
- package/dist/cjs/pf-tag.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-textarea.cjs.entry.js +140 -0
- package/dist/cjs/pf-textarea.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-time-picker.cjs.entry.js +328 -0
- package/dist/cjs/pf-time-picker.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-timeline-item.cjs.entry.js +46 -0
- package/dist/cjs/pf-timeline-item.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-timeline.cjs.entry.js +55 -0
- package/dist/cjs/pf-timeline.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-toaster.cjs.entry.js +90 -0
- package/dist/cjs/pf-toaster.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-toolbar-separator.cjs.entry.js +22 -0
- package/dist/cjs/pf-toolbar-separator.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-toolbar.cjs.entry.js +75 -0
- package/dist/cjs/pf-toolbar.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-tooltip.cjs.entry.js +179 -0
- package/dist/cjs/pf-tooltip.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-tree-item.cjs.entry.js +81 -0
- package/dist/cjs/pf-tree-item.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-tree-view.cjs.entry.js +342 -0
- package/dist/cjs/pf-tree-view.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-utility-button.cjs.entry.js +56 -0
- package/dist/cjs/pf-utility-button.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-video-player.cjs.entry.js +62 -0
- package/dist/cjs/pf-video-player.cjs.entry.js.map +1 -0
- package/dist/cjs/pf-visually-hidden.cjs.entry.js +25 -0
- package/dist/cjs/pf-visually-hidden.cjs.entry.js.map +1 -0
- package/dist/cjs/pie-Bf7gKQU2.js +117 -0
- package/dist/cjs/pie-Bf7gKQU2.js.map +1 -0
- package/dist/cjs/pitchfork.cjs.js +27 -0
- package/dist/cjs/pitchfork.cjs.js.map +1 -0
- package/dist/cjs/place-popover-CMqeolzZ.js +200 -0
- package/dist/cjs/place-popover-CMqeolzZ.js.map +1 -0
- package/dist/cjs/progress-DVUoQ3h5.js +87 -0
- package/dist/cjs/progress-DVUoQ3h5.js.map +1 -0
- package/dist/cjs/rating-B-EBGYMD.js +56 -0
- package/dist/cjs/rating-B-EBGYMD.js.map +1 -0
- package/dist/cjs/roving-BNDruU3m.js +71 -0
- package/dist/cjs/roving-BNDruU3m.js.map +1 -0
- package/dist/cjs/scroll-lock-DllDwdH9.js +46 -0
- package/dist/cjs/scroll-lock-DllDwdH9.js.map +1 -0
- package/dist/cjs/text-DQvgAqew.js +59 -0
- package/dist/cjs/text-DQvgAqew.js.map +1 -0
- package/dist/cjs/value-list-zSKmhcgH.js +109 -0
- package/dist/cjs/value-list-zSKmhcgH.js.map +1 -0
- package/dist/collection/collection-manifest.json +120 -0
- package/dist/collection/components/pf-accordion/pf-accordion.css +10 -0
- package/dist/collection/components/pf-accordion/pf-accordion.js +289 -0
- package/dist/collection/components/pf-accordion/pf-accordion.js.map +1 -0
- package/dist/collection/components/pf-accordion-item/pf-accordion-item.css +94 -0
- package/dist/collection/components/pf-accordion-item/pf-accordion-item.js +194 -0
- package/dist/collection/components/pf-accordion-item/pf-accordion-item.js.map +1 -0
- package/dist/collection/components/pf-alert/pf-alert.css +140 -0
- package/dist/collection/components/pf-alert/pf-alert.js +238 -0
- package/dist/collection/components/pf-alert/pf-alert.js.map +1 -0
- package/dist/collection/components/pf-avatar/pf-avatar.css +101 -0
- package/dist/collection/components/pf-avatar/pf-avatar.js +152 -0
- package/dist/collection/components/pf-avatar/pf-avatar.js.map +1 -0
- package/dist/collection/components/pf-avatar-group/pf-avatar-group.css +55 -0
- package/dist/collection/components/pf-avatar-group/pf-avatar-group.js +222 -0
- package/dist/collection/components/pf-avatar-group/pf-avatar-group.js.map +1 -0
- package/dist/collection/components/pf-badge/pf-badge.css +43 -0
- package/dist/collection/components/pf-badge/pf-badge.js +59 -0
- package/dist/collection/components/pf-badge/pf-badge.js.map +1 -0
- package/dist/collection/components/pf-badge-group/pf-badge-group.css +119 -0
- package/dist/collection/components/pf-badge-group/pf-badge-group.js +164 -0
- package/dist/collection/components/pf-badge-group/pf-badge-group.js.map +1 -0
- package/dist/collection/components/pf-bar-chart/pf-bar-chart.css +96 -0
- package/dist/collection/components/pf-bar-chart/pf-bar-chart.js +263 -0
- package/dist/collection/components/pf-bar-chart/pf-bar-chart.js.map +1 -0
- package/dist/collection/components/pf-breadcrumb/pf-breadcrumb.css +40 -0
- package/dist/collection/components/pf-breadcrumb/pf-breadcrumb.js +160 -0
- package/dist/collection/components/pf-breadcrumb/pf-breadcrumb.js.map +1 -0
- package/dist/collection/components/pf-breadcrumbs/pf-breadcrumbs.css +27 -0
- package/dist/collection/components/pf-breadcrumbs/pf-breadcrumbs.js +162 -0
- package/dist/collection/components/pf-breadcrumbs/pf-breadcrumbs.js.map +1 -0
- package/dist/collection/components/pf-button/pf-button.css +134 -0
- package/dist/collection/components/pf-button/pf-button.js +216 -0
- package/dist/collection/components/pf-button/pf-button.js.map +1 -0
- package/dist/collection/components/pf-button-group/pf-button-group.css +14 -0
- package/dist/collection/components/pf-button-group/pf-button-group.js +229 -0
- package/dist/collection/components/pf-button-group/pf-button-group.js.map +1 -0
- package/dist/collection/components/pf-button-group-item/pf-button-group-item.css +103 -0
- package/dist/collection/components/pf-button-group-item/pf-button-group-item.js +206 -0
- package/dist/collection/components/pf-button-group-item/pf-button-group-item.js.map +1 -0
- package/dist/collection/components/pf-calendar/pf-calendar.css +151 -0
- package/dist/collection/components/pf-calendar/pf-calendar.js +479 -0
- package/dist/collection/components/pf-calendar/pf-calendar.js.map +1 -0
- package/dist/collection/components/pf-card/pf-card.css +17 -0
- package/dist/collection/components/pf-card/pf-card.js +32 -0
- package/dist/collection/components/pf-card/pf-card.js.map +1 -0
- package/dist/collection/components/pf-card-content/pf-card-content.css +8 -0
- package/dist/collection/components/pf-card-content/pf-card-content.js +24 -0
- package/dist/collection/components/pf-card-content/pf-card-content.js.map +1 -0
- package/dist/collection/components/pf-card-footer/pf-card-footer.css +10 -0
- package/dist/collection/components/pf-card-footer/pf-card-footer.js +26 -0
- package/dist/collection/components/pf-card-footer/pf-card-footer.js.map +1 -0
- package/dist/collection/components/pf-card-header/pf-card-header.css +14 -0
- package/dist/collection/components/pf-card-header/pf-card-header.js +24 -0
- package/dist/collection/components/pf-card-header/pf-card-header.js.map +1 -0
- package/dist/collection/components/pf-carousel/pf-carousel.css +145 -0
- package/dist/collection/components/pf-carousel/pf-carousel.js +397 -0
- package/dist/collection/components/pf-carousel/pf-carousel.js.map +1 -0
- package/dist/collection/components/pf-carousel-slide/pf-carousel-slide.css +12 -0
- package/dist/collection/components/pf-carousel-slide/pf-carousel-slide.js +106 -0
- package/dist/collection/components/pf-carousel-slide/pf-carousel-slide.js.map +1 -0
- package/dist/collection/components/pf-chart-series/pf-chart-series.css +18 -0
- package/dist/collection/components/pf-chart-series/pf-chart-series.js +132 -0
- package/dist/collection/components/pf-chart-series/pf-chart-series.js.map +1 -0
- package/dist/collection/components/pf-checkbox/pf-checkbox.css +77 -0
- package/dist/collection/components/pf-checkbox/pf-checkbox.js +324 -0
- package/dist/collection/components/pf-checkbox/pf-checkbox.js.map +1 -0
- package/dist/collection/components/pf-code-snippet/pf-code-snippet.css +164 -0
- package/dist/collection/components/pf-code-snippet/pf-code-snippet.js +371 -0
- package/dist/collection/components/pf-code-snippet/pf-code-snippet.js.map +1 -0
- package/dist/collection/components/pf-collapsible/pf-collapsible.css +85 -0
- package/dist/collection/components/pf-collapsible/pf-collapsible.js +224 -0
- package/dist/collection/components/pf-collapsible/pf-collapsible.js.map +1 -0
- package/dist/collection/components/pf-combobox/pf-combobox.css +158 -0
- package/dist/collection/components/pf-combobox/pf-combobox.js +753 -0
- package/dist/collection/components/pf-combobox/pf-combobox.js.map +1 -0
- package/dist/collection/components/pf-command-group/pf-command-group.css +18 -0
- package/dist/collection/components/pf-command-group/pf-command-group.js +57 -0
- package/dist/collection/components/pf-command-group/pf-command-group.js.map +1 -0
- package/dist/collection/components/pf-command-item/pf-command-item.css +76 -0
- package/dist/collection/components/pf-command-item/pf-command-item.js +142 -0
- package/dist/collection/components/pf-command-item/pf-command-item.js.map +1 -0
- package/dist/collection/components/pf-command-palette/pf-command-palette.css +113 -0
- package/dist/collection/components/pf-command-palette/pf-command-palette.js +503 -0
- package/dist/collection/components/pf-command-palette/pf-command-palette.js.map +1 -0
- package/dist/collection/components/pf-content-divider/pf-content-divider.css +61 -0
- package/dist/collection/components/pf-content-divider/pf-content-divider.js +121 -0
- package/dist/collection/components/pf-content-divider/pf-content-divider.js.map +1 -0
- package/dist/collection/components/pf-context-menu/pf-context-menu.css +58 -0
- package/dist/collection/components/pf-context-menu/pf-context-menu.js +331 -0
- package/dist/collection/components/pf-context-menu/pf-context-menu.js.map +1 -0
- package/dist/collection/components/pf-credit-card/pf-credit-card.css +118 -0
- package/dist/collection/components/pf-credit-card/pf-credit-card.js +180 -0
- package/dist/collection/components/pf-credit-card/pf-credit-card.js.map +1 -0
- package/dist/collection/components/pf-date-picker/pf-date-picker.css +141 -0
- package/dist/collection/components/pf-date-picker/pf-date-picker.js +696 -0
- package/dist/collection/components/pf-date-picker/pf-date-picker.js.map +1 -0
- package/dist/collection/components/pf-date-range-picker/pf-date-range-picker.css +267 -0
- package/dist/collection/components/pf-date-range-picker/pf-date-range-picker.js +833 -0
- package/dist/collection/components/pf-date-range-picker/pf-date-range-picker.js.map +1 -0
- package/dist/collection/components/pf-dropdown/pf-dropdown.css +57 -0
- package/dist/collection/components/pf-dropdown/pf-dropdown.js +369 -0
- package/dist/collection/components/pf-dropdown/pf-dropdown.js.map +1 -0
- package/dist/collection/components/pf-empty-state/pf-empty-state.css +94 -0
- package/dist/collection/components/pf-empty-state/pf-empty-state.js +126 -0
- package/dist/collection/components/pf-empty-state/pf-empty-state.js.map +1 -0
- package/dist/collection/components/pf-file-uploader/pf-file-uploader.css +186 -0
- package/dist/collection/components/pf-file-uploader/pf-file-uploader.js +557 -0
- package/dist/collection/components/pf-file-uploader/pf-file-uploader.js.map +1 -0
- package/dist/collection/components/pf-gauge-chart/pf-gauge-chart.css +83 -0
- package/dist/collection/components/pf-gauge-chart/pf-gauge-chart.js +186 -0
- package/dist/collection/components/pf-gauge-chart/pf-gauge-chart.js.map +1 -0
- package/dist/collection/components/pf-header-navigation/pf-header-navigation.css +83 -0
- package/dist/collection/components/pf-header-navigation/pf-header-navigation.js +150 -0
- package/dist/collection/components/pf-header-navigation/pf-header-navigation.js.map +1 -0
- package/dist/collection/components/pf-heatmap/pf-heatmap.css +108 -0
- package/dist/collection/components/pf-heatmap/pf-heatmap.js +321 -0
- package/dist/collection/components/pf-heatmap/pf-heatmap.js.map +1 -0
- package/dist/collection/components/pf-icon/bundled-icons.js +40 -0
- package/dist/collection/components/pf-icon/bundled-icons.js.map +1 -0
- package/dist/collection/components/pf-icon/custom-icons.js +37 -0
- package/dist/collection/components/pf-icon/custom-icons.js.map +1 -0
- package/dist/collection/components/pf-icon/icon-names.js +9 -0
- package/dist/collection/components/pf-icon/icon-names.js.map +1 -0
- package/dist/collection/components/pf-icon/pf-icon.css +17 -0
- package/dist/collection/components/pf-icon/pf-icon.js +105 -0
- package/dist/collection/components/pf-icon/pf-icon.js.map +1 -0
- package/dist/collection/components/pf-inline-cta/pf-inline-cta.css +167 -0
- package/dist/collection/components/pf-inline-cta/pf-inline-cta.js +263 -0
- package/dist/collection/components/pf-inline-cta/pf-inline-cta.js.map +1 -0
- package/dist/collection/components/pf-input/pf-input.css +82 -0
- package/dist/collection/components/pf-input/pf-input.js +421 -0
- package/dist/collection/components/pf-input/pf-input.js.map +1 -0
- package/dist/collection/components/pf-kbd/pf-kbd.css +33 -0
- package/dist/collection/components/pf-kbd/pf-kbd.js +102 -0
- package/dist/collection/components/pf-kbd/pf-kbd.js.map +1 -0
- package/dist/collection/components/pf-line-chart/pf-line-chart.css +98 -0
- package/dist/collection/components/pf-line-chart/pf-line-chart.js +294 -0
- package/dist/collection/components/pf-line-chart/pf-line-chart.js.map +1 -0
- package/dist/collection/components/pf-loading-dots/pf-loading-dots.css +75 -0
- package/dist/collection/components/pf-loading-dots/pf-loading-dots.js +79 -0
- package/dist/collection/components/pf-loading-dots/pf-loading-dots.js.map +1 -0
- package/dist/collection/components/pf-loading-skeleton/pf-loading-skeleton.css +54 -0
- package/dist/collection/components/pf-loading-skeleton/pf-loading-skeleton.js +131 -0
- package/dist/collection/components/pf-loading-skeleton/pf-loading-skeleton.js.map +1 -0
- package/dist/collection/components/pf-loading-spinner/pf-loading-spinner.css +51 -0
- package/dist/collection/components/pf-loading-spinner/pf-loading-spinner.js +78 -0
- package/dist/collection/components/pf-loading-spinner/pf-loading-spinner.js.map +1 -0
- package/dist/collection/components/pf-menu-item/pf-menu-item.css +70 -0
- package/dist/collection/components/pf-menu-item/pf-menu-item.js +167 -0
- package/dist/collection/components/pf-menu-item/pf-menu-item.js.map +1 -0
- package/dist/collection/components/pf-menu-separator/pf-menu-separator.css +11 -0
- package/dist/collection/components/pf-menu-separator/pf-menu-separator.js +25 -0
- package/dist/collection/components/pf-menu-separator/pf-menu-separator.js.map +1 -0
- package/dist/collection/components/pf-metric-card/pf-metric-card.css +125 -0
- package/dist/collection/components/pf-metric-card/pf-metric-card.js +128 -0
- package/dist/collection/components/pf-metric-card/pf-metric-card.js.map +1 -0
- package/dist/collection/components/pf-metric-grid/pf-metric-grid.css +14 -0
- package/dist/collection/components/pf-metric-grid/pf-metric-grid.js +29 -0
- package/dist/collection/components/pf-metric-grid/pf-metric-grid.js.map +1 -0
- package/dist/collection/components/pf-modal/pf-modal.css +94 -0
- package/dist/collection/components/pf-modal/pf-modal.js +325 -0
- package/dist/collection/components/pf-modal/pf-modal.js.map +1 -0
- package/dist/collection/components/pf-modal-body/pf-modal-body.css +9 -0
- package/dist/collection/components/pf-modal-body/pf-modal-body.js +28 -0
- package/dist/collection/components/pf-modal-body/pf-modal-body.js.map +1 -0
- package/dist/collection/components/pf-modal-footer/pf-modal-footer.css +11 -0
- package/dist/collection/components/pf-modal-footer/pf-modal-footer.js +28 -0
- package/dist/collection/components/pf-modal-footer/pf-modal-footer.js.map +1 -0
- package/dist/collection/components/pf-modal-header/pf-modal-header.css +10 -0
- package/dist/collection/components/pf-modal-header/pf-modal-header.js +28 -0
- package/dist/collection/components/pf-modal-header/pf-modal-header.js.map +1 -0
- package/dist/collection/components/pf-multi-select/pf-multi-select.css +139 -0
- package/dist/collection/components/pf-multi-select/pf-multi-select.js +691 -0
- package/dist/collection/components/pf-multi-select/pf-multi-select.js.map +1 -0
- package/dist/collection/components/pf-nav-item/pf-nav-item.css +125 -0
- package/dist/collection/components/pf-nav-item/pf-nav-item.js +220 -0
- package/dist/collection/components/pf-nav-item/pf-nav-item.js.map +1 -0
- package/dist/collection/components/pf-nav-section/pf-nav-section.css +39 -0
- package/dist/collection/components/pf-nav-section/pf-nav-section.js +94 -0
- package/dist/collection/components/pf-nav-section/pf-nav-section.js.map +1 -0
- package/dist/collection/components/pf-notification/pf-notification.css +200 -0
- package/dist/collection/components/pf-notification/pf-notification.js +234 -0
- package/dist/collection/components/pf-notification/pf-notification.js.map +1 -0
- package/dist/collection/components/pf-number-input/pf-number-input.css +137 -0
- package/dist/collection/components/pf-number-input/pf-number-input.js +560 -0
- package/dist/collection/components/pf-number-input/pf-number-input.js.map +1 -0
- package/dist/collection/components/pf-option/pf-option.css +46 -0
- package/dist/collection/components/pf-option/pf-option.js +162 -0
- package/dist/collection/components/pf-option/pf-option.js.map +1 -0
- package/dist/collection/components/pf-page-header/pf-page-header.css +101 -0
- package/dist/collection/components/pf-page-header/pf-page-header.js +64 -0
- package/dist/collection/components/pf-page-header/pf-page-header.js.map +1 -0
- package/dist/collection/components/pf-pagination/pf-pagination.css +109 -0
- package/dist/collection/components/pf-pagination/pf-pagination.js +232 -0
- package/dist/collection/components/pf-pagination/pf-pagination.js.map +1 -0
- package/dist/collection/components/pf-pie-chart/pf-pie-chart.css +115 -0
- package/dist/collection/components/pf-pie-chart/pf-pie-chart.js +226 -0
- package/dist/collection/components/pf-pie-chart/pf-pie-chart.js.map +1 -0
- package/dist/collection/components/pf-pie-slice/pf-pie-slice.css +37 -0
- package/dist/collection/components/pf-pie-slice/pf-pie-slice.js +155 -0
- package/dist/collection/components/pf-pie-slice/pf-pie-slice.js.map +1 -0
- package/dist/collection/components/pf-popover/pf-popover.css +49 -0
- package/dist/collection/components/pf-popover/pf-popover.js +325 -0
- package/dist/collection/components/pf-popover/pf-popover.js.map +1 -0
- package/dist/collection/components/pf-progress-bar/pf-progress-bar.css +49 -0
- package/dist/collection/components/pf-progress-bar/pf-progress-bar.js +121 -0
- package/dist/collection/components/pf-progress-bar/pf-progress-bar.js.map +1 -0
- package/dist/collection/components/pf-progress-circle/pf-progress-circle.css +62 -0
- package/dist/collection/components/pf-progress-circle/pf-progress-circle.js +170 -0
- package/dist/collection/components/pf-progress-circle/pf-progress-circle.js.map +1 -0
- package/dist/collection/components/pf-progress-step/pf-progress-step.css +167 -0
- package/dist/collection/components/pf-progress-step/pf-progress-step.js +176 -0
- package/dist/collection/components/pf-progress-step/pf-progress-step.js.map +1 -0
- package/dist/collection/components/pf-progress-steps/pf-progress-steps.css +35 -0
- package/dist/collection/components/pf-progress-steps/pf-progress-steps.js +139 -0
- package/dist/collection/components/pf-progress-steps/pf-progress-steps.js.map +1 -0
- package/dist/collection/components/pf-radar-axis/pf-radar-axis.css +26 -0
- package/dist/collection/components/pf-radar-axis/pf-radar-axis.js +108 -0
- package/dist/collection/components/pf-radar-axis/pf-radar-axis.js.map +1 -0
- package/dist/collection/components/pf-radar-chart/pf-radar-chart.css +123 -0
- package/dist/collection/components/pf-radar-chart/pf-radar-chart.js +280 -0
- package/dist/collection/components/pf-radar-chart/pf-radar-chart.js.map +1 -0
- package/dist/collection/components/pf-radio-button/pf-radio-button.css +60 -0
- package/dist/collection/components/pf-radio-button/pf-radio-button.js +175 -0
- package/dist/collection/components/pf-radio-button/pf-radio-button.js.map +1 -0
- package/dist/collection/components/pf-radio-group/pf-radio-group.css +36 -0
- package/dist/collection/components/pf-radio-group/pf-radio-group.js +420 -0
- package/dist/collection/components/pf-radio-group/pf-radio-group.js.map +1 -0
- package/dist/collection/components/pf-rating-badge/pf-rating-badge.css +48 -0
- package/dist/collection/components/pf-rating-badge/pf-rating-badge.js +131 -0
- package/dist/collection/components/pf-rating-badge/pf-rating-badge.js.map +1 -0
- package/dist/collection/components/pf-rating-stars/pf-rating-stars.css +54 -0
- package/dist/collection/components/pf-rating-stars/pf-rating-stars.js +159 -0
- package/dist/collection/components/pf-rating-stars/pf-rating-stars.js.map +1 -0
- package/dist/collection/components/pf-resizable/pf-resizable.css +83 -0
- package/dist/collection/components/pf-resizable/pf-resizable.js +309 -0
- package/dist/collection/components/pf-resizable/pf-resizable.js.map +1 -0
- package/dist/collection/components/pf-rich-text-editor/pf-rich-text-editor.css +136 -0
- package/dist/collection/components/pf-rich-text-editor/pf-rich-text-editor.js +519 -0
- package/dist/collection/components/pf-rich-text-editor/pf-rich-text-editor.js.map +1 -0
- package/dist/collection/components/pf-scroll-area/pf-scroll-area.css +62 -0
- package/dist/collection/components/pf-scroll-area/pf-scroll-area.js +98 -0
- package/dist/collection/components/pf-scroll-area/pf-scroll-area.js.map +1 -0
- package/dist/collection/components/pf-section-footer/pf-section-footer.css +73 -0
- package/dist/collection/components/pf-section-footer/pf-section-footer.js +113 -0
- package/dist/collection/components/pf-section-footer/pf-section-footer.js.map +1 -0
- package/dist/collection/components/pf-section-header/pf-section-header.css +93 -0
- package/dist/collection/components/pf-section-header/pf-section-header.js +113 -0
- package/dist/collection/components/pf-section-header/pf-section-header.js.map +1 -0
- package/dist/collection/components/pf-select/pf-select.css +127 -0
- package/dist/collection/components/pf-select/pf-select.js +712 -0
- package/dist/collection/components/pf-select/pf-select.js.map +1 -0
- package/dist/collection/components/pf-sidebar-navigation/pf-sidebar-navigation.css +69 -0
- package/dist/collection/components/pf-sidebar-navigation/pf-sidebar-navigation.js +191 -0
- package/dist/collection/components/pf-sidebar-navigation/pf-sidebar-navigation.js.map +1 -0
- package/dist/collection/components/pf-slideout-menu/pf-slideout-menu.css +179 -0
- package/dist/collection/components/pf-slideout-menu/pf-slideout-menu.js +414 -0
- package/dist/collection/components/pf-slideout-menu/pf-slideout-menu.js.map +1 -0
- package/dist/collection/components/pf-slider/pf-slider.css +119 -0
- package/dist/collection/components/pf-slider/pf-slider.js +419 -0
- package/dist/collection/components/pf-slider/pf-slider.js.map +1 -0
- package/dist/collection/components/pf-sparkline/pf-sparkline.css +76 -0
- package/dist/collection/components/pf-sparkline/pf-sparkline.js +271 -0
- package/dist/collection/components/pf-sparkline/pf-sparkline.js.map +1 -0
- package/dist/collection/components/pf-switch/pf-switch.css +79 -0
- package/dist/collection/components/pf-switch/pf-switch.js +329 -0
- package/dist/collection/components/pf-switch/pf-switch.js.map +1 -0
- package/dist/collection/components/pf-tab/pf-tab.css +88 -0
- package/dist/collection/components/pf-tab/pf-tab.js +374 -0
- package/dist/collection/components/pf-tab/pf-tab.js.map +1 -0
- package/dist/collection/components/pf-tab-panel/pf-tab-panel.css +15 -0
- package/dist/collection/components/pf-tab-panel/pf-tab-panel.js +95 -0
- package/dist/collection/components/pf-tab-panel/pf-tab-panel.js.map +1 -0
- package/dist/collection/components/pf-table/pf-table.css +86 -0
- package/dist/collection/components/pf-table/pf-table.js +353 -0
- package/dist/collection/components/pf-table/pf-table.js.map +1 -0
- package/dist/collection/components/pf-table-cell/pf-table-cell.css +77 -0
- package/dist/collection/components/pf-table-cell/pf-table-cell.js +226 -0
- package/dist/collection/components/pf-table-cell/pf-table-cell.js.map +1 -0
- package/dist/collection/components/pf-table-row/pf-table-row.css +21 -0
- package/dist/collection/components/pf-table-row/pf-table-row.js +131 -0
- package/dist/collection/components/pf-table-row/pf-table-row.js.map +1 -0
- package/dist/collection/components/pf-tabs/pf-tabs.css +108 -0
- package/dist/collection/components/pf-tabs/pf-tabs.js +499 -0
- package/dist/collection/components/pf-tabs/pf-tabs.js.map +1 -0
- package/dist/collection/components/pf-tag/pf-tag.css +71 -0
- package/dist/collection/components/pf-tag/pf-tag.js +128 -0
- package/dist/collection/components/pf-tag/pf-tag.js.map +1 -0
- package/dist/collection/components/pf-tag-input/pf-tag-input.css +80 -0
- package/dist/collection/components/pf-tag-input/pf-tag-input.js +533 -0
- package/dist/collection/components/pf-tag-input/pf-tag-input.js.map +1 -0
- package/dist/collection/components/pf-textarea/pf-textarea.css +70 -0
- package/dist/collection/components/pf-textarea/pf-textarea.js +432 -0
- package/dist/collection/components/pf-textarea/pf-textarea.js.map +1 -0
- package/dist/collection/components/pf-time-picker/pf-time-picker.css +151 -0
- package/dist/collection/components/pf-time-picker/pf-time-picker.js +613 -0
- package/dist/collection/components/pf-time-picker/pf-time-picker.js.map +1 -0
- package/dist/collection/components/pf-timeline/pf-timeline.css +13 -0
- package/dist/collection/components/pf-timeline/pf-timeline.js +109 -0
- package/dist/collection/components/pf-timeline/pf-timeline.js.map +1 -0
- package/dist/collection/components/pf-timeline-item/pf-timeline-item.css +118 -0
- package/dist/collection/components/pf-timeline-item/pf-timeline-item.js +115 -0
- package/dist/collection/components/pf-timeline-item/pf-timeline-item.js.map +1 -0
- package/dist/collection/components/pf-toaster/pf-toaster.css +56 -0
- package/dist/collection/components/pf-toaster/pf-toaster.js +255 -0
- package/dist/collection/components/pf-toaster/pf-toaster.js.map +1 -0
- package/dist/collection/components/pf-toolbar/pf-toolbar.css +23 -0
- package/dist/collection/components/pf-toolbar/pf-toolbar.js +131 -0
- package/dist/collection/components/pf-toolbar/pf-toolbar.js.map +1 -0
- package/dist/collection/components/pf-toolbar-separator/pf-toolbar-separator.css +19 -0
- package/dist/collection/components/pf-toolbar-separator/pf-toolbar-separator.js +59 -0
- package/dist/collection/components/pf-toolbar-separator/pf-toolbar-separator.js.map +1 -0
- package/dist/collection/components/pf-tooltip/pf-tooltip.css +51 -0
- package/dist/collection/components/pf-tooltip/pf-tooltip.js +323 -0
- package/dist/collection/components/pf-tooltip/pf-tooltip.js.map +1 -0
- package/dist/collection/components/pf-tree-item/pf-tree-item.css +115 -0
- package/dist/collection/components/pf-tree-item/pf-tree-item.js +315 -0
- package/dist/collection/components/pf-tree-item/pf-tree-item.js.map +1 -0
- package/dist/collection/components/pf-tree-view/pf-tree-view.css +26 -0
- package/dist/collection/components/pf-tree-view/pf-tree-view.js +426 -0
- package/dist/collection/components/pf-tree-view/pf-tree-view.js.map +1 -0
- package/dist/collection/components/pf-utility-button/pf-utility-button.css +100 -0
- package/dist/collection/components/pf-utility-button/pf-utility-button.js +199 -0
- package/dist/collection/components/pf-utility-button/pf-utility-button.js.map +1 -0
- package/dist/collection/components/pf-video-player/pf-video-player.css +77 -0
- package/dist/collection/components/pf-video-player/pf-video-player.js +415 -0
- package/dist/collection/components/pf-video-player/pf-video-player.js.map +1 -0
- package/dist/collection/components/pf-visually-hidden/pf-visually-hidden.css +42 -0
- package/dist/collection/components/pf-visually-hidden/pf-visually-hidden.js +60 -0
- package/dist/collection/components/pf-visually-hidden/pf-visually-hidden.js.map +1 -0
- package/dist/collection/form-validity.js +31 -0
- package/dist/collection/form-validity.js.map +1 -0
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/place-popover.js +22 -0
- package/dist/collection/place-popover.js.map +1 -0
- package/dist/components/index.d.ts +35 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/p-BA6CMosJ.js +2 -0
- package/dist/components/p-BA6CMosJ.js.map +1 -0
- package/dist/components/p-Bb-s2aqK.js +2 -0
- package/dist/components/p-Bb-s2aqK.js.map +1 -0
- package/dist/components/p-BmcsJLdy.js +2 -0
- package/dist/components/p-BmcsJLdy.js.map +1 -0
- package/dist/components/p-C-VLyxRR.js +2 -0
- package/dist/components/p-C-VLyxRR.js.map +1 -0
- package/dist/components/p-C4aE66tt.js +2 -0
- package/dist/components/p-C4aE66tt.js.map +1 -0
- package/dist/components/p-C9jNMqLs.js +2 -0
- package/dist/components/p-C9jNMqLs.js.map +1 -0
- package/dist/components/p-CAz7-p8y.js +2 -0
- package/dist/components/p-CAz7-p8y.js.map +1 -0
- package/dist/components/p-CC7AyfOt.js +2 -0
- package/dist/components/p-CC7AyfOt.js.map +1 -0
- package/dist/components/p-COAc4ZDB.js +2 -0
- package/dist/components/p-COAc4ZDB.js.map +1 -0
- package/dist/components/p-CSsYpnzu.js +2 -0
- package/dist/components/p-CSsYpnzu.js.map +1 -0
- package/dist/components/p-CkFjPRTe.js +7 -0
- package/dist/components/p-CkFjPRTe.js.map +1 -0
- package/dist/components/p-ClI1g7kx.js +2 -0
- package/dist/components/p-ClI1g7kx.js.map +1 -0
- package/dist/components/p-CmX-kVk-.js +2 -0
- package/dist/components/p-CmX-kVk-.js.map +1 -0
- package/dist/components/p-Cr6IXrUk.js +2 -0
- package/dist/components/p-Cr6IXrUk.js.map +1 -0
- package/dist/components/p-Cta76kgc.js +2 -0
- package/dist/components/p-Cta76kgc.js.map +1 -0
- package/dist/components/p-DSXauhXX.js +2 -0
- package/dist/components/p-DSXauhXX.js.map +1 -0
- package/dist/components/p-DToIJg5W.js +2 -0
- package/dist/components/p-DToIJg5W.js.map +1 -0
- package/dist/components/p-DVK0sUX2.js +2 -0
- package/dist/components/p-DVK0sUX2.js.map +1 -0
- package/dist/components/p-DfpCerXM.js +2 -0
- package/dist/components/p-DfpCerXM.js.map +1 -0
- package/dist/components/p-DhgtpS36.js +2 -0
- package/dist/components/p-DhgtpS36.js.map +1 -0
- package/dist/components/p-DkBJMi_M.js +2 -0
- package/dist/components/p-DkBJMi_M.js.map +1 -0
- package/dist/components/p-Dkd7BUB5.js +2 -0
- package/dist/components/p-Dkd7BUB5.js.map +1 -0
- package/dist/components/p-E7EWeR1F.js +2 -0
- package/dist/components/p-E7EWeR1F.js.map +1 -0
- package/dist/components/p-Fiuz9ck7.js +2 -0
- package/dist/components/p-Fiuz9ck7.js.map +1 -0
- package/dist/components/p-g4FlTDZx.js +2 -0
- package/dist/components/p-g4FlTDZx.js.map +1 -0
- package/dist/components/pf-accordion-item.d.ts +11 -0
- package/dist/components/pf-accordion-item.js +2 -0
- package/dist/components/pf-accordion-item.js.map +1 -0
- package/dist/components/pf-accordion.d.ts +11 -0
- package/dist/components/pf-accordion.js +2 -0
- package/dist/components/pf-accordion.js.map +1 -0
- package/dist/components/pf-alert.d.ts +11 -0
- package/dist/components/pf-alert.js +2 -0
- package/dist/components/pf-alert.js.map +1 -0
- package/dist/components/pf-avatar-group.d.ts +11 -0
- package/dist/components/pf-avatar-group.js +2 -0
- package/dist/components/pf-avatar-group.js.map +1 -0
- package/dist/components/pf-avatar.d.ts +11 -0
- package/dist/components/pf-avatar.js +2 -0
- package/dist/components/pf-avatar.js.map +1 -0
- package/dist/components/pf-badge-group.d.ts +11 -0
- package/dist/components/pf-badge-group.js +2 -0
- package/dist/components/pf-badge-group.js.map +1 -0
- package/dist/components/pf-badge.d.ts +11 -0
- package/dist/components/pf-badge.js +2 -0
- package/dist/components/pf-badge.js.map +1 -0
- package/dist/components/pf-bar-chart.d.ts +11 -0
- package/dist/components/pf-bar-chart.js +2 -0
- package/dist/components/pf-bar-chart.js.map +1 -0
- package/dist/components/pf-breadcrumb.d.ts +11 -0
- package/dist/components/pf-breadcrumb.js +2 -0
- package/dist/components/pf-breadcrumb.js.map +1 -0
- package/dist/components/pf-breadcrumbs.d.ts +11 -0
- package/dist/components/pf-breadcrumbs.js +2 -0
- package/dist/components/pf-breadcrumbs.js.map +1 -0
- package/dist/components/pf-button-group-item.d.ts +11 -0
- package/dist/components/pf-button-group-item.js +2 -0
- package/dist/components/pf-button-group-item.js.map +1 -0
- package/dist/components/pf-button-group.d.ts +11 -0
- package/dist/components/pf-button-group.js +2 -0
- package/dist/components/pf-button-group.js.map +1 -0
- package/dist/components/pf-button.d.ts +11 -0
- package/dist/components/pf-button.js +2 -0
- package/dist/components/pf-button.js.map +1 -0
- package/dist/components/pf-calendar.d.ts +11 -0
- package/dist/components/pf-calendar.js +2 -0
- package/dist/components/pf-calendar.js.map +1 -0
- package/dist/components/pf-card-content.d.ts +11 -0
- package/dist/components/pf-card-content.js +2 -0
- package/dist/components/pf-card-content.js.map +1 -0
- package/dist/components/pf-card-footer.d.ts +11 -0
- package/dist/components/pf-card-footer.js +2 -0
- package/dist/components/pf-card-footer.js.map +1 -0
- package/dist/components/pf-card-header.d.ts +11 -0
- package/dist/components/pf-card-header.js +2 -0
- package/dist/components/pf-card-header.js.map +1 -0
- package/dist/components/pf-card.d.ts +11 -0
- package/dist/components/pf-card.js +2 -0
- package/dist/components/pf-card.js.map +1 -0
- package/dist/components/pf-carousel-slide.d.ts +11 -0
- package/dist/components/pf-carousel-slide.js +2 -0
- package/dist/components/pf-carousel-slide.js.map +1 -0
- package/dist/components/pf-carousel.d.ts +11 -0
- package/dist/components/pf-carousel.js +2 -0
- package/dist/components/pf-carousel.js.map +1 -0
- package/dist/components/pf-chart-series.d.ts +11 -0
- package/dist/components/pf-chart-series.js +2 -0
- package/dist/components/pf-chart-series.js.map +1 -0
- package/dist/components/pf-checkbox.d.ts +11 -0
- package/dist/components/pf-checkbox.js +2 -0
- package/dist/components/pf-checkbox.js.map +1 -0
- package/dist/components/pf-code-snippet.d.ts +11 -0
- package/dist/components/pf-code-snippet.js +2 -0
- package/dist/components/pf-code-snippet.js.map +1 -0
- package/dist/components/pf-collapsible.d.ts +11 -0
- package/dist/components/pf-collapsible.js +2 -0
- package/dist/components/pf-collapsible.js.map +1 -0
- package/dist/components/pf-combobox.d.ts +11 -0
- package/dist/components/pf-combobox.js +2 -0
- package/dist/components/pf-combobox.js.map +1 -0
- package/dist/components/pf-command-group.d.ts +11 -0
- package/dist/components/pf-command-group.js +2 -0
- package/dist/components/pf-command-group.js.map +1 -0
- package/dist/components/pf-command-item.d.ts +11 -0
- package/dist/components/pf-command-item.js +2 -0
- package/dist/components/pf-command-item.js.map +1 -0
- package/dist/components/pf-command-palette.d.ts +11 -0
- package/dist/components/pf-command-palette.js +2 -0
- package/dist/components/pf-command-palette.js.map +1 -0
- package/dist/components/pf-content-divider.d.ts +11 -0
- package/dist/components/pf-content-divider.js +2 -0
- package/dist/components/pf-content-divider.js.map +1 -0
- package/dist/components/pf-context-menu.d.ts +11 -0
- package/dist/components/pf-context-menu.js +2 -0
- package/dist/components/pf-context-menu.js.map +1 -0
- package/dist/components/pf-credit-card.d.ts +11 -0
- package/dist/components/pf-credit-card.js +2 -0
- package/dist/components/pf-credit-card.js.map +1 -0
- package/dist/components/pf-date-picker.d.ts +11 -0
- package/dist/components/pf-date-picker.js +2 -0
- package/dist/components/pf-date-picker.js.map +1 -0
- package/dist/components/pf-date-range-picker.d.ts +11 -0
- package/dist/components/pf-date-range-picker.js +2 -0
- package/dist/components/pf-date-range-picker.js.map +1 -0
- package/dist/components/pf-dropdown.d.ts +11 -0
- package/dist/components/pf-dropdown.js +2 -0
- package/dist/components/pf-dropdown.js.map +1 -0
- package/dist/components/pf-empty-state.d.ts +11 -0
- package/dist/components/pf-empty-state.js +2 -0
- package/dist/components/pf-empty-state.js.map +1 -0
- package/dist/components/pf-file-uploader.d.ts +11 -0
- package/dist/components/pf-file-uploader.js +2 -0
- package/dist/components/pf-file-uploader.js.map +1 -0
- package/dist/components/pf-gauge-chart.d.ts +11 -0
- package/dist/components/pf-gauge-chart.js +2 -0
- package/dist/components/pf-gauge-chart.js.map +1 -0
- package/dist/components/pf-header-navigation.d.ts +11 -0
- package/dist/components/pf-header-navigation.js +2 -0
- package/dist/components/pf-header-navigation.js.map +1 -0
- package/dist/components/pf-heatmap.d.ts +11 -0
- package/dist/components/pf-heatmap.js +2 -0
- package/dist/components/pf-heatmap.js.map +1 -0
- package/dist/components/pf-icon.d.ts +11 -0
- package/dist/components/pf-icon.js +2 -0
- package/dist/components/pf-icon.js.map +1 -0
- package/dist/components/pf-inline-cta.d.ts +11 -0
- package/dist/components/pf-inline-cta.js +2 -0
- package/dist/components/pf-inline-cta.js.map +1 -0
- package/dist/components/pf-input.d.ts +11 -0
- package/dist/components/pf-input.js +2 -0
- package/dist/components/pf-input.js.map +1 -0
- package/dist/components/pf-kbd.d.ts +11 -0
- package/dist/components/pf-kbd.js +2 -0
- package/dist/components/pf-kbd.js.map +1 -0
- package/dist/components/pf-line-chart.d.ts +11 -0
- package/dist/components/pf-line-chart.js +2 -0
- package/dist/components/pf-line-chart.js.map +1 -0
- package/dist/components/pf-loading-dots.d.ts +11 -0
- package/dist/components/pf-loading-dots.js +2 -0
- package/dist/components/pf-loading-dots.js.map +1 -0
- package/dist/components/pf-loading-skeleton.d.ts +11 -0
- package/dist/components/pf-loading-skeleton.js +2 -0
- package/dist/components/pf-loading-skeleton.js.map +1 -0
- package/dist/components/pf-loading-spinner.d.ts +11 -0
- package/dist/components/pf-loading-spinner.js +2 -0
- package/dist/components/pf-loading-spinner.js.map +1 -0
- package/dist/components/pf-menu-item.d.ts +11 -0
- package/dist/components/pf-menu-item.js +2 -0
- package/dist/components/pf-menu-item.js.map +1 -0
- package/dist/components/pf-menu-separator.d.ts +11 -0
- package/dist/components/pf-menu-separator.js +2 -0
- package/dist/components/pf-menu-separator.js.map +1 -0
- package/dist/components/pf-metric-card.d.ts +11 -0
- package/dist/components/pf-metric-card.js +2 -0
- package/dist/components/pf-metric-card.js.map +1 -0
- package/dist/components/pf-metric-grid.d.ts +11 -0
- package/dist/components/pf-metric-grid.js +2 -0
- package/dist/components/pf-metric-grid.js.map +1 -0
- package/dist/components/pf-modal-body.d.ts +11 -0
- package/dist/components/pf-modal-body.js +2 -0
- package/dist/components/pf-modal-body.js.map +1 -0
- package/dist/components/pf-modal-footer.d.ts +11 -0
- package/dist/components/pf-modal-footer.js +2 -0
- package/dist/components/pf-modal-footer.js.map +1 -0
- package/dist/components/pf-modal-header.d.ts +11 -0
- package/dist/components/pf-modal-header.js +2 -0
- package/dist/components/pf-modal-header.js.map +1 -0
- package/dist/components/pf-modal.d.ts +11 -0
- package/dist/components/pf-modal.js +2 -0
- package/dist/components/pf-modal.js.map +1 -0
- package/dist/components/pf-multi-select.d.ts +11 -0
- package/dist/components/pf-multi-select.js +2 -0
- package/dist/components/pf-multi-select.js.map +1 -0
- package/dist/components/pf-nav-item.d.ts +11 -0
- package/dist/components/pf-nav-item.js +2 -0
- package/dist/components/pf-nav-item.js.map +1 -0
- package/dist/components/pf-nav-section.d.ts +11 -0
- package/dist/components/pf-nav-section.js +2 -0
- package/dist/components/pf-nav-section.js.map +1 -0
- package/dist/components/pf-notification.d.ts +11 -0
- package/dist/components/pf-notification.js +2 -0
- package/dist/components/pf-notification.js.map +1 -0
- package/dist/components/pf-number-input.d.ts +11 -0
- package/dist/components/pf-number-input.js +2 -0
- package/dist/components/pf-number-input.js.map +1 -0
- package/dist/components/pf-option.d.ts +11 -0
- package/dist/components/pf-option.js +2 -0
- package/dist/components/pf-option.js.map +1 -0
- package/dist/components/pf-page-header.d.ts +11 -0
- package/dist/components/pf-page-header.js +2 -0
- package/dist/components/pf-page-header.js.map +1 -0
- package/dist/components/pf-pagination.d.ts +11 -0
- package/dist/components/pf-pagination.js +2 -0
- package/dist/components/pf-pagination.js.map +1 -0
- package/dist/components/pf-pie-chart.d.ts +11 -0
- package/dist/components/pf-pie-chart.js +2 -0
- package/dist/components/pf-pie-chart.js.map +1 -0
- package/dist/components/pf-pie-slice.d.ts +11 -0
- package/dist/components/pf-pie-slice.js +2 -0
- package/dist/components/pf-pie-slice.js.map +1 -0
- package/dist/components/pf-popover.d.ts +11 -0
- package/dist/components/pf-popover.js +2 -0
- package/dist/components/pf-popover.js.map +1 -0
- package/dist/components/pf-progress-bar.d.ts +11 -0
- package/dist/components/pf-progress-bar.js +2 -0
- package/dist/components/pf-progress-bar.js.map +1 -0
- package/dist/components/pf-progress-circle.d.ts +11 -0
- package/dist/components/pf-progress-circle.js +2 -0
- package/dist/components/pf-progress-circle.js.map +1 -0
- package/dist/components/pf-progress-step.d.ts +11 -0
- package/dist/components/pf-progress-step.js +2 -0
- package/dist/components/pf-progress-step.js.map +1 -0
- package/dist/components/pf-progress-steps.d.ts +11 -0
- package/dist/components/pf-progress-steps.js +2 -0
- package/dist/components/pf-progress-steps.js.map +1 -0
- package/dist/components/pf-radar-axis.d.ts +11 -0
- package/dist/components/pf-radar-axis.js +2 -0
- package/dist/components/pf-radar-axis.js.map +1 -0
- package/dist/components/pf-radar-chart.d.ts +11 -0
- package/dist/components/pf-radar-chart.js +2 -0
- package/dist/components/pf-radar-chart.js.map +1 -0
- package/dist/components/pf-radio-button.d.ts +11 -0
- package/dist/components/pf-radio-button.js +2 -0
- package/dist/components/pf-radio-button.js.map +1 -0
- package/dist/components/pf-radio-group.d.ts +11 -0
- package/dist/components/pf-radio-group.js +2 -0
- package/dist/components/pf-radio-group.js.map +1 -0
- package/dist/components/pf-rating-badge.d.ts +11 -0
- package/dist/components/pf-rating-badge.js +2 -0
- package/dist/components/pf-rating-badge.js.map +1 -0
- package/dist/components/pf-rating-stars.d.ts +11 -0
- package/dist/components/pf-rating-stars.js +2 -0
- package/dist/components/pf-rating-stars.js.map +1 -0
- package/dist/components/pf-resizable.d.ts +11 -0
- package/dist/components/pf-resizable.js +2 -0
- package/dist/components/pf-resizable.js.map +1 -0
- package/dist/components/pf-rich-text-editor.d.ts +11 -0
- package/dist/components/pf-rich-text-editor.js +2 -0
- package/dist/components/pf-rich-text-editor.js.map +1 -0
- package/dist/components/pf-scroll-area.d.ts +11 -0
- package/dist/components/pf-scroll-area.js +2 -0
- package/dist/components/pf-scroll-area.js.map +1 -0
- package/dist/components/pf-section-footer.d.ts +11 -0
- package/dist/components/pf-section-footer.js +2 -0
- package/dist/components/pf-section-footer.js.map +1 -0
- package/dist/components/pf-section-header.d.ts +11 -0
- package/dist/components/pf-section-header.js +2 -0
- package/dist/components/pf-section-header.js.map +1 -0
- package/dist/components/pf-select.d.ts +11 -0
- package/dist/components/pf-select.js +2 -0
- package/dist/components/pf-select.js.map +1 -0
- package/dist/components/pf-sidebar-navigation.d.ts +11 -0
- package/dist/components/pf-sidebar-navigation.js +2 -0
- package/dist/components/pf-sidebar-navigation.js.map +1 -0
- package/dist/components/pf-slideout-menu.d.ts +11 -0
- package/dist/components/pf-slideout-menu.js +2 -0
- package/dist/components/pf-slideout-menu.js.map +1 -0
- package/dist/components/pf-slider.d.ts +11 -0
- package/dist/components/pf-slider.js +2 -0
- package/dist/components/pf-slider.js.map +1 -0
- package/dist/components/pf-sparkline.d.ts +11 -0
- package/dist/components/pf-sparkline.js +2 -0
- package/dist/components/pf-sparkline.js.map +1 -0
- package/dist/components/pf-switch.d.ts +11 -0
- package/dist/components/pf-switch.js +2 -0
- package/dist/components/pf-switch.js.map +1 -0
- package/dist/components/pf-tab-panel.d.ts +11 -0
- package/dist/components/pf-tab-panel.js +2 -0
- package/dist/components/pf-tab-panel.js.map +1 -0
- package/dist/components/pf-tab.d.ts +11 -0
- package/dist/components/pf-tab.js +2 -0
- package/dist/components/pf-tab.js.map +1 -0
- package/dist/components/pf-table-cell.d.ts +11 -0
- package/dist/components/pf-table-cell.js +2 -0
- package/dist/components/pf-table-cell.js.map +1 -0
- package/dist/components/pf-table-row.d.ts +11 -0
- package/dist/components/pf-table-row.js +2 -0
- package/dist/components/pf-table-row.js.map +1 -0
- package/dist/components/pf-table.d.ts +11 -0
- package/dist/components/pf-table.js +2 -0
- package/dist/components/pf-table.js.map +1 -0
- package/dist/components/pf-tabs.d.ts +11 -0
- package/dist/components/pf-tabs.js +2 -0
- package/dist/components/pf-tabs.js.map +1 -0
- package/dist/components/pf-tag-input.d.ts +11 -0
- package/dist/components/pf-tag-input.js +2 -0
- package/dist/components/pf-tag-input.js.map +1 -0
- package/dist/components/pf-tag.d.ts +11 -0
- package/dist/components/pf-tag.js +2 -0
- package/dist/components/pf-tag.js.map +1 -0
- package/dist/components/pf-textarea.d.ts +11 -0
- package/dist/components/pf-textarea.js +2 -0
- package/dist/components/pf-textarea.js.map +1 -0
- package/dist/components/pf-time-picker.d.ts +11 -0
- package/dist/components/pf-time-picker.js +2 -0
- package/dist/components/pf-time-picker.js.map +1 -0
- package/dist/components/pf-timeline-item.d.ts +11 -0
- package/dist/components/pf-timeline-item.js +2 -0
- package/dist/components/pf-timeline-item.js.map +1 -0
- package/dist/components/pf-timeline.d.ts +11 -0
- package/dist/components/pf-timeline.js +2 -0
- package/dist/components/pf-timeline.js.map +1 -0
- package/dist/components/pf-toaster.d.ts +11 -0
- package/dist/components/pf-toaster.js +2 -0
- package/dist/components/pf-toaster.js.map +1 -0
- package/dist/components/pf-toolbar-separator.d.ts +11 -0
- package/dist/components/pf-toolbar-separator.js +2 -0
- package/dist/components/pf-toolbar-separator.js.map +1 -0
- package/dist/components/pf-toolbar.d.ts +11 -0
- package/dist/components/pf-toolbar.js +2 -0
- package/dist/components/pf-toolbar.js.map +1 -0
- package/dist/components/pf-tooltip.d.ts +11 -0
- package/dist/components/pf-tooltip.js +2 -0
- package/dist/components/pf-tooltip.js.map +1 -0
- package/dist/components/pf-tree-item.d.ts +11 -0
- package/dist/components/pf-tree-item.js +2 -0
- package/dist/components/pf-tree-item.js.map +1 -0
- package/dist/components/pf-tree-view.d.ts +11 -0
- package/dist/components/pf-tree-view.js +2 -0
- package/dist/components/pf-tree-view.js.map +1 -0
- package/dist/components/pf-utility-button.d.ts +11 -0
- package/dist/components/pf-utility-button.js +2 -0
- package/dist/components/pf-utility-button.js.map +1 -0
- package/dist/components/pf-video-player.d.ts +11 -0
- package/dist/components/pf-video-player.js +2 -0
- package/dist/components/pf-video-player.js.map +1 -0
- package/dist/components/pf-visually-hidden.d.ts +11 -0
- package/dist/components/pf-visually-hidden.js +2 -0
- package/dist/components/pf-visually-hidden.js.map +1 -0
- package/dist/docs.d.ts +480 -0
- package/dist/docs.json +26352 -0
- package/dist/elements.json +9959 -0
- package/dist/esm/aria-DfpCerXM.js +22 -0
- package/dist/esm/aria-DfpCerXM.js.map +1 -0
- package/dist/esm/cartesian-rMXGMSEx.js +184 -0
- package/dist/esm/cartesian-rMXGMSEx.js.map +1 -0
- package/dist/esm/command-Dkd7BUB5.js +39 -0
- package/dist/esm/command-Dkd7BUB5.js.map +1 -0
- package/dist/esm/date-C9jNMqLs.js +154 -0
- package/dist/esm/date-C9jNMqLs.js.map +1 -0
- package/dist/esm/form-validity-Cr6IXrUk.js +35 -0
- package/dist/esm/form-validity-Cr6IXrUk.js.map +1 -0
- package/dist/esm/icons-CCln56Fj.js +75 -0
- package/dist/esm/icons-CCln56Fj.js.map +1 -0
- package/dist/esm/index-Bm6UxEit.js +2279 -0
- package/dist/esm/index-Bm6UxEit.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/keys-g4FlTDZx.js +17 -0
- package/dist/esm/keys-g4FlTDZx.js.map +1 -0
- package/dist/esm/loader.js +13 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/motion-Cta76kgc.js +43 -0
- package/dist/esm/motion-Cta76kgc.js.map +1 -0
- package/dist/esm/nav-DToIJg5W.js +25 -0
- package/dist/esm/nav-DToIJg5W.js.map +1 -0
- package/dist/esm/navigation-CAz7-p8y.js +32 -0
- package/dist/esm/navigation-CAz7-p8y.js.map +1 -0
- package/dist/esm/number-field-DSXauhXX.js +70 -0
- package/dist/esm/number-field-DSXauhXX.js.map +1 -0
- package/dist/esm/pf-accordion-item.entry.js +60 -0
- package/dist/esm/pf-accordion-item.entry.js.map +1 -0
- package/dist/esm/pf-accordion.entry.js +144 -0
- package/dist/esm/pf-accordion.entry.js.map +1 -0
- package/dist/esm/pf-alert.entry.js +65 -0
- package/dist/esm/pf-alert.entry.js.map +1 -0
- package/dist/esm/pf-avatar-group.entry.js +118 -0
- package/dist/esm/pf-avatar-group.entry.js.map +1 -0
- package/dist/esm/pf-avatar.entry.js +28 -0
- package/dist/esm/pf-avatar.entry.js.map +1 -0
- package/dist/esm/pf-badge-group.entry.js +34 -0
- package/dist/esm/pf-badge-group.entry.js.map +1 -0
- package/dist/esm/pf-badge.entry.js +20 -0
- package/dist/esm/pf-badge.entry.js.map +1 -0
- package/dist/esm/pf-bar-chart.entry.js +110 -0
- package/dist/esm/pf-bar-chart.entry.js.map +1 -0
- package/dist/esm/pf-breadcrumb.entry.js +41 -0
- package/dist/esm/pf-breadcrumb.entry.js.map +1 -0
- package/dist/esm/pf-breadcrumbs.entry.js +94 -0
- package/dist/esm/pf-breadcrumbs.entry.js.map +1 -0
- package/dist/esm/pf-button-group-item.entry.js +49 -0
- package/dist/esm/pf-button-group-item.entry.js.map +1 -0
- package/dist/esm/pf-button-group.entry.js +100 -0
- package/dist/esm/pf-button-group.entry.js.map +1 -0
- package/dist/esm/pf-button.entry.js +41 -0
- package/dist/esm/pf-button.entry.js.map +1 -0
- package/dist/esm/pf-calendar.entry.js +220 -0
- package/dist/esm/pf-calendar.entry.js.map +1 -0
- package/dist/esm/pf-card-content.entry.js +18 -0
- package/dist/esm/pf-card-content.entry.js.map +1 -0
- package/dist/esm/pf-card-footer.entry.js +18 -0
- package/dist/esm/pf-card-footer.entry.js.map +1 -0
- package/dist/esm/pf-card-header.entry.js +18 -0
- package/dist/esm/pf-card-header.entry.js.map +1 -0
- package/dist/esm/pf-card.entry.js +18 -0
- package/dist/esm/pf-card.entry.js.map +1 -0
- package/dist/esm/pf-carousel-slide.entry.js +31 -0
- package/dist/esm/pf-carousel-slide.entry.js.map +1 -0
- package/dist/esm/pf-carousel.entry.js +168 -0
- package/dist/esm/pf-carousel.entry.js.map +1 -0
- package/dist/esm/pf-chart-series.entry.js +31 -0
- package/dist/esm/pf-chart-series.entry.js.map +1 -0
- package/dist/esm/pf-checkbox.entry.js +108 -0
- package/dist/esm/pf-checkbox.entry.js.map +1 -0
- package/dist/esm/pf-code-snippet.entry.js +155 -0
- package/dist/esm/pf-code-snippet.entry.js.map +1 -0
- package/dist/esm/pf-collapsible.entry.js +74 -0
- package/dist/esm/pf-collapsible.entry.js.map +1 -0
- package/dist/esm/pf-combobox.entry.js +337 -0
- package/dist/esm/pf-combobox.entry.js.map +1 -0
- package/dist/esm/pf-command-group.entry.js +20 -0
- package/dist/esm/pf-command-group.entry.js.map +1 -0
- package/dist/esm/pf-command-item.entry.js +48 -0
- package/dist/esm/pf-command-item.entry.js.map +1 -0
- package/dist/esm/pf-command-palette.entry.js +271 -0
- package/dist/esm/pf-command-palette.entry.js.map +1 -0
- package/dist/esm/pf-content-divider.entry.js +53 -0
- package/dist/esm/pf-content-divider.entry.js.map +1 -0
- package/dist/esm/pf-context-menu.entry.js +157 -0
- package/dist/esm/pf-context-menu.entry.js.map +1 -0
- package/dist/esm/pf-credit-card.entry.js +38 -0
- package/dist/esm/pf-credit-card.entry.js.map +1 -0
- package/dist/esm/pf-date-picker.entry.js +239 -0
- package/dist/esm/pf-date-picker.entry.js.map +1 -0
- package/dist/esm/pf-date-range-picker.entry.js +474 -0
- package/dist/esm/pf-date-range-picker.entry.js.map +1 -0
- package/dist/esm/pf-dropdown.entry.js +181 -0
- package/dist/esm/pf-dropdown.entry.js.map +1 -0
- package/dist/esm/pf-empty-state.entry.js +53 -0
- package/dist/esm/pf-empty-state.entry.js.map +1 -0
- package/dist/esm/pf-file-uploader.entry.js +310 -0
- package/dist/esm/pf-file-uploader.entry.js.map +1 -0
- package/dist/esm/pf-gauge-chart.entry.js +39 -0
- package/dist/esm/pf-gauge-chart.entry.js.map +1 -0
- package/dist/esm/pf-header-navigation.entry.js +75 -0
- package/dist/esm/pf-header-navigation.entry.js.map +1 -0
- package/dist/esm/pf-heatmap.entry.js +250 -0
- package/dist/esm/pf-heatmap.entry.js.map +1 -0
- package/dist/esm/pf-icon.entry.js +325 -0
- package/dist/esm/pf-icon.entry.js.map +1 -0
- package/dist/esm/pf-inline-cta.entry.js +84 -0
- package/dist/esm/pf-inline-cta.entry.js.map +1 -0
- package/dist/esm/pf-input.entry.js +120 -0
- package/dist/esm/pf-input.entry.js.map +1 -0
- package/dist/esm/pf-kbd.entry.js +25 -0
- package/dist/esm/pf-kbd.entry.js.map +1 -0
- package/dist/esm/pf-line-chart.entry.js +115 -0
- package/dist/esm/pf-line-chart.entry.js.map +1 -0
- package/dist/esm/pf-loading-dots.entry.js +22 -0
- package/dist/esm/pf-loading-dots.entry.js.map +1 -0
- package/dist/esm/pf-loading-skeleton.entry.js +41 -0
- package/dist/esm/pf-loading-skeleton.entry.js.map +1 -0
- package/dist/esm/pf-loading-spinner.entry.js +28 -0
- package/dist/esm/pf-loading-spinner.entry.js.map +1 -0
- package/dist/esm/pf-menu-item.entry.js +55 -0
- package/dist/esm/pf-menu-item.entry.js.map +1 -0
- package/dist/esm/pf-menu-separator.entry.js +18 -0
- package/dist/esm/pf-menu-separator.entry.js.map +1 -0
- package/dist/esm/pf-metric-card.entry.js +52 -0
- package/dist/esm/pf-metric-card.entry.js.map +1 -0
- package/dist/esm/pf-metric-grid.entry.js +18 -0
- package/dist/esm/pf-metric-grid.entry.js.map +1 -0
- package/dist/esm/pf-modal-body.entry.js +18 -0
- package/dist/esm/pf-modal-body.entry.js.map +1 -0
- package/dist/esm/pf-modal-footer.entry.js +18 -0
- package/dist/esm/pf-modal-footer.entry.js.map +1 -0
- package/dist/esm/pf-modal-header.entry.js +18 -0
- package/dist/esm/pf-modal-header.entry.js.map +1 -0
- package/dist/esm/pf-modal.entry.js +139 -0
- package/dist/esm/pf-modal.entry.js.map +1 -0
- package/dist/esm/pf-multi-select.entry.js +314 -0
- package/dist/esm/pf-multi-select.entry.js.map +1 -0
- package/dist/esm/pf-nav-item.entry.js +56 -0
- package/dist/esm/pf-nav-item.entry.js.map +1 -0
- package/dist/esm/pf-nav-section.entry.js +52 -0
- package/dist/esm/pf-nav-section.entry.js.map +1 -0
- package/dist/esm/pf-notification.entry.js +66 -0
- package/dist/esm/pf-notification.entry.js.map +1 -0
- package/dist/esm/pf-number-input.entry.js +190 -0
- package/dist/esm/pf-number-input.entry.js.map +1 -0
- package/dist/esm/pf-option.entry.js +48 -0
- package/dist/esm/pf-option.entry.js.map +1 -0
- package/dist/esm/pf-page-header.entry.js +33 -0
- package/dist/esm/pf-page-header.entry.js.map +1 -0
- package/dist/esm/pf-pagination.entry.js +111 -0
- package/dist/esm/pf-pagination.entry.js.map +1 -0
- package/dist/esm/pf-pie-chart.entry.js +92 -0
- package/dist/esm/pf-pie-chart.entry.js.map +1 -0
- package/dist/esm/pf-pie-slice.entry.js +34 -0
- package/dist/esm/pf-pie-slice.entry.js.map +1 -0
- package/dist/esm/pf-popover.entry.js +155 -0
- package/dist/esm/pf-popover.entry.js.map +1 -0
- package/dist/esm/pf-progress-bar.entry.js +30 -0
- package/dist/esm/pf-progress-bar.entry.js.map +1 -0
- package/dist/esm/pf-progress-circle.entry.js +38 -0
- package/dist/esm/pf-progress-circle.entry.js.map +1 -0
- package/dist/esm/pf-progress-step.entry.js +40 -0
- package/dist/esm/pf-progress-step.entry.js.map +1 -0
- package/dist/esm/pf-progress-steps.entry.js +97 -0
- package/dist/esm/pf-progress-steps.entry.js.map +1 -0
- package/dist/esm/pf-radar-axis.entry.js +31 -0
- package/dist/esm/pf-radar-axis.entry.js.map +1 -0
- package/dist/esm/pf-radar-chart.entry.js +183 -0
- package/dist/esm/pf-radar-chart.entry.js.map +1 -0
- package/dist/esm/pf-radio-button.entry.js +71 -0
- package/dist/esm/pf-radio-button.entry.js.map +1 -0
- package/dist/esm/pf-radio-group.entry.js +172 -0
- package/dist/esm/pf-radio-group.entry.js.map +1 -0
- package/dist/esm/pf-rating-badge.entry.js +33 -0
- package/dist/esm/pf-rating-badge.entry.js.map +1 -0
- package/dist/esm/pf-rating-stars.entry.js +44 -0
- package/dist/esm/pf-rating-stars.entry.js.map +1 -0
- package/dist/esm/pf-resizable.entry.js +203 -0
- package/dist/esm/pf-resizable.entry.js.map +1 -0
- package/dist/esm/pf-rich-text-editor.entry.js +259 -0
- package/dist/esm/pf-rich-text-editor.entry.js.map +1 -0
- package/dist/esm/pf-scroll-area.entry.js +41 -0
- package/dist/esm/pf-scroll-area.entry.js.map +1 -0
- package/dist/esm/pf-section-footer.entry.js +39 -0
- package/dist/esm/pf-section-footer.entry.js.map +1 -0
- package/dist/esm/pf-section-header.entry.js +35 -0
- package/dist/esm/pf-section-header.entry.js.map +1 -0
- package/dist/esm/pf-select.entry.js +410 -0
- package/dist/esm/pf-select.entry.js.map +1 -0
- package/dist/esm/pf-sidebar-navigation.entry.js +101 -0
- package/dist/esm/pf-sidebar-navigation.entry.js.map +1 -0
- package/dist/esm/pf-slideout-menu.entry.js +153 -0
- package/dist/esm/pf-slideout-menu.entry.js.map +1 -0
- package/dist/esm/pf-slider.entry.js +123 -0
- package/dist/esm/pf-slider.entry.js.map +1 -0
- package/dist/esm/pf-sparkline.entry.js +121 -0
- package/dist/esm/pf-sparkline.entry.js.map +1 -0
- package/dist/esm/pf-switch.entry.js +108 -0
- package/dist/esm/pf-switch.entry.js.map +1 -0
- package/dist/esm/pf-tab-panel.entry.js +39 -0
- package/dist/esm/pf-tab-panel.entry.js.map +1 -0
- package/dist/esm/pf-tab.entry.js +94 -0
- package/dist/esm/pf-tab.entry.js.map +1 -0
- package/dist/esm/pf-table-cell.entry.js +48 -0
- package/dist/esm/pf-table-cell.entry.js.map +1 -0
- package/dist/esm/pf-table-row.entry.js +49 -0
- package/dist/esm/pf-table-row.entry.js.map +1 -0
- package/dist/esm/pf-table.entry.js +143 -0
- package/dist/esm/pf-table.entry.js.map +1 -0
- package/dist/esm/pf-tabs.entry.js +340 -0
- package/dist/esm/pf-tabs.entry.js.map +1 -0
- package/dist/esm/pf-tag-input.entry.js +197 -0
- package/dist/esm/pf-tag-input.entry.js.map +1 -0
- package/dist/esm/pf-tag.entry.js +30 -0
- package/dist/esm/pf-tag.entry.js.map +1 -0
- package/dist/esm/pf-textarea.entry.js +138 -0
- package/dist/esm/pf-textarea.entry.js.map +1 -0
- package/dist/esm/pf-time-picker.entry.js +326 -0
- package/dist/esm/pf-time-picker.entry.js.map +1 -0
- package/dist/esm/pf-timeline-item.entry.js +44 -0
- package/dist/esm/pf-timeline-item.entry.js.map +1 -0
- package/dist/esm/pf-timeline.entry.js +53 -0
- package/dist/esm/pf-timeline.entry.js.map +1 -0
- package/dist/esm/pf-toaster.entry.js +88 -0
- package/dist/esm/pf-toaster.entry.js.map +1 -0
- package/dist/esm/pf-toolbar-separator.entry.js +20 -0
- package/dist/esm/pf-toolbar-separator.entry.js.map +1 -0
- package/dist/esm/pf-toolbar.entry.js +73 -0
- package/dist/esm/pf-toolbar.entry.js.map +1 -0
- package/dist/esm/pf-tooltip.entry.js +177 -0
- package/dist/esm/pf-tooltip.entry.js.map +1 -0
- package/dist/esm/pf-tree-item.entry.js +79 -0
- package/dist/esm/pf-tree-item.entry.js.map +1 -0
- package/dist/esm/pf-tree-view.entry.js +340 -0
- package/dist/esm/pf-tree-view.entry.js.map +1 -0
- package/dist/esm/pf-utility-button.entry.js +54 -0
- package/dist/esm/pf-utility-button.entry.js.map +1 -0
- package/dist/esm/pf-video-player.entry.js +60 -0
- package/dist/esm/pf-video-player.entry.js.map +1 -0
- package/dist/esm/pf-visually-hidden.entry.js +23 -0
- package/dist/esm/pf-visually-hidden.entry.js.map +1 -0
- package/dist/esm/pie-COAc4ZDB.js +111 -0
- package/dist/esm/pie-COAc4ZDB.js.map +1 -0
- package/dist/esm/pitchfork.js +23 -0
- package/dist/esm/pitchfork.js.map +1 -0
- package/dist/esm/place-popover-CC7AyfOt.js +195 -0
- package/dist/esm/place-popover-CC7AyfOt.js.map +1 -0
- package/dist/esm/progress-BA6CMosJ.js +80 -0
- package/dist/esm/progress-BA6CMosJ.js.map +1 -0
- package/dist/esm/rating-DVK0sUX2.js +52 -0
- package/dist/esm/rating-DVK0sUX2.js.map +1 -0
- package/dist/esm/roving-BzRAGyFO.js +67 -0
- package/dist/esm/roving-BzRAGyFO.js.map +1 -0
- package/dist/esm/scroll-lock-C-VLyxRR.js +44 -0
- package/dist/esm/scroll-lock-C-VLyxRR.js.map +1 -0
- package/dist/esm/text-B8ulhYUJ.js +54 -0
- package/dist/esm/text-B8ulhYUJ.js.map +1 -0
- package/dist/esm/value-list-BmcsJLdy.js +100 -0
- package/dist/esm/value-list-BmcsJLdy.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/pitchfork/index.esm.js +2 -0
- package/dist/pitchfork/index.esm.js.map +1 -0
- package/dist/pitchfork/p-03db6bae.entry.js +2 -0
- package/dist/pitchfork/p-03db6bae.entry.js.map +1 -0
- package/dist/pitchfork/p-04869bdc.entry.js +2 -0
- package/dist/pitchfork/p-04869bdc.entry.js.map +1 -0
- package/dist/pitchfork/p-068baf6d.entry.js +2 -0
- package/dist/pitchfork/p-068baf6d.entry.js.map +1 -0
- package/dist/pitchfork/p-0bbec059.entry.js +2 -0
- package/dist/pitchfork/p-0bbec059.entry.js.map +1 -0
- package/dist/pitchfork/p-1133b2fa.entry.js +2 -0
- package/dist/pitchfork/p-1133b2fa.entry.js.map +1 -0
- package/dist/pitchfork/p-1bb6b456.entry.js +2 -0
- package/dist/pitchfork/p-1bb6b456.entry.js.map +1 -0
- package/dist/pitchfork/p-1bc87b8c.entry.js +2 -0
- package/dist/pitchfork/p-1bc87b8c.entry.js.map +1 -0
- package/dist/pitchfork/p-1dbea97f.entry.js +2 -0
- package/dist/pitchfork/p-1dbea97f.entry.js.map +1 -0
- package/dist/pitchfork/p-1e171d52.entry.js +2 -0
- package/dist/pitchfork/p-1e171d52.entry.js.map +1 -0
- package/dist/pitchfork/p-1e7e8d25.entry.js +2 -0
- package/dist/pitchfork/p-1e7e8d25.entry.js.map +1 -0
- package/dist/pitchfork/p-1fa3b37b.entry.js +2 -0
- package/dist/pitchfork/p-1fa3b37b.entry.js.map +1 -0
- package/dist/pitchfork/p-22c7e5b4.entry.js +2 -0
- package/dist/pitchfork/p-22c7e5b4.entry.js.map +1 -0
- package/dist/pitchfork/p-23b1be9b.entry.js +2 -0
- package/dist/pitchfork/p-23b1be9b.entry.js.map +1 -0
- package/dist/pitchfork/p-248bd301.entry.js +2 -0
- package/dist/pitchfork/p-248bd301.entry.js.map +1 -0
- package/dist/pitchfork/p-2577564c.entry.js +7 -0
- package/dist/pitchfork/p-2577564c.entry.js.map +1 -0
- package/dist/pitchfork/p-25d0a34b.entry.js +2 -0
- package/dist/pitchfork/p-25d0a34b.entry.js.map +1 -0
- package/dist/pitchfork/p-26e119df.entry.js +2 -0
- package/dist/pitchfork/p-26e119df.entry.js.map +1 -0
- package/dist/pitchfork/p-2798795f.entry.js +2 -0
- package/dist/pitchfork/p-2798795f.entry.js.map +1 -0
- package/dist/pitchfork/p-3133eb1a.entry.js +2 -0
- package/dist/pitchfork/p-3133eb1a.entry.js.map +1 -0
- package/dist/pitchfork/p-31e0fbc7.entry.js +2 -0
- package/dist/pitchfork/p-31e0fbc7.entry.js.map +1 -0
- package/dist/pitchfork/p-33857f80.entry.js +2 -0
- package/dist/pitchfork/p-33857f80.entry.js.map +1 -0
- package/dist/pitchfork/p-34f2df95.entry.js +2 -0
- package/dist/pitchfork/p-34f2df95.entry.js.map +1 -0
- package/dist/pitchfork/p-37ee290d.entry.js +2 -0
- package/dist/pitchfork/p-37ee290d.entry.js.map +1 -0
- package/dist/pitchfork/p-3843faa6.entry.js +2 -0
- package/dist/pitchfork/p-3843faa6.entry.js.map +1 -0
- package/dist/pitchfork/p-3cd7d421.entry.js +2 -0
- package/dist/pitchfork/p-3cd7d421.entry.js.map +1 -0
- package/dist/pitchfork/p-3fd3444b.entry.js +2 -0
- package/dist/pitchfork/p-3fd3444b.entry.js.map +1 -0
- package/dist/pitchfork/p-41d997d9.entry.js +2 -0
- package/dist/pitchfork/p-41d997d9.entry.js.map +1 -0
- package/dist/pitchfork/p-4217a92a.entry.js +2 -0
- package/dist/pitchfork/p-4217a92a.entry.js.map +1 -0
- package/dist/pitchfork/p-43c103bb.entry.js +2 -0
- package/dist/pitchfork/p-43c103bb.entry.js.map +1 -0
- package/dist/pitchfork/p-47cabc33.entry.js +2 -0
- package/dist/pitchfork/p-47cabc33.entry.js.map +1 -0
- package/dist/pitchfork/p-48b2d3f7.entry.js +2 -0
- package/dist/pitchfork/p-48b2d3f7.entry.js.map +1 -0
- package/dist/pitchfork/p-4959a556.entry.js +2 -0
- package/dist/pitchfork/p-4959a556.entry.js.map +1 -0
- package/dist/pitchfork/p-4b05851a.entry.js +2 -0
- package/dist/pitchfork/p-4b05851a.entry.js.map +1 -0
- package/dist/pitchfork/p-4b16ef92.entry.js +2 -0
- package/dist/pitchfork/p-4b16ef92.entry.js.map +1 -0
- package/dist/pitchfork/p-4b7c186f.entry.js +2 -0
- package/dist/pitchfork/p-4b7c186f.entry.js.map +1 -0
- package/dist/pitchfork/p-4df4eed8.entry.js +2 -0
- package/dist/pitchfork/p-4df4eed8.entry.js.map +1 -0
- package/dist/pitchfork/p-4e785310.entry.js +2 -0
- package/dist/pitchfork/p-4e785310.entry.js.map +1 -0
- package/dist/pitchfork/p-4e7c51e4.entry.js +2 -0
- package/dist/pitchfork/p-4e7c51e4.entry.js.map +1 -0
- package/dist/pitchfork/p-5064d2dd.entry.js +2 -0
- package/dist/pitchfork/p-5064d2dd.entry.js.map +1 -0
- package/dist/pitchfork/p-50ad12be.entry.js +2 -0
- package/dist/pitchfork/p-50ad12be.entry.js.map +1 -0
- package/dist/pitchfork/p-51528462.entry.js +2 -0
- package/dist/pitchfork/p-51528462.entry.js.map +1 -0
- package/dist/pitchfork/p-52eef7eb.entry.js +2 -0
- package/dist/pitchfork/p-52eef7eb.entry.js.map +1 -0
- package/dist/pitchfork/p-578db1a6.entry.js +2 -0
- package/dist/pitchfork/p-578db1a6.entry.js.map +1 -0
- package/dist/pitchfork/p-6066ce98.entry.js +2 -0
- package/dist/pitchfork/p-6066ce98.entry.js.map +1 -0
- package/dist/pitchfork/p-643f7e00.entry.js +2 -0
- package/dist/pitchfork/p-643f7e00.entry.js.map +1 -0
- package/dist/pitchfork/p-685f817b.entry.js +2 -0
- package/dist/pitchfork/p-685f817b.entry.js.map +1 -0
- package/dist/pitchfork/p-69d27f61.entry.js +2 -0
- package/dist/pitchfork/p-69d27f61.entry.js.map +1 -0
- package/dist/pitchfork/p-6cfacd82.entry.js +2 -0
- package/dist/pitchfork/p-6cfacd82.entry.js.map +1 -0
- package/dist/pitchfork/p-6d3c4094.entry.js +2 -0
- package/dist/pitchfork/p-6d3c4094.entry.js.map +1 -0
- package/dist/pitchfork/p-717b552a.entry.js +2 -0
- package/dist/pitchfork/p-717b552a.entry.js.map +1 -0
- package/dist/pitchfork/p-742f2cc4.entry.js +2 -0
- package/dist/pitchfork/p-742f2cc4.entry.js.map +1 -0
- package/dist/pitchfork/p-76f0f473.entry.js +2 -0
- package/dist/pitchfork/p-76f0f473.entry.js.map +1 -0
- package/dist/pitchfork/p-77168a0d.entry.js +2 -0
- package/dist/pitchfork/p-77168a0d.entry.js.map +1 -0
- package/dist/pitchfork/p-7e5ba1f9.entry.js +2 -0
- package/dist/pitchfork/p-7e5ba1f9.entry.js.map +1 -0
- package/dist/pitchfork/p-845c5252.entry.js +2 -0
- package/dist/pitchfork/p-845c5252.entry.js.map +1 -0
- package/dist/pitchfork/p-8718bb3a.entry.js +2 -0
- package/dist/pitchfork/p-8718bb3a.entry.js.map +1 -0
- package/dist/pitchfork/p-8a1e2ba8.entry.js +2 -0
- package/dist/pitchfork/p-8a1e2ba8.entry.js.map +1 -0
- package/dist/pitchfork/p-8e1a4b26.entry.js +2 -0
- package/dist/pitchfork/p-8e1a4b26.entry.js.map +1 -0
- package/dist/pitchfork/p-8e304481.entry.js +2 -0
- package/dist/pitchfork/p-8e304481.entry.js.map +1 -0
- package/dist/pitchfork/p-97dd4193.entry.js +2 -0
- package/dist/pitchfork/p-97dd4193.entry.js.map +1 -0
- package/dist/pitchfork/p-9d93b1ea.entry.js +2 -0
- package/dist/pitchfork/p-9d93b1ea.entry.js.map +1 -0
- package/dist/pitchfork/p-9dc1dd8a.entry.js +2 -0
- package/dist/pitchfork/p-9dc1dd8a.entry.js.map +1 -0
- package/dist/pitchfork/p-B8ulhYUJ.js +2 -0
- package/dist/pitchfork/p-B8ulhYUJ.js.map +1 -0
- package/dist/pitchfork/p-BA6CMosJ.js +2 -0
- package/dist/pitchfork/p-BA6CMosJ.js.map +1 -0
- package/dist/pitchfork/p-Bm6UxEit.js +3 -0
- package/dist/pitchfork/p-Bm6UxEit.js.map +1 -0
- package/dist/pitchfork/p-BmcsJLdy.js +2 -0
- package/dist/pitchfork/p-BmcsJLdy.js.map +1 -0
- package/dist/pitchfork/p-C-VLyxRR.js +2 -0
- package/dist/pitchfork/p-C-VLyxRR.js.map +1 -0
- package/dist/pitchfork/p-C9jNMqLs.js +2 -0
- package/dist/pitchfork/p-C9jNMqLs.js.map +1 -0
- package/dist/pitchfork/p-CAz7-p8y.js +2 -0
- package/dist/pitchfork/p-CAz7-p8y.js.map +1 -0
- package/dist/pitchfork/p-CC7AyfOt.js +2 -0
- package/dist/pitchfork/p-CC7AyfOt.js.map +1 -0
- package/dist/pitchfork/p-CCln56Fj.js +2 -0
- package/dist/pitchfork/p-CCln56Fj.js.map +1 -0
- package/dist/pitchfork/p-COAc4ZDB.js +2 -0
- package/dist/pitchfork/p-COAc4ZDB.js.map +1 -0
- package/dist/pitchfork/p-CmX-kVk-.js +2 -0
- package/dist/pitchfork/p-CmX-kVk-.js.map +1 -0
- package/dist/pitchfork/p-Cr6IXrUk.js +2 -0
- package/dist/pitchfork/p-Cr6IXrUk.js.map +1 -0
- package/dist/pitchfork/p-Cta76kgc.js +2 -0
- package/dist/pitchfork/p-Cta76kgc.js.map +1 -0
- package/dist/pitchfork/p-DSXauhXX.js +2 -0
- package/dist/pitchfork/p-DSXauhXX.js.map +1 -0
- package/dist/pitchfork/p-DToIJg5W.js +2 -0
- package/dist/pitchfork/p-DToIJg5W.js.map +1 -0
- package/dist/pitchfork/p-DVK0sUX2.js +2 -0
- package/dist/pitchfork/p-DVK0sUX2.js.map +1 -0
- package/dist/pitchfork/p-DfpCerXM.js +2 -0
- package/dist/pitchfork/p-DfpCerXM.js.map +1 -0
- package/dist/pitchfork/p-Dkd7BUB5.js +2 -0
- package/dist/pitchfork/p-Dkd7BUB5.js.map +1 -0
- package/dist/pitchfork/p-Fiuz9ck7.js +2 -0
- package/dist/pitchfork/p-Fiuz9ck7.js.map +1 -0
- package/dist/pitchfork/p-a1a7838d.entry.js +2 -0
- package/dist/pitchfork/p-a1a7838d.entry.js.map +1 -0
- package/dist/pitchfork/p-a24bf2bd.entry.js +2 -0
- package/dist/pitchfork/p-a24bf2bd.entry.js.map +1 -0
- package/dist/pitchfork/p-a4cc62e1.entry.js +2 -0
- package/dist/pitchfork/p-a4cc62e1.entry.js.map +1 -0
- package/dist/pitchfork/p-a4fad812.entry.js +2 -0
- package/dist/pitchfork/p-a4fad812.entry.js.map +1 -0
- package/dist/pitchfork/p-a5b5c09a.entry.js +2 -0
- package/dist/pitchfork/p-a5b5c09a.entry.js.map +1 -0
- package/dist/pitchfork/p-a7ce64b1.entry.js +2 -0
- package/dist/pitchfork/p-a7ce64b1.entry.js.map +1 -0
- package/dist/pitchfork/p-a864dae5.entry.js +2 -0
- package/dist/pitchfork/p-a864dae5.entry.js.map +1 -0
- package/dist/pitchfork/p-a9b77dbb.entry.js +2 -0
- package/dist/pitchfork/p-a9b77dbb.entry.js.map +1 -0
- package/dist/pitchfork/p-aa2acec3.entry.js +2 -0
- package/dist/pitchfork/p-aa2acec3.entry.js.map +1 -0
- package/dist/pitchfork/p-aa615fe9.entry.js +2 -0
- package/dist/pitchfork/p-aa615fe9.entry.js.map +1 -0
- package/dist/pitchfork/p-aa869013.entry.js +2 -0
- package/dist/pitchfork/p-aa869013.entry.js.map +1 -0
- package/dist/pitchfork/p-aac27e62.entry.js +2 -0
- package/dist/pitchfork/p-aac27e62.entry.js.map +1 -0
- package/dist/pitchfork/p-ac3fcb57.entry.js +2 -0
- package/dist/pitchfork/p-ac3fcb57.entry.js.map +1 -0
- package/dist/pitchfork/p-ad93b614.entry.js +2 -0
- package/dist/pitchfork/p-ad93b614.entry.js.map +1 -0
- package/dist/pitchfork/p-ae5fd08e.entry.js +2 -0
- package/dist/pitchfork/p-ae5fd08e.entry.js.map +1 -0
- package/dist/pitchfork/p-b26df5a0.entry.js +2 -0
- package/dist/pitchfork/p-b26df5a0.entry.js.map +1 -0
- package/dist/pitchfork/p-b2df1ecb.entry.js +2 -0
- package/dist/pitchfork/p-b2df1ecb.entry.js.map +1 -0
- package/dist/pitchfork/p-b442330b.entry.js +2 -0
- package/dist/pitchfork/p-b442330b.entry.js.map +1 -0
- package/dist/pitchfork/p-b4480baf.entry.js +2 -0
- package/dist/pitchfork/p-b4480baf.entry.js.map +1 -0
- package/dist/pitchfork/p-b4774cba.entry.js +2 -0
- package/dist/pitchfork/p-b4774cba.entry.js.map +1 -0
- package/dist/pitchfork/p-b6b18062.entry.js +2 -0
- package/dist/pitchfork/p-b6b18062.entry.js.map +1 -0
- package/dist/pitchfork/p-be2c6150.entry.js +2 -0
- package/dist/pitchfork/p-be2c6150.entry.js.map +1 -0
- package/dist/pitchfork/p-bf044fb5.entry.js +2 -0
- package/dist/pitchfork/p-bf044fb5.entry.js.map +1 -0
- package/dist/pitchfork/p-c07c5847.entry.js +2 -0
- package/dist/pitchfork/p-c07c5847.entry.js.map +1 -0
- package/dist/pitchfork/p-c6bdd9cd.entry.js +2 -0
- package/dist/pitchfork/p-c6bdd9cd.entry.js.map +1 -0
- package/dist/pitchfork/p-c82804d4.entry.js +2 -0
- package/dist/pitchfork/p-c82804d4.entry.js.map +1 -0
- package/dist/pitchfork/p-d0d2070b.entry.js +2 -0
- package/dist/pitchfork/p-d0d2070b.entry.js.map +1 -0
- package/dist/pitchfork/p-d248b027.entry.js +2 -0
- package/dist/pitchfork/p-d248b027.entry.js.map +1 -0
- package/dist/pitchfork/p-d4bbcba0.entry.js +2 -0
- package/dist/pitchfork/p-d4bbcba0.entry.js.map +1 -0
- package/dist/pitchfork/p-d6425298.entry.js +2 -0
- package/dist/pitchfork/p-d6425298.entry.js.map +1 -0
- package/dist/pitchfork/p-d7eb6335.entry.js +2 -0
- package/dist/pitchfork/p-d7eb6335.entry.js.map +1 -0
- package/dist/pitchfork/p-dcaaedeb.entry.js +2 -0
- package/dist/pitchfork/p-dcaaedeb.entry.js.map +1 -0
- package/dist/pitchfork/p-dd0e0d79.entry.js +2 -0
- package/dist/pitchfork/p-dd0e0d79.entry.js.map +1 -0
- package/dist/pitchfork/p-e882124b.entry.js +2 -0
- package/dist/pitchfork/p-e882124b.entry.js.map +1 -0
- package/dist/pitchfork/p-e944f504.entry.js +2 -0
- package/dist/pitchfork/p-e944f504.entry.js.map +1 -0
- package/dist/pitchfork/p-e9d767df.entry.js +2 -0
- package/dist/pitchfork/p-e9d767df.entry.js.map +1 -0
- package/dist/pitchfork/p-ea63c122.entry.js +2 -0
- package/dist/pitchfork/p-ea63c122.entry.js.map +1 -0
- package/dist/pitchfork/p-edb28479.entry.js +2 -0
- package/dist/pitchfork/p-edb28479.entry.js.map +1 -0
- package/dist/pitchfork/p-f0889512.entry.js +2 -0
- package/dist/pitchfork/p-f0889512.entry.js.map +1 -0
- package/dist/pitchfork/p-f3d80b42.entry.js +2 -0
- package/dist/pitchfork/p-f3d80b42.entry.js.map +1 -0
- package/dist/pitchfork/p-f5242cee.entry.js +2 -0
- package/dist/pitchfork/p-f5242cee.entry.js.map +1 -0
- package/dist/pitchfork/p-f689e353.entry.js +2 -0
- package/dist/pitchfork/p-f689e353.entry.js.map +1 -0
- package/dist/pitchfork/p-f855c9d4.entry.js +2 -0
- package/dist/pitchfork/p-f855c9d4.entry.js.map +1 -0
- package/dist/pitchfork/p-fa1302c7.entry.js +2 -0
- package/dist/pitchfork/p-fa1302c7.entry.js.map +1 -0
- package/dist/pitchfork/p-fd5a5ea1.entry.js +2 -0
- package/dist/pitchfork/p-fd5a5ea1.entry.js.map +1 -0
- package/dist/pitchfork/p-fe6f403c.entry.js +2 -0
- package/dist/pitchfork/p-fe6f403c.entry.js.map +1 -0
- package/dist/pitchfork/p-g4FlTDZx.js +2 -0
- package/dist/pitchfork/p-g4FlTDZx.js.map +1 -0
- package/dist/pitchfork/pitchfork.css +40 -0
- package/dist/pitchfork/pitchfork.esm.js +2 -0
- package/dist/pitchfork/pitchfork.esm.js.map +1 -0
- package/dist/types/components/pf-accordion/pf-accordion.d.ts +80 -0
- package/dist/types/components/pf-accordion-item/pf-accordion-item.d.ts +57 -0
- package/dist/types/components/pf-alert/pf-alert.d.ts +57 -0
- package/dist/types/components/pf-avatar/pf-avatar.d.ts +25 -0
- package/dist/types/components/pf-avatar-group/pf-avatar-group.d.ts +46 -0
- package/dist/types/components/pf-badge/pf-badge.d.ts +14 -0
- package/dist/types/components/pf-badge-group/pf-badge-group.d.ts +23 -0
- package/dist/types/components/pf-bar-chart/pf-bar-chart.d.ts +39 -0
- package/dist/types/components/pf-breadcrumb/pf-breadcrumb.d.ts +40 -0
- package/dist/types/components/pf-breadcrumbs/pf-breadcrumbs.d.ts +52 -0
- package/dist/types/components/pf-button/pf-button.d.ts +38 -0
- package/dist/types/components/pf-button-group/pf-button-group.d.ts +53 -0
- package/dist/types/components/pf-button-group-item/pf-button-group-item.d.ts +47 -0
- package/dist/types/components/pf-calendar/pf-calendar.d.ts +101 -0
- package/dist/types/components/pf-card/pf-card.d.ts +16 -0
- package/dist/types/components/pf-card-content/pf-card-content.d.ts +8 -0
- package/dist/types/components/pf-card-footer/pf-card-footer.d.ts +10 -0
- package/dist/types/components/pf-card-header/pf-card-header.d.ts +8 -0
- package/dist/types/components/pf-carousel/pf-carousel.d.ts +73 -0
- package/dist/types/components/pf-carousel-slide/pf-carousel-slide.d.ts +19 -0
- package/dist/types/components/pf-chart-series/pf-chart-series.d.ts +33 -0
- package/dist/types/components/pf-checkbox/pf-checkbox.d.ts +56 -0
- package/dist/types/components/pf-code-snippet/pf-code-snippet.d.ts +74 -0
- package/dist/types/components/pf-collapsible/pf-collapsible.d.ts +56 -0
- package/dist/types/components/pf-combobox/pf-combobox.d.ts +123 -0
- package/dist/types/components/pf-command-group/pf-command-group.d.ts +18 -0
- package/dist/types/components/pf-command-item/pf-command-item.d.ts +41 -0
- package/dist/types/components/pf-command-palette/pf-command-palette.d.ts +102 -0
- package/dist/types/components/pf-content-divider/pf-content-divider.d.ts +39 -0
- package/dist/types/components/pf-context-menu/pf-context-menu.d.ts +54 -0
- package/dist/types/components/pf-credit-card/pf-credit-card.d.ts +31 -0
- package/dist/types/components/pf-date-picker/pf-date-picker.d.ts +121 -0
- package/dist/types/components/pf-date-range-picker/pf-date-range-picker.d.ts +122 -0
- package/dist/types/components/pf-dropdown/pf-dropdown.d.ts +66 -0
- package/dist/types/components/pf-empty-state/pf-empty-state.d.ts +43 -0
- package/dist/types/components/pf-file-uploader/pf-file-uploader.d.ts +96 -0
- package/dist/types/components/pf-gauge-chart/pf-gauge-chart.d.ts +36 -0
- package/dist/types/components/pf-header-navigation/pf-header-navigation.d.ts +55 -0
- package/dist/types/components/pf-heatmap/pf-heatmap.d.ts +55 -0
- package/dist/types/components/pf-icon/bundled-icons.d.ts +3 -0
- package/dist/types/components/pf-icon/custom-icons.d.ts +3 -0
- package/dist/types/components/pf-icon/icon-names.d.ts +6 -0
- package/dist/types/components/pf-icon/pf-icon.d.ts +22 -0
- package/dist/types/components/pf-inline-cta/pf-inline-cta.d.ts +69 -0
- package/dist/types/components/pf-input/pf-input.d.ts +79 -0
- package/dist/types/components/pf-kbd/pf-kbd.d.ts +18 -0
- package/dist/types/components/pf-line-chart/pf-line-chart.d.ts +68 -0
- package/dist/types/components/pf-loading-dots/pf-loading-dots.d.ts +14 -0
- package/dist/types/components/pf-loading-skeleton/pf-loading-skeleton.d.ts +24 -0
- package/dist/types/components/pf-loading-spinner/pf-loading-spinner.d.ts +12 -0
- package/dist/types/components/pf-menu-item/pf-menu-item.d.ts +43 -0
- package/dist/types/components/pf-menu-separator/pf-menu-separator.d.ts +9 -0
- package/dist/types/components/pf-metric-card/pf-metric-card.d.ts +42 -0
- package/dist/types/components/pf-metric-grid/pf-metric-grid.d.ts +13 -0
- package/dist/types/components/pf-modal/pf-modal.d.ts +84 -0
- package/dist/types/components/pf-modal-body/pf-modal-body.d.ts +12 -0
- package/dist/types/components/pf-modal-footer/pf-modal-footer.d.ts +12 -0
- package/dist/types/components/pf-modal-header/pf-modal-header.d.ts +12 -0
- package/dist/types/components/pf-multi-select/pf-multi-select.d.ts +108 -0
- package/dist/types/components/pf-nav-item/pf-nav-item.d.ts +58 -0
- package/dist/types/components/pf-nav-section/pf-nav-section.d.ts +44 -0
- package/dist/types/components/pf-notification/pf-notification.d.ts +53 -0
- package/dist/types/components/pf-number-input/pf-number-input.d.ts +87 -0
- package/dist/types/components/pf-option/pf-option.d.ts +40 -0
- package/dist/types/components/pf-page-header/pf-page-header.d.ts +33 -0
- package/dist/types/components/pf-pagination/pf-pagination.d.ts +41 -0
- package/dist/types/components/pf-pie-chart/pf-pie-chart.d.ts +52 -0
- package/dist/types/components/pf-pie-slice/pf-pie-slice.d.ts +36 -0
- package/dist/types/components/pf-popover/pf-popover.d.ts +82 -0
- package/dist/types/components/pf-progress-bar/pf-progress-bar.d.ts +18 -0
- package/dist/types/components/pf-progress-circle/pf-progress-circle.d.ts +23 -0
- package/dist/types/components/pf-progress-step/pf-progress-step.d.ts +38 -0
- package/dist/types/components/pf-progress-steps/pf-progress-steps.d.ts +42 -0
- package/dist/types/components/pf-radar-axis/pf-radar-axis.d.ts +28 -0
- package/dist/types/components/pf-radar-chart/pf-radar-chart.d.ts +62 -0
- package/dist/types/components/pf-radio-button/pf-radio-button.d.ts +55 -0
- package/dist/types/components/pf-radio-group/pf-radio-group.d.ts +80 -0
- package/dist/types/components/pf-rating-badge/pf-rating-badge.d.ts +23 -0
- package/dist/types/components/pf-rating-stars/pf-rating-stars.d.ts +31 -0
- package/dist/types/components/pf-resizable/pf-resizable.d.ts +68 -0
- package/dist/types/components/pf-rich-text-editor/pf-rich-text-editor.d.ts +99 -0
- package/dist/types/components/pf-scroll-area/pf-scroll-area.d.ts +28 -0
- package/dist/types/components/pf-section-footer/pf-section-footer.d.ts +30 -0
- package/dist/types/components/pf-section-header/pf-section-header.d.ts +35 -0
- package/dist/types/components/pf-select/pf-select.d.ts +110 -0
- package/dist/types/components/pf-sidebar-navigation/pf-sidebar-navigation.d.ts +74 -0
- package/dist/types/components/pf-slideout-menu/pf-slideout-menu.d.ts +103 -0
- package/dist/types/components/pf-slider/pf-slider.d.ts +65 -0
- package/dist/types/components/pf-sparkline/pf-sparkline.d.ts +54 -0
- package/dist/types/components/pf-switch/pf-switch.d.ts +61 -0
- package/dist/types/components/pf-tab/pf-tab.d.ts +83 -0
- package/dist/types/components/pf-tab-panel/pf-tab-panel.d.ts +24 -0
- package/dist/types/components/pf-table/pf-table.d.ts +76 -0
- package/dist/types/components/pf-table-cell/pf-table-cell.d.ts +43 -0
- package/dist/types/components/pf-table-row/pf-table-row.d.ts +31 -0
- package/dist/types/components/pf-tabs/pf-tabs.d.ts +149 -0
- package/dist/types/components/pf-tag/pf-tag.d.ts +26 -0
- package/dist/types/components/pf-tag-input/pf-tag-input.d.ts +92 -0
- package/dist/types/components/pf-textarea/pf-textarea.d.ts +89 -0
- package/dist/types/components/pf-time-picker/pf-time-picker.d.ts +105 -0
- package/dist/types/components/pf-timeline/pf-timeline.d.ts +27 -0
- package/dist/types/components/pf-timeline-item/pf-timeline-item.d.ts +40 -0
- package/dist/types/components/pf-toaster/pf-toaster.d.ts +66 -0
- package/dist/types/components/pf-toolbar/pf-toolbar.d.ts +37 -0
- package/dist/types/components/pf-toolbar-separator/pf-toolbar-separator.d.ts +14 -0
- package/dist/types/components/pf-tooltip/pf-tooltip.d.ts +74 -0
- package/dist/types/components/pf-tree-item/pf-tree-item.d.ts +75 -0
- package/dist/types/components/pf-tree-view/pf-tree-view.d.ts +94 -0
- package/dist/types/components/pf-utility-button/pf-utility-button.d.ts +41 -0
- package/dist/types/components/pf-video-player/pf-video-player.d.ts +72 -0
- package/dist/types/components/pf-visually-hidden/pf-visually-hidden.d.ts +20 -0
- package/dist/types/components.d.ts +11948 -0
- package/dist/types/form-validity.d.ts +24 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/place-popover.d.ts +16 -0
- package/dist/types/stencil-public-runtime.d.ts +1879 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +95 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfCalendarCss","PfCalendar","value","min","max","startYear","endYear","showOutsideDays","label","isDateDisabled","pfChange","displayMonth","startOfMonth","Date","focusedDate","toMidday","shouldRestoreFocus","componentWillLoad","selected","this","selectedDate","base","clamp","componentDidRender","el","shadowRoot","querySelector","focus","syncValue","goToMonth","date","target","parseISODate","focusSelectedDay","years","now","getFullYear","start","end","Math","clampMonthToYearRange","isDisabled","isOutsideDateRange","select","formatISODate","emit","moveFocus","move","next","moveCalendarDate","onKeyDown","event","resolveCalendarKey","key","preventDefault","Keys","Enter","Space","showMonth","month","lastDay","getMonth","getDate","stepMonth","amount","addMonths","renderHeader","Array","from","length","_","index","months","Intl","DateTimeFormat","format","atFirst","atLast","h","class","part","type","disabled","onClick","name","onChange","Number","map","String","year","render","days","buildCalendarDays","today","monthLabel","Host","role","WEEKDAY_LABELS","day","CALENDAR_CELL_COUNT","week","slice","inCurrentMonth","isSelected","isSameDay","isToday","isFocused","tabindex","weekday"],"sources":["src/components/pf-calendar/pf-calendar.css?tag=pf-calendar&encapsulation=shadow","src/components/pf-calendar/pf-calendar.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.calendar {\n background: var(--pf-calendar-bg);\n border: 1px solid var(--pf-calendar-border);\n border-radius: var(--radius-md);\n color: var(--pf-calendar-text);\n display: grid;\n gap: var(--space-3);\n padding: var(--space-3);\n}\n\n.header {\n align-items: center;\n display: flex;\n gap: var(--space-2);\n justify-content: space-between;\n}\n\n.controls {\n display: flex;\n gap: var(--space-2);\n min-width: 0;\n}\n\n.select {\n background: var(--pf-calendar-bg);\n border: 1px solid var(--pf-calendar-border);\n border-radius: var(--radius-sm);\n color: var(--pf-calendar-text);\n font-family: inherit;\n font-size: var(--font-size-sm);\n padding: var(--space-1) var(--space-2);\n}\n\n.select:focus-visible {\n box-shadow: var(--pf-focus-ring);\n outline: none;\n}\n\n.nav {\n align-items: center;\n background: none;\n border: 0;\n border-radius: var(--radius-sm);\n color: var(--pf-calendar-text-muted);\n cursor: pointer;\n display: inline-flex;\n justify-content: center;\n padding: var(--space-1);\n}\n\n.nav:hover:not(:disabled) {\n background: var(--pf-calendar-bg-subtle);\n color: var(--pf-calendar-text);\n}\n\n.nav:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.nav:focus-visible {\n box-shadow: var(--pf-focus-ring);\n outline: none;\n}\n\n.grid {\n display: grid;\n gap: 2px;\n}\n\n/*\n * `display: contents` so each row's seven cells join the grid's own columns\n * rather than forming a nested box. The rows exist for the `role=\"row\"` the\n * grid pattern requires, not for layout.\n */\n.row {\n display: contents;\n}\n\n.grid {\n grid-template-columns: repeat(7, 1fr);\n}\n\n.weekday {\n color: var(--pf-calendar-text-muted);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-semibold);\n padding: var(--space-1) 0;\n text-align: center;\n}\n\n.day,\n.empty {\n aspect-ratio: 1;\n display: flex;\n min-width: var(--space-8);\n}\n\n.day {\n align-items: center;\n background: none;\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n color: var(--pf-calendar-text);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--font-size-sm);\n justify-content: center;\n}\n\n.day:hover:not([aria-disabled='true']) {\n background: var(--pf-calendar-bg-subtle);\n}\n\n.day:focus-visible {\n box-shadow: var(--pf-focus-ring);\n outline: none;\n}\n\n.day--outside {\n color: var(--pf-calendar-text-muted);\n}\n\n.day--today {\n background: var(--pf-calendar-today-bg);\n border-color: var(--pf-calendar-today-border);\n}\n\n/* After today, so a selected day that is also today reads as selected. */\n.day--selected {\n background: var(--pf-calendar-selected-bg);\n border-color: var(--pf-calendar-selected-bg);\n color: var(--pf-calendar-selected-text);\n}\n\n.day--selected:hover {\n background: var(--pf-calendar-selected-bg-hover);\n}\n\n.day[aria-disabled='true'] {\n cursor: not-allowed;\n opacity: 0.4;\n}\n","import {\n addMonths,\n buildCalendarDays,\n CALENDAR_CELL_COUNT,\n clampMonthToYearRange,\n formatISODate,\n isOutsideDateRange,\n isSameDay,\n Keys,\n moveCalendarDate,\n parseISODate,\n resolveCalendarKey,\n startOfMonth,\n toMidday,\n WEEKDAY_LABELS,\n type CalendarMove,\n} from '@pitchfork-ui/core';\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\n\n/**\n * A month grid for picking a date.\n *\n * **It has a keyboard, which the React component does not.** `Calendar`\n * renders 42 buttons and no key handling, so reaching the end of a month means\n * 42 presses of Tab and there is no way to move by week at all. This grid is\n * the ARIA pattern instead: one tab stop, arrows to move a day, up and down a\n * week, Home and End to the ends of the week, PageUp/PageDown a month. The\n * arithmetic is core's `moveCalendarDate`, so the React component can adopt it\n * without the two disagreeing — recorded in `todo.md`.\n *\n * Month and year are native `<select>`s rather than two `pf-dropdown`s. A year\n * range of a century would mean a hundred custom elements rendered into this\n * shadow root for one control, and a `<select>` brings its own keyboard and\n * its platform picker on a phone.\n *\n * @part calendar - the root box.\n * @part header - the month and year controls row.\n * @part grid - the month grid.\n * @part day - every day cell.\n * @part selected - the selected day.\n * @part today - today's cell.\n */\n@Component({\n tag: 'pf-calendar',\n styleUrl: 'pf-calendar.css',\n shadow: true,\n})\nexport class PfCalendar {\n @Element() el!: HTMLElement;\n\n /** The selected date, as `YYYY-MM-DD`. Reflected, so a selector can find it. */\n @Prop({ mutable: true, reflect: true }) value?: string;\n\n /** Earliest selectable date, as `YYYY-MM-DD`. */\n @Prop() min?: string;\n\n /** Latest selectable date, as `YYYY-MM-DD`. */\n @Prop() max?: string;\n\n /** First year offered in the year picker. Defaults to 50 years back. */\n @Prop() startYear?: number;\n\n /** Last year offered in the year picker. Defaults to 50 years on. */\n @Prop() endYear?: number;\n\n /** Render the days borrowed from the neighbouring months. */\n @Prop() showOutsideDays = true;\n\n /** Accessible name for the grid. */\n @Prop() label = 'Calendar';\n\n /**\n * A predicate for days that cannot be chosen, beyond `min` and `max`.\n *\n * A property rather than an attribute, because a function cannot be written\n * in HTML — the generated bindings set props as properties, so a React or\n * Angular consumer passes it as they would any other prop, and a plain-HTML\n * consumer uses `min`/`max` or assigns it in script.\n */\n @Prop() isDateDisabled?: (date: Date) => boolean;\n\n /** Fires with the chosen date, as `YYYY-MM-DD`. */\n @Event() pfChange!: EventEmitter<{ value: string }>;\n\n /** The month on screen. */\n @State() displayMonth: Date = startOfMonth(new Date());\n\n /** The day the grid's single tab stop sits on. */\n @State() focusedDate: Date = toMidday(new Date());\n\n /** Set once a key or a click has moved focus, so the first paint does not steal it. */\n private shouldRestoreFocus = false;\n\n componentWillLoad() {\n const selected = this.selectedDate();\n const base = selected ?? toMidday(new Date());\n this.focusedDate = base;\n this.displayMonth = this.clamp(startOfMonth(base));\n }\n\n componentDidRender() {\n if (!this.shouldRestoreFocus) return;\n this.shouldRestoreFocus = false;\n // The grid has one tab stop, so after a move the new one has to be given\n // focus explicitly — the old button may not even exist any more.\n this.el.shadowRoot?.querySelector<HTMLButtonElement>('button[data-day][tabindex=\"0\"]')?.focus();\n }\n\n /** Follows a value set from outside, so the grid shows what it is told. */\n @Watch('value')\n syncValue() {\n const selected = this.selectedDate();\n if (!selected) return;\n this.focusedDate = selected;\n this.displayMonth = this.clamp(startOfMonth(selected));\n }\n\n /** Moves the grid to the month holding `date` (a `Date` or `YYYY-MM-DD`). */\n @Method()\n async goToMonth(date: string | Date): Promise<void> {\n const target = typeof date === 'string' ? parseISODate(date) : toMidday(date);\n if (!target) return;\n this.displayMonth = this.clamp(startOfMonth(target));\n this.focusedDate = target;\n }\n\n /**\n * Puts focus on the grid's single tab stop.\n *\n * A method rather than something a container does for itself: the tab stop\n * is inside this shadow root, and reaching into another component's shadow\n * root to find it is exactly the coupling `::part()` and `@Method()` exist\n * to avoid. `pf-date-picker` calls this when its popover opens.\n */\n @Method()\n async focusSelectedDay(): Promise<void> {\n this.el.shadowRoot?.querySelector<HTMLButtonElement>('button[data-day][tabindex=\"0\"]')?.focus();\n }\n\n private selectedDate(): Date | null {\n return parseISODate(this.value);\n }\n\n private get years() {\n const now = new Date().getFullYear();\n const start = this.startYear ?? now - 50;\n const end = this.endYear ?? now + 50;\n return { start: Math.min(start, end), end: Math.max(start, end) };\n }\n\n private clamp(date: Date): Date {\n const { start, end } = this.years;\n return clampMonthToYearRange(date, start, end);\n }\n\n private isDisabled(date: Date): boolean {\n const min = parseISODate(this.min);\n const max = parseISODate(this.max);\n if (isOutsideDateRange(date, min, max)) return true;\n return this.isDateDisabled?.(date) ?? false;\n }\n\n private select(date: Date) {\n if (this.isDisabled(date)) return;\n this.value = formatISODate(date);\n this.focusedDate = date;\n this.displayMonth = this.clamp(startOfMonth(date));\n this.pfChange.emit({ value: this.value });\n }\n\n /**\n * Moves the focused day, bringing the grid with it.\n *\n * A disabled day can still be focused — skipping it would make a long\n * blocked stretch impossible to cross, and the ARIA pattern is that focus\n * moves freely while activation is refused.\n */\n private moveFocus(move: CalendarMove) {\n const next = moveCalendarDate(this.focusedDate, move);\n const { start, end } = this.years;\n if (next.getFullYear() < start || next.getFullYear() > end) return;\n\n this.focusedDate = next;\n this.displayMonth = this.clamp(startOfMonth(next));\n this.shouldRestoreFocus = true;\n }\n\n private onKeyDown = (event: KeyboardEvent) => {\n // The key map is core's, so the React `Calendar` cannot disagree with this\n // grid about what PageUp means.\n const move = resolveCalendarKey(event.key);\n if (move) {\n event.preventDefault();\n this.moveFocus(move);\n return;\n }\n\n if (event.key === Keys.Enter || event.key === Keys.Space) {\n event.preventDefault();\n this.select(this.focusedDate);\n this.shouldRestoreFocus = true;\n }\n };\n\n /**\n * Shows a month and brings the tab stop with it.\n *\n * Both halves, always. Moving `displayMonth` alone leaves `focusedDate` on a\n * day that is no longer rendered, so no cell carries `tabindex=\"0\"` and the\n * grid drops out of the tab order altogether — reachable by mouse and by\n * nothing else. The year picker did exactly that until a test went looking.\n */\n private showMonth(month: Date) {\n const target = this.clamp(startOfMonth(month));\n const lastDay = new Date(target.getFullYear(), target.getMonth() + 1, 0, 12).getDate();\n this.displayMonth = target;\n this.focusedDate = new Date(\n target.getFullYear(),\n target.getMonth(),\n Math.min(this.focusedDate.getDate(), lastDay),\n 12,\n );\n }\n\n private stepMonth(amount: number) {\n this.showMonth(addMonths(this.displayMonth, amount));\n }\n\n private renderHeader() {\n const { start, end } = this.years;\n const years = Array.from({ length: end - start + 1 }, (_, index) => start + index);\n const months = Array.from({ length: 12 }, (_, month) =>\n new Intl.DateTimeFormat('en-US', { month: 'long' }).format(new Date(2024, month, 1)),\n );\n\n const atFirst = this.displayMonth.getFullYear() === start && this.displayMonth.getMonth() === 0;\n const atLast = this.displayMonth.getFullYear() === end && this.displayMonth.getMonth() === 11;\n\n return (\n <div class=\"header\" part=\"header\">\n <button\n type=\"button\"\n class=\"nav\"\n aria-label=\"Previous month\"\n disabled={atFirst}\n onClick={() => this.stepMonth(-1)}\n >\n <pf-icon name=\"square-caret-left\"></pf-icon>\n </button>\n\n <div class=\"controls\">\n <select\n class=\"select\"\n aria-label=\"Month\"\n onChange={(event) => {\n const month = Number((event.target as HTMLSelectElement).value);\n this.showMonth(new Date(this.displayMonth.getFullYear(), month, 1, 12));\n }}\n >\n {months.map((name, month) => (\n <option\n key={name}\n value={String(month)}\n selected={month === this.displayMonth.getMonth()}\n >\n {name}\n </option>\n ))}\n </select>\n\n <select\n class=\"select\"\n aria-label=\"Year\"\n onChange={(event) => {\n const year = Number((event.target as HTMLSelectElement).value);\n this.showMonth(new Date(year, this.displayMonth.getMonth(), 1, 12));\n }}\n >\n {years.map((year) => (\n <option\n key={year}\n value={String(year)}\n selected={year === this.displayMonth.getFullYear()}\n >\n {year}\n </option>\n ))}\n </select>\n </div>\n\n <button\n type=\"button\"\n class=\"nav\"\n aria-label=\"Next month\"\n disabled={atLast}\n onClick={() => this.stepMonth(1)}\n >\n <pf-icon name=\"square-caret-right\"></pf-icon>\n </button>\n </div>\n );\n }\n\n render() {\n const days = buildCalendarDays(this.displayMonth);\n const selected = this.selectedDate();\n const today = toMidday(new Date());\n const monthLabel = new Intl.DateTimeFormat('en-US', {\n month: 'long',\n year: 'numeric',\n }).format(this.displayMonth);\n\n return (\n <Host>\n <div class=\"calendar\" part=\"calendar\">\n {this.renderHeader()}\n\n <div\n class=\"grid\"\n part=\"grid\"\n role=\"grid\"\n aria-label={`${this.label}, ${monthLabel}`}\n onKeyDown={this.onKeyDown}\n >\n <div class=\"row\" role=\"row\">\n {WEEKDAY_LABELS.map((day) => (\n <span key={day} class=\"weekday\" role=\"columnheader\" aria-label={day}>\n {day}\n </span>\n ))}\n </div>\n\n {Array.from({ length: CALENDAR_CELL_COUNT / 7 }, (_, week) => (\n <div key={week} class=\"row\" role=\"row\">\n {days.slice(week * 7, week * 7 + 7).map(({ date, inCurrentMonth }) => {\n if (!this.showOutsideDays && !inCurrentMonth) {\n return <span key={formatISODate(date)} class=\"empty\" role=\"gridcell\"></span>;\n }\n\n const isSelected = selected ? isSameDay(selected, date) : false;\n const isToday = isSameDay(today, date);\n const isFocused = isSameDay(this.focusedDate, date);\n const disabled = this.isDisabled(date);\n\n return (\n <button\n key={formatISODate(date)}\n type=\"button\"\n role=\"gridcell\"\n data-day={formatISODate(date)}\n part={`day${isSelected ? ' selected' : ''}${isToday ? ' today' : ''}`}\n class={{\n day: true,\n 'day--outside': !inCurrentMonth,\n 'day--today': isToday,\n 'day--selected': isSelected,\n }}\n /* One tab stop for the whole grid: the arrows do the rest. */\n tabindex={isFocused ? 0 : -1}\n aria-selected={isSelected ? 'true' : 'false'}\n aria-current={isToday ? 'date' : null}\n aria-disabled={disabled ? 'true' : null}\n aria-label={new Intl.DateTimeFormat('en-US', {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n }).format(date)}\n onClick={() => {\n this.select(date);\n this.shouldRestoreFocus = true;\n }}\n >\n {date.getDate()}\n </button>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"uNAAA,MAAMA,EAAgB,IAAM,mpE,MC2DfC,EAAU,M,kFAImBC,MAGhCC,IAGAC,IAGAC,UAGAC,QAGAC,gBAAkB,KAGlBC,MAAQ,WAURC,eAGCC,SAGAC,aAAqBC,EAAa,IAAIC,MAGtCC,YAAoBC,EAAS,IAAIF,MAGlCG,mBAAqB,MAE7B,iBAAAC,GACE,MAAMC,EAAWC,KAAKC,eACtB,MAAMC,EAAOH,GAAYH,EAAS,IAAIF,MACtCM,KAAKL,YAAcO,EACnBF,KAAKR,aAAeQ,KAAKG,MAAMV,EAAaS,G,CAG9C,kBAAAE,GACE,IAAKJ,KAAKH,mBAAoB,OAC9BG,KAAKH,mBAAqB,MAG1BG,KAAKK,GAAGC,YAAYC,cAAiC,mCAAmCC,O,CAK1F,SAAAC,GACE,MAAMV,EAAWC,KAAKC,eACtB,IAAKF,EAAU,OACfC,KAAKL,YAAcI,EACnBC,KAAKR,aAAeQ,KAAKG,MAAMV,EAAaM,G,CAK9C,eAAMW,CAAUC,GACd,MAAMC,SAAgBD,IAAS,SAAWE,EAAaF,GAAQf,EAASe,GACxE,IAAKC,EAAQ,OACbZ,KAAKR,aAAeQ,KAAKG,MAAMV,EAAamB,IAC5CZ,KAAKL,YAAciB,C,CAYrB,sBAAME,GACJd,KAAKK,GAAGC,YAAYC,cAAiC,mCAAmCC,O,CAGlF,YAAAP,GACN,OAAOY,EAAab,KAAKjB,M,CAG3B,SAAYgC,GACV,MAAMC,GAAM,IAAItB,MAAOuB,cACvB,MAAMC,EAAQlB,KAAKd,WAAa8B,EAAM,GACtC,MAAMG,EAAMnB,KAAKb,SAAW6B,EAAM,GAClC,MAAO,CAAEE,MAAOE,KAAKpC,IAAIkC,EAAOC,GAAMA,IAAKC,KAAKnC,IAAIiC,EAAOC,G,CAGrD,KAAAhB,CAAMQ,GACZ,MAAMO,MAAEA,EAAKC,IAAEA,GAAQnB,KAAKe,MAC5B,OAAOM,EAAsBV,EAAMO,EAAOC,E,CAGpC,UAAAG,CAAWX,GACjB,MAAM3B,EAAM6B,EAAab,KAAKhB,KAC9B,MAAMC,EAAM4B,EAAab,KAAKf,KAC9B,GAAIsC,EAAmBZ,EAAM3B,EAAKC,GAAM,OAAO,KAC/C,OAAOe,KAAKV,iBAAiBqB,IAAS,K,CAGhC,MAAAa,CAAOb,GACb,GAAIX,KAAKsB,WAAWX,GAAO,OAC3BX,KAAKjB,MAAQ0C,EAAcd,GAC3BX,KAAKL,YAAcgB,EACnBX,KAAKR,aAAeQ,KAAKG,MAAMV,EAAakB,IAC5CX,KAAKT,SAASmC,KAAK,CAAE3C,MAAOiB,KAAKjB,O,CAU3B,SAAA4C,CAAUC,GAChB,MAAMC,EAAOC,EAAiB9B,KAAKL,YAAaiC,GAChD,MAAMV,MAAEA,EAAKC,IAAEA,GAAQnB,KAAKe,MAC5B,GAAIc,EAAKZ,cAAgBC,GAASW,EAAKZ,cAAgBE,EAAK,OAE5DnB,KAAKL,YAAckC,EACnB7B,KAAKR,aAAeQ,KAAKG,MAAMV,EAAaoC,IAC5C7B,KAAKH,mBAAqB,I,CAGpBkC,UAAaC,IAGnB,MAAMJ,EAAOK,EAAmBD,EAAME,KACtC,GAAIN,EAAM,CACRI,EAAMG,iBACNnC,KAAK2B,UAAUC,GACf,M,CAGF,GAAII,EAAME,MAAQE,EAAKC,OAASL,EAAME,MAAQE,EAAKE,MAAO,CACxDN,EAAMG,iBACNnC,KAAKwB,OAAOxB,KAAKL,aACjBK,KAAKH,mBAAqB,I,GAYtB,SAAA0C,CAAUC,GAChB,MAAM5B,EAASZ,KAAKG,MAAMV,EAAa+C,IACvC,MAAMC,EAAU,IAAI/C,KAAKkB,EAAOK,cAAeL,EAAO8B,WAAa,EAAG,EAAG,IAAIC,UAC7E3C,KAAKR,aAAeoB,EACpBZ,KAAKL,YAAc,IAAID,KACrBkB,EAAOK,cACPL,EAAO8B,WACPtB,KAAKpC,IAAIgB,KAAKL,YAAYgD,UAAWF,GACrC,G,CAII,SAAAG,CAAUC,GAChB7C,KAAKuC,UAAUO,EAAU9C,KAAKR,aAAcqD,G,CAGtC,YAAAE,GACN,MAAM7B,MAAEA,EAAKC,IAAEA,GAAQnB,KAAKe,MAC5B,MAAMA,EAAQiC,MAAMC,KAAK,CAAEC,OAAQ/B,EAAMD,EAAQ,IAAK,CAACiC,EAAGC,IAAUlC,EAAQkC,IAC5E,MAAMC,EAASL,MAAMC,KAAK,CAAEC,OAAQ,KAAM,CAACC,EAAGX,IAC5C,IAAIc,KAAKC,eAAe,QAAS,CAAEf,MAAO,SAAUgB,OAAO,IAAI9D,KAAK,KAAM8C,EAAO,MAGnF,MAAMiB,EAAUzD,KAAKR,aAAayB,gBAAkBC,GAASlB,KAAKR,aAAakD,aAAe,EAC9F,MAAMgB,EAAS1D,KAAKR,aAAayB,gBAAkBE,GAAOnB,KAAKR,aAAakD,aAAe,GAE3F,OACEiB,EAAA,OAAKC,MAAM,SAASC,KAAK,UACvBF,EAAA,UACEG,KAAK,SACLF,MAAM,MAAK,aACA,iBACXG,SAAUN,EACVO,QAAS,IAAMhE,KAAK4C,WAAU,IAE9Be,EAAA,WAASM,KAAK,uBAGhBN,EAAA,OAAKC,MAAM,YACTD,EAAA,UACEC,MAAM,SAAQ,aACH,QACXM,SAAWlC,IACT,MAAMQ,EAAQ2B,OAAQnC,EAAMpB,OAA6B7B,OACzDiB,KAAKuC,UAAU,IAAI7C,KAAKM,KAAKR,aAAayB,cAAeuB,EAAO,EAAG,IAAI,GAGxEa,EAAOe,KAAI,CAACH,EAAMzB,IACjBmB,EAAA,UACEzB,IAAK+B,EACLlF,MAAOsF,OAAO7B,GACdzC,SAAUyC,IAAUxC,KAAKR,aAAakD,YAErCuB,MAKPN,EAAA,UACEC,MAAM,SAAQ,aACH,OACXM,SAAWlC,IACT,MAAMsC,EAAOH,OAAQnC,EAAMpB,OAA6B7B,OACxDiB,KAAKuC,UAAU,IAAI7C,KAAK4E,EAAMtE,KAAKR,aAAakD,WAAY,EAAG,IAAI,GAGpE3B,EAAMqD,KAAKE,GACVX,EAAA,UACEzB,IAAKoC,EACLvF,MAAOsF,OAAOC,GACdvE,SAAUuE,IAAStE,KAAKR,aAAayB,eAEpCqD,OAMTX,EAAA,UACEG,KAAK,SACLF,MAAM,MAAK,aACA,aACXG,SAAUL,EACVM,QAAS,IAAMhE,KAAK4C,UAAU,IAE9Be,EAAA,WAASM,KAAK,wB,CAMtB,MAAAM,GACE,MAAMC,EAAOC,EAAkBzE,KAAKR,cACpC,MAAMO,EAAWC,KAAKC,eACtB,MAAMyE,EAAQ9E,EAAS,IAAIF,MAC3B,MAAMiF,EAAa,IAAIrB,KAAKC,eAAe,QAAS,CAClDf,MAAO,OACP8B,KAAM,YACLd,OAAOxD,KAAKR,cAEf,OACEmE,EAACiB,EAAI,CAAA1C,IAAA,4CACHyB,EAAA,OAAAzB,IAAA,2CAAK0B,MAAM,WAAWC,KAAK,YACxB7D,KAAK+C,eAENY,EAAA,OAAAzB,IAAA,2CACE0B,MAAM,OACNC,KAAK,OACLgB,KAAK,OAAM,aACC,GAAG7E,KAAKX,UAAUsF,IAC9B5C,UAAW/B,KAAK+B,WAEhB4B,EAAA,OAAAzB,IAAA,2CAAK0B,MAAM,MAAMiB,KAAK,OACnBC,EAAeV,KAAKW,GACnBpB,EAAA,QAAMzB,IAAK6C,EAAKnB,MAAM,UAAUiB,KAAK,eAAc,aAAaE,GAC7DA,MAKN/B,MAAMC,KAAK,CAAEC,OAAQ8B,EAAsB,IAAK,CAAC7B,EAAG8B,IACnDtB,EAAA,OAAKzB,IAAK+C,EAAMrB,MAAM,MAAMiB,KAAK,OAC9BL,EAAKU,MAAMD,EAAO,EAAGA,EAAO,EAAI,GAAGb,KAAI,EAAGzD,OAAMwE,qBAC/C,IAAKnF,KAAKZ,kBAAoB+F,EAAgB,CAC5C,OAAOxB,EAAA,QAAMzB,IAAKT,EAAcd,GAAOiD,MAAM,QAAQiB,KAAK,Y,CAG5D,MAAMO,EAAarF,EAAWsF,EAAUtF,EAAUY,GAAQ,MAC1D,MAAM2E,EAAUD,EAAUX,EAAO/D,GACjC,MAAM4E,EAAYF,EAAUrF,KAAKL,YAAagB,GAC9C,MAAMoD,EAAW/D,KAAKsB,WAAWX,GAEjC,OACEgD,EAAA,UACEzB,IAAKT,EAAcd,GACnBmD,KAAK,SACLe,KAAK,WAAU,WACLpD,EAAcd,GACxBkD,KAAM,MAAMuB,EAAa,YAAc,KAAKE,EAAU,SAAW,KACjE1B,MAAO,CACLmB,IAAK,KACL,gBAAiBI,EACjB,aAAcG,EACd,gBAAiBF,GAGnBI,SAAUD,EAAY,GAAI,EAAE,gBACbH,EAAa,OAAS,QAAO,eAC9BE,EAAU,OAAS,KAAI,gBACtBvB,EAAW,OAAS,KAAI,aAC3B,IAAIT,KAAKC,eAAe,QAAS,CAC3CkC,QAAS,OACTjD,MAAO,OACPuC,IAAK,UACLT,KAAM,YACLd,OAAO7C,GACVqD,QAAS,KACPhE,KAAKwB,OAAOb,GACZX,KAAKH,mBAAqB,IAAI,GAG/Bc,EAAKgC,UACC,S","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r,a as o,h as t,H as a}from"./p-Bm6UxEit.js";const e=()=>`:host{display:block;scrollbar-color:var(--pf-scrollarea-thumb) transparent;scrollbar-width:thin;scrollbar-gutter:stable}:host([hidden]){display:none}:host(:focus-visible){border-radius:var(--radius-sm);box-shadow:var(--pf-scrollarea-focus-ring, var(--pf-focus-ring));outline:none}:host([orientation='vertical']){overflow-x:hidden;overflow-y:auto}:host([orientation='horizontal']){overflow-x:auto;overflow-y:hidden}:host([orientation='both']){overflow:auto}:host::-webkit-scrollbar{height:10px;width:10px}:host::-webkit-scrollbar-track{background:transparent}:host::-webkit-scrollbar-thumb{background:var(--pf-scrollarea-thumb);background-clip:padding-box;border:2px solid transparent;border-radius:var(--radius-full)}:host::-webkit-scrollbar-thumb:hover{background:var(--pf-scrollarea-thumb-hover);background-clip:padding-box}:host::-webkit-scrollbar-corner{background:transparent}`;const s=class{constructor(o){r(this,o)}get el(){return o(this)}orientation="vertical";focusable=true;componentWillLoad(){if(this.focusable&&!this.el.hasAttribute("tabindex")){this.el.setAttribute("tabindex","0")}}render(){return t(a,{key:"1981de11e7e17cb513ca642b180062c3767fbf41"},t("slot",{key:"1260c995e6571cc826038be07fffc584343675c7"}))}};s.style=e();export{s as pf_scroll_area};
|
|
2
|
+
//# sourceMappingURL=p-b4480baf.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfScrollAreaCss","PfScrollArea","orientation","focusable","componentWillLoad","this","el","hasAttribute","setAttribute","render","h","Host","key"],"sources":["src/components/pf-scroll-area/pf-scroll-area.css?tag=pf-scroll-area&encapsulation=shadow","src/components/pf-scroll-area/pf-scroll-area.tsx"],"sourcesContent":[":host {\n display: block;\n /* Standard scrollbar styling (Firefox + modern browsers). */\n scrollbar-color: var(--pf-scrollarea-thumb) transparent;\n scrollbar-width: thin;\n /* Reserve a gutter so the scrollbar never overlays (and obscures) content. */\n scrollbar-gutter: stable;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host(:focus-visible) {\n border-radius: var(--radius-sm);\n box-shadow: var(--pf-scrollarea-focus-ring, var(--pf-focus-ring));\n outline: none;\n}\n\n:host([orientation='vertical']) {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n:host([orientation='horizontal']) {\n overflow-x: auto;\n overflow-y: hidden;\n}\n\n:host([orientation='both']) {\n overflow: auto;\n}\n\n/*\n * WebKit / Blink scrollbar styling. These pseudo-elements target the host's own\n * scrollbar, so they are written against `:host` rather than an inner element.\n */\n:host::-webkit-scrollbar {\n height: 10px;\n width: 10px;\n}\n\n:host::-webkit-scrollbar-track {\n background: transparent;\n}\n\n:host::-webkit-scrollbar-thumb {\n background: var(--pf-scrollarea-thumb);\n /* Transparent border + padding-box clip insets the thumb so it reads slimmer. */\n background-clip: padding-box;\n border: 2px solid transparent;\n border-radius: var(--radius-full);\n}\n\n:host::-webkit-scrollbar-thumb:hover {\n background: var(--pf-scrollarea-thumb-hover);\n background-clip: padding-box;\n}\n\n:host::-webkit-scrollbar-corner {\n background: transparent;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core';\n\nexport type PfScrollAreaOrientation = 'vertical' | 'horizontal' | 'both';\n\n/**\n * A scrollable region with a styled, non-overlaying scrollbar.\n *\n * @slot - the content to scroll.\n */\n@Component({\n tag: 'pf-scroll-area',\n styleUrl: 'pf-scroll-area.css',\n shadow: true,\n})\nexport class PfScrollArea {\n @Element() el!: HTMLElement;\n\n /** Which axis scrolls. Reflected so the stylesheet can select on it. */\n @Prop({ reflect: true }) orientation: PfScrollAreaOrientation = 'vertical';\n\n /**\n * Make the region keyboard-focusable so it can be scrolled with the arrow\n * keys (WCAG 2.1.1). Set false when a focusable child already provides\n * keyboard access.\n */\n @Prop() focusable = true;\n\n /**\n * The host scrolls, so the host is what has to be focusable — there is no\n * inner element to put the tabindex on, which is why this is set here rather\n * than rendered.\n *\n * A consumer's own `tabindex` wins: read before the first render and never\n * overwritten, so `tabindex=\"-1\"` is respected instead of being silently\n * reset to 0.\n */\n componentWillLoad() {\n if (this.focusable && !this.el.hasAttribute('tabindex')) {\n this.el.setAttribute('tabindex', '0');\n }\n }\n\n render() {\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"],"mappings":"oDAAA,MAAMA,EAAkB,IAAM,o3B,MCcjBC,EAAY,M,iDAIEC,YAAuC,WAOxDC,UAAY,KAWpB,iBAAAC,GACE,GAAIC,KAAKF,YAAcE,KAAKC,GAAGC,aAAa,YAAa,CACvDF,KAAKC,GAAGE,aAAa,WAAY,I,EAIrC,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,QAAAE,IAAA,6C","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as a,h as t,H as e}from"./p-Bm6UxEit.js";function r(a,{width:t,height:e,padding:r}){if(a.length===0)return[];if(a.length===1)return[[t/2,e/2]];const i=Math.min(...a);const n=Math.max(...a);const s=t-r*2;const o=e-r*2;if(n===i)return a.map(((t,i)=>[r+i/(a.length-1)*s,e/2]));const d=n-i;return a.map(((t,e)=>[r+e/(a.length-1)*s,r+(1-(t-i)/d)*o]))}function i(a){if(a.length<2)return"";const[t,...e]=a;return[`M ${t[0]} ${t[1]}`,...e.map((([a,t])=>`L ${a} ${t}`))].join(" ")}function n(a,t){if(a.length<2)return"";const e=i(a);const r=a[0];return`${e} L ${a[a.length-1][0]} ${t} L ${r[0]} ${t} Z`}const s=()=>`:host{display:inline-block;line-height:0}:host([hidden]){display:none}.svg{display:block;overflow:visible}.area{opacity:var(--pf-sparkline-area-opacity, 0.15)}:host([animated]) .line{animation:pf-sparkline-draw var(--duration-slow) var(--easing-standard) both;stroke-dasharray:1}@keyframes pf-sparkline-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}:host([animated]) .area{animation:pf-sparkline-fade var(--duration-slow) var(--easing-standard) both}@keyframes pf-sparkline-fade{from{opacity:0}to{opacity:var(--pf-sparkline-area-opacity, 0.15)}}:host([animated]) .dot{animation:pf-sparkline-dot var(--duration-fast) var(--easing-decelerate) var(--duration-moderate) both}@keyframes pf-sparkline-dot{from{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){:host([animated]) .line,:host([animated]) .area,:host([animated]) .dot{animation:none}}`;const o=class{constructor(t){a(this,t)}data=[];width=120;height=36;variant="line";strokeWidth=1.5;color;endDot=false;animated=false;label;get values(){if(Array.isArray(this.data))return this.data.map(Number).filter(Number.isFinite);return String(this.data??"").split(",").map((a=>Number(a.trim()))).filter(Number.isFinite)}render(){const a=Number(this.width)||120;const s=Number(this.height)||36;const o=Number(this.strokeWidth)||1.5;const d=o+2;const c=r(this.values,{width:a,height:s,padding:d});const f=i(c);const h=this.variant==="area"?n(c,s-d+o):"";const l=c[c.length-1];const p=this.color??"var(--pf-sparkline-color)";return t(e,{key:"48c34496ff9ef2f3f4a41c88306c9b889675f75a"},t("svg",{key:"a20441dd7a4ac13826ef0a9a1182e617ed401100",class:"svg",part:"svg",width:a,height:s,viewBox:`0 0 ${a} ${s}`,role:this.label?"img":"presentation","aria-label":this.label},h&&t("path",{key:"ae71a2b060e46406eb6f1e62faae67d8bd624b10",class:"area",part:"area",d:h,fill:p}),f&&t("path",{key:"ebbb9d2e7fb866410a04229752e76963a702761e",class:"line",part:"line",d:f,fill:"none",stroke:p,"stroke-width":o,"stroke-linecap":"round","stroke-linejoin":"round",pathLength:this.animated?1:undefined}),this.endDot&&l&&t("circle",{key:"43b0fe15ba268da3ec1d80b3ade57b3d12a987bc",class:"dot",part:"dot",cx:l[0],cy:l[1],r:o+1.5,fill:p})))}};o.style=s();export{o as pf_sparkline};
|
|
2
|
+
//# sourceMappingURL=p-b4774cba.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sparklinePoints","data","width","height","padding","length","min","Math","max","innerWidth","innerHeight","map","_","index","range","value","sparklineLinePath","points","first","rest","x","y","join","sparklineAreaPath","bottom","line","pfSparklineCss","PfSparkline","variant","strokeWidth","color","endDot","animated","label","values","Array","isArray","this","Number","filter","isFinite","String","split","part","trim","render","area","last","stroke","h","Host","key","class","viewBox","role","d","fill","pathLength","undefined","cx","cy","r"],"sources":["../core/dist/sparkline.js","src/components/pf-sparkline/pf-sparkline.css?tag=pf-sparkline&encapsulation=shadow","src/components/pf-sparkline/pf-sparkline.tsx"],"sourcesContent":["//#region src/sparkline.ts\n/**\n* Where each value sits.\n*\n* Three edge cases, each of which the React `Sparkline` got wrong:\n*\n* - **One value** divided by `data.length - 1`, which is zero, so `x` came out\n* `NaN` and an `endDot` rendered `cx=\"NaN\"`. A single value has no line, so\n* it goes in the middle of the box, where a dot for it belongs.\n* - **Every value equal** fell to the `max - min || 1` guard and put the whole\n* series on one edge of the box — the bottom, which reads as a collapse\n* rather than as \"no change\". A flat series is centred.\n* - **No values** is an empty list, which is the one it did handle.\n*/\nfunction sparklinePoints(data, { width, height, padding }) {\n\tif (data.length === 0) return [];\n\tif (data.length === 1) return [[width / 2, height / 2]];\n\tconst min = Math.min(...data);\n\tconst max = Math.max(...data);\n\tconst innerWidth = width - padding * 2;\n\tconst innerHeight = height - padding * 2;\n\tif (max === min) return data.map((_, index) => [padding + index / (data.length - 1) * innerWidth, height / 2]);\n\tconst range = max - min;\n\treturn data.map((value, index) => [padding + index / (data.length - 1) * innerWidth, padding + (1 - (value - min) / range) * innerHeight]);\n}\n/** The line through the points, or `''` when there is no line to draw. */\nfunction sparklineLinePath(points) {\n\tif (points.length < 2) return \"\";\n\tconst [first, ...rest] = points;\n\treturn [`M ${first[0]} ${first[1]}`, ...rest.map(([x, y]) => `L ${x} ${y}`)].join(\" \");\n}\n/**\n* The same line, closed down to `bottom` and back, for the filled variant.\n*\n* A separate function rather than a flag on `sparklineLinePath`, because the\n* React version's `buildPath(points, close = false)` took one and its closing\n* branch interpolated the **boolean** into the path (`L ${lastX} ${close}`).\n* It was never reached — every call site passed one argument — so the broken\n* branch sat there looking like working code, and the area path was written\n* out a second time inline.\n*/\nfunction sparklineAreaPath(points, bottom) {\n\tif (points.length < 2) return \"\";\n\tconst line = sparklineLinePath(points);\n\tconst first = points[0];\n\treturn `${line} L ${points[points.length - 1][0]} ${bottom} L ${first[0]} ${bottom} Z`;\n}\n//#endregion\nexport { sparklineAreaPath, sparklineLinePath, sparklinePoints };\n",":host {\n display: inline-block;\n line-height: 0;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.svg {\n display: block;\n overflow: visible;\n}\n\n.area {\n opacity: var(--pf-sparkline-area-opacity, 0.15);\n}\n\n/*\n * Each element needs its own copy of its `@keyframes`: they do not cross a\n * shadow boundary, so the React library's global declarations are invisible\n * here. And the durations are the three that exist — `fast`, `moderate`,\n * `slow` — because an undefined custom property makes the whole `animation`\n * shorthand invalid at computed-value time and nothing runs at all.\n */\n:host([animated]) .line {\n animation: pf-sparkline-draw var(--duration-slow) var(--easing-standard) both;\n stroke-dasharray: 1;\n}\n\n@keyframes pf-sparkline-draw {\n from {\n stroke-dashoffset: 1;\n }\n\n to {\n stroke-dashoffset: 0;\n }\n}\n\n:host([animated]) .area {\n animation: pf-sparkline-fade var(--duration-slow) var(--easing-standard) both;\n}\n\n@keyframes pf-sparkline-fade {\n from {\n opacity: 0;\n }\n\n to {\n opacity: var(--pf-sparkline-area-opacity, 0.15);\n }\n}\n\n:host([animated]) .dot {\n animation: pf-sparkline-dot var(--duration-fast) var(--easing-decelerate) var(--duration-moderate)\n both;\n}\n\n@keyframes pf-sparkline-dot {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host([animated]) .line,\n :host([animated]) .area,\n :host([animated]) .dot {\n animation: none;\n }\n}\n","import { sparklineAreaPath, sparklineLinePath, sparklinePoints } from '@pitchfork-ui/core';\nimport { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * A small line or area chart with no axes.\n *\n * All of the geometry is core's, so this and the React `Sparkline` put the\n * same numbers in the same places — including the three edge cases that were\n * wrong before the extraction: one value gave `NaN`, a flat series was pinned\n * to an edge, and the closing branch of the old path builder interpolated a\n * boolean.\n *\n * @part svg - the chart.\n * @part area - the filled region, on the `area` variant.\n * @part line - the line.\n * @part dot - the dot at the last point, when `endDot` is set.\n */\n@Component({\n tag: 'pf-sparkline',\n styleUrl: 'pf-sparkline.css',\n shadow: true,\n})\nexport class PfSparkline {\n /**\n * The values to plot.\n *\n * A `number[]` for a framework consumer, and a comma-separated string for\n * plain HTML — `data=\"1,4,2,8\"` — because Stencil coerces an attribute only\n * for the primitive types it recognises, and an array is not one of them.\n * Read through `values` below, never directly.\n */\n @Prop() data: number[] | string = [];\n\n @Prop() width = 120;\n\n @Prop() height = 36;\n\n /** `line` draws only the stroke; `area` fills under it too. Reflected. */\n @Prop({ reflect: true }) variant: 'line' | 'area' = 'line';\n\n @Prop() strokeWidth = 1.5;\n\n /** Overrides the token colour, for a chart that has to match its data. */\n @Prop() color?: string;\n\n /** Draw a dot at the last value. */\n @Prop({ reflect: true }) endDot = false;\n\n /**\n * Draw the line in on first paint. Off by default. Reflected.\n *\n * `animated`, where the React prop is `animate`: `animate` is a **reserved\n * public name** — `Element.prototype.animate` is the Web Animations API —\n * and Stencil refuses to build a prop that shadows a prototype member. The\n * React component is a function taking props and has no such collision.\n */\n @Prop({ reflect: true }) animated = false;\n\n /**\n * The chart's accessible name.\n *\n * Without one the chart is `presentation`: a sparkline with no name is\n * decoration beside a number that already says what it means, and\n * announcing an unnamed graphic is worse than skipping it.\n */\n @Prop() label?: string;\n\n /** The values, however they arrived. */\n private get values(): number[] {\n if (Array.isArray(this.data)) return this.data.map(Number).filter(Number.isFinite);\n\n return String(this.data ?? '')\n .split(',')\n .map((part) => Number(part.trim()))\n .filter(Number.isFinite);\n }\n\n render() {\n const width = Number(this.width) || 120;\n const height = Number(this.height) || 36;\n const strokeWidth = Number(this.strokeWidth) || 1.5;\n const padding = strokeWidth + 2;\n\n const points = sparklinePoints(this.values, { width, height, padding });\n const line = sparklineLinePath(points);\n const area =\n this.variant === 'area' ? sparklineAreaPath(points, height - padding + strokeWidth) : '';\n const last = points[points.length - 1];\n const stroke = this.color ?? 'var(--pf-sparkline-color)';\n\n return (\n <Host>\n <svg\n class=\"svg\"\n part=\"svg\"\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n role={this.label ? 'img' : 'presentation'}\n aria-label={this.label}\n >\n {area && <path class=\"area\" part=\"area\" d={area} fill={stroke} />}\n {line && (\n <path\n class=\"line\"\n part=\"line\"\n d={line}\n fill=\"none\"\n stroke={stroke}\n stroke-width={strokeWidth}\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n // The dash maths below is then independent of the real length.\n pathLength={this.animated ? 1 : undefined}\n />\n )}\n {this.endDot && last && (\n <circle\n class=\"dot\"\n part=\"dot\"\n cx={last[0]}\n cy={last[1]}\n r={strokeWidth + 1.5}\n fill={stroke}\n />\n )}\n </svg>\n </Host>\n );\n }\n}\n"],"mappings":"kDAcA,SAASA,EAAgBC,GAAMC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,IAC/C,GAAIH,EAAKI,SAAW,EAAG,MAAO,GAC9B,GAAIJ,EAAKI,SAAW,EAAG,MAAO,CAAC,CAACH,EAAQ,EAAGC,EAAS,IACpD,MAAMG,EAAMC,KAAKD,OAAOL,GACxB,MAAMO,EAAMD,KAAKC,OAAOP,GACxB,MAAMQ,EAAaP,EAAQE,EAAU,EACrC,MAAMM,EAAcP,EAASC,EAAU,EACvC,GAAII,IAAQF,EAAK,OAAOL,EAAKU,KAAI,CAACC,EAAGC,IAAU,CAACT,EAAUS,GAASZ,EAAKI,OAAS,GAAKI,EAAYN,EAAS,KAC3G,MAAMW,EAAQN,EAAMF,EACpB,OAAOL,EAAKU,KAAI,CAACI,EAAOF,IAAU,CAACT,EAAUS,GAASZ,EAAKI,OAAS,GAAKI,EAAYL,GAAW,GAAKW,EAAQT,GAAOQ,GAASJ,IAC9H,CAEA,SAASM,EAAkBC,GAC1B,GAAIA,EAAOZ,OAAS,EAAG,MAAO,GAC9B,MAAOa,KAAUC,GAAQF,EACzB,MAAO,CAAC,KAAKC,EAAM,MAAMA,EAAM,QAASC,EAAKR,KAAI,EAAES,EAAGC,KAAO,KAAKD,KAAKC,OAAMC,KAAK,IACnF,CAWA,SAASC,EAAkBN,EAAQO,GAClC,GAAIP,EAAOZ,OAAS,EAAG,MAAO,GAC9B,MAAMoB,EAAOT,EAAkBC,GAC/B,MAAMC,EAAQD,EAAO,GACrB,MAAO,GAAGQ,OAAUR,EAAOA,EAAOZ,OAAS,GAAG,MAAMmB,OAAYN,EAAM,MAAMM,KAC7E,CC9CA,MAAME,EAAiB,IAAM,s2B,MCsBhBC,EAAW,M,yBASd1B,KAA0B,GAE1BC,MAAQ,IAERC,OAAS,GAGQyB,QAA2B,OAE5CC,YAAc,IAGdC,MAGiBC,OAAS,MAUTC,SAAW,MAS5BC,MAGR,UAAYC,GACV,GAAIC,MAAMC,QAAQC,KAAKpC,MAAO,OAAOoC,KAAKpC,KAAKU,IAAI2B,QAAQC,OAAOD,OAAOE,UAEzE,OAAOC,OAAOJ,KAAKpC,MAAQ,IACxByC,MAAM,KACN/B,KAAKgC,GAASL,OAAOK,EAAKC,UAC1BL,OAAOD,OAAOE,S,CAGnB,MAAAK,GACE,MAAM3C,EAAQoC,OAAOD,KAAKnC,QAAU,IACpC,MAAMC,EAASmC,OAAOD,KAAKlC,SAAW,GACtC,MAAM0B,EAAcS,OAAOD,KAAKR,cAAgB,IAChD,MAAMzB,EAAUyB,EAAc,EAE9B,MAAMZ,EAASjB,EAAgBqC,KAAKH,OAAQ,CAAEhC,QAAOC,SAAQC,YAC7D,MAAMqB,EAAOT,EAAkBC,GAC/B,MAAM6B,EACJT,KAAKT,UAAY,OAASL,EAAkBN,EAAQd,EAASC,EAAUyB,GAAe,GACxF,MAAMkB,EAAO9B,EAAOA,EAAOZ,OAAS,GACpC,MAAM2C,EAASX,KAAKP,OAAS,4BAE7B,OACEmB,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CACEC,MAAM,MACNT,KAAK,MACLzC,MAAOA,EACPC,OAAQA,EACRkD,QAAS,OAAOnD,KAASC,IACzBmD,KAAMjB,KAAKJ,MAAQ,MAAQ,eAAc,aAC7BI,KAAKJ,OAEhBa,GAAQG,EAAA,QAAAE,IAAA,2CAAMC,MAAM,OAAOT,KAAK,OAAOY,EAAGT,EAAMU,KAAMR,IACtDvB,GACCwB,EAAA,QAAAE,IAAA,2CACEC,MAAM,OACNT,KAAK,OACLY,EAAG9B,EACH+B,KAAK,OACLR,OAAQA,EAAM,eACAnB,EAAW,iBACV,QAAO,kBACN,QAEhB4B,WAAYpB,KAAKL,SAAW,EAAI0B,YAGnCrB,KAAKN,QAAUgB,GACdE,EAAA,UAAAE,IAAA,2CACEC,MAAM,MACNT,KAAK,MACLgB,GAAIZ,EAAK,GACTa,GAAIb,EAAK,GACTc,EAAGhC,EAAc,IACjB2B,KAAMR,K","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as a,h as e,H as s}from"./p-Bm6UxEit.js";const t=()=>`:host{align-items:center;display:flex;gap:var(--space-2);justify-content:space-between}:host([hidden]){display:none}:host(:not([drawn])){display:none}.label{color:var(--pf-radar-legend-text);font-size:var(--font-size-sm)}.value{color:var(--pf-radar-legend-value);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}`;const r=class{constructor(e){a(this,e)}label="";value=0;drawn=false;render(){return e(s,{key:"41f13fdd1cdc8cf1bf0ae402af0007047cfa0545",role:"listitem"},e("span",{key:"061bc65887e2bdac027a2bb4e15f0e03512e7add",class:"label",part:"label"},this.label),e("span",{key:"c9edf254f3998b842bd62eb0c071366ac6082a40",class:"value",part:"value"},this.value))}};r.style=t();export{r as pf_radar_axis};
|
|
2
|
+
//# sourceMappingURL=p-b6b18062.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfRadarAxisCss","PfRadarAxis","label","value","drawn","render","h","Host","key","role","class","part","this"],"sources":["src/components/pf-radar-axis/pf-radar-axis.css?tag=pf-radar-axis&encapsulation=shadow","src/components/pf-radar-axis/pf-radar-axis.tsx"],"sourcesContent":[":host {\n align-items: center;\n display: flex;\n gap: var(--space-2);\n justify-content: space-between;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n/* An axis the chart did not draw is not a legend row either. */\n:host(:not([drawn])) {\n display: none;\n}\n\n.label {\n color: var(--pf-radar-legend-text);\n font-size: var(--font-size-sm);\n}\n\n.value {\n color: var(--pf-radar-legend-value);\n font-size: var(--font-size-sm);\n font-variant-numeric: tabular-nums;\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * One axis of a `pf-radar-chart`, and its own row in the legend.\n *\n * The name is a `label` **attribute** rather than slotted content, which is\n * the one place this differs from the React `RadarChart`'s `ReactNode`: the\n * chart draws each name inside its own SVG as a `<text>`, and an SVG `<text>`\n * cannot hold arbitrary markup in either layer. The legend row the axis draws\n * for itself uses the same string, so the two always agree.\n *\n * @part label - the legend row's name.\n * @part value - the legend row's number.\n */\n@Component({\n tag: 'pf-radar-axis',\n styleUrl: 'pf-radar-axis.css',\n shadow: true,\n})\nexport class PfRadarAxis {\n /** The axis's name, drawn in the chart and in the legend. */\n @Prop({ reflect: true }) label = '';\n\n /** How far along this axis the shape reaches. */\n @Prop({ reflect: true }) value = 0;\n\n /**\n * Set by the chart: whether this axis is in the drawing.\n *\n * An axis with an unusable value is not drawn, so it is not a legend row\n * either — a legend naming an axis that appears nowhere is worse than a\n * shorter legend. Reflected, because that is what the stylesheet hides it\n * with.\n */\n @Prop({ mutable: true, reflect: true }) drawn = false;\n\n render() {\n return (\n <Host role=\"listitem\">\n <span class=\"label\" part=\"label\">\n {this.label}\n </span>\n <span class=\"value\" part=\"value\">\n {this.value}\n </span>\n </Host>\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAiB,IAAM,0U,MCmBhBC,EAAW,M,yBAEGC,MAAQ,GAGRC,MAAQ,EAUOC,MAAQ,MAEhD,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,KAAK,YACTH,EAAA,QAAAE,IAAA,2CAAME,MAAM,QAAQC,KAAK,SACtBC,KAAKV,OAERI,EAAA,QAAAE,IAAA,2CAAME,MAAM,QAAQC,KAAK,SACtBC,KAAKT,O","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,a as e,h as r,H as a}from"./p-Bm6UxEit.js";var n=3;function s(t,e,r){return{x:t+e*Math.cos(r),y:t+e*Math.sin(r)}}function i(t){if(!(t>0))return[];const e=2*Math.PI/t;return Array.from({length:t},((t,r)=>-Math.PI/2+r*e))}function o(t){return t.filter((t=>Number.isFinite(t.value)&&t.value>=0))}function l(t,e){if(typeof e==="number"&&e>0)return e;const r=Math.max(...o(t).map((t=>t.value)),1);return r>0?r:1}function d(t){return t.map((t=>`${t.x.toFixed(2)},${t.y.toFixed(2)}`)).join(" ")}function c(t,e,r,a){const n=Math.max(2,Math.floor(a)||2);return Array.from({length:n},((a,i)=>{const o=(i+1)/n;return d(t.map((t=>s(e,r*o,t))))}))}function h(t,e,r,a,n){const i=e>0?e:1;return r.map(((e,r)=>{const o=t[r];return s(a,n*(Number.isFinite(o)?Math.max(0,Math.min(1,o/i)):0),e)}))}const p=()=>`:host{align-items:stretch;display:inline-flex;flex-direction:column;gap:var(--space-4)}:host([hidden]){display:none}@media (min-width: 640px){:host{align-items:center;flex-direction:row;gap:var(--space-6)}}.svg{display:block;height:auto;overflow:visible;width:min(100%, 320px)}.grid{fill:none;stroke:var(--pf-radar-grid-stroke);stroke-width:1}.axis{stroke:var(--pf-radar-axis-stroke);stroke-width:1}.area{fill:var(--pf-radar-fill);stroke:var(--pf-radar-stroke);stroke-width:2}.point{fill:var(--pf-radar-stroke);stroke:var(--pf-radar-point-stroke);stroke-width:1.5}.axis-label{fill:var(--pf-radar-label);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium)}.value{animation:pf-radar-grow var(--duration-slow) var(--easing-decelerate)}@keyframes pf-radar-grow{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.value{animation:none}}.legend{display:grid;gap:var(--space-2);list-style:none;margin:0;min-width:0;padding:0;width:100%}@media (min-width: 640px){.legend{min-width:140px;width:auto}}.legend.legend--hidden{display:none}.legend slot{display:contents}.empty{align-items:center;border:1px dashed var(--pf-radar-empty-border);border-radius:var(--radius-md);color:var(--pf-radar-empty-text);display:inline-flex;font-size:var(--font-size-sm);justify-content:center;min-height:180px;min-width:260px;padding:var(--space-4);text-align:center}`;const u=class{constructor(e){t(this,e)}get el(){return e(this)}size=280;max;levels=4;showAxes=true;showLegend=true;label="Radar chart";axes=[];componentWillLoad(){this.sync()}componentDidLoad(){this.sync()}async refresh(){this.sync()}get axisElements(){return Array.from(this.el.children).filter((t=>t.tagName.toLowerCase()==="pf-radar-axis"))}sync(){const t=this.axisElements;const e=t.map((t=>{const e=t;return{label:e.label??t.getAttribute("label")??"",value:Number(e.value??t.getAttribute("value"))}}));const r=o(e);const a=r.length>=n;this.axes=a?r:[];const s=new Set(r);for(const[r,n]of t.entries()){n.drawn=a&&s.has(e[r])}}render(){const t=Math.max(Number(this.size)||280,180);const e=t/2;const o=e-36;if(this.axes.length<n){return r(a,null,r("div",{class:"empty",part:"empty"},r("slot",{name:"empty"},"A radar chart needs at least ",n," axes.")),r("ul",{class:"legend legend--hidden",part:"legend"},r("slot",{onSlotchange:()=>this.refresh()})))}const p=l(this.axes,this.max);const u=i(this.axes.length);const m=c(u,e,o,Number(this.levels));const f=h(this.axes.map((t=>t.value)),p,u,e,o);return r(a,null,r("svg",{class:"svg",part:"svg",viewBox:`0 0 ${t} ${t}`,role:"img","aria-label":this.label},m.map((t=>r("polygon",{class:"grid",part:"grid",points:t}))),this.showAxes&&u.map((t=>{const a=s(e,o,t);return r("line",{class:"axis",part:"axis",x1:e,y1:e,x2:a.x,y2:a.y})})),r("g",{class:"value",style:{transformBox:"view-box",transformOrigin:`${e}px ${e}px`}},r("polygon",{class:"area",part:"area",points:d(f)}),f.map((t=>r("circle",{class:"point",part:"point",cx:t.x,cy:t.y,r:"3"})))),u.map(((t,a)=>{const n=s(e,o+18,t);return r("text",{class:"axis-label",part:"axis-label",x:n.x,y:n.y,"text-anchor":"middle","dominant-baseline":"middle"},this.axes[a].label)}))),r("ul",{class:{legend:true,"legend--hidden":!this.showLegend},part:"legend"},r("slot",{onSlotchange:()=>this.refresh()})))}static get watchers(){return{max:[{sync:0}]}}};u.style=p();export{u as pf_radar_chart};
|
|
2
|
+
//# sourceMappingURL=p-be2c6150.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RADAR_MINIMUM_AXES","polarPoint","center","radius","angle","x","Math","cos","y","sin","radarAxisAngles","count","step","PI","Array","from","length","_","index","usableRadarAxes","data","filter","item","Number","isFinite","value","radarMax","explicit","largest","max","map","pointsToAttribute","points","point","toFixed","join","radarGridPolygons","angles","levels","rings","floor","ratio","radarValuePoints","values","top","min","pfRadarChartCss","PfRadarChart","size","showAxes","showLegend","label","axes","componentWillLoad","this","sync","componentDidLoad","refresh","axisElements","el","children","child","tagName","toLowerCase","read","axis","node","getAttribute","usable","drawable","usableSet","Set","entries","drawn","has","render","h","Host","class","part","name","onSlotchange","viewBox","role","ring","end","x1","y1","x2","y2","style","transformBox","transformOrigin","cx","cy","r","at","legend"],"sources":["../core/dist/radar.js","src/components/pf-radar-chart/pf-radar-chart.css?tag=pf-radar-chart&encapsulation=shadow","src/components/pf-radar-chart/pf-radar-chart.tsx"],"sourcesContent":["//#region src/radar.ts\n/** A radar needs at least three axes to enclose anything. */\nvar RADAR_MINIMUM_AXES = 3;\n/** A point at `radius` from the centre, along `angle` in radians. */\nfunction polarPoint(center, radius, angle) {\n\treturn {\n\t\tx: center + radius * Math.cos(angle),\n\t\ty: center + radius * Math.sin(angle)\n\t};\n}\n/**\n* The angle of each axis, in radians, evenly spaced.\n*\n* The first points **up**, not right: a radar whose first axis is at three\n* o'clock reads as rotated, and every radar anyone has seen starts at the\n* top. In SVG that is `-π/2`, because y grows downwards.\n*/\nfunction radarAxisAngles(count) {\n\tif (!(count > 0)) return [];\n\tconst step = 2 * Math.PI / count;\n\treturn Array.from({ length: count }, (_, index) => -Math.PI / 2 + index * step);\n}\n/**\n* The axes worth drawing: the ones with a usable value.\n*\n* A value that is not a number is dropped, since `NaN >= 0` is false — which\n* is also what the React `RadarChart` relied on, by accident rather than by\n* saying so.\n*/\nfunction usableRadarAxes(data) {\n\treturn data.filter((item) => Number.isFinite(item.value) && item.value >= 0);\n}\n/**\n* The scale's top.\n*\n* The explicit `max` wins, even when a value exceeds it — a consumer who set\n* a scale means it, and the polygon is clamped to the outer ring instead.\n* Otherwise the largest value, never below 1, so a chart of all zeroes has a\n* grid rather than a division by zero.\n*/\nfunction radarMax(data, explicit) {\n\tif (typeof explicit === \"number\" && explicit > 0) return explicit;\n\tconst largest = Math.max(...usableRadarAxes(data).map((item) => item.value), 1);\n\treturn largest > 0 ? largest : 1;\n}\n/** Points as an SVG `points` attribute, rounded to two places. */\nfunction pointsToAttribute(points) {\n\treturn points.map((point) => `${point.x.toFixed(2)},${point.y.toFixed(2)}`).join(\" \");\n}\n/**\n* The grid rings, outermost last, as `points` attributes.\n*\n* `levels` rings, the last of which is the outer edge — so a four-level radar\n* has rings at 25%, 50%, 75% and 100% and the outermost doubles as the\n* chart's boundary. Never fewer than two, or there is no grid to read a value\n* against.\n*/\nfunction radarGridPolygons(angles, center, radius, levels) {\n\tconst rings = Math.max(2, Math.floor(levels) || 2);\n\treturn Array.from({ length: rings }, (_, index) => {\n\t\tconst ratio = (index + 1) / rings;\n\t\treturn pointsToAttribute(angles.map((angle) => polarPoint(center, radius * ratio, angle)));\n\t});\n}\n/**\n* Where each value lands, clamped into the grid.\n*\n* Clamped rather than allowed to overshoot, because a point outside the outer\n* ring is drawn outside the chart's own box and clipped by the viewBox: a\n* value above `max` would simply disappear.\n*/\nfunction radarValuePoints(values, max, angles, center, radius) {\n\tconst top = max > 0 ? max : 1;\n\treturn angles.map((angle, index) => {\n\t\tconst value = values[index];\n\t\treturn polarPoint(center, radius * (Number.isFinite(value) ? Math.max(0, Math.min(1, value / top)) : 0), angle);\n\t});\n}\n//#endregion\nexport { RADAR_MINIMUM_AXES, pointsToAttribute, polarPoint, radarAxisAngles, radarGridPolygons, radarMax, radarValuePoints, usableRadarAxes };\n","/* Mobile first: the legend under the chart, beside it on a wider screen. */\n:host {\n align-items: stretch;\n display: inline-flex;\n flex-direction: column;\n gap: var(--space-4);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n@media (--sm) {\n :host {\n align-items: center;\n flex-direction: row;\n gap: var(--space-6);\n }\n}\n\n.svg {\n display: block;\n height: auto;\n /* The names are drawn outside the rings, so the box must not clip. */\n overflow: visible;\n width: min(100%, 320px);\n}\n\n.grid {\n fill: none;\n stroke: var(--pf-radar-grid-stroke);\n stroke-width: 1;\n}\n\n.axis {\n stroke: var(--pf-radar-axis-stroke);\n stroke-width: 1;\n}\n\n.area {\n fill: var(--pf-radar-fill);\n stroke: var(--pf-radar-stroke);\n stroke-width: 2;\n}\n\n.point {\n fill: var(--pf-radar-stroke);\n stroke: var(--pf-radar-point-stroke);\n stroke-width: 1.5;\n}\n\n.axis-label {\n fill: var(--pf-radar-label);\n font-size: var(--font-size-2xs);\n font-weight: var(--font-weight-medium);\n}\n\n.value {\n animation: pf-radar-grow var(--duration-slow) var(--easing-decelerate);\n}\n\n/* Its own copy: `@keyframes` do not cross a shadow boundary. */\n@keyframes pf-radar-grow {\n from {\n opacity: 0;\n transform: scale(0);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .value {\n animation: none;\n }\n}\n\n.legend {\n display: grid;\n gap: var(--space-2);\n list-style: none;\n margin: 0;\n min-width: 0;\n padding: 0;\n width: 100%;\n}\n\n@media (--sm) {\n .legend {\n min-width: 140px;\n width: auto;\n }\n}\n\n/*\n * Hidden rather than dropped, so the axes stay slotted and `slotchange` still\n * fires. Two classes deep, because the tie breaks on source order.\n */\n.legend.legend--hidden {\n display: none;\n}\n\n/* The axes are grid children of the list, not of a box inside it. */\n.legend slot {\n display: contents;\n}\n\n.empty {\n align-items: center;\n border: 1px dashed var(--pf-radar-empty-border);\n border-radius: var(--radius-md);\n color: var(--pf-radar-empty-text);\n display: inline-flex;\n font-size: var(--font-size-sm);\n justify-content: center;\n min-height: 180px;\n min-width: 260px;\n padding: var(--space-4);\n text-align: center;\n}\n","import {\n RADAR_MINIMUM_AXES,\n pointsToAttribute,\n polarPoint,\n radarAxisAngles,\n radarGridPolygons,\n radarMax,\n radarValuePoints,\n usableRadarAxes,\n} from '@pitchfork-ui/core';\nimport { Component, Element, h, Host, Method, Prop, State, Watch } from '@stencil/core';\n\n/**\n * A radar chart over `pf-radar-axis` children.\n *\n * The chart owns the drawing; each axis owns its own legend row, as a pie's\n * slices do. The axis names are attributes rather than slotted content,\n * because the chart has to draw them inside its own SVG and an SVG `<text>`\n * cannot hold arbitrary markup.\n *\n * All of the trigonometry is core's, so this and the React `RadarChart` put\n * the same numbers in the same places — the grid rings and the value polygon\n * only line up if both were built from the same centre, radius and angles.\n *\n * @slot - the `pf-radar-axis` children.\n * @slot empty - what to show when there are too few axes to enclose anything.\n * @part svg - the drawing.\n * @part grid - one grid ring.\n * @part axis - one spoke.\n * @part area - the value polygon.\n * @part point - one vertex of it.\n * @part axis-label - one name drawn around the edge.\n * @part legend - the list the axes are slotted into.\n * @part empty - the empty state's box.\n */\n@Component({\n tag: 'pf-radar-chart',\n styleUrl: 'pf-radar-chart.css',\n shadow: true,\n})\nexport class PfRadarChart {\n @Element() el!: HTMLElement;\n\n /** Width of the drawing's viewBox, in pixels. Never below 180. */\n @Prop() size = 280;\n\n /** The scale's top. Defaults to the largest value, never below 1. */\n @Prop() max?: number;\n\n /** Grid rings, the outermost of which is the chart's edge. */\n @Prop() levels = 4;\n\n @Prop({ reflect: true }) showAxes = true;\n\n @Prop({ reflect: true }) showLegend = true;\n\n /** The chart's accessible name. */\n @Prop() label = 'Radar chart';\n\n /** What the axes add up to, which only the chart can see. */\n @State() axes: { label: string; value: number }[] = [];\n\n /** The light DOM is readable here, so first paint is already right. */\n componentWillLoad() {\n this.sync();\n }\n\n componentDidLoad() {\n this.sync();\n }\n\n /**\n * Re-reads the axes, for a consumer who changed a value through its\n * *property* — which leaves no attribute and fires no `slotchange`.\n */\n @Method()\n async refresh() {\n this.sync();\n }\n\n /**\n * Direct children only: a nested chart owns its own axes.\n *\n * **Not** called `children`. A component class's members land on the custom\n * element itself, so a private getter named after a DOM property shadows\n * it: `get children()` made `this.el.children` call itself, and the mock\n * DOM's own `getElementsByTagName` — which walks `.children` — recursed\n * until the stack ran out. Stencil warns about a `@Prop` that shadows a\n * prototype member (`animate` is one) but says nothing about a getter.\n */\n private get axisElements(): HTMLElement[] {\n return Array.from(this.el.children).filter(\n (child) => child.tagName.toLowerCase() === 'pf-radar-axis',\n ) as HTMLElement[];\n }\n\n @Watch('max')\n sync() {\n const children = this.axisElements;\n const read = children.map((axis) => {\n const node = axis as HTMLElement & { label?: string; value?: number };\n return {\n // The property if the child has upgraded, the attribute if it has not.\n label: node.label ?? axis.getAttribute('label') ?? '',\n value: Number(node.value ?? axis.getAttribute('value')),\n };\n });\n\n const usable = usableRadarAxes(read);\n const drawable = usable.length >= RADAR_MINIMUM_AXES;\n this.axes = drawable ? usable : [];\n\n /*\n * `drawn` is set per child by identity of its reading, not by position:\n * `usableRadarAxes` drops the ones it cannot plot, so its own positions\n * no longer line up with the children.\n */\n const usableSet = new Set(usable);\n for (const [index, axis] of children.entries()) {\n (axis as HTMLElement & { drawn: boolean }).drawn = drawable && usableSet.has(read[index]);\n }\n }\n\n render() {\n const size = Math.max(Number(this.size) || 280, 180);\n const center = size / 2;\n // Room for the names drawn around the edge.\n const radius = center - 36;\n\n if (this.axes.length < RADAR_MINIMUM_AXES) {\n return (\n <Host>\n <div class=\"empty\" part=\"empty\">\n <slot name=\"empty\">A radar chart needs at least {RADAR_MINIMUM_AXES} axes.</slot>\n </div>\n {/*\n The list stays in the tree even with too few axes: a slot that is\n not rendered never fires `slotchange`, so an axis added later\n would never be counted.\n */}\n <ul class=\"legend legend--hidden\" part=\"legend\">\n <slot onSlotchange={() => this.refresh()} />\n </ul>\n </Host>\n );\n }\n\n const max = radarMax(this.axes, this.max);\n const angles = radarAxisAngles(this.axes.length);\n const rings = radarGridPolygons(angles, center, radius, Number(this.levels));\n const points = radarValuePoints(\n this.axes.map((axis) => axis.value),\n max,\n angles,\n center,\n radius,\n );\n\n return (\n <Host>\n <svg\n class=\"svg\"\n part=\"svg\"\n viewBox={`0 0 ${size} ${size}`}\n role=\"img\"\n aria-label={this.label}\n >\n {rings.map((ring) => (\n <polygon class=\"grid\" part=\"grid\" points={ring} />\n ))}\n\n {this.showAxes &&\n angles.map((angle) => {\n const end = polarPoint(center, radius, angle);\n return (\n <line class=\"axis\" part=\"axis\" x1={center} y1={center} x2={end.x} y2={end.y} />\n );\n })}\n\n {/*\n The grow-from-the-centre animation has to scale about the chart's\n middle, not about the group's own bounding box — which moves with\n the data, so the shape would grow from wherever it happens to be\n heaviest. `transform-origin` is what says so.\n\n `transform-box: view-box` alongside it is the initial value in\n current browsers (an early draft defaulted SVG to `border-box`),\n so it is belt-and-braces rather than load-bearing — measured, by\n removing it and watching nothing change.\n */}\n <g\n class=\"value\"\n style={{ transformBox: 'view-box', transformOrigin: `${center}px ${center}px` }}\n >\n <polygon class=\"area\" part=\"area\" points={pointsToAttribute(points)} />\n {points.map((point) => (\n <circle class=\"point\" part=\"point\" cx={point.x} cy={point.y} r=\"3\" />\n ))}\n </g>\n\n {angles.map((angle, index) => {\n const at = polarPoint(center, radius + 18, angle);\n return (\n <text\n class=\"axis-label\"\n part=\"axis-label\"\n x={at.x}\n y={at.y}\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n >\n {this.axes[index].label}\n </text>\n );\n })}\n </svg>\n\n <ul class={{ legend: true, 'legend--hidden': !this.showLegend }} part=\"legend\">\n <slot onSlotchange={() => this.refresh()} />\n </ul>\n </Host>\n );\n }\n}\n"],"mappings":"yDAEA,IAAIA,EAAqB,EAEzB,SAASC,EAAWC,EAAQC,EAAQC,GACnC,MAAO,CACNC,EAAGH,EAASC,EAASG,KAAKC,IAAIH,GAC9BI,EAAGN,EAASC,EAASG,KAAKG,IAAIL,GAEhC,CAQA,SAASM,EAAgBC,GACxB,KAAMA,EAAQ,GAAI,MAAO,GACzB,MAAMC,EAAO,EAAIN,KAAKO,GAAKF,EAC3B,OAAOG,MAAMC,KAAK,CAAEC,OAAQL,IAAS,CAACM,EAAGC,KAAWZ,KAAKO,GAAK,EAAIK,EAAQN,GAC3E,CAQA,SAASO,EAAgBC,GACxB,OAAOA,EAAKC,QAAQC,GAASC,OAAOC,SAASF,EAAKG,QAAUH,EAAKG,OAAS,GAC3E,CASA,SAASC,EAASN,EAAMO,GACvB,UAAWA,IAAa,UAAYA,EAAW,EAAG,OAAOA,EACzD,MAAMC,EAAUtB,KAAKuB,OAAOV,EAAgBC,GAAMU,KAAKR,GAASA,EAAKG,QAAQ,GAC7E,OAAOG,EAAU,EAAIA,EAAU,CAChC,CAEA,SAASG,EAAkBC,GAC1B,OAAOA,EAAOF,KAAKG,GAAU,GAAGA,EAAM5B,EAAE6B,QAAQ,MAAMD,EAAMzB,EAAE0B,QAAQ,OAAMC,KAAK,IAClF,CASA,SAASC,EAAkBC,EAAQnC,EAAQC,EAAQmC,GAClD,MAAMC,EAAQjC,KAAKuB,IAAI,EAAGvB,KAAKkC,MAAMF,IAAW,GAChD,OAAOxB,MAAMC,KAAK,CAAEC,OAAQuB,IAAS,CAACtB,EAAGC,KACxC,MAAMuB,GAASvB,EAAQ,GAAKqB,EAC5B,OAAOR,EAAkBM,EAAOP,KAAK1B,GAAUH,EAAWC,EAAQC,EAASsC,EAAOrC,KAAQ,GAE5F,CAQA,SAASsC,EAAiBC,EAAQd,EAAKQ,EAAQnC,EAAQC,GACtD,MAAMyC,EAAMf,EAAM,EAAIA,EAAM,EAC5B,OAAOQ,EAAOP,KAAI,CAAC1B,EAAOc,KACzB,MAAMO,EAAQkB,EAAOzB,GACrB,OAAOjB,EAAWC,EAAQC,GAAUoB,OAAOC,SAASC,GAASnB,KAAKuB,IAAI,EAAGvB,KAAKuC,IAAI,EAAGpB,EAAQmB,IAAQ,GAAIxC,EAAM,GAEjH,CC7EA,MAAM0C,EAAkB,IAAM,y4C,MCwCjBC,EAAY,M,iDAIfC,KAAO,IAGPnB,IAGAS,OAAS,EAEQW,SAAW,KAEXC,WAAa,KAG9BC,MAAQ,cAGPC,KAA2C,GAGpD,iBAAAC,GACEC,KAAKC,M,CAGP,gBAAAC,GACEF,KAAKC,M,CAQP,aAAME,GACJH,KAAKC,M,CAaP,gBAAYG,GACV,OAAO5C,MAAMC,KAAKuC,KAAKK,GAAGC,UAAUvC,QACjCwC,GAAUA,EAAMC,QAAQC,gBAAkB,iB,CAK/C,IAAAR,GACE,MAAMK,EAAWN,KAAKI,aACtB,MAAMM,EAAOJ,EAAS9B,KAAKmC,IACzB,MAAMC,EAAOD,EACb,MAAO,CAELd,MAAOe,EAAKf,OAASc,EAAKE,aAAa,UAAY,GACnD1C,MAAOF,OAAO2C,EAAKzC,OAASwC,EAAKE,aAAa,UAC/C,IAGH,MAAMC,EAASjD,EAAgB6C,GAC/B,MAAMK,EAAWD,EAAOpD,QAAUhB,EAClCsD,KAAKF,KAAOiB,EAAWD,EAAS,GAOhC,MAAME,EAAY,IAAIC,IAAIH,GAC1B,IAAK,MAAOlD,EAAO+C,KAASL,EAASY,UAAW,CAC7CP,EAA0CQ,MAAQJ,GAAYC,EAAUI,IAAIV,EAAK9C,G,EAItF,MAAAyD,GACE,MAAM3B,EAAO1C,KAAKuB,IAAIN,OAAO+B,KAAKN,OAAS,IAAK,KAChD,MAAM9C,EAAS8C,EAAO,EAEtB,MAAM7C,EAASD,EAAS,GAExB,GAAIoD,KAAKF,KAAKpC,OAAShB,EAAoB,CACzC,OACE4E,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAM,QAAQC,KAAK,SACtBH,EAAA,QAAMI,KAAK,SAAO,gCAA+BhF,EAAkB,WAOrE4E,EAAA,MAAIE,MAAM,wBAAwBC,KAAK,UACrCH,EAAA,QAAMK,aAAc,IAAM3B,KAAKG,a,CAMvC,MAAM5B,EAAMH,EAAS4B,KAAKF,KAAME,KAAKzB,KACrC,MAAMQ,EAAS3B,EAAgB4C,KAAKF,KAAKpC,QACzC,MAAMuB,EAAQH,EAAkBC,EAAQnC,EAAQC,EAAQoB,OAAO+B,KAAKhB,SACpE,MAAMN,EAASU,EACbY,KAAKF,KAAKtB,KAAKmC,GAASA,EAAKxC,QAC7BI,EACAQ,EACAnC,EACAC,GAGF,OACEyE,EAACC,EAAI,KACHD,EAAA,OACEE,MAAM,MACNC,KAAK,MACLG,QAAS,OAAOlC,KAAQA,IACxBmC,KAAK,MAAK,aACE7B,KAAKH,OAEhBZ,EAAMT,KAAKsD,GACVR,EAAA,WAASE,MAAM,OAAOC,KAAK,OAAO/C,OAAQoD,MAG3C9B,KAAKL,UACJZ,EAAOP,KAAK1B,IACV,MAAMiF,EAAMpF,EAAWC,EAAQC,EAAQC,GACvC,OACEwE,EAAA,QAAME,MAAM,OAAOC,KAAK,OAAOO,GAAIpF,EAAQqF,GAAIrF,EAAQsF,GAAIH,EAAIhF,EAAGoF,GAAIJ,EAAI7E,GAAK,IAerFoE,EAAA,KACEE,MAAM,QACNY,MAAO,CAAEC,aAAc,WAAYC,gBAAiB,GAAG1F,OAAYA,QAEnE0E,EAAA,WAASE,MAAM,OAAOC,KAAK,OAAO/C,OAAQD,EAAkBC,KAC3DA,EAAOF,KAAKG,GACX2C,EAAA,UAAQE,MAAM,QAAQC,KAAK,QAAQc,GAAI5D,EAAM5B,EAAGyF,GAAI7D,EAAMzB,EAAGuF,EAAE,SAIlE1D,EAAOP,KAAI,CAAC1B,EAAOc,KAClB,MAAM8E,EAAK/F,EAAWC,EAAQC,EAAS,GAAIC,GAC3C,OACEwE,EAAA,QACEE,MAAM,aACNC,KAAK,aACL1E,EAAG2F,EAAG3F,EACNG,EAAGwF,EAAGxF,EAAC,cACK,SAAQ,oBACF,UAEjB8C,KAAKF,KAAKlC,GAAOiC,MACb,KAKbyB,EAAA,MAAIE,MAAO,CAAEmB,OAAQ,KAAM,kBAAmB3C,KAAKJ,YAAc6B,KAAK,UACpEH,EAAA,QAAMK,aAAc,IAAM3B,KAAKG,a","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as a,a as r,h as t,H as i}from"./p-Bm6UxEit.js";import{l as o}from"./p-DfpCerXM.js";import{s}from"./p-CCln56Fj.js";import{a as n}from"./p-Cta76kgc.js";const d=()=>`:host{display:block}:host([hidden]){display:none}.alert{align-items:flex-start;border:1px solid var(--pf-alert-border);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-3)}:host([variant='info']) .alert{background:var(--pf-alert-info-background);border-color:var(--pf-alert-info-border);color:var(--pf-alert-info-foreground)}:host([variant='success']) .alert{background:var(--pf-alert-success-background);border-color:var(--pf-alert-success-border);color:var(--pf-alert-success-foreground)}:host([variant='warning']) .alert{background:var(--pf-alert-warning-background);border-color:var(--pf-alert-warning-border);color:var(--pf-alert-warning-foreground)}:host([variant='danger']) .alert{background:var(--pf-alert-danger-background);border-color:var(--pf-alert-danger-border);color:var(--pf-alert-danger-foreground)}.icon{align-items:center;display:inline-flex;font-size:var(--font-size-lg);height:1em;justify-content:center;line-height:1;margin-top:1px;width:1em}.content{display:grid;gap:var(--space-1)}.title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:1.3;margin:0}.body{font-size:var(--font-size-sm);line-height:1.4}.body.empty{display:none}::slotted(p){margin:0}.dismiss{align-items:center;background:transparent;border:0;border-radius:var(--radius-sm);color:currentcolor;cursor:pointer;display:inline-flex;font-size:var(--font-size-md);justify-content:center;margin-inline-start:auto;padding:0}.dismiss:focus-visible{box-shadow:var(--pf-alert-focus-ring, var(--pf-focus-ring));outline:none}.alert--exiting{animation:pf-alert-out var(--duration-moderate) var(--easing-accelerate) forwards;overflow:hidden;pointer-events:none}@keyframes pf-alert-out{from{max-height:480px;opacity:1}to{margin-bottom:0;margin-top:0;max-height:0;opacity:0;padding-bottom:0;padding-top:0}}@media (prefers-reduced-motion: reduce){.alert--exiting{animation:none}}`;const c=class{constructor(r){e(this,r);this.pfDismiss=a(this,"pfDismiss")}get el(){return r(this)}variant="info";heading;description;dismissible=false;dismissLabel="Dismiss alert";pfDismiss;exiting=false;hasSlottedBody=false;componentWillLoad(){this.readBody()}async dismiss(){if(this.exiting)return;this.exiting=true;await n(this.el.shadowRoot?.querySelector(".alert"));this.pfDismiss.emit()}readBody(){this.hasSlottedBody=Array.from(this.el.childNodes).some((e=>e.nodeType===Node.ELEMENT_NODE?!e.getAttribute("slot"):Boolean(e.textContent?.trim())))}render(){const e=this.hasSlottedBody||Boolean(this.description);return t(i,{key:"f3522c8ef72b489525e45dc1fc3c70086af533ac"},t("div",{key:"b5b402130872fdfc94878b4d09329399c4adacb5",class:{alert:true,"alert--exiting":this.exiting},part:"alert",role:o(this.variant)},t("span",{key:"048f80625f800c1835fa6e356dfe15d0fdd7f35c",class:"icon",part:"icon","aria-hidden":"true"},t("slot",{key:"6a42e99211fd2906e0162bfb31586e06af30aaa5",name:"icon"},t("pf-icon",{key:"146ff1c59c4f860ec78a6f84162cab58f3e5e15d",name:s(this.variant)}))),t("div",{key:"a74939fe38d05d8cf8a3de2c75e048f103b9739c",class:"content"},this.heading&&t("p",{key:"a9758f5cfece50320d0eff15c0cbc47a1d7f8a46",class:"title",part:"title"},this.heading),t("div",{key:"e48f83b618e566b3c1884212372607c211557bee",class:{body:true,empty:!e},part:"body"},t("slot",{key:"472cbf494dfcaa7f0f539fc2e243a6eab68b05b9",onSlotchange:()=>this.readBody()},this.description))),this.dismissible&&t("button",{key:"f2cceb0cee8e905cac8d001304ca927245329b1e",type:"button",class:"dismiss",part:"dismiss","aria-label":this.dismissLabel,onClick:()=>this.dismiss()},t("pf-icon",{key:"0190d8ca15d01969f8992e7dfc14c814c4fa29bf",name:"circle-xmark","aria-hidden":"true"}))))}};c.style=d();export{c as pf_alert};
|
|
2
|
+
//# sourceMappingURL=p-bf044fb5.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfAlertCss","PfAlert","variant","heading","description","dismissible","dismissLabel","pfDismiss","exiting","hasSlottedBody","componentWillLoad","this","readBody","dismiss","animationsFinished","el","shadowRoot","querySelector","emit","Array","from","childNodes","some","node","nodeType","Node","ELEMENT_NODE","getAttribute","Boolean","textContent","trim","render","hasBody","h","Host","key","class","alert","part","role","liveRegionRole","name","severityIconName","body","empty","onSlotchange","type","onClick"],"sources":["src/components/pf-alert/pf-alert.css?tag=pf-alert&encapsulation=shadow","src/components/pf-alert/pf-alert.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.alert {\n align-items: flex-start;\n border: 1px solid var(--pf-alert-border);\n border-radius: var(--radius-md);\n display: flex;\n gap: var(--space-3);\n padding: var(--space-3);\n}\n\n/*\n * The colours come from the reflected attribute rather than a class: the\n * generated bindings set props as properties, so an unreflected prop would\n * leave no attribute to select on.\n */\n:host([variant='info']) .alert {\n background: var(--pf-alert-info-background);\n border-color: var(--pf-alert-info-border);\n color: var(--pf-alert-info-foreground);\n}\n\n:host([variant='success']) .alert {\n background: var(--pf-alert-success-background);\n border-color: var(--pf-alert-success-border);\n color: var(--pf-alert-success-foreground);\n}\n\n:host([variant='warning']) .alert {\n background: var(--pf-alert-warning-background);\n border-color: var(--pf-alert-warning-border);\n color: var(--pf-alert-warning-foreground);\n}\n\n:host([variant='danger']) .alert {\n background: var(--pf-alert-danger-background);\n border-color: var(--pf-alert-danger-border);\n color: var(--pf-alert-danger-foreground);\n}\n\n.icon {\n align-items: center;\n display: inline-flex;\n font-size: var(--font-size-lg);\n height: 1em;\n justify-content: center;\n line-height: 1;\n margin-top: 1px;\n width: 1em;\n}\n\n.content {\n display: grid;\n gap: var(--space-1);\n}\n\n.title {\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-semibold);\n line-height: 1.3;\n margin: 0;\n}\n\n.body {\n font-size: var(--font-size-sm);\n line-height: 1.4;\n}\n\n/*\n * Two classes deep, because the ties break on source order. The slot stays\n * rendered inside the hidden box, or content added later never fires\n * `slotchange`.\n */\n.body.empty {\n display: none;\n}\n\n/* The browser's own paragraphs, if a consumer slots any. */\n::slotted(p) {\n margin: 0;\n}\n\n.dismiss {\n align-items: center;\n background: transparent;\n border: 0;\n border-radius: var(--radius-sm);\n color: currentcolor;\n cursor: pointer;\n display: inline-flex;\n font-size: var(--font-size-md);\n justify-content: center;\n margin-inline-start: auto;\n padding: 0;\n}\n\n.dismiss:focus-visible {\n box-shadow: var(--pf-alert-focus-ring, var(--pf-focus-ring));\n outline: none;\n}\n\n/*\n * Fade *and* collapse, so the content below reflows into the space rather\n * than jumping when the alert is removed. This is the difference from\n * `pf-notification`, which slides out of a stack instead.\n */\n.alert--exiting {\n animation: pf-alert-out var(--duration-moderate) var(--easing-accelerate) forwards;\n overflow: hidden;\n pointer-events: none;\n}\n\n/* Its own copy: `@keyframes` do not cross a shadow boundary. */\n@keyframes pf-alert-out {\n from {\n max-height: 480px;\n opacity: 1;\n }\n\n to {\n margin-bottom: 0;\n margin-top: 0;\n max-height: 0;\n opacity: 0;\n padding-bottom: 0;\n padding-top: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .alert--exiting {\n animation: none;\n }\n}\n","import {\n animationsFinished,\n liveRegionRole,\n severityIconName,\n type LiveRegionVariant,\n} from '@pitchfork-ui/core';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n} from '@stencil/core';\n\nexport type PfAlertVariant = LiveRegionVariant;\n\n/**\n * An inline alert: an icon, a heading, a body and an optional dismiss button.\n *\n * The sibling of `pf-notification`, and deliberately a separate element\n * rather than a variant of it: an alert belongs in the page's flow and\n * collapses its own height when dismissed so the content below reflows, while\n * a notification is one of a stack in a corner and slides out. The two look\n * alike and behave differently, which is exactly when one element serving\n * both goes wrong.\n *\n * The role comes from core's `liveRegionRole`, so `warning` and `danger`\n * announce assertively and `info` and `success` wait their turn.\n *\n * @slot - the body, used instead of the `description` prop when present.\n * @slot icon - replaces the icon the variant would choose.\n * @part alert - the root box.\n * @part icon - the icon's box.\n * @part title - the heading.\n * @part body - the description's box.\n * @part dismiss - the dismiss button.\n */\n@Component({\n tag: 'pf-alert',\n styleUrl: 'pf-alert.css',\n shadow: true,\n})\nexport class PfAlert {\n @Element() el!: HTMLElement;\n\n /** Reflected, because the stylesheet selects on it for the colours. */\n @Prop({ reflect: true }) variant: PfAlertVariant = 'info';\n\n @Prop() heading?: string;\n\n /** The body. A slotted body is used instead when there is one. */\n @Prop() description?: string;\n\n /** Show the dismiss button. Reflected. */\n @Prop({ reflect: true }) dismissible = false;\n\n /** The dismiss button's accessible name. */\n @Prop() dismissLabel = 'Dismiss alert';\n\n /** Fires once the alert has finished leaving. */\n @Event() pfDismiss!: EventEmitter<void>;\n\n /** Reflected, because that is what the exit animation selects on. */\n @State() exiting = false;\n\n /** Whether anything was slotted into the default slot. */\n @State() hasSlottedBody = false;\n\n /** The light DOM is readable here, so first paint is already right. */\n componentWillLoad() {\n this.readBody();\n }\n\n /**\n * Dismisses the alert, waiting for its exit animation first.\n *\n * The wait is core's `animationsFinished`, which asks the element what is\n * actually running rather than sleeping for a duration someone wrote down:\n * under `prefers-reduced-motion` the stylesheet sets `animation: none`, no\n * test project applies `styleUrl` CSS at all, and a consumer may not have\n * loaded the stylesheet — in all three an `animationend` listener would\n * wait for ever and a timeout would be a fiction.\n */\n @Method()\n async dismiss() {\n if (this.exiting) return;\n this.exiting = true;\n\n await animationsFinished(this.el.shadowRoot?.querySelector('.alert'));\n this.pfDismiss.emit();\n }\n\n private readBody() {\n this.hasSlottedBody = Array.from(this.el.childNodes).some((node) =>\n node.nodeType === Node.ELEMENT_NODE\n ? !(node as Element).getAttribute('slot')\n : Boolean(node.textContent?.trim()),\n );\n }\n\n render() {\n const hasBody = this.hasSlottedBody || Boolean(this.description);\n\n return (\n <Host>\n <div\n class={{ alert: true, 'alert--exiting': this.exiting }}\n part=\"alert\"\n role={liveRegionRole(this.variant)}\n >\n <span class=\"icon\" part=\"icon\" aria-hidden=\"true\">\n <slot name=\"icon\">\n <pf-icon name={severityIconName(this.variant)}></pf-icon>\n </slot>\n </span>\n\n <div class=\"content\">\n {this.heading && (\n <p class=\"title\" part=\"title\">\n {this.heading}\n </p>\n )}\n {/*\n The slot stays in the tree whether or not it holds anything: a\n slot that is not rendered never fires `slotchange`, so a body\n added later would stay invisible for good.\n */}\n <div class={{ body: true, empty: !hasBody }} part=\"body\">\n <slot onSlotchange={() => this.readBody()}>{this.description}</slot>\n </div>\n </div>\n\n {this.dismissible && (\n <button\n type=\"button\"\n class=\"dismiss\"\n part=\"dismiss\"\n aria-label={this.dismissLabel}\n onClick={() => this.dismiss()}\n >\n <pf-icon name=\"circle-xmark\" aria-hidden=\"true\"></pf-icon>\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"uKAAA,MAAMA,EAAa,IAAM,g4D,MC8CZC,EAAO,M,oFAIOC,QAA0B,OAE3CC,QAGAC,YAGiBC,YAAc,MAG/BC,aAAe,gBAGdC,UAGAC,QAAU,MAGVC,eAAiB,MAG1B,iBAAAC,GACEC,KAAKC,U,CAcP,aAAMC,GACJ,GAAIF,KAAKH,QAAS,OAClBG,KAAKH,QAAU,WAETM,EAAmBH,KAAKI,GAAGC,YAAYC,cAAc,WAC3DN,KAAKJ,UAAUW,M,CAGT,QAAAN,GACND,KAAKF,eAAiBU,MAAMC,KAAKT,KAAKI,GAAGM,YAAYC,MAAMC,GACzDA,EAAKC,WAAaC,KAAKC,cACjBH,EAAiBI,aAAa,QAChCC,QAAQL,EAAKM,aAAaC,S,CAIlC,MAAAC,GACE,MAAMC,EAAUrB,KAAKF,gBAAkBmB,QAAQjB,KAAKP,aAEpD,OACE6B,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CACEC,MAAO,CAAEC,MAAO,KAAM,iBAAkB1B,KAAKH,SAC7C8B,KAAK,QACLC,KAAMC,EAAe7B,KAAKT,UAE1B+B,EAAA,QAAAE,IAAA,2CAAMC,MAAM,OAAOE,KAAK,OAAM,cAAa,QACzCL,EAAA,QAAAE,IAAA,2CAAMM,KAAK,QACTR,EAAA,WAAAE,IAAA,2CAASM,KAAMC,EAAiB/B,KAAKT,aAIzC+B,EAAA,OAAAE,IAAA,2CAAKC,MAAM,WACRzB,KAAKR,SACJ8B,EAAA,KAAAE,IAAA,2CAAGC,MAAM,QAAQE,KAAK,SACnB3B,KAAKR,SAQV8B,EAAA,OAAAE,IAAA,2CAAKC,MAAO,CAAEO,KAAM,KAAMC,OAAQZ,GAAWM,KAAK,QAChDL,EAAA,QAAAE,IAAA,2CAAMU,aAAc,IAAMlC,KAAKC,YAAaD,KAAKP,eAIpDO,KAAKN,aACJ4B,EAAA,UAAAE,IAAA,2CACEW,KAAK,SACLV,MAAM,UACNE,KAAK,UAAS,aACF3B,KAAKL,aACjByC,QAAS,IAAMpC,KAAKE,WAEpBoB,EAAA,WAAAE,IAAA,2CAASM,KAAK,eAAc,cAAa,W","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as t,a,h as i,H as r}from"./p-Bm6UxEit.js";const s=()=>`:host{display:block;min-width:0}:host([hidden]){display:none}.children{padding-inline-start:var(--space-4)}.children[hidden]{display:none}.row{align-items:center;border-radius:var(--radius-sm);color:var(--pf-treeview-text-muted);cursor:pointer;display:grid;gap:var(--space-2);grid-template-columns:24px auto 1fr auto;min-height:34px;min-width:0;padding-inline-end:var(--space-2)}:host(:not([icon])) .row{grid-template-columns:24px 1fr auto}.row:hover{background:var(--pf-treeview-bg-subtle);color:var(--pf-treeview-text)}:host([active]) .row{box-shadow:var(--pf-tree-active-ring, none)}:host([selected]) .row{background:var(--pf-treeview-bg-subtle);color:var(--pf-treeview-text);font-weight:var(--font-weight-semibold)}:host([disabled]) .row{cursor:not-allowed;opacity:0.5}.twisty{align-items:center;display:inline-flex;justify-content:center;width:24px}.toggle{align-items:center;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--pf-treeview-text-muted);cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);height:24px;justify-content:center;padding:0;width:24px}.toggle:hover{background:var(--pf-treeview-bg-subtle);color:var(--pf-treeview-text)}.icon{align-items:center;display:inline-flex;justify-content:center}.label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{align-items:center;display:inline-flex;justify-content:center}.badge.empty{display:none}`;const n=class{constructor(a){e(this,a);this.pfTreeSelect=t(this,"pfTreeSelect");this.pfTreeToggle=t(this,"pfTreeToggle");this.pfTreeStructure=t(this,"pfTreeStructure")}get el(){return a(this)}value="";disabled=false;icon;level=1;selected=false;expanded=false;hasChildren=false;active=false;pfTreeSelect;pfTreeToggle;pfTreeStructure;hasBadge=false;componentWillLoad(){this.read()}read=()=>{this.hasBadge=Array.from(this.el.children).some((e=>e.getAttribute("slot")==="badge"))};onRowClick=()=>{if(this.disabled)return;this.pfTreeSelect.emit({value:this.value})};onToggleClick=e=>{e.stopPropagation();this.pfTreeToggle.emit({value:this.value})};render(){return i(r,{key:"88ecc1b46b8a27da4032a95a5dc61a5c26aaada0",role:"treeitem","aria-level":String(this.level),"aria-selected":this.selected?"true":"false","aria-expanded":this.hasChildren?this.expanded?"true":"false":null,"aria-disabled":this.disabled?"true":null},i("div",{key:"9b01234883116846b26e5cd5565fb40612b81370",class:"row",part:"row",onClick:this.onRowClick},i("span",{key:"25d5ca0c4ca422a00061eda5f2811328cfc54a5c",class:"twisty","aria-hidden":"true"},this.hasChildren&&i("button",{key:"3cb856498ec1506de4026c6a9115e4a86add6a23",type:"button",class:"toggle",part:"toggle",tabindex:"-1",onClick:this.onToggleClick},this.expanded?"▾":"▸")),this.icon&&i("pf-icon",{key:"d0730491a865b2b2f59e0fcb0adf7cac6db8d4cc",class:"icon",name:this.icon,"aria-hidden":"true"}),i("span",{key:"60a592334f70f944b7d5b8355e0ea6ade902492f",class:"label",part:"label"},i("slot",{key:"7b00850cd21475d567b0c80d4537f2a8bf0dc24c",name:"label"})),i("span",{key:"641b9658b88ee4760067db4bc0a63ef992c83b4a",class:{badge:true,empty:!this.hasBadge}},i("slot",{key:"fffbfbe5f68e1bf85d171b29e6473ef35f11a176",name:"badge",onSlotchange:this.read}))),i("div",{key:"7679e1668cb704b25a5f27f1d896a77b97fb4e90",class:"children",part:"children",role:"group",hidden:!this.expanded},i("slot",{key:"6b9182c724d033d3f3eb0e3977b2c54a8748f793",onSlotchange:()=>this.pfTreeStructure.emit()})))}};n.style=s();export{n as pf_tree_item};
|
|
2
|
+
//# sourceMappingURL=p-c07c5847.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfTreeItemCss","PfTreeItem","value","disabled","icon","level","selected","expanded","hasChildren","active","pfTreeSelect","pfTreeToggle","pfTreeStructure","hasBadge","componentWillLoad","this","read","Array","from","el","children","some","child","getAttribute","onRowClick","emit","onToggleClick","event","stopPropagation","render","h","Host","key","role","String","class","part","onClick","type","tabindex","name","badge","empty","onSlotchange","hidden"],"sources":["src/components/pf-tree-item/pf-tree-item.css?tag=pf-tree-item&encapsulation=shadow","src/components/pf-tree-item/pf-tree-item.tsx"],"sourcesContent":[":host {\n display: block;\n min-width: 0;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n/*\n * The indent comes from the nesting rather than from a level pushed into a\n * custom property: the items are nested in the DOM, so one rule here indents\n * every depth, and there is no number to keep in step with the markup.\n */\n.children {\n padding-inline-start: var(--space-4);\n}\n\n.children[hidden] {\n display: none;\n}\n\n.row {\n align-items: center;\n border-radius: var(--radius-sm);\n color: var(--pf-treeview-text-muted);\n cursor: pointer;\n display: grid;\n gap: var(--space-2);\n grid-template-columns: 24px auto 1fr auto;\n min-height: 34px;\n min-width: 0;\n padding-inline-end: var(--space-2);\n}\n\n/* No icon slotted in, no column for one: the grid closes up. */\n:host(:not([icon])) .row {\n grid-template-columns: 24px 1fr auto;\n}\n\n.row:hover {\n background: var(--pf-treeview-bg-subtle);\n color: var(--pf-treeview-text);\n}\n\n/*\n * The ring marks the item the keyboard is on, and the tree decides whether to\n * draw one at all: it is the thing with the focus, and it turns the ring on\n * through `--pf-tree-active-ring` only while it is focused.\n */\n:host([active]) .row {\n box-shadow: var(--pf-tree-active-ring, none);\n}\n\n:host([selected]) .row {\n background: var(--pf-treeview-bg-subtle);\n color: var(--pf-treeview-text);\n font-weight: var(--font-weight-semibold);\n}\n\n:host([disabled]) .row {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.twisty {\n align-items: center;\n display: inline-flex;\n justify-content: center;\n width: 24px;\n}\n\n.toggle {\n align-items: center;\n background: transparent;\n border: 0;\n border-radius: var(--radius-sm);\n color: var(--pf-treeview-text-muted);\n cursor: pointer;\n display: inline-flex;\n font-size: var(--font-size-xs);\n height: 24px;\n justify-content: center;\n padding: 0;\n width: 24px;\n}\n\n.toggle:hover {\n background: var(--pf-treeview-bg-subtle);\n color: var(--pf-treeview-text);\n}\n\n.icon {\n align-items: center;\n display: inline-flex;\n justify-content: center;\n}\n\n.label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.badge {\n align-items: center;\n display: inline-flex;\n justify-content: center;\n}\n\n/* Two classes deep, because the box sets its own `display` above. */\n.badge.empty {\n display: none;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\n\n/**\n * One item in a `pf-tree-view`, with its own items nested inside it.\n *\n * The host is the `treeitem`, and it is never focused: the tree keeps the\n * focus and names the active item with `aria-activedescendant`, because a\n * nested host cannot take a roving tabindex at all — measured, and explained\n * on `pf-tree-view`. So the row inside is a plain box rather than a button,\n * and the twisty is the only focusable thing in here, kept out of the tab\n * order.\n *\n * `level`, `selected`, `expanded` and `hasChildren` are the group's to set:\n * only it can see the whole tree.\n *\n * @slot label - the item's label.\n * @slot badge - small trailing content, a count or a status.\n * @slot - the nested `pf-tree-item` children.\n * @part row - the item's own row, without its children.\n * @part toggle - the twisty, on an item that has children.\n * @part label - the label's box.\n * @part children - the box holding the nested items.\n */\n@Component({\n tag: 'pf-tree-item',\n styleUrl: 'pf-tree-item.css',\n shadow: true,\n})\nexport class PfTreeItem {\n @Element() el!: HTMLElement;\n\n /**\n * Identifies the item in the tree's selection and open set.\n *\n * Reflected because the generated bindings set props as properties, so\n * without it a consumer selecting `pf-tree-item[value=\"...\"]` finds\n * nothing. The tree reads the property.\n */\n @Prop({ reflect: true }) value = '';\n\n /** Reflected; the stylesheet and the tree's own filtering both read it. */\n @Prop({ reflect: true }) disabled = false;\n\n /** An icon name from the same registry as `pf-icon`. */\n @Prop() icon?: string;\n\n /** Set by the tree: how deep this item sits, counting from 1. */\n @Prop({ mutable: true }) level = 1;\n\n /** Set by the tree. Reflected, so the stylesheet can mark the item. */\n @Prop({ mutable: true, reflect: true }) selected = false;\n\n /** Set by the tree: whether this branch is open. Reflected. */\n @Prop({ mutable: true, reflect: true }) expanded = false;\n\n /** Set by the tree: whether there is anything to open. Reflected. */\n @Prop({ mutable: true, reflect: true }) hasChildren = false;\n\n /**\n * Set by the tree: the item the keyboard is on, which is not always the\n * selected one. Reflected, because the ring is drawn from it.\n */\n @Prop({ mutable: true, reflect: true }) active = false;\n\n /** Asks the tree to select this item. The tree decides. */\n @Event() pfTreeSelect!: EventEmitter<{ value: string }>;\n\n /** Asks the tree to open or close this branch. */\n @Event() pfTreeToggle!: EventEmitter<{ value: string }>;\n\n /**\n * Tells the tree that the items inside this one have changed.\n *\n * `slotchange` does not cross a shadow boundary — it is not composed — so a\n * tree cannot hear its grandchildren arrive. Without this, an item appended\n * to a branch is never given a level, an id or a place in the keyboard\n * order; a browser test adds one.\n */\n @Event() pfTreeStructure!: EventEmitter<void>;\n\n /** Whether anything is slotted into the badge, which carries layout. */\n @State() hasBadge = false;\n\n /** Read from the light DOM, so first paint is right without `slotchange`. */\n componentWillLoad() {\n this.read();\n }\n\n private read = () => {\n this.hasBadge = Array.from(this.el.children).some(\n (child) => child.getAttribute('slot') === 'badge',\n );\n };\n\n private onRowClick = () => {\n if (this.disabled) return;\n this.pfTreeSelect.emit({ value: this.value });\n };\n\n private onToggleClick = (event: MouseEvent) => {\n // The twisty opens the branch without also selecting the item.\n event.stopPropagation();\n this.pfTreeToggle.emit({ value: this.value });\n };\n\n render() {\n return (\n <Host\n role=\"treeitem\"\n aria-level={String(this.level)}\n aria-selected={this.selected ? 'true' : 'false'}\n aria-expanded={this.hasChildren ? (this.expanded ? 'true' : 'false') : null}\n aria-disabled={this.disabled ? 'true' : null}\n >\n {/*\n A click surface rather than a button: the host is the treeitem, and\n the tree holds the keys — a second focusable thing in here would be\n a tab stop inside a treeitem, which the pattern does not have.\n */}\n <div class=\"row\" part=\"row\" onClick={this.onRowClick}>\n <span class=\"twisty\" aria-hidden=\"true\">\n {this.hasChildren && (\n <button\n type=\"button\"\n class=\"toggle\"\n part=\"toggle\"\n tabindex=\"-1\"\n onClick={this.onToggleClick}\n >\n {this.expanded ? '▾' : '▸'}\n </button>\n )}\n </span>\n\n {this.icon && <pf-icon class=\"icon\" name={this.icon} aria-hidden=\"true\"></pf-icon>}\n\n <span class=\"label\" part=\"label\">\n <slot name=\"label\" />\n </span>\n\n <span class={{ badge: true, empty: !this.hasBadge }}>\n <slot name=\"badge\" onSlotchange={this.read} />\n </span>\n </div>\n\n {/*\n The nested items stay in the tree when the branch is closed and are\n hidden instead: a slot that is not rendered never fires `slotchange`,\n so an item added to a closed branch would stay invisible for good.\n `role=\"group\"` is what makes the nesting a tree to a screen reader.\n */}\n <div class=\"children\" part=\"children\" role=\"group\" hidden={!this.expanded}>\n <slot onSlotchange={() => this.pfTreeStructure.emit()} />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"2DAAA,MAAMA,EAAgB,IAAM,o5C,MC4BfC,EAAU,M,kLAUIC,MAAQ,GAGRC,SAAW,MAG5BC,KAGiBC,MAAQ,EAGOC,SAAW,MAGXC,SAAW,MAGXC,YAAc,MAMdC,OAAS,MAGxCC,aAGAC,aAUAC,gBAGAC,SAAW,MAGpB,iBAAAC,GACEC,KAAKC,M,CAGCA,KAAO,KACbD,KAAKF,SAAWI,MAAMC,KAAKH,KAAKI,GAAGC,UAAUC,MAC1CC,GAAUA,EAAMC,aAAa,UAAY,SAC3C,EAGKC,WAAa,KACnB,GAAIT,KAAKZ,SAAU,OACnBY,KAAKL,aAAae,KAAK,CAAEvB,MAAOa,KAAKb,OAAQ,EAGvCwB,cAAiBC,IAEvBA,EAAMC,kBACNb,KAAKJ,aAAac,KAAK,CAAEvB,MAAOa,KAAKb,OAAQ,EAG/C,MAAA2B,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,KAAK,WAAU,aACHC,OAAOnB,KAAKV,OAAM,gBACfU,KAAKT,SAAW,OAAS,QAAO,gBAChCS,KAAKP,YAAeO,KAAKR,SAAW,OAAS,QAAW,KAAI,gBAC5DQ,KAAKZ,SAAW,OAAS,MAOxC2B,EAAA,OAAAE,IAAA,2CAAKG,MAAM,MAAMC,KAAK,MAAMC,QAAStB,KAAKS,YACxCM,EAAA,QAAAE,IAAA,2CAAMG,MAAM,SAAQ,cAAa,QAC9BpB,KAAKP,aACJsB,EAAA,UAAAE,IAAA,2CACEM,KAAK,SACLH,MAAM,SACNC,KAAK,SACLG,SAAS,KACTF,QAAStB,KAAKW,eAEbX,KAAKR,SAAW,IAAM,MAK5BQ,KAAKX,MAAQ0B,EAAA,WAAAE,IAAA,2CAASG,MAAM,OAAOK,KAAMzB,KAAKX,KAAI,cAAc,SAEjE0B,EAAA,QAAAE,IAAA,2CAAMG,MAAM,QAAQC,KAAK,SACvBN,EAAA,QAAAE,IAAA,2CAAMQ,KAAK,WAGbV,EAAA,QAAAE,IAAA,2CAAMG,MAAO,CAAEM,MAAO,KAAMC,OAAQ3B,KAAKF,WACvCiB,EAAA,QAAAE,IAAA,2CAAMQ,KAAK,QAAQG,aAAc5B,KAAKC,SAU1Cc,EAAA,OAAAE,IAAA,2CAAKG,MAAM,WAAWC,KAAK,WAAWH,KAAK,QAAQW,QAAS7B,KAAKR,UAC/DuB,EAAA,QAAAE,IAAA,2CAAMW,aAAc,IAAM5B,KAAKH,gBAAgBa,U","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r,c as i,h as e,H as t}from"./p-Bm6UxEit.js";import{c as a}from"./p-DfpCerXM.js";import{a as s}from"./p-Cr6IXrUk.js";const o=()=>`:host{display:block}:host([hidden]){display:none}.field{display:grid;gap:var(--space-2)}.label{color:var(--pf-input-field-label, var(--pf-field-label));font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.required{color:var(--pf-field-required);margin-inline-start:var(--space-1)}.description{color:var(--pf-input-field-description, var(--pf-field-description));font-size:var(--font-size-sm);margin:0}.error{color:var(--pf-input-field-error, var(--pf-field-error));font-size:var(--font-size-sm);margin:0}.input{background:var(--pf-input-bg);border:1px solid var(--pf-input-border);border-radius:var(--radius-md);color:var(--pf-input-text);font:inherit;min-height:40px;padding:0 var(--space-3);width:100%;transition:background 0.2s, border 0.2s, color 0.2s, opacity 0.2s}.input:disabled{background:var(--pf-control-bg-disabled);border-color:var(--pf-control-border-disabled);color:var(--pf-control-text-disabled);cursor:not-allowed;opacity:0.6}.input:focus{outline:none}.input:focus-visible{border-color:var(--pf-input-focus-border);box-shadow:var(--pf-input-focus-ring, var(--pf-focus-ring))}.input::placeholder{color:var(--pf-input-placeholder)}.input--invalid{border-color:var(--pf-input-invalid-border)}@media (prefers-reduced-motion: reduce){.input{transition:none}}`;const n=class{constructor(e){r(this,e);this.pfInput=i(this,"pfInput");this.pfChange=i(this,"pfChange");if(e.$hostElement$["s-ei"]){this.internals=e.$hostElement$["s-ei"]}else{this.internals=e.$hostElement$.attachInternals();e.$hostElement$["s-ei"]=this.internals}}internals;name;value="";type="text";label;description;error;placeholder;required=false;disabled=false;readonly=false;pfInput;pfChange;initialValue="";componentWillLoad(){this.initialValue=this.value??"";this.syncFormState()}syncFormState(){this.internals.setFormValue(this.value??"");s(this.internals,Boolean(this.value),this.required,this.error)}async checkValidity(){return this.internals.checkValidity()}async reportValidity(){return this.internals.reportValidity()}async getValidationMessage(){return this.internals.validationMessage}formResetCallback(){this.value=this.initialValue}onInput=r=>{this.value=r.target.value;this.pfInput.emit({value:this.value})};onChange=()=>{this.pfChange.emit({value:this.value})};render(){const r=a(this.description&&"description",this.error&&"error");return e(t,{key:"a6d68ce6641fb92407356c94e2181b280bdc03b6"},e("div",{key:"312ee69f4a661494548b01f598b74ed56bd443fc",class:"field",part:"field"},this.label&&e("label",{key:"59188fde6b3639105f8ade8b497c764ddd5d658f",class:"label",part:"label",htmlFor:"input"},this.label,this.required&&e("span",{key:"4f71679ec6bb99d3f7dc8f941d8c02bb94452c21",class:"required","aria-hidden":"true"},"*")),e("input",{key:"0680b0e5aa0f8ddf9850a212f735f0f8c5b273a3",id:"input",part:"input",class:{input:true,"input--invalid":Boolean(this.error)},type:this.type,name:this.name,value:this.value,placeholder:this.placeholder,required:this.required,disabled:this.disabled,readOnly:this.readonly,"aria-invalid":this.error?"true":null,"aria-describedby":r,onInput:this.onInput,onChange:this.onChange}),this.description&&e("p",{key:"f732742b8602ed6094600065d5036bdad538ad35",class:"description",part:"description",id:"description"},this.description),this.error&&e("p",{key:"9d524a204abfb733afaf2bf3cc5ec9a5e1c65b94",class:"error",part:"error",id:"error"},this.error)))}static get delegatesFocus(){return true}static get formAssociated(){return true}static get watchers(){return{value:[{syncFormState:0}],error:[{syncFormState:0}],required:[{syncFormState:0}]}}};n.style=o();export{n as pf_input};
|
|
2
|
+
//# sourceMappingURL=p-c6bdd9cd.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfInputCss","PfInput","internals","name","value","type","label","description","error","placeholder","required","disabled","readonly","pfInput","pfChange","initialValue","componentWillLoad","this","syncFormState","setFormValue","applyControlValidity","Boolean","checkValidity","reportValidity","getValidationMessage","validationMessage","formResetCallback","onInput","event","target","emit","onChange","render","describedBy","composeDescribedBy","h","Host","key","class","part","htmlFor","id","input","readOnly"],"sources":["src/components/pf-input/pf-input.css?tag=pf-input&encapsulation=shadow","src/components/pf-input/pf-input.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.field {\n display: grid;\n gap: var(--space-2);\n}\n\n.label {\n color: var(--pf-input-field-label, var(--pf-field-label));\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n}\n\n.required {\n color: var(--pf-field-required);\n margin-inline-start: var(--space-1);\n}\n\n.description {\n color: var(--pf-input-field-description, var(--pf-field-description));\n font-size: var(--font-size-sm);\n margin: 0;\n}\n\n.error {\n color: var(--pf-input-field-error, var(--pf-field-error));\n font-size: var(--font-size-sm);\n margin: 0;\n}\n\n.input {\n background: var(--pf-input-bg);\n border: 1px solid var(--pf-input-border);\n border-radius: var(--radius-md);\n color: var(--pf-input-text);\n font: inherit;\n min-height: 40px;\n padding: 0 var(--space-3);\n width: 100%;\n transition:\n background 0.2s,\n border 0.2s,\n color 0.2s,\n opacity 0.2s;\n}\n\n.input:disabled {\n background: var(--pf-control-bg-disabled);\n border-color: var(--pf-control-border-disabled);\n color: var(--pf-control-text-disabled);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.input:focus {\n outline: none;\n}\n\n.input:focus-visible {\n border-color: var(--pf-input-focus-border);\n box-shadow: var(--pf-input-focus-ring, var(--pf-focus-ring));\n}\n\n.input::placeholder {\n color: var(--pf-input-placeholder);\n}\n\n.input--invalid {\n border-color: var(--pf-input-invalid-border);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .input {\n transition: none;\n }\n}\n","import { composeDescribedBy } from '@pitchfork-ui/core';\nimport { applyControlValidity } from '../../form-validity';\nimport {\n AttachInternals,\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch,\n} from '@stencil/core';\n\nexport type PfInputType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url';\n\n/**\n * A form-associated text input.\n *\n * `formAssociated` plus `ElementInternals` is what makes this participate in a\n * real `<form>`: the value reaches `FormData`, constraint validation works, and\n * Angular's generated value accessor has something to bind to. A plain\n * `<input>` inside a shadow root does none of that.\n *\n * @part field - the wrapper around label, control and messages.\n * @part label - the label element.\n * @part input - the native input.\n * @part description - the hint text below the control.\n * @part error - the error message below the control.\n */\n@Component({\n tag: 'pf-input',\n styleUrl: 'pf-input.css',\n formAssociated: true,\n shadow: { delegatesFocus: true },\n})\nexport class PfInput {\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * Submitted under this name.\n *\n * Reflected, because a form-associated custom element takes its submission\n * name from the `name` *content attribute* -- not from this property. A\n * framework wrapper that sets properties rather than attributes (the\n * generated React bindings do) would otherwise leave the control nameless\n * and absent from the submission, with every other sign of working.\n */\n @Prop({ reflect: true }) name?: string;\n\n /** The control's value. */\n @Prop({ mutable: true }) value = '';\n\n @Prop({ reflect: true }) type: PfInputType = 'text';\n\n /** Visible label. Rendered in the same root as the input, so `for` works. */\n @Prop() label?: string;\n\n /** Hint text below the control. */\n @Prop() description?: string;\n\n /** Error message. Its presence is what marks the control invalid. */\n @Prop() error?: string;\n\n @Prop() placeholder?: string;\n\n @Prop({ reflect: true }) required = false;\n\n @Prop({ reflect: true }) disabled = false;\n\n @Prop({ reflect: true }) readonly = false;\n\n /** Fires on every keystroke, like the native `input` event. */\n @Event() pfInput!: EventEmitter<{ value: string }>;\n\n /** Fires when the value is committed, like the native `change` event. */\n @Event() pfChange!: EventEmitter<{ value: string }>;\n\n /**\n * The value the control had when it was created, which is what a form reset\n * restores. Captured here because `value` has been overwritten by then.\n */\n private initialValue = '';\n\n componentWillLoad() {\n this.initialValue = this.value ?? '';\n this.syncFormState();\n }\n\n @Watch('value')\n @Watch('error')\n @Watch('required')\n syncFormState() {\n this.internals.setFormValue(this.value ?? '');\n applyControlValidity(this.internals, Boolean(this.value), this.required, this.error);\n }\n\n /**\n * Whether the control currently satisfies its constraints.\n *\n * A form-associated custom element does not inherit `checkValidity` from\n * anywhere -- the spec puts it on ElementInternals, so the element has to\n * forward it or consumers cannot ask.\n */\n @Method()\n async checkValidity(): Promise<boolean> {\n return this.internals.checkValidity();\n }\n\n /** As `checkValidity`, but also shows the browser's validation message. */\n @Method()\n async reportValidity(): Promise<boolean> {\n return this.internals.reportValidity();\n }\n\n /** The message explaining why the control is invalid, or an empty string. */\n @Method()\n async getValidationMessage(): Promise<string> {\n return this.internals.validationMessage;\n }\n\n /**\n * A reset restores the value the control started with, not an empty string —\n * verified against a native `<input value=\"initial\">`, which comes back to\n * \"initial\" rather than to \"\". Clearing it was a real defect: a\n * `<pf-input value=\"…\">` in a form lost its value on any reset.\n */\n formResetCallback() {\n this.value = this.initialValue;\n }\n\n private onInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value;\n this.pfInput.emit({ value: this.value });\n };\n\n private onChange = () => {\n this.pfChange.emit({ value: this.value });\n };\n\n render() {\n // IDs are scoped to this shadow root, so they can be literal -- the useId()\n // the React component needs has no counterpart here.\n const describedBy = composeDescribedBy(\n this.description && 'description',\n this.error && 'error',\n );\n\n return (\n <Host>\n <div class=\"field\" part=\"field\">\n {this.label && (\n <label class=\"label\" part=\"label\" htmlFor=\"input\">\n {this.label}\n {this.required && (\n <span class=\"required\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n <input\n id=\"input\"\n part=\"input\"\n class={{ input: true, 'input--invalid': Boolean(this.error) }}\n type={this.type}\n name={this.name}\n value={this.value}\n placeholder={this.placeholder}\n required={this.required}\n disabled={this.disabled}\n readOnly={this.readonly}\n aria-invalid={this.error ? 'true' : null}\n aria-describedby={describedBy}\n onInput={this.onInput}\n onChange={this.onChange}\n />\n {this.description && (\n <p class=\"description\" part=\"description\" id=\"description\">\n {this.description}\n </p>\n )}\n {this.error && (\n <p class=\"error\" part=\"error\" id=\"error\">\n {this.error}\n </p>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"4HAAA,MAAMA,EAAa,IAAM,qxC,MCoCZC,EAAO,M,0PACCC,UAWMC,KAGAC,MAAQ,GAERC,KAAoB,OAGrCC,MAGAC,YAGAC,MAEAC,YAEiBC,SAAW,MAEXC,SAAW,MAEXC,SAAW,MAG3BC,QAGAC,SAMDC,aAAe,GAEvB,iBAAAC,GACEC,KAAKF,aAAeE,KAAKb,OAAS,GAClCa,KAAKC,e,CAMP,aAAAA,GACED,KAAKf,UAAUiB,aAAaF,KAAKb,OAAS,IAC1CgB,EAAqBH,KAAKf,UAAWmB,QAAQJ,KAAKb,OAAQa,KAAKP,SAAUO,KAAKT,M,CAWhF,mBAAMc,GACJ,OAAOL,KAAKf,UAAUoB,e,CAKxB,oBAAMC,GACJ,OAAON,KAAKf,UAAUqB,gB,CAKxB,0BAAMC,GACJ,OAAOP,KAAKf,UAAUuB,iB,CASxB,iBAAAC,GACET,KAAKb,MAAQa,KAAKF,Y,CAGZY,QAAWC,IACjBX,KAAKb,MAASwB,EAAMC,OAA4BzB,MAChDa,KAAKJ,QAAQiB,KAAK,CAAE1B,MAAOa,KAAKb,OAAQ,EAGlC2B,SAAW,KACjBd,KAAKH,SAASgB,KAAK,CAAE1B,MAAOa,KAAKb,OAAQ,EAG3C,MAAA4B,GAGE,MAAMC,EAAcC,EAClBjB,KAAKV,aAAe,cACpBU,KAAKT,OAAS,SAGhB,OACE2B,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CAAKC,MAAM,QAAQC,KAAK,SACrBtB,KAAKX,OACJ6B,EAAA,SAAAE,IAAA,2CAAOC,MAAM,QAAQC,KAAK,QAAQC,QAAQ,SACvCvB,KAAKX,MACLW,KAAKP,UACJyB,EAAA,QAAAE,IAAA,2CAAMC,MAAM,WAAU,cAAa,QAAM,MAM/CH,EAAA,SAAAE,IAAA,2CACEI,GAAG,QACHF,KAAK,QACLD,MAAO,CAAEI,MAAO,KAAM,iBAAkBrB,QAAQJ,KAAKT,QACrDH,KAAMY,KAAKZ,KACXF,KAAMc,KAAKd,KACXC,MAAOa,KAAKb,MACZK,YAAaQ,KAAKR,YAClBC,SAAUO,KAAKP,SACfC,SAAUM,KAAKN,SACfgC,SAAU1B,KAAKL,SAAQ,eACTK,KAAKT,MAAQ,OAAS,KAAI,mBACtByB,EAClBN,QAASV,KAAKU,QACdI,SAAUd,KAAKc,WAEhBd,KAAKV,aACJ4B,EAAA,KAAAE,IAAA,2CAAGC,MAAM,cAAcC,KAAK,cAAcE,GAAG,eAC1CxB,KAAKV,aAGTU,KAAKT,OACJ2B,EAAA,KAAAE,IAAA,2CAAGC,MAAM,QAAQC,KAAK,QAAQE,GAAG,SAC9BxB,KAAKT,Q","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,a as e,h as a,H as i}from"./p-Bm6UxEit.js";const s=()=>`:host{align-items:flex-start;display:flex;flex-direction:column;gap:var(--space-4);justify-content:space-between;padding-top:var(--space-4)}:host([hidden]){display:none}@media (min-width: 640px){:host{align-items:center;flex-direction:row}}:host([divider]){border-top:1px solid var(--pf-section-footer-border)}:host([align='start']){justify-content:flex-start}:host([align='end']){justify-content:flex-end}.heading.empty,.actions.empty{display:none}.content{min-width:0}.heading{color:var(--pf-section-footer-text);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0}slot[name='description']::slotted(*){color:var(--pf-section-footer-text-muted);display:block;font-size:var(--font-size-sm);line-height:1.4;margin:var(--space-1) 0 0}.actions{align-items:center;display:inline-flex;flex-wrap:wrap;gap:var(--space-2);width:100%}@media (min-width: 640px){.actions{width:auto}}`;const n=class{constructor(e){t(this,e)}get el(){return e(this)}divider=true;align="between";hasHeading=false;hasActions=false;componentWillLoad(){this.read()}read=()=>{const t=Array.from(this.el.children);this.hasHeading=t.some((t=>!t.hasAttribute("slot")))||Array.from(this.el.childNodes).some((t=>t.nodeType===3&&(t.textContent??"").trim()!==""));this.hasActions=t.some((t=>t.getAttribute("slot")==="actions"))};render(){return a(i,{key:"f25e894c4f0fe0dc340b29f448add3dc71afe52a"},a("div",{key:"51882857d07254c8998a34c5feaf281d55d87f51",class:"content",part:"content"},a("h3",{key:"9b67978a5a2824d5d9b8881e76c9d3ed9129ae3f",class:{heading:true,empty:!this.hasHeading},part:"heading"},a("slot",{key:"588df184573f0d84d0f0fa073e7ec7bc7007ba2f",onSlotchange:this.read})),a("slot",{key:"ab2749da402851c1dc922454db4188f1bed5fecf",name:"description"})),a("div",{key:"fa1cdc6a8a4301d6e61275998f7550057b6cd734",class:{actions:true,empty:!this.hasActions},part:"actions"},a("slot",{key:"b8585a98084951deb0d66c36a7c29a668d5f7dbc",name:"actions",onSlotchange:this.read})))}};n.style=s();export{n as pf_section_footer};
|
|
2
|
+
//# sourceMappingURL=p-c82804d4.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfSectionFooterCss","PfSectionFooter","divider","align","hasHeading","hasActions","componentWillLoad","this","read","children","Array","from","el","some","child","hasAttribute","childNodes","node","nodeType","textContent","trim","getAttribute","render","h","Host","key","class","part","heading","empty","onSlotchange","name","actions"],"sources":["src/components/pf-section-footer/pf-section-footer.css?tag=pf-section-footer&encapsulation=shadow","src/components/pf-section-footer/pf-section-footer.tsx"],"sourcesContent":[":host {\n align-items: flex-start;\n display: flex;\n flex-direction: column;\n gap: var(--space-4);\n justify-content: space-between;\n padding-top: var(--space-4);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n@media (--sm) {\n :host {\n align-items: center;\n flex-direction: row;\n }\n}\n\n:host([divider]) {\n border-top: 1px solid var(--pf-section-footer-border);\n}\n\n:host([align='start']) {\n justify-content: flex-start;\n}\n\n:host([align='end']) {\n justify-content: flex-end;\n}\n\n/*\n * Hidden rather than left out, so a later `slotchange` still arrives. Two\n * classes deep, because the actions box sets its own `display` below.\n */\n.heading.empty,\n.actions.empty {\n display: none;\n}\n\n.content {\n min-width: 0;\n}\n\n.heading {\n color: var(--pf-section-footer-text);\n font-size: var(--font-size-base);\n font-weight: var(--font-weight-semibold);\n margin: 0;\n}\n\nslot[name='description']::slotted(*) {\n color: var(--pf-section-footer-text-muted);\n display: block;\n font-size: var(--font-size-sm);\n line-height: 1.4;\n margin: var(--space-1) 0 0;\n}\n\n.actions {\n align-items: center;\n display: inline-flex;\n flex-wrap: wrap;\n gap: var(--space-2);\n width: 100%;\n}\n\n@media (--sm) {\n .actions {\n width: auto;\n }\n}\n","import { Component, Element, h, Host, Prop, State } from '@stencil/core';\n\nimport type { PfSectionHeaderAlign } from '../pf-section-header/pf-section-header';\n\n/**\n * The foot of a section: an optional heading and line of text, and the\n * controls that close it off.\n *\n * The same shape as `pf-section-header` with the rule on the other edge —\n * and, unlike the header, the heading is optional here, so its box is one of\n * the ones that can be empty.\n *\n * @slot - the heading.\n * @slot description - a line below the heading.\n * @slot actions - controls, which sit opposite the heading on a wide screen.\n * @part content - the box holding the heading and the description.\n * @part heading - the heading's box.\n * @part actions - the box holding the actions slot.\n */\n@Component({\n tag: 'pf-section-footer',\n styleUrl: 'pf-section-footer.css',\n shadow: true,\n})\nexport class PfSectionFooter {\n @Element() el!: HTMLElement;\n\n /** Draw a rule above the footer. Defaults to true, as the React one does. */\n @Prop({ reflect: true }) divider = true;\n\n /** How the heading and the actions share the row. Reflected. */\n @Prop({ reflect: true }) align: PfSectionHeaderAlign = 'between';\n\n /** Which of the boxes that carry layout have anything in them. */\n @State() hasHeading = false;\n @State() hasActions = false;\n\n /** Read from the light DOM, so first paint is right without `slotchange`. */\n componentWillLoad() {\n this.read();\n }\n\n private read = () => {\n const children = Array.from(this.el.children);\n\n // The heading is the default slot, so it is anything *without* a slot name\n // — including a bare text node, which is why the text is counted too.\n this.hasHeading =\n children.some((child) => !child.hasAttribute('slot')) ||\n Array.from(this.el.childNodes).some(\n (node) => node.nodeType === 3 && (node.textContent ?? '').trim() !== '',\n );\n this.hasActions = children.some((child) => child.getAttribute('slot') === 'actions');\n };\n\n render() {\n return (\n <Host>\n <div class=\"content\" part=\"content\">\n <h3 class={{ heading: true, empty: !this.hasHeading }} part=\"heading\">\n <slot onSlotchange={this.read} />\n </h3>\n <slot name=\"description\" />\n </div>\n\n <div class={{ actions: true, empty: !this.hasActions }} part=\"actions\">\n <slot name=\"actions\" onSlotchange={this.read} />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAqB,IAAM,w4B,MCwBpBC,EAAe,M,iDAIDC,QAAU,KAGVC,MAA8B,UAG9CC,WAAa,MACbC,WAAa,MAGtB,iBAAAC,GACEC,KAAKC,M,CAGCA,KAAO,KACb,MAAMC,EAAWC,MAAMC,KAAKJ,KAAKK,GAAGH,UAIpCF,KAAKH,WACHK,EAASI,MAAMC,IAAWA,EAAMC,aAAa,WAC7CL,MAAMC,KAAKJ,KAAKK,GAAGI,YAAYH,MAC5BI,GAASA,EAAKC,WAAa,IAAMD,EAAKE,aAAe,IAAIC,SAAW,KAEzEb,KAAKF,WAAaI,EAASI,MAAMC,GAAUA,EAAMO,aAAa,UAAY,WAAU,EAGtF,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CAAKC,MAAM,UAAUC,KAAK,WACxBJ,EAAA,MAAAE,IAAA,2CAAIC,MAAO,CAAEE,QAAS,KAAMC,OAAQtB,KAAKH,YAAcuB,KAAK,WAC1DJ,EAAA,QAAAE,IAAA,2CAAMK,aAAcvB,KAAKC,QAE3Be,EAAA,QAAAE,IAAA,2CAAMM,KAAK,iBAGbR,EAAA,OAAAE,IAAA,2CAAKC,MAAO,CAAEM,QAAS,KAAMH,OAAQtB,KAAKF,YAAcsB,KAAK,WAC3DJ,EAAA,QAAAE,IAAA,2CAAMM,KAAK,UAAUD,aAAcvB,KAAKC,Q","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as t,h as i,H as r}from"./p-Bm6UxEit.js";import{a}from"./p-Cr6IXrUk.js";const s=()=>`:host{display:inline-block}:host([hidden]){display:none}.field{align-items:center;display:inline-flex;gap:var(--space-2)}.input{appearance:none;background:var(--pf-switch-track-bg);border-radius:var(--radius-full);cursor:pointer;height:24px;margin:0;position:relative;transition:background-color 120ms ease;width:44px}.input::after{background:var(--pf-switch-thumb-bg);border-radius:50%;content:'';height:20px;left:2px;position:absolute;top:2px;transition:transform 120ms ease;width:20px}.input:checked{background:var(--pf-switch-track-checked-bg)}.input:checked::after{transform:translateX(20px)}.input:focus-visible{box-shadow:var(--pf-switch-focus-ring, var(--pf-focus-ring));outline:none}.input:disabled{cursor:not-allowed;opacity:0.55}.input:disabled+.label{cursor:not-allowed;opacity:0.65}.label{color:var(--pf-switch-label-text);font-size:var(--font-size-md)}.error{color:var(--pf-switch-field-error, var(--pf-field-error));font-size:var(--font-size-sm);margin:var(--space-1) 0 0}@media (prefers-reduced-motion: reduce){.input,.input::after{transition:none}}`;const n=class{constructor(i){e(this,i);this.pfChange=t(this,"pfChange");if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}}internals;name;checked=false;value="on";label;error;required=false;disabled=false;pfChange;initialChecked=false;componentWillLoad(){this.initialChecked=this.checked;this.syncFormState()}syncFormState(){this.internals.setFormValue(this.checked?this.value:null);a(this.internals,this.checked,this.required,this.error)}async checkValidity(){return this.internals.checkValidity()}async reportValidity(){return this.internals.reportValidity()}async getValidationMessage(){return this.internals.validationMessage}formResetCallback(){this.checked=this.initialChecked}onChange=e=>{this.checked=e.target.checked;this.pfChange.emit({checked:this.checked,value:this.value})};render(){return i(r,{key:"2b1d5bf745c871e8633aa562ef6aa619d77b27bd"},i("div",{key:"ce5a586351ff1ac9d64f446a991365085f185a2e",class:"field",part:"field"},i("input",{key:"5596a0b34fc5f91435da841b5196db5221090be4",id:"input",part:"input",class:"input",type:"checkbox",role:"switch",name:this.name,value:this.value,checked:this.checked,required:this.required,disabled:this.disabled,"aria-invalid":this.error?"true":null,"aria-describedby":this.error?"error":null,onChange:this.onChange}),this.label&&i("label",{key:"59741e6dcbe31fbaf0df1ea730800ef1b5b79622",class:"label",part:"label",htmlFor:"input"},this.label)),this.error&&i("p",{key:"e1278052a8546bae276ed0eff2d74a1ccee06176",class:"error",part:"error",id:"error"},this.error))}static get delegatesFocus(){return true}static get formAssociated(){return true}static get watchers(){return{checked:[{syncFormState:0}],error:[{syncFormState:0}],required:[{syncFormState:0}],value:[{syncFormState:0}]}}};n.style=s();export{n as pf_switch};
|
|
2
|
+
//# sourceMappingURL=p-d0d2070b.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfSwitchCss","PfSwitch","internals","name","checked","value","label","error","required","disabled","pfChange","initialChecked","componentWillLoad","this","syncFormState","setFormValue","applyControlValidity","checkValidity","reportValidity","getValidationMessage","validationMessage","formResetCallback","onChange","event","target","emit","render","h","Host","key","class","part","id","type","role","htmlFor"],"sources":["src/components/pf-switch/pf-switch.css?tag=pf-switch&encapsulation=shadow","src/components/pf-switch/pf-switch.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.field {\n align-items: center;\n display: inline-flex;\n gap: var(--space-2);\n}\n\n.input {\n appearance: none;\n background: var(--pf-switch-track-bg);\n border-radius: var(--radius-full);\n cursor: pointer;\n height: 24px;\n margin: 0;\n position: relative;\n transition: background-color 120ms ease;\n width: 44px;\n}\n\n/* The thumb. */\n.input::after {\n background: var(--pf-switch-thumb-bg);\n border-radius: 50%;\n content: '';\n height: 20px;\n left: 2px;\n position: absolute;\n top: 2px;\n transition: transform 120ms ease;\n width: 20px;\n}\n\n.input:checked {\n background: var(--pf-switch-track-checked-bg);\n}\n\n.input:checked::after {\n transform: translateX(20px);\n}\n\n.input:focus-visible {\n box-shadow: var(--pf-switch-focus-ring, var(--pf-focus-ring));\n outline: none;\n}\n\n.input:disabled {\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.input:disabled + .label {\n cursor: not-allowed;\n opacity: 0.65;\n}\n\n.label {\n color: var(--pf-switch-label-text);\n font-size: var(--font-size-md);\n}\n\n.error {\n color: var(--pf-switch-field-error, var(--pf-field-error));\n font-size: var(--font-size-sm);\n margin: var(--space-1) 0 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .input,\n .input::after {\n transition: none;\n }\n}\n","import {\n AttachInternals,\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch,\n} from '@stencil/core';\n\nimport { applyControlValidity } from '../../form-validity';\n\n/**\n * A form-associated on/off switch.\n *\n * Built on a native checkbox with `role=\"switch\"`, exactly as the React\n * component is: a switch is a checkbox whose two states are \"on\" and \"off\"\n * rather than \"selected\" and \"not selected\", and the role is the only\n * difference assistive technology needs.\n *\n * @part field - the wrapper around control and label.\n * @part input - the native checkbox carrying role=\"switch\".\n * @part label - the label element.\n */\n@Component({\n tag: 'pf-switch',\n styleUrl: 'pf-switch.css',\n formAssociated: true,\n shadow: { delegatesFocus: true },\n})\nexport class PfSwitch {\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * Submitted under this name.\n *\n * Reflected, because a form-associated custom element takes its submission\n * name from the `name` *content attribute* -- not from this property. A\n * framework wrapper that sets properties rather than attributes (the\n * generated React bindings do) would otherwise leave the control nameless\n * and absent from the submission, with every other sign of working.\n */\n @Prop({ reflect: true }) name?: string;\n\n /** Whether the switch is on. Reflected so the stylesheet can select on it. */\n @Prop({ mutable: true, reflect: true }) checked = false;\n\n /**\n * What is submitted when on. Mirrors the native attribute, whose default is\n * also `on` — a checkbox with no value still submits something.\n */\n @Prop() value = 'on';\n\n /** Visible label, rendered in the same root so `for` actually associates. */\n @Prop() label?: string;\n\n /** Error message. Its presence is what marks the control invalid. */\n @Prop() error?: string;\n\n @Prop({ reflect: true }) required = false;\n\n @Prop({ reflect: true }) disabled = false;\n\n /** Fires when the user turns the switch on or off. */\n @Event() pfChange!: EventEmitter<{ checked: boolean; value: string }>;\n\n /** The state a form reset restores, which is the initial attribute. */\n private initialChecked = false;\n\n componentWillLoad() {\n this.initialChecked = this.checked;\n this.syncFormState();\n }\n\n @Watch('checked')\n @Watch('error')\n @Watch('required')\n @Watch('value')\n syncFormState() {\n /*\n * `null`, not an empty string, when off: an unchecked checkbox is\n * absent from the submission entirely, rather than present and empty.\n * That is what a server distinguishing \"unticked\" from \"not sent\" relies\n * on, and it is what a native checkbox does.\n */\n this.internals.setFormValue(this.checked ? this.value : null);\n applyControlValidity(this.internals, this.checked, this.required, this.error);\n }\n\n /** A form-associated custom element does not inherit this. */\n @Method()\n async checkValidity(): Promise<boolean> {\n return this.internals.checkValidity();\n }\n\n /** As `checkValidity`, but also shows the browser's validation message. */\n @Method()\n async reportValidity(): Promise<boolean> {\n return this.internals.reportValidity();\n }\n\n /** The message explaining why the control is invalid, or an empty string. */\n @Method()\n async getValidationMessage(): Promise<string> {\n return this.internals.validationMessage;\n }\n\n /**\n * A reset restores the initial state, not `false` — a native\n * `<input type=checkbox checked>` comes back on.\n */\n formResetCallback() {\n this.checked = this.initialChecked;\n }\n\n private onChange = (event: Event) => {\n this.checked = (event.target as HTMLInputElement).checked;\n this.pfChange.emit({ checked: this.checked, value: this.value });\n };\n\n render() {\n return (\n <Host>\n <div class=\"field\" part=\"field\">\n <input\n id=\"input\"\n part=\"input\"\n class=\"input\"\n type=\"checkbox\"\n role=\"switch\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n aria-invalid={this.error ? 'true' : null}\n aria-describedby={this.error ? 'error' : null}\n onChange={this.onChange}\n />\n {this.label && (\n <label class=\"label\" part=\"label\" htmlFor=\"input\">\n {this.label}\n </label>\n )}\n </div>\n {this.error && (\n <p class=\"error\" part=\"error\" id=\"error\">\n {this.error}\n </p>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"wFAAA,MAAMA,EAAc,IAAM,4iC,MCgCbC,EAAQ,M,2NACAC,UAWMC,KAGeC,QAAU,MAM1CC,MAAQ,KAGRC,MAGAC,MAEiBC,SAAW,MAEXC,SAAW,MAG3BC,SAGDC,eAAiB,MAEzB,iBAAAC,GACEC,KAAKF,eAAiBE,KAAKT,QAC3BS,KAAKC,e,CAOP,aAAAA,GAOED,KAAKX,UAAUa,aAAaF,KAAKT,QAAUS,KAAKR,MAAQ,MACxDW,EAAqBH,KAAKX,UAAWW,KAAKT,QAASS,KAAKL,SAAUK,KAAKN,M,CAKzE,mBAAMU,GACJ,OAAOJ,KAAKX,UAAUe,e,CAKxB,oBAAMC,GACJ,OAAOL,KAAKX,UAAUgB,gB,CAKxB,0BAAMC,GACJ,OAAON,KAAKX,UAAUkB,iB,CAOxB,iBAAAC,GACER,KAAKT,QAAUS,KAAKF,c,CAGdW,SAAYC,IAClBV,KAAKT,QAAWmB,EAAMC,OAA4BpB,QAClDS,KAAKH,SAASe,KAAK,CAAErB,QAASS,KAAKT,QAASC,MAAOQ,KAAKR,OAAQ,EAGlE,MAAAqB,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CAAKC,MAAM,QAAQC,KAAK,SACtBJ,EAAA,SAAAE,IAAA,2CACEG,GAAG,QACHD,KAAK,QACLD,MAAM,QACNG,KAAK,WACLC,KAAK,SACL/B,KAAMU,KAAKV,KACXE,MAAOQ,KAAKR,MACZD,QAASS,KAAKT,QACdI,SAAUK,KAAKL,SACfC,SAAUI,KAAKJ,SAAQ,eACTI,KAAKN,MAAQ,OAAS,KAAI,mBACtBM,KAAKN,MAAQ,QAAU,KACzCe,SAAUT,KAAKS,WAEhBT,KAAKP,OACJqB,EAAA,SAAAE,IAAA,2CAAOC,MAAM,QAAQC,KAAK,QAAQI,QAAQ,SACvCtB,KAAKP,QAIXO,KAAKN,OACJoB,EAAA,KAAAE,IAAA,2CAAGC,MAAM,QAAQC,KAAK,QAAQC,GAAG,SAC9BnB,KAAKN,O","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as r,h as t,H as i}from"./p-Bm6UxEit.js";import{a}from"./p-Cr6IXrUk.js";const s=()=>`:host{display:inline-block}:host([hidden]){display:none}.field{align-items:center;display:inline-flex;gap:var(--space-2)}.input{appearance:none;background:var(--pf-checkbox-bg);border:1px solid var(--pf-checkbox-border);border-radius:var(--pf-checkbox-radius, var(--radius-sm));box-sizing:border-box;cursor:pointer;display:inline-block;flex-shrink:0;height:18px;margin:0;position:relative;width:18px}.input:checked{background:var(--pf-checkbox-checked-bg);border-color:var(--pf-checkbox-border)}.input::after{border:solid var(--pf-checkbox-check-color);border-width:0 2px 2px 0;content:'';height:9px;left:5px;opacity:0;position:absolute;top:2px;transform:rotate(45deg);width:5px}.input:checked::after{opacity:1}.input:focus-visible{box-shadow:var(--pf-checkbox-focus-ring, var(--pf-focus-ring));outline:none}.input:disabled{cursor:not-allowed;opacity:0.55}.input:disabled+.label{cursor:not-allowed;opacity:0.65}.label{color:var(--pf-checkbox-label-text);font-size:var(--font-size-md)}.error{color:var(--pf-checkbox-field-error, var(--pf-field-error));font-size:var(--font-size-sm);margin:var(--space-1) 0 0}`;const o=class{constructor(t){e(this,t);this.pfChange=r(this,"pfChange");if(t.$hostElement$["s-ei"]){this.internals=t.$hostElement$["s-ei"]}else{this.internals=t.$hostElement$.attachInternals();t.$hostElement$["s-ei"]=this.internals}}internals;name;checked=false;value="on";label;error;required=false;disabled=false;pfChange;initialChecked=false;componentWillLoad(){this.initialChecked=this.checked;this.syncFormState()}syncFormState(){this.internals.setFormValue(this.checked?this.value:null);a(this.internals,this.checked,this.required,this.error)}async checkValidity(){return this.internals.checkValidity()}async reportValidity(){return this.internals.reportValidity()}async getValidationMessage(){return this.internals.validationMessage}formResetCallback(){this.checked=this.initialChecked}onChange=e=>{this.checked=e.target.checked;this.pfChange.emit({checked:this.checked,value:this.value})};render(){return t(i,{key:"87e808069908240f3507903e680a2ed25e963fde"},t("div",{key:"56e201259f99ecf8da235b962a42ed65080f2f68",class:"field",part:"field"},t("input",{key:"8efc240bd3931bcdf117e529ff4fb7e5f8e544d5",id:"input",part:"input",class:"input",type:"checkbox",name:this.name,value:this.value,checked:this.checked,required:this.required,disabled:this.disabled,"aria-invalid":this.error?"true":null,"aria-describedby":this.error?"error":null,onChange:this.onChange}),this.label&&t("label",{key:"8b098a6fd3271d1353447f53b4b06099d7044169",class:"label",part:"label",htmlFor:"input"},this.label)),this.error&&t("p",{key:"76ba7559865ec18ba77ac50677df53a6459e6989",class:"error",part:"error",id:"error"},this.error))}static get delegatesFocus(){return true}static get formAssociated(){return true}static get watchers(){return{checked:[{syncFormState:0}],error:[{syncFormState:0}],required:[{syncFormState:0}],value:[{syncFormState:0}]}}};o.style=s();export{o as pf_checkbox};
|
|
2
|
+
//# sourceMappingURL=p-d248b027.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfCheckboxCss","PfCheckbox","internals","name","checked","value","label","error","required","disabled","pfChange","initialChecked","componentWillLoad","this","syncFormState","setFormValue","applyControlValidity","checkValidity","reportValidity","getValidationMessage","validationMessage","formResetCallback","onChange","event","target","emit","render","h","Host","key","class","part","id","type","htmlFor"],"sources":["src/components/pf-checkbox/pf-checkbox.css?tag=pf-checkbox&encapsulation=shadow","src/components/pf-checkbox/pf-checkbox.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.field {\n align-items: center;\n display: inline-flex;\n gap: var(--space-2);\n}\n\n.input {\n appearance: none;\n background: var(--pf-checkbox-bg);\n border: 1px solid var(--pf-checkbox-border);\n border-radius: var(--pf-checkbox-radius, var(--radius-sm));\n box-sizing: border-box;\n cursor: pointer;\n display: inline-block;\n flex-shrink: 0;\n height: 18px;\n margin: 0;\n position: relative;\n width: 18px;\n}\n\n.input:checked {\n background: var(--pf-checkbox-checked-bg);\n border-color: var(--pf-checkbox-border);\n}\n\n/* The tick: two borders of a rotated box. */\n.input::after {\n border: solid var(--pf-checkbox-check-color);\n border-width: 0 2px 2px 0;\n content: '';\n height: 9px;\n left: 5px;\n opacity: 0;\n position: absolute;\n top: 2px;\n transform: rotate(45deg);\n width: 5px;\n}\n\n.input:checked::after {\n opacity: 1;\n}\n\n.input:focus-visible {\n box-shadow: var(--pf-checkbox-focus-ring, var(--pf-focus-ring));\n outline: none;\n}\n\n.input:disabled {\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.input:disabled + .label {\n cursor: not-allowed;\n opacity: 0.65;\n}\n\n.label {\n color: var(--pf-checkbox-label-text);\n font-size: var(--font-size-md);\n}\n\n.error {\n color: var(--pf-checkbox-field-error, var(--pf-field-error));\n font-size: var(--font-size-sm);\n margin: var(--space-1) 0 0;\n}\n","import {\n AttachInternals,\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch,\n} from '@stencil/core';\n\nimport { applyControlValidity } from '../../form-validity';\n\n/**\n * A form-associated checkbox.\n *\n * @part field - the wrapper around control and label.\n * @part input - the native checkbox.\n * @part label - the label element.\n */\n@Component({\n tag: 'pf-checkbox',\n styleUrl: 'pf-checkbox.css',\n formAssociated: true,\n shadow: { delegatesFocus: true },\n})\nexport class PfCheckbox {\n @AttachInternals() internals!: ElementInternals;\n\n /**\n * Submitted under this name.\n *\n * Reflected, because a form-associated custom element takes its submission\n * name from the `name` *content attribute* -- not from this property. A\n * framework wrapper that sets properties rather than attributes (the\n * generated React bindings do) would otherwise leave the control nameless\n * and absent from the submission, with every other sign of working.\n */\n @Prop({ reflect: true }) name?: string;\n\n /** Whether the box is ticked. Reflected so the stylesheet can select on it. */\n @Prop({ mutable: true, reflect: true }) checked = false;\n\n /**\n * What is submitted when ticked. Mirrors the native attribute, whose default\n * is also `on` — a checkbox with no value still submits something.\n */\n @Prop() value = 'on';\n\n /** Visible label, rendered in the same root so `for` actually associates. */\n @Prop() label?: string;\n\n /** Error message. Its presence is what marks the control invalid. */\n @Prop() error?: string;\n\n @Prop({ reflect: true }) required = false;\n\n @Prop({ reflect: true }) disabled = false;\n\n /** Fires when the user ticks or unticks the box. */\n @Event() pfChange!: EventEmitter<{ checked: boolean; value: string }>;\n\n /** The state a form reset restores, which is the initial attribute. */\n private initialChecked = false;\n\n componentWillLoad() {\n this.initialChecked = this.checked;\n this.syncFormState();\n }\n\n @Watch('checked')\n @Watch('error')\n @Watch('required')\n @Watch('value')\n syncFormState() {\n /*\n * `null`, not an empty string, when unticked: an unchecked checkbox is\n * absent from the submission entirely, rather than present and empty.\n * That is what a server distinguishing \"unticked\" from \"not sent\" relies\n * on, and it is what a native checkbox does.\n */\n this.internals.setFormValue(this.checked ? this.value : null);\n applyControlValidity(this.internals, this.checked, this.required, this.error);\n }\n\n /** A form-associated custom element does not inherit this. */\n @Method()\n async checkValidity(): Promise<boolean> {\n return this.internals.checkValidity();\n }\n\n /** As `checkValidity`, but also shows the browser's validation message. */\n @Method()\n async reportValidity(): Promise<boolean> {\n return this.internals.reportValidity();\n }\n\n /** The message explaining why the control is invalid, or an empty string. */\n @Method()\n async getValidationMessage(): Promise<string> {\n return this.internals.validationMessage;\n }\n\n /**\n * A reset restores the initial state, not `false` — a native\n * `<input type=checkbox checked>` comes back ticked.\n */\n formResetCallback() {\n this.checked = this.initialChecked;\n }\n\n private onChange = (event: Event) => {\n this.checked = (event.target as HTMLInputElement).checked;\n this.pfChange.emit({ checked: this.checked, value: this.value });\n };\n\n render() {\n return (\n <Host>\n <div class=\"field\" part=\"field\">\n <input\n id=\"input\"\n part=\"input\"\n class=\"input\"\n type=\"checkbox\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n aria-invalid={this.error ? 'true' : null}\n aria-describedby={this.error ? 'error' : null}\n onChange={this.onChange}\n />\n {this.label && (\n <label class=\"label\" part=\"label\" htmlFor=\"input\">\n {this.label}\n </label>\n )}\n </div>\n {this.error && (\n <p class=\"error\" part=\"error\" id=\"error\">\n {this.error}\n </p>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"wFAAA,MAAMA,EAAgB,IAAM,slC,MC2BfC,EAAU,M,2NACFC,UAWMC,KAGeC,QAAU,MAM1CC,MAAQ,KAGRC,MAGAC,MAEiBC,SAAW,MAEXC,SAAW,MAG3BC,SAGDC,eAAiB,MAEzB,iBAAAC,GACEC,KAAKF,eAAiBE,KAAKT,QAC3BS,KAAKC,e,CAOP,aAAAA,GAOED,KAAKX,UAAUa,aAAaF,KAAKT,QAAUS,KAAKR,MAAQ,MACxDW,EAAqBH,KAAKX,UAAWW,KAAKT,QAASS,KAAKL,SAAUK,KAAKN,M,CAKzE,mBAAMU,GACJ,OAAOJ,KAAKX,UAAUe,e,CAKxB,oBAAMC,GACJ,OAAOL,KAAKX,UAAUgB,gB,CAKxB,0BAAMC,GACJ,OAAON,KAAKX,UAAUkB,iB,CAOxB,iBAAAC,GACER,KAAKT,QAAUS,KAAKF,c,CAGdW,SAAYC,IAClBV,KAAKT,QAAWmB,EAAMC,OAA4BpB,QAClDS,KAAKH,SAASe,KAAK,CAAErB,QAASS,KAAKT,QAASC,MAAOQ,KAAKR,OAAQ,EAGlE,MAAAqB,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CAAKC,MAAM,QAAQC,KAAK,SACtBJ,EAAA,SAAAE,IAAA,2CACEG,GAAG,QACHD,KAAK,QACLD,MAAM,QACNG,KAAK,WACL9B,KAAMU,KAAKV,KACXE,MAAOQ,KAAKR,MACZD,QAASS,KAAKT,QACdI,SAAUK,KAAKL,SACfC,SAAUI,KAAKJ,SAAQ,eACTI,KAAKN,MAAQ,OAAS,KAAI,mBACtBM,KAAKN,MAAQ,QAAU,KACzCe,SAAUT,KAAKS,WAEhBT,KAAKP,OACJqB,EAAA,SAAAE,IAAA,2CAAOC,MAAM,QAAQC,KAAK,QAAQG,QAAQ,SACvCrB,KAAKP,QAIXO,KAAKN,OACJoB,EAAA,KAAAE,IAAA,2CAAGC,MAAM,QAAQC,KAAK,QAAQC,GAAG,SAC9BnB,KAAKN,O","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as d,h as r,H as a}from"./p-Bm6UxEit.js";const o=()=>`:host{border-top:1px solid var(--pf-card-border);display:flex;gap:var(--pf-card-footer-gap);padding:var(--pf-card-section-padding, var(--space-4))}:host([hidden]){display:none}`;const e=class{constructor(r){d(this,r)}render(){return r(a,{key:"94597fc7d75217bd21d063cb79f4e99dc4d4962b"},r("slot",{key:"6d37ed88a893134c4b4025ed4870993b9ea82812"}))}};e.style=o();export{e as pf_card_footer};
|
|
2
|
+
//# sourceMappingURL=p-d4bbcba0.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfCardFooterCss","PfCardFooter","render","h","Host","key"],"sources":["src/components/pf-card-footer/pf-card-footer.css?tag=pf-card-footer&encapsulation=shadow","src/components/pf-card-footer/pf-card-footer.tsx"],"sourcesContent":[":host {\n border-top: 1px solid var(--pf-card-border);\n display: flex;\n gap: var(--pf-card-footer-gap);\n padding: var(--pf-card-section-padding, var(--space-4));\n}\n\n:host([hidden]) {\n display: none;\n}\n","import { Component, h, Host } from '@stencil/core';\n\n/**\n * The bottom section of a `pf-card`, separated from what precedes it by a rule.\n * Lays its children out in a row, which is what makes it the natural home for\n * a card's actions.\n *\n * @slot - the footer's content, usually buttons.\n */\n@Component({\n tag: 'pf-card-footer',\n styleUrl: 'pf-card-footer.css',\n shadow: true,\n})\nexport class PfCardFooter {\n render() {\n return (\n <Host>\n <slot />\n </Host>\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAkB,IAAM,mL,MCcjBC,EAAY,M,yBACvB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,QAAAE,IAAA,6C","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as a,a as o,h as i,H as s}from"./p-Bm6UxEit.js";import{l as t}from"./p-C-VLyxRR.js";const l=()=>`:host{display:contents}.dialog{align-items:center;background:none;border:0;display:none;height:100%;justify-content:center;max-height:100%;max-width:100%;padding:var(--space-4);width:100%}.dialog[open]{display:flex}.dialog::backdrop{background:var(--pf-modal-overlay-backdrop, var(--pf-overlay-backdrop))}.panel{background:var(--pf-modal-bg);border:1px solid var(--pf-modal-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--pf-modal-text);display:flex;flex-direction:column;max-height:100%;overflow:auto;position:relative;width:100%}:host([size='sm']) .panel{max-width:400px}:host([size='md']) .panel{max-width:560px}:host([size='lg']) .panel{max-width:800px}.close{background:none;border:0;border-radius:var(--radius-sm);color:var(--pf-modal-text-muted);cursor:pointer;display:inline-flex;inset-block-start:var(--space-3);inset-inline-end:var(--space-3);padding:var(--space-1);position:absolute}.close:hover{color:var(--pf-modal-text)}.close:focus-visible{box-shadow:var(--pf-focus-ring);outline:none}.dialog[open] .panel{animation:pf-modal-in var(--pf-transition-enter)}@keyframes pf-modal-in{from{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion: reduce){.dialog[open] .panel{animation:none}}`;const n=class{constructor(o){e(this,o);this.pfOpenChange=a(this,"pfOpenChange")}get el(){return o(this)}open=false;size="md";label;dismissable=true;showCloseButton=true;pfOpenChange;releaseScroll=null;componentDidLoad(){if(this.open)this.showDialog()}disconnectedCallback(){this.unlockScroll()}async show(){this.open=true}async hide(){this.open=false}syncOpen(e,a){if(e)this.showDialog();else this.closeDialog();if(e!==a)this.pfOpenChange.emit({open:e})}get dialog(){return this.el.shadowRoot?.querySelector("dialog")??null}lockScroll(){if(this.releaseScroll)return;this.releaseScroll=t()}unlockScroll(){this.releaseScroll?.();this.releaseScroll=null}showDialog(){const e=this.dialog;if(!e||e.open)return;e.showModal();this.lockScroll()}closeDialog(){const e=this.dialog;this.unlockScroll();if(e?.open)e.close()}onCancel=e=>{if(!this.dismissable){e.preventDefault();return}};onClose=()=>{this.unlockScroll();if(this.open)this.open=false};onDialogClick=e=>{if(!this.dismissable||e.target!==this.dialog)return;this.open=false};accessibleName(){if(this.label)return this.label;const e=this.el.textContent?.trim();return e?e.slice(0,120):undefined}render(){return i(s,{key:"4445c1692e0cdf8ea4243f031984d25c3fa35148"},i("dialog",{key:"6a87d0181761644d8f9bc2d02ead398c10030668",part:"dialog",class:"dialog","aria-label":this.accessibleName(),onCancel:this.onCancel,onClose:this.onClose,onClick:this.onDialogClick},i("div",{key:"0ce7125e86b87d9fd834aee12491d384c0a47f7c",class:"panel",part:"panel"},this.showCloseButton&&i("button",{key:"e395307252b805932cdbebe2bc8e31178b8c8fb6",class:"close",part:"close",type:"button","aria-label":"Close",onClick:()=>this.hide()},i("svg",{key:"f83625e2e03e6c0e5f29aa1dd76dabab6011d27f",viewBox:"0 0 16 16",width:"16",height:"16","aria-hidden":"true",focusable:"false"},i("path",{key:"fccb0dadc0442661f9300fdec4b36234124fcd93",d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round",fill:"none"}))),i("slot",{key:"8a01602089364eeeb8dfb4b8c1f9d6b48bc3f4a5"}))))}static get watchers(){return{open:[{syncOpen:0}]}}};n.style=l();export{n as pf_modal};
|
|
2
|
+
//# sourceMappingURL=p-d6425298.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfModalCss","PfModal","open","size","label","dismissable","showCloseButton","pfOpenChange","releaseScroll","componentDidLoad","this","showDialog","disconnectedCallback","unlockScroll","show","hide","syncOpen","next","previous","closeDialog","emit","dialog","el","shadowRoot","querySelector","lockScroll","lockPageScroll","showModal","close","onCancel","event","preventDefault","onClose","onDialogClick","target","accessibleName","text","textContent","trim","slice","undefined","render","h","Host","key","part","class","onClick","type","viewBox","width","height","focusable","d","stroke","fill"],"sources":["src/components/pf-modal/pf-modal.css?tag=pf-modal&encapsulation=shadow","src/components/pf-modal/pf-modal.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n\n/*\n * The dialog is the overlay: it fills the viewport and centres the panel, so a\n * click that lands on it rather than on the panel is an overlay click.\n */\n.dialog {\n align-items: center;\n background: none;\n border: 0;\n display: none;\n height: 100%;\n justify-content: center;\n max-height: 100%;\n max-width: 100%;\n padding: var(--space-4);\n width: 100%;\n}\n\n.dialog[open] {\n display: flex;\n}\n\n.dialog::backdrop {\n background: var(--pf-modal-overlay-backdrop, var(--pf-overlay-backdrop));\n}\n\n.panel {\n background: var(--pf-modal-bg);\n border: 1px solid var(--pf-modal-border);\n border-radius: var(--radius-lg);\n box-shadow: var(--shadow-lg);\n color: var(--pf-modal-text);\n display: flex;\n flex-direction: column;\n max-height: 100%;\n overflow: auto;\n position: relative;\n width: 100%;\n}\n\n:host([size='sm']) .panel {\n max-width: 400px;\n}\n\n:host([size='md']) .panel {\n max-width: 560px;\n}\n\n:host([size='lg']) .panel {\n max-width: 800px;\n}\n\n.close {\n background: none;\n border: 0;\n border-radius: var(--radius-sm);\n color: var(--pf-modal-text-muted);\n cursor: pointer;\n display: inline-flex;\n inset-block-start: var(--space-3);\n inset-inline-end: var(--space-3);\n padding: var(--space-1);\n position: absolute;\n}\n\n.close:hover {\n color: var(--pf-modal-text);\n}\n\n.close:focus-visible {\n box-shadow: var(--pf-focus-ring);\n outline: none;\n}\n\n.dialog[open] .panel {\n animation: pf-modal-in var(--pf-transition-enter);\n}\n\n/* Its own copy: @keyframes do not cross a shadow boundary. */\n@keyframes pf-modal-in {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dialog[open] .panel {\n animation: none;\n }\n}\n","import { lockPageScroll } from '@pitchfork-ui/core';\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch,\n} from '@stencil/core';\n\nexport type PfModalSize = 'sm' | 'md' | 'lg';\n\n/**\n * A modal dialog.\n *\n * A native `<dialog>` opened with `showModal()`, which from inside a shadow\n * root gives the focus trap, Escape and the backdrop for nothing — all\n * measured: focus moves inside on open and cannot be taken by a light-DOM\n * button, and a real Escape fires `cancel` then `close`. So `trapFocus` from\n * core is not needed here, unlike in the React component.\n *\n * What `showModal()` does *not* do is lock page scroll — measured: a real\n * wheel still scrolled the page behind an open modal — so this element locks\n * it, exactly as the React component does.\n *\n * @slot - the modal's sections, usually `pf-modal-header`, `pf-modal-body` and\n * `pf-modal-footer`.\n * @part dialog - the native dialog, which is also the overlay.\n * @part panel - the bordered box the content sits in.\n * @part close - the close button.\n */\n@Component({\n tag: 'pf-modal',\n styleUrl: 'pf-modal.css',\n shadow: true,\n})\nexport class PfModal {\n @Element() el!: HTMLElement;\n\n /** Whether the modal is showing. Reflected so the stylesheet can select on it. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** Panel width. Reflected so the stylesheet can select on it. */\n @Prop({ reflect: true }) size: PfModalSize = 'md';\n\n /**\n * Accessible name. Falls back to the text of whatever is slotted, which is\n * usually the header — `aria-labelledby` cannot be used, because an IDREF\n * does not cross a shadow boundary and the header is in the light DOM.\n */\n @Prop() label?: string;\n\n /** Close on Escape or a click on the overlay. Defaults to true. */\n @Prop() dismissable = true;\n\n /** Render the corner close button. Defaults to true. */\n @Prop() showCloseButton = true;\n\n /** Fires whenever the modal opens or closes, whoever caused it. */\n @Event() pfOpenChange!: EventEmitter<{ open: boolean }>;\n\n /**\n * Releases the page-scroll lock, or null when this modal does not hold it.\n * The lock is core's and reference-counted, so a slideout opening over a\n * modal cannot leave the page unscrollable.\n */\n private releaseScroll: (() => void) | null = null;\n\n componentDidLoad() {\n if (this.open) this.showDialog();\n }\n\n disconnectedCallback() {\n // A modal removed while open would otherwise leave the page unscrollable.\n this.unlockScroll();\n }\n\n /** Opens the modal. */\n @Method()\n async show(): Promise<void> {\n this.open = true;\n }\n\n /** Closes the modal. */\n @Method()\n async hide(): Promise<void> {\n this.open = false;\n }\n\n /**\n * The one place a state change is announced, whatever caused it: `show()`,\n * the close button, Escape, an overlay click, or a consumer writing the prop.\n *\n * The first version emitted from the `close` handler alone, which fired for\n * every close and for no open — caught by its own test. A consumer mirroring\n * this value back sets `open` to what it already is, which Stencil does not\n * treat as a change, so there is no loop.\n */\n @Watch('open')\n syncOpen(next: boolean, previous: boolean) {\n if (next) this.showDialog();\n else this.closeDialog();\n if (next !== previous) this.pfOpenChange.emit({ open: next });\n }\n\n private get dialog() {\n return this.el.shadowRoot?.querySelector('dialog') ?? null;\n }\n\n private lockScroll() {\n if (this.releaseScroll) return;\n this.releaseScroll = lockPageScroll();\n }\n\n private unlockScroll() {\n this.releaseScroll?.();\n this.releaseScroll = null;\n }\n\n private showDialog() {\n const dialog = this.dialog;\n if (!dialog || dialog.open) return;\n dialog.showModal();\n this.lockScroll();\n }\n\n private closeDialog() {\n const dialog = this.dialog;\n this.unlockScroll();\n if (dialog?.open) dialog.close();\n }\n\n /** Fires on Escape. Blocking it is how a non-dismissable modal stays put. */\n private onCancel = (event: Event) => {\n if (!this.dismissable) {\n event.preventDefault();\n return;\n }\n // Let it close; `close` does the state mirroring.\n };\n\n /**\n * Mirrors a close the browser made — Escape, or the dialog being closed by\n * anything other than this element — back into `open`, which then announces\n * it through the watch above.\n */\n private onClose = () => {\n this.unlockScroll();\n if (this.open) this.open = false;\n };\n\n /**\n * A click on the dialog element itself is a click on the overlay: the panel\n * is an inner box, so anything landing on the dialog missed the content.\n */\n private onDialogClick = (event: MouseEvent) => {\n if (!this.dismissable || event.target !== this.dialog) return;\n this.open = false;\n };\n\n private accessibleName() {\n if (this.label) return this.label;\n const text = this.el.textContent?.trim();\n return text ? text.slice(0, 120) : undefined;\n }\n\n render() {\n return (\n <Host>\n <dialog\n part=\"dialog\"\n class=\"dialog\"\n aria-label={this.accessibleName()}\n onCancel={this.onCancel}\n onClose={this.onClose}\n onClick={this.onDialogClick}\n >\n <div class=\"panel\" part=\"panel\">\n {this.showCloseButton && (\n <button\n class=\"close\"\n part=\"close\"\n type=\"button\"\n aria-label=\"Close\"\n onClick={() => this.hide()}\n >\n <svg\n viewBox=\"0 0 16 16\"\n width=\"16\"\n height=\"16\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M4 4l8 8M12 4l-8 8\"\n stroke=\"currentColor\"\n stroke-width=\"1.6\"\n stroke-linecap=\"round\"\n fill=\"none\"\n />\n </svg>\n </button>\n )}\n <slot />\n </div>\n </dialog>\n </Host>\n );\n }\n}\n"],"mappings":"oGAAA,MAAMA,EAAa,IAAM,8tC,MCwCZC,EAAO,M,0FAIsBC,KAAO,MAGtBC,KAAoB,KAOrCC,MAGAC,YAAc,KAGdC,gBAAkB,KAGjBC,aAODC,cAAqC,KAE7C,gBAAAC,GACE,GAAIC,KAAKR,KAAMQ,KAAKC,Y,CAGtB,oBAAAC,GAEEF,KAAKG,c,CAKP,UAAMC,GACJJ,KAAKR,KAAO,I,CAKd,UAAMa,GACJL,KAAKR,KAAO,K,CAad,QAAAc,CAASC,EAAeC,GACtB,GAAID,EAAMP,KAAKC,kBACVD,KAAKS,cACV,GAAIF,IAASC,EAAUR,KAAKH,aAAaa,KAAK,CAAElB,KAAMe,G,CAGxD,UAAYI,GACV,OAAOX,KAAKY,GAAGC,YAAYC,cAAc,WAAa,I,CAGhD,UAAAC,GACN,GAAIf,KAAKF,cAAe,OACxBE,KAAKF,cAAgBkB,G,CAGf,YAAAb,GACNH,KAAKF,kBACLE,KAAKF,cAAgB,I,CAGf,UAAAG,GACN,MAAMU,EAASX,KAAKW,OACpB,IAAKA,GAAUA,EAAOnB,KAAM,OAC5BmB,EAAOM,YACPjB,KAAKe,Y,CAGC,WAAAN,GACN,MAAME,EAASX,KAAKW,OACpBX,KAAKG,eACL,GAAIQ,GAAQnB,KAAMmB,EAAOO,O,CAInBC,SAAYC,IAClB,IAAKpB,KAAKL,YAAa,CACrByB,EAAMC,iBACN,M,GAUIC,QAAU,KAChBtB,KAAKG,eACL,GAAIH,KAAKR,KAAMQ,KAAKR,KAAO,KAAK,EAO1B+B,cAAiBH,IACvB,IAAKpB,KAAKL,aAAeyB,EAAMI,SAAWxB,KAAKW,OAAQ,OACvDX,KAAKR,KAAO,KAAK,EAGX,cAAAiC,GACN,GAAIzB,KAAKN,MAAO,OAAOM,KAAKN,MAC5B,MAAMgC,EAAO1B,KAAKY,GAAGe,aAAaC,OAClC,OAAOF,EAAOA,EAAKG,MAAM,EAAG,KAAOC,S,CAGrC,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,UAAAE,IAAA,2CACEC,KAAK,SACLC,MAAM,SAAQ,aACFpC,KAAKyB,iBACjBN,SAAUnB,KAAKmB,SACfG,QAAStB,KAAKsB,QACde,QAASrC,KAAKuB,eAEdS,EAAA,OAAAE,IAAA,2CAAKE,MAAM,QAAQD,KAAK,SACrBnC,KAAKJ,iBACJoC,EAAA,UAAAE,IAAA,2CACEE,MAAM,QACND,KAAK,QACLG,KAAK,SAAQ,aACF,QACXD,QAAS,IAAMrC,KAAKK,QAEpB2B,EAAA,OAAAE,IAAA,2CACEK,QAAQ,YACRC,MAAM,KACNC,OAAO,KAAI,cACC,OACZC,UAAU,SAEVV,EAAA,QAAAE,IAAA,2CACES,EAAE,qBACFC,OAAO,eAAc,eACR,MAAK,iBACH,QACfC,KAAK,WAKbb,EAAA,QAAAE,IAAA,+C","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as a,a as e,h as t,H as n}from"./p-Bm6UxEit.js";import{r}from"./p-DToIJg5W.js";const s=()=>`:host{background:var(--pf-header-nav-bg);border:1px solid var(--pf-header-nav-border);border-radius:var(--pf-header-nav-radius, var(--radius-md));display:block;width:100%;--pf-nav-item-text:var(--pf-header-nav-text-muted);--pf-nav-item-hover-text:var(--pf-header-nav-text);--pf-nav-item-hover-bg:var(--pf-header-nav-bg-subtle);--pf-nav-item-current-text:var(--pf-header-nav-text);--pf-nav-item-current-bg:var(--pf-header-nav-bg-subtle)}:host([hidden]){display:none}.nav{align-items:center;display:grid;gap:var(--space-3);grid-template-columns:1fr;min-height:var(--pf-header-nav-min-height, 56px);padding:var(--space-3)}@media (min-width: 768px){.nav{grid-template-columns:auto 1fr auto;padding:0 var(--space-4)}}.brand{color:var(--pf-header-nav-text);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);white-space:nowrap}.list{align-items:center;display:flex;gap:var(--space-1);list-style:none;margin:0;overflow-x:auto;padding:0}.list slot{display:contents}.actions{align-items:center;display:inline-flex;gap:var(--space-2)}.brand.empty,.actions.empty{display:none}`;const i=class{constructor(e){a(this,e)}get el(){return e(this)}label="Header navigation";hasBrand=false;hasActions=false;componentWillLoad(){this.sync()}componentDidLoad(){this.sync()}async refresh(){this.sync()}get items(){return Array.from(this.el.querySelectorAll("pf-nav-item")).filter((a=>a.parentElement===this.el))}isCurrent(a){return a.current??a.hasAttribute("current")}sync(){const a=a=>Array.from(this.el.children).some((e=>e.getAttribute("slot")===a));this.hasBrand=a("brand");this.hasActions=a("actions");const e=this.items;const t=r(e.map((a=>({current:this.isCurrent(a)}))));for(const[a,n]of e.entries()){const e=n;e.currentPage=a===t;e.orientation="horizontal"}}render(){return t(n,{key:"2b0c0031fc8225b1b3d87cf91c06a84138840dca"},t("nav",{key:"196a2e3faf81b1b831683ae4e422beedeeef1af6",class:"nav",part:"nav","aria-label":this.label},t("span",{key:"a99fb70cb2763fd865f1d39290632952d1f27fbb",class:{brand:true,empty:!this.hasBrand},part:"brand"},t("slot",{key:"e9d3eb13fd19f1265b3caed47e082331414e47f9",name:"brand",onSlotchange:()=>this.refresh()})),t("ul",{key:"c03966d2083df04e560b2151d89694755276aea2",class:"list",part:"list"},t("slot",{key:"754a8d4910efc0aee658ea4c01e392f2a2f91178",onSlotchange:()=>this.refresh()})),t("span",{key:"bee95bd441bb2bac3ef88ce5ca40ea07989adba4",class:{actions:true,empty:!this.hasActions},part:"actions"},t("slot",{key:"a5a75d6aa8ff4736d32a6ddd9535c34c629ee524",name:"actions",onSlotchange:()=>this.refresh()}))))}};i.style=s();export{i as pf_header_navigation};
|
|
2
|
+
//# sourceMappingURL=p-d7eb6335.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfHeaderNavigationCss","PfHeaderNavigation","label","hasBrand","hasActions","componentWillLoad","this","sync","componentDidLoad","refresh","items","Array","from","el","querySelectorAll","filter","item","parentElement","isCurrent","current","hasAttribute","slotted","name","children","some","child","getAttribute","currentIndex","resolveCurrentNavItem","map","index","entries","node","currentPage","orientation","render","h","Host","key","class","part","brand","empty","onSlotchange","actions"],"sources":["src/components/pf-header-navigation/pf-header-navigation.css?tag=pf-header-navigation&encapsulation=shadow","src/components/pf-header-navigation/pf-header-navigation.tsx"],"sourcesContent":[":host {\n background: var(--pf-header-nav-bg);\n border: 1px solid var(--pf-header-nav-border);\n border-radius: var(--pf-header-nav-radius, var(--radius-md));\n display: block;\n width: 100%;\n\n /*\n * The bridge to the shared item: custom properties inherit through a shadow\n * boundary, so a slotted `pf-nav-item` resolves these inside its own shadow\n * root. It is how one element serves two navigations without\n * `:host-context`, which Firefox does not support.\n */\n --pf-nav-item-text: var(--pf-header-nav-text-muted);\n --pf-nav-item-hover-text: var(--pf-header-nav-text);\n --pf-nav-item-hover-bg: var(--pf-header-nav-bg-subtle);\n --pf-nav-item-current-text: var(--pf-header-nav-text);\n --pf-nav-item-current-bg: var(--pf-header-nav-bg-subtle);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n/* Mobile first: one column, the items wrapping under the brand. */\n.nav {\n align-items: center;\n display: grid;\n gap: var(--space-3);\n grid-template-columns: 1fr;\n min-height: var(--pf-header-nav-min-height, 56px);\n padding: var(--space-3);\n}\n\n@media (--md) {\n .nav {\n grid-template-columns: auto 1fr auto;\n padding: 0 var(--space-4);\n }\n}\n\n.brand {\n color: var(--pf-header-nav-text);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semibold);\n white-space: nowrap;\n}\n\n.list {\n align-items: center;\n display: flex;\n gap: var(--space-1);\n list-style: none;\n margin: 0;\n overflow-x: auto;\n padding: 0;\n}\n\n/*\n * The items have to be flex children of the list, not of a box inside it. The\n * UA stylesheet already gives a slot `display: contents`; this says so out\n * loud.\n */\n.list slot {\n display: contents;\n}\n\n.actions {\n align-items: center;\n display: inline-flex;\n gap: var(--space-2);\n}\n\n/*\n * Both classes rather than a bare `.empty`, so the rule does not depend on\n * sitting below the `display` a box sets on itself: specificity ties break on\n * source order, and `.empty` losing that way is how a bare `pf-metric-card`\n * came to draw all three of its boxes.\n */\n.brand.empty,\n.actions.empty {\n display: none;\n}\n","import { resolveCurrentNavItem } from '@pitchfork-ui/core';\nimport { Component, Element, h, Host, Method, Prop, State } from '@stencil/core';\n\n/**\n * A header navigation over `pf-nav-item` children.\n *\n * The group owns the one thing an item cannot know: which item is the current\n * page. Core's rule decides, so the React `HeaderNavigation` marks the same\n * one, and it is one index — which is what stops a navigation claiming two\n * current pages.\n *\n * The host is **not** a banner. The React component renders a `<header>`,\n * which is the banner landmark at the top level of a page, but an element\n * cannot know whether it is the page's header: a second banner is a defect,\n * not a decoration. So the shadow root renders only the `<nav>` landmark, and\n * a consumer who wants a banner puts this inside their own `<header>`.\n *\n * @slot - the `pf-nav-item` children.\n * @slot brand - a logo or product name, before the items.\n * @slot actions - controls after the items, such as a sign-in button.\n * @part nav - the navigation landmark.\n * @part brand - the brand's box.\n * @part list - the list the items are slotted into.\n * @part actions - the actions' box.\n */\n@Component({\n tag: 'pf-header-navigation',\n styleUrl: 'pf-header-navigation.css',\n shadow: true,\n})\nexport class PfHeaderNavigation {\n @Element() el!: HTMLElement;\n\n /** The navigation's accessible name. */\n @Prop() label = 'Header navigation';\n\n /**\n * Whether anything was slotted into `brand` and `actions`.\n *\n * Asked in JS because a wrapper around a slot cannot be collapsed from CSS\n * — `:not(:has(*))` never matches, since the `<slot>` is itself a child —\n * and these two boxes have to exist when they are used: they are grid\n * items, so an empty one still takes a column and a gap, which would push\n * every item along by one `--space-3` for no visible reason.\n */\n @State() hasBrand = false;\n @State() hasActions = false;\n\n /** The light DOM is readable here, so first paint is already right. */\n componentWillLoad() {\n this.sync();\n }\n\n componentDidLoad() {\n this.sync();\n }\n\n /**\n * Re-reads the items, for a consumer who marked one current through its\n * *property* — which leaves no attribute and fires no `slotchange`.\n */\n @Method()\n async refresh() {\n this.sync();\n }\n\n /** Direct children only: a nested navigation owns its own items. */\n private get items(): HTMLElement[] {\n return Array.from(this.el.querySelectorAll<HTMLElement>('pf-nav-item')).filter(\n (item) => item.parentElement === this.el,\n );\n }\n\n /**\n * The property if the item has upgraded, the attribute if it has not:\n * `componentWillLoad` can run before a child parsed from HTML upgrades.\n */\n private isCurrent(item: HTMLElement) {\n return (item as HTMLElement & { current?: boolean }).current ?? item.hasAttribute('current');\n }\n\n private sync() {\n /*\n * The children are read one by one rather than with a `:scope >`\n * selector, which Stencil's mock DOM does not support at all — it throws\n * from jQuery's selector engine rather than returning nothing.\n */\n const slotted = (name: string) =>\n Array.from(this.el.children).some((child) => child.getAttribute('slot') === name);\n\n this.hasBrand = slotted('brand');\n this.hasActions = slotted('actions');\n\n const items = this.items;\n const currentIndex = resolveCurrentNavItem(\n items.map((item) => ({ current: this.isCurrent(item) })),\n );\n\n for (const [index, item] of items.entries()) {\n const node = item as HTMLElement & { currentPage: boolean; orientation: string };\n node.currentPage = index === currentIndex;\n node.orientation = 'horizontal';\n }\n }\n\n render() {\n return (\n <Host>\n <nav class=\"nav\" part=\"nav\" aria-label={this.label}>\n {/*\n The slots stay in the tree whether or not they hold anything: a\n slot that is not rendered never fires `slotchange`, so content\n added later would stay invisible for good. The box is hidden\n instead.\n */}\n <span class={{ brand: true, empty: !this.hasBrand }} part=\"brand\">\n <slot name=\"brand\" onSlotchange={() => this.refresh()} />\n </span>\n\n <ul class=\"list\" part=\"list\">\n <slot onSlotchange={() => this.refresh()} />\n </ul>\n\n <span class={{ actions: true, empty: !this.hasActions }} part=\"actions\">\n <slot name=\"actions\" onSlotchange={() => this.refresh()} />\n </span>\n </nav>\n </Host>\n );\n }\n}\n"],"mappings":"wFAAA,MAAMA,EAAwB,IAAM,+jC,MC8BvBC,EAAkB,M,iDAIrBC,MAAQ,oBAWPC,SAAW,MACXC,WAAa,MAGtB,iBAAAC,GACEC,KAAKC,M,CAGP,gBAAAC,GACEF,KAAKC,M,CAQP,aAAME,GACJH,KAAKC,M,CAIP,SAAYG,GACV,OAAOC,MAAMC,KAAKN,KAAKO,GAAGC,iBAA8B,gBAAgBC,QACrEC,GAASA,EAAKC,gBAAkBX,KAAKO,I,CAQlC,SAAAK,CAAUF,GAChB,OAAQA,EAA6CG,SAAWH,EAAKI,aAAa,U,CAG5E,IAAAb,GAMN,MAAMc,EAAWC,GACfX,MAAMC,KAAKN,KAAKO,GAAGU,UAAUC,MAAMC,GAAUA,EAAMC,aAAa,UAAYJ,IAE9EhB,KAAKH,SAAWkB,EAAQ,SACxBf,KAAKF,WAAaiB,EAAQ,WAE1B,MAAMX,EAAQJ,KAAKI,MACnB,MAAMiB,EAAeC,EACnBlB,EAAMmB,KAAKb,IAAI,CAAQG,QAASb,KAAKY,UAAUF,QAGjD,IAAK,MAAOc,EAAOd,KAASN,EAAMqB,UAAW,CAC3C,MAAMC,EAAOhB,EACbgB,EAAKC,YAAcH,IAAUH,EAC7BK,EAAKE,YAAc,Y,EAIvB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CAAKC,MAAM,MAAMC,KAAK,MAAK,aAAalC,KAAKJ,OAO3CkC,EAAA,QAAAE,IAAA,2CAAMC,MAAO,CAAEE,MAAO,KAAMC,OAAQpC,KAAKH,UAAYqC,KAAK,SACxDJ,EAAA,QAAAE,IAAA,2CAAMhB,KAAK,QAAQqB,aAAc,IAAMrC,KAAKG,aAG9C2B,EAAA,MAAAE,IAAA,2CAAIC,MAAM,OAAOC,KAAK,QACpBJ,EAAA,QAAAE,IAAA,2CAAMK,aAAc,IAAMrC,KAAKG,aAGjC2B,EAAA,QAAAE,IAAA,2CAAMC,MAAO,CAAEK,QAAS,KAAMF,OAAQpC,KAAKF,YAAcoC,KAAK,WAC5DJ,EAAA,QAAAE,IAAA,2CAAMhB,KAAK,UAAUqB,aAAc,IAAMrC,KAAKG,c","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as a,h as t,H as e}from"./p-Bm6UxEit.js";import{f as i,s,c as r}from"./p-DVK0sUX2.js";const n=()=>`:host{align-items:center;color:var(--pf-rating-text);display:inline-flex;gap:var(--space-2)}:host([hidden]){display:none}.track{display:inline-flex;gap:2px}.star{display:inline-flex;height:var(--pf-rating-size, var(--font-size-lg));position:relative;width:var(--pf-rating-size, var(--font-size-lg))}.icon{font-size:var(--pf-rating-size, var(--font-size-lg));height:1em;width:1em}.base{color:var(--pf-rating-star-empty)}.fill{display:inline-flex;inset:0;overflow:hidden;position:absolute;width:var(--pf-rating-fill, 0%)}.filled{color:var(--pf-rating-star-fill)}.value{color:var(--pf-rating-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}`;const l=class{constructor(t){a(this,t)}value=0;max=5;size=18;showValue=false;label;get count(){const a=Math.round(Number(this.max));return Number.isFinite(a)?Math.max(a,0):0}render(){const a=this.count;const n=r(Number(this.value),a);return t(e,{key:"01f323b4b49ee170a9849e74c14f4d13709b8e52",role:"img","aria-label":this.label??`Rating ${n} out of ${a}`},t("div",{key:"717c1eddcb89120cd107f0f2f57ed1e2d132e763",class:"track",part:"track","aria-hidden":"true"},Array.from({length:a},((a,e)=>t("span",{class:"star",part:"star",style:{"--pf-rating-fill":`${s(n,e)}%`,"--pf-rating-size":`${Number(this.size)}px`}},t("pf-icon",{class:"icon base",name:"star"}),t("span",{class:"fill"},t("pf-icon",{class:"icon filled",name:"star"})))))),this.showValue&&t("span",{key:"9f035bc5082e359f1c91a5a81af152f76d3371bf",class:"value",part:"value"},i(n)))}};l.style=n();export{l as pf_rating_stars};
|
|
2
|
+
//# sourceMappingURL=p-dcaaedeb.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfRatingStarsCss","PfRatingStars","value","max","size","showValue","label","count","asNumber","Math","round","Number","this","isFinite","render","clampRating","h","Host","key","role","class","part","Array","from","length","_","index","style","starFillPercent","name","formatRating"],"sources":["src/components/pf-rating-stars/pf-rating-stars.css?tag=pf-rating-stars&encapsulation=shadow","src/components/pf-rating-stars/pf-rating-stars.tsx"],"sourcesContent":[":host {\n align-items: center;\n color: var(--pf-rating-text);\n display: inline-flex;\n gap: var(--space-2);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.track {\n display: inline-flex;\n gap: 2px;\n}\n\n.star {\n display: inline-flex;\n height: var(--pf-rating-size, var(--font-size-lg));\n position: relative;\n width: var(--pf-rating-size, var(--font-size-lg));\n}\n\n.icon {\n font-size: var(--pf-rating-size, var(--font-size-lg));\n height: 1em;\n width: 1em;\n}\n\n.base {\n color: var(--pf-rating-star-empty);\n}\n\n/*\n * The filled star is the same glyph clipped to the fraction, which is what\n * makes a half star look like half a star rather than a different icon.\n */\n.fill {\n display: inline-flex;\n inset: 0;\n overflow: hidden;\n position: absolute;\n width: var(--pf-rating-fill, 0%);\n}\n\n.filled {\n color: var(--pf-rating-star-fill);\n}\n\n.value {\n color: var(--pf-rating-text-muted);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n}\n","import { clampRating, formatRating, starFillPercent } from '@pitchfork-ui/core';\nimport { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * A row of stars showing a rating, filled to the fraction.\n *\n * One `role=\"img\"` with a name rather than a star-by-star reading: the stars\n * are an image of the rating, and the number is the thing worth announcing.\n * Every star inside is therefore `aria-hidden`.\n *\n * @part track - the row of stars.\n * @part star - one star, filled to its own share of the rating.\n * @part value - the rating written out, when `showValue` is set.\n */\n@Component({\n tag: 'pf-rating-stars',\n styleUrl: 'pf-rating-stars.css',\n shadow: true,\n})\nexport class PfRatingStars {\n /** The rating. Clamped into 0..max, so it cannot overfill the row. */\n @Prop() value = 0;\n\n /** How many stars there are. */\n @Prop() max = 5;\n\n /** Star size in pixels. */\n @Prop() size = 18;\n\n /** Write the rating out beside the stars. */\n @Prop() showValue = false;\n\n /** Overrides the generated name, for a rating that means something else. */\n @Prop() label?: string;\n\n /**\n * Coerced, because the stars are built from it: `Number(max)` of an\n * attribute string works by luck in a loop count and not at all in\n * arithmetic, and a nonsense value would render an empty row rather than\n * throwing.\n */\n private get count(): number {\n const asNumber = Math.round(Number(this.max));\n return Number.isFinite(asNumber) ? Math.max(asNumber, 0) : 0;\n }\n\n render() {\n const max = this.count;\n const value = clampRating(Number(this.value), max);\n\n return (\n <Host role=\"img\" aria-label={this.label ?? `Rating ${value} out of ${max}`}>\n <div class=\"track\" part=\"track\" aria-hidden=\"true\">\n {Array.from({ length: max }, (_, index) => (\n <span\n class=\"star\"\n part=\"star\"\n style={{\n '--pf-rating-fill': `${starFillPercent(value, index)}%`,\n '--pf-rating-size': `${Number(this.size)}px`,\n }}\n >\n <pf-icon class=\"icon base\" name=\"star\"></pf-icon>\n <span class=\"fill\">\n <pf-icon class=\"icon filled\" name=\"star\"></pf-icon>\n </span>\n </span>\n ))}\n </div>\n {this.showValue && (\n <span class=\"value\" part=\"value\">\n {formatRating(value)}\n </span>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"+FAAA,MAAMA,EAAmB,IAAM,gqB,MCmBlBC,EAAa,M,yBAEhBC,MAAQ,EAGRC,IAAM,EAGNC,KAAO,GAGPC,UAAY,MAGZC,MAQR,SAAYC,GACV,MAAMC,EAAWC,KAAKC,MAAMC,OAAOC,KAAKT,MACxC,OAAOQ,OAAOE,SAASL,GAAYC,KAAKN,IAAIK,EAAU,GAAK,C,CAG7D,MAAAM,GACE,MAAMX,EAAMS,KAAKL,MACjB,MAAML,EAAQa,EAAYJ,OAAOC,KAAKV,OAAQC,GAE9C,OACEa,EAACC,EAAI,CAAAC,IAAA,2CAACC,KAAK,MAAK,aAAaP,KAAKN,OAAS,UAAUJ,YAAgBC,KACnEa,EAAA,OAAAE,IAAA,2CAAKE,MAAM,QAAQC,KAAK,QAAO,cAAa,QACzCC,MAAMC,KAAK,CAAEC,OAAQrB,IAAO,CAACsB,EAAGC,IAC/BV,EAAA,QACEI,MAAM,OACNC,KAAK,OACLM,MAAO,CACL,mBAAoB,GAAGC,EAAgB1B,EAAOwB,MAC9C,mBAAoB,GAAGf,OAAOC,KAAKR,YAGrCY,EAAA,WAASI,MAAM,YAAYS,KAAK,SAChCb,EAAA,QAAMI,MAAM,QACVJ,EAAA,WAASI,MAAM,cAAcS,KAAK,cAKzCjB,KAAKP,WACJW,EAAA,QAAAE,IAAA,2CAAME,MAAM,QAAQC,KAAK,SACtBS,EAAa5B,I","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as a,h as e,H as r}from"./p-Bm6UxEit.js";import{m as i,f as d}from"./p-B8ulhYUJ.js";const t=()=>`:host{aspect-ratio:1.586;border:1px solid var(--pf-credit-card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);color:var(--pf-credit-card-text-color);display:flex;flex-direction:column;gap:var(--space-4);max-width:100%;min-height:200px;padding:var(--space-4);position:relative;width:340px}:host([hidden]){display:none}.glare{background:radial-gradient(circle at 20% 20%, var(--pf-credit-card-glare), transparent 40%);border-radius:inherit;inset:0;pointer-events:none;position:absolute}:host([brand='generic']){background:var(--pf-credit-card-generic-gradient)}:host([brand='visa']){background:var(--pf-credit-card-visa-gradient)}:host([brand='mastercard']){background:var(--pf-credit-card-mastercard-gradient)}:host([brand='amex']){background:var(--pf-credit-card-amex-gradient)}.top-row{align-items:center;display:flex;justify-content:space-between;position:relative;z-index:1}.chip{background:var(--pf-credit-card-chip-gradient);border-radius:4px;display:inline-flex;height:28px;width:38px}.brand,.number,.label,.value{color:inherit}.brand{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:0.08em}.number{font-size:clamp(var(--font-size-lg), 2.6vw, var(--font-size-2xl));font-weight:var(--font-weight-semibold);letter-spacing:0.08em;line-height:1.25;margin:0;position:relative;z-index:1}.meta{display:flex;gap:var(--space-4);position:relative;z-index:1}.field{display:flex;flex-direction:column;gap:var(--space-1)}.label{font-size:var(--font-size-2xs);letter-spacing:0.08em;opacity:0.85;text-transform:uppercase}.value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}`;const c=class{constructor(e){a(this,e)}brand="generic";cardNumber="";cardholderName="";expiry="";cvc;masked=true;render(){const a=this.masked?i(this.cardNumber):d(this.cardNumber);return e(r,{key:"2e9328d14c8cd6cd61def20a995c1f819fe44a59"},e("div",{key:"32e108a126843f362e308d906d665c7915af3c5e",class:"glare",part:"glare","aria-hidden":"true"}),e("div",{key:"52ec00756d657c30dc12c341897c200200ce66c7",class:"top-row"},e("span",{key:"33e023c6a52cf8a5fffc20e6e251b93a71d83fd5",class:"chip",part:"chip","aria-hidden":"true"}),e("span",{key:"6b838b1a3219311421a7e954456078f7ad03ad31",class:"brand",part:"brand"},this.brand.toUpperCase())),e("p",{key:"e72eef846f35d8c25c5cf236b75787632a63f984",class:"number",part:"number"},a),e("div",{key:"29f55616ce82112264d43cd6e1d3a7034afa96f7",class:"meta",part:"meta"},e("div",{key:"5bfc7e7d314ba0519633bcd95662ad3cf61fcd05",class:"field"},e("span",{key:"c4202038ed986c83aa5fff4e0db8264f4b4dd44f",class:"label",part:"label"},"Card holder"),e("span",{key:"8945817a864dbc9811a768e24c3d9dfba6befca1",class:"value",part:"value"},this.cardholderName)),e("div",{key:"65ae0ac19f77912769156a246382ae5f45c0776b",class:"field"},e("span",{key:"36b7781bcee6a5f62f1f81c22305545441f077ea",class:"label",part:"label"},"Expires"),e("span",{key:"b433e02c8749a5482b37eefbec420a98b7c53a4d",class:"value",part:"value"},this.expiry)),this.cvc&&e("div",{key:"7f19aabc157aba9999b31c13f65acea7bec0aeaf",class:"field"},e("span",{key:"9d2489d250a8d27cd2ee2f06af10e135b7927036",class:"label",part:"label"},"CVC"),e("span",{key:"85ae31a8929837c3b60840965fe5bb5badb1b96e",class:"value",part:"value"},this.masked?"***":this.cvc))))}};c.style=t();export{c as pf_credit_card};
|
|
2
|
+
//# sourceMappingURL=p-dd0e0d79.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pfCreditCardCss","PfCreditCard","brand","cardNumber","cardholderName","expiry","cvc","masked","render","displayNumber","this","maskCardNumber","formatCardNumber","h","Host","key","class","part","toUpperCase"],"sources":["src/components/pf-credit-card/pf-credit-card.css?tag=pf-credit-card&encapsulation=shadow","src/components/pf-credit-card/pf-credit-card.tsx"],"sourcesContent":["/*\n * The --pf-credit-card-* colours live in theme.css rather than here, so a\n * scoped override (Storybook's CSS-variable controls, a consumer theming one\n * card) still reaches them by inheritance through the shadow boundary.\n */\n:host {\n aspect-ratio: 1.586;\n border: 1px solid var(--pf-credit-card-border);\n border-radius: var(--radius-lg);\n box-shadow: var(--shadow-md);\n color: var(--pf-credit-card-text-color);\n display: flex;\n flex-direction: column;\n gap: var(--space-4);\n max-width: 100%;\n min-height: 200px;\n padding: var(--space-4);\n position: relative;\n width: 340px;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n/*\n * The React library draws this with `.pf-credit-card::before`. Here it is a\n * real element, so its position in the stacking order against the `z-index: 1`\n * content below is explicit rather than resting on how a host pseudo-element\n * participates in the shadow tree.\n */\n.glare {\n background: radial-gradient(circle at 20% 20%, var(--pf-credit-card-glare), transparent 40%);\n border-radius: inherit;\n inset: 0;\n pointer-events: none;\n position: absolute;\n}\n\n:host([brand='generic']) {\n background: var(--pf-credit-card-generic-gradient);\n}\n\n:host([brand='visa']) {\n background: var(--pf-credit-card-visa-gradient);\n}\n\n:host([brand='mastercard']) {\n background: var(--pf-credit-card-mastercard-gradient);\n}\n\n:host([brand='amex']) {\n background: var(--pf-credit-card-amex-gradient);\n}\n\n.top-row {\n align-items: center;\n display: flex;\n justify-content: space-between;\n position: relative;\n z-index: 1;\n}\n\n.chip {\n background: var(--pf-credit-card-chip-gradient);\n border-radius: 4px;\n display: inline-flex;\n height: 28px;\n width: 38px;\n}\n\n.brand,\n.number,\n.label,\n.value {\n color: inherit;\n}\n\n.brand {\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-semibold);\n letter-spacing: 0.08em;\n}\n\n.number {\n font-size: clamp(var(--font-size-lg), 2.6vw, var(--font-size-2xl));\n font-weight: var(--font-weight-semibold);\n letter-spacing: 0.08em;\n line-height: 1.25;\n margin: 0;\n position: relative;\n z-index: 1;\n}\n\n.meta {\n display: flex;\n gap: var(--space-4);\n position: relative;\n z-index: 1;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n}\n\n.label {\n font-size: var(--font-size-2xs);\n letter-spacing: 0.08em;\n opacity: 0.85;\n text-transform: uppercase;\n}\n\n.value {\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n}\n","import { formatCardNumber, maskCardNumber } from '@pitchfork-ui/core';\nimport { Component, h, Host, Prop } from '@stencil/core';\n\nexport type PfCreditCardBrand = 'generic' | 'visa' | 'mastercard' | 'amex';\n\n/**\n * A card-shaped display of payment details. Presentational only — it stores\n * nothing and submits nothing.\n *\n * @part glare - the decorative highlight overlay.\n * @part chip - the decorative chip.\n * @part brand - the brand wordmark.\n * @part number - the grouped card number.\n * @part meta - the row of labelled fields.\n * @part label - each field's caption.\n * @part value - each field's value.\n */\n@Component({\n tag: 'pf-credit-card',\n styleUrl: 'pf-credit-card.css',\n shadow: true,\n})\nexport class PfCreditCard {\n /** Card network. Reflected so the stylesheet can pick the gradient. */\n @Prop({ reflect: true }) brand: PfCreditCardBrand = 'generic';\n\n /** The number to display. Separators in the input are regrouped. */\n @Prop() cardNumber = '';\n\n /** Name on the card. */\n @Prop() cardholderName = '';\n\n /** Expiry, displayed as given. */\n @Prop() expiry = '';\n\n /** Security code. Omit it to leave the field out entirely. */\n @Prop() cvc?: string;\n\n /**\n * Hide all but the last four digits, and the CVC with it. Defaults to true,\n * so the careless case is the safe one. Reflected for the stylesheet.\n */\n @Prop({ reflect: true }) masked = true;\n\n render() {\n // Both layers go through core, so the same number is grouped identically.\n const displayNumber = this.masked\n ? maskCardNumber(this.cardNumber)\n : formatCardNumber(this.cardNumber);\n\n return (\n <Host>\n <div class=\"glare\" part=\"glare\" aria-hidden=\"true\" />\n <div class=\"top-row\">\n <span class=\"chip\" part=\"chip\" aria-hidden=\"true\" />\n <span class=\"brand\" part=\"brand\">\n {this.brand.toUpperCase()}\n </span>\n </div>\n\n <p class=\"number\" part=\"number\">\n {displayNumber}\n </p>\n\n <div class=\"meta\" part=\"meta\">\n <div class=\"field\">\n <span class=\"label\" part=\"label\">\n Card holder\n </span>\n <span class=\"value\" part=\"value\">\n {this.cardholderName}\n </span>\n </div>\n <div class=\"field\">\n <span class=\"label\" part=\"label\">\n Expires\n </span>\n <span class=\"value\" part=\"value\">\n {this.expiry}\n </span>\n </div>\n {this.cvc && (\n <div class=\"field\">\n <span class=\"label\" part=\"label\">\n CVC\n </span>\n <span class=\"value\" part=\"value\">\n {this.masked ? '***' : this.cvc}\n </span>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"6FAAA,MAAMA,EAAkB,IAAM,8mD,MCsBjBC,EAAY,M,yBAEEC,MAA2B,UAG5CC,WAAa,GAGbC,eAAiB,GAGjBC,OAAS,GAGTC,IAMiBC,OAAS,KAElC,MAAAC,GAEE,MAAMC,EAAgBC,KAAKH,OACvBI,EAAeD,KAAKP,YACpBS,EAAiBF,KAAKP,YAE1B,OACEU,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CAAKC,MAAM,QAAQC,KAAK,QAAO,cAAa,SAC5CJ,EAAA,OAAAE,IAAA,2CAAKC,MAAM,WACTH,EAAA,QAAAE,IAAA,2CAAMC,MAAM,OAAOC,KAAK,OAAM,cAAa,SAC3CJ,EAAA,QAAAE,IAAA,2CAAMC,MAAM,QAAQC,KAAK,SACtBP,KAAKR,MAAMgB,gBAIhBL,EAAA,KAAAE,IAAA,2CAAGC,MAAM,SAASC,KAAK,UACpBR,GAGHI,EAAA,OAAAE,IAAA,2CAAKC,MAAM,OAAOC,KAAK,QACrBJ,EAAA,OAAAE,IAAA,2CAAKC,MAAM,SACTH,EAAA,QAAAE,IAAA,2CAAMC,MAAM,QAAQC,KAAK,SAAO,eAGhCJ,EAAA,QAAAE,IAAA,2CAAMC,MAAM,QAAQC,KAAK,SACtBP,KAAKN,iBAGVS,EAAA,OAAAE,IAAA,2CAAKC,MAAM,SACTH,EAAA,QAAAE,IAAA,2CAAMC,MAAM,QAAQC,KAAK,SAAO,WAGhCJ,EAAA,QAAAE,IAAA,2CAAMC,MAAM,QAAQC,KAAK,SACtBP,KAAKL,SAGTK,KAAKJ,KACJO,EAAA,OAAAE,IAAA,2CAAKC,MAAM,SACTH,EAAA,QAAAE,IAAA,2CAAMC,MAAM,QAAQC,KAAK,SAAO,OAGhCJ,EAAA,QAAAE,IAAA,2CAAMC,MAAM,QAAQC,KAAK,SACtBP,KAAKH,OAAS,MAAQG,KAAKJ,O","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as a,h as e,H as r}from"./p-Bm6UxEit.js";const s=()=>`:host{border-bottom:1px solid var(--pf-modal-border);display:block;padding:var(--space-4) var(--space-10) var(--space-4) var(--space-4)}:host([hidden]){display:none}`;const o=class{constructor(e){a(this,e)}render(){return e(r,{key:"d1ad25bd827a394611dec0358cba02bd73bbb104"},e("slot",{key:"4fe7116e3e9413e3b997cfaa92c97c245fc7a0b9"}))}};o.style=s();export{o as pf_modal_header};
|
|
2
|
+
//# sourceMappingURL=p-e882124b.entry.js.map
|