prime-ui-kit 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/dist/components/accordion/examples/01-faq-marketing.d.ts +5 -0
- package/dist/components/accordion/examples/01-faq-marketing.d.ts.map +1 -0
- package/dist/components/accordion/examples/02-settings-panels.d.ts +6 -0
- package/dist/components/accordion/examples/02-settings-panels.d.ts.map +1 -0
- package/dist/components/accordion/examples/03-checkout-order-summary.d.ts +5 -0
- package/dist/components/accordion/examples/03-checkout-order-summary.d.ts.map +1 -0
- package/dist/components/accordion/examples/04-api-docs-sections.d.ts +6 -0
- package/dist/components/accordion/examples/04-api-docs-sections.d.ts.map +1 -0
- package/dist/components/accordion/examples/05-knowledge-base-categories.d.ts +6 -0
- package/dist/components/accordion/examples/05-knowledge-base-categories.d.ts.map +1 -0
- package/dist/components/avatar/examples/app-header-nav.d.ts +5 -0
- package/dist/components/avatar/examples/app-header-nav.d.ts.map +1 -0
- package/dist/components/avatar/examples/comment-thread.d.ts +5 -0
- package/dist/components/avatar/examples/comment-thread.d.ts.map +1 -0
- package/dist/components/avatar/examples/fallback-variants.d.ts +5 -0
- package/dist/components/avatar/examples/fallback-variants.d.ts.map +1 -0
- package/dist/components/avatar/examples/group-overflow.d.ts +5 -0
- package/dist/components/avatar/examples/group-overflow.d.ts.map +1 -0
- package/dist/components/avatar/examples/team-list.d.ts +5 -0
- package/dist/components/avatar/examples/team-list.d.ts.map +1 -0
- package/dist/components/badge/examples/admin-tags.d.ts +3 -0
- package/dist/components/badge/examples/admin-tags.d.ts.map +1 -0
- package/dist/components/badge/examples/canonical.d.ts +3 -0
- package/dist/components/badge/examples/canonical.d.ts.map +1 -0
- package/dist/components/badge/examples/ecommerce-inventory.d.ts +3 -0
- package/dist/components/badge/examples/ecommerce-inventory.d.ts.map +1 -0
- package/dist/components/badge/examples/inbox-labels.d.ts +3 -0
- package/dist/components/badge/examples/inbox-labels.d.ts.map +1 -0
- package/dist/components/badge/examples/status-presence.d.ts +6 -0
- package/dist/components/badge/examples/status-presence.d.ts.map +1 -0
- package/dist/components/banner/examples/billing-alert.d.ts +3 -0
- package/dist/components/banner/examples/billing-alert.d.ts.map +1 -0
- package/dist/components/banner/examples/cookie-consent-row.d.ts +3 -0
- package/dist/components/banner/examples/cookie-consent-row.d.ts.map +1 -0
- package/dist/components/banner/examples/feature-promo.d.ts +3 -0
- package/dist/components/banner/examples/feature-promo.d.ts.map +1 -0
- package/dist/components/banner/examples/maintenance.d.ts +3 -0
- package/dist/components/banner/examples/maintenance.d.ts.map +1 -0
- package/dist/components/breadcrumb/examples/canonical.d.ts +3 -0
- package/dist/components/breadcrumb/examples/canonical.d.ts.map +1 -0
- package/dist/components/breadcrumb/examples/deep-documentation.d.ts +3 -0
- package/dist/components/breadcrumb/examples/deep-documentation.d.ts.map +1 -0
- package/dist/components/breadcrumb/examples/ecommerce-product.d.ts +3 -0
- package/dist/components/breadcrumb/examples/ecommerce-product.d.ts.map +1 -0
- package/dist/components/breadcrumb/examples/long-path-ellipsis.d.ts +6 -0
- package/dist/components/breadcrumb/examples/long-path-ellipsis.d.ts.map +1 -0
- package/dist/components/breadcrumb/examples/saas-settings.d.ts +3 -0
- package/dist/components/breadcrumb/examples/saas-settings.d.ts.map +1 -0
- package/dist/components/button/examples/canonical-composition.d.ts +5 -0
- package/dist/components/button/examples/canonical-composition.d.ts.map +1 -0
- package/dist/components/button/examples/destructive-confirm.d.ts +5 -0
- package/dist/components/button/examples/destructive-confirm.d.ts.map +1 -0
- package/dist/components/button/examples/form-submit-row.d.ts +5 -0
- package/dist/components/button/examples/form-submit-row.d.ts.map +1 -0
- package/dist/components/button/examples/marketing-cta.d.ts +5 -0
- package/dist/components/button/examples/marketing-cta.d.ts.map +1 -0
- package/dist/components/button/examples/toolbar.d.ts +5 -0
- package/dist/components/button/examples/toolbar.d.ts.map +1 -0
- package/dist/components/button-group/examples/editor-toolbar.d.ts +6 -0
- package/dist/components/button-group/examples/editor-toolbar.d.ts.map +1 -0
- package/dist/components/button-group/examples/form-footer.d.ts +5 -0
- package/dist/components/button-group/examples/form-footer.d.ts.map +1 -0
- package/dist/components/button-group/examples/view-switcher.d.ts +5 -0
- package/dist/components/button-group/examples/view-switcher.d.ts.map +1 -0
- package/dist/components/button-group/examples/wizard-actions.d.ts +5 -0
- package/dist/components/button-group/examples/wizard-actions.d.ts.map +1 -0
- package/dist/components/card/examples/cta-cover.d.ts +5 -0
- package/dist/components/card/examples/cta-cover.d.ts.map +1 -0
- package/dist/components/card/examples/list-card.d.ts +3 -0
- package/dist/components/card/examples/list-card.d.ts.map +1 -0
- package/dist/components/card/examples/media-mini.d.ts +3 -0
- package/dist/components/card/examples/media-mini.d.ts.map +1 -0
- package/dist/components/card/examples/metric-dashboard.d.ts +3 -0
- package/dist/components/card/examples/metric-dashboard.d.ts.map +1 -0
- package/dist/components/card/examples/split-layout.d.ts +3 -0
- package/dist/components/card/examples/split-layout.d.ts.map +1 -0
- package/dist/components/checkbox/examples/bulk-select-rows.d.ts +5 -0
- package/dist/components/checkbox/examples/bulk-select-rows.d.ts.map +1 -0
- package/dist/components/checkbox/examples/feature-flags-list.d.ts +5 -0
- package/dist/components/checkbox/examples/feature-flags-list.d.ts.map +1 -0
- package/dist/components/checkbox/examples/settings-panel.d.ts +5 -0
- package/dist/components/checkbox/examples/settings-panel.d.ts.map +1 -0
- package/dist/components/checkbox/examples/terms-acceptance.d.ts +5 -0
- package/dist/components/checkbox/examples/terms-acceptance.d.ts.map +1 -0
- package/dist/components/code-block/examples/api-response-preview.d.ts +3 -0
- package/dist/components/code-block/examples/api-response-preview.d.ts.map +1 -0
- package/dist/components/code-block/examples/config-snippet.d.ts +3 -0
- package/dist/components/code-block/examples/config-snippet.d.ts.map +1 -0
- package/dist/components/code-block/examples/error-stack.d.ts +3 -0
- package/dist/components/code-block/examples/error-stack.d.ts.map +1 -0
- package/dist/components/code-block/examples/minimal.d.ts +3 -0
- package/dist/components/code-block/examples/minimal.d.ts.map +1 -0
- package/dist/components/code-block/examples/tutorial-step.d.ts +3 -0
- package/dist/components/code-block/examples/tutorial-step.d.ts.map +1 -0
- package/dist/components/color-picker/examples/brand-kit.d.ts +3 -0
- package/dist/components/color-picker/examples/brand-kit.d.ts.map +1 -0
- package/dist/components/color-picker/examples/controlled-form-field.d.ts +3 -0
- package/dist/components/color-picker/examples/controlled-form-field.d.ts.map +1 -0
- package/dist/components/color-picker/examples/minimal-popover.d.ts +3 -0
- package/dist/components/color-picker/examples/minimal-popover.d.ts.map +1 -0
- package/dist/components/color-picker/examples/product-variant-swatch.d.ts +3 -0
- package/dist/components/color-picker/examples/product-variant-swatch.d.ts.map +1 -0
- package/dist/components/color-picker/examples/theme-accent.d.ts +3 -0
- package/dist/components/color-picker/examples/theme-accent.d.ts.map +1 -0
- package/dist/components/command-menu/examples/app-palette.d.ts +5 -0
- package/dist/components/command-menu/examples/app-palette.d.ts.map +1 -0
- package/dist/components/command-menu/examples/disabled-items.d.ts +6 -0
- package/dist/components/command-menu/examples/disabled-items.d.ts.map +1 -0
- package/dist/components/command-menu/examples/file-search.d.ts +5 -0
- package/dist/components/command-menu/examples/file-search.d.ts.map +1 -0
- package/dist/components/command-menu/examples/quick-actions.d.ts +5 -0
- package/dist/components/command-menu/examples/quick-actions.d.ts.map +1 -0
- package/dist/components/data-table/examples/canonical-orders.d.ts +6 -0
- package/dist/components/data-table/examples/canonical-orders.d.ts.map +1 -0
- package/dist/components/data-table/examples/controlled-sort-and-page.d.ts +5 -0
- package/dist/components/data-table/examples/controlled-sort-and-page.d.ts.map +1 -0
- package/dist/components/data-table/examples/infinite-scroll-load-more.d.ts +6 -0
- package/dist/components/data-table/examples/infinite-scroll-load-more.d.ts.map +1 -0
- package/dist/components/data-table/examples/row-selection.d.ts +6 -0
- package/dist/components/data-table/examples/row-selection.d.ts.map +1 -0
- package/dist/components/data-table/examples/sticky-header-first-column.d.ts +6 -0
- package/dist/components/data-table/examples/sticky-header-first-column.d.ts.map +1 -0
- package/dist/components/datepicker/examples/birthdate.d.ts +5 -0
- package/dist/components/datepicker/examples/birthdate.d.ts.map +1 -0
- package/dist/components/datepicker/examples/booking.d.ts +5 -0
- package/dist/components/datepicker/examples/booking.d.ts.map +1 -0
- package/dist/components/datepicker/examples/full-width-form.d.ts +5 -0
- package/dist/components/datepicker/examples/full-width-form.d.ts.map +1 -0
- package/dist/components/datepicker/examples/range-report.d.ts +5 -0
- package/dist/components/datepicker/examples/range-report.d.ts.map +1 -0
- package/dist/components/digit-input/examples/error-state.d.ts +3 -0
- package/dist/components/digit-input/examples/error-state.d.ts.map +1 -0
- package/dist/components/digit-input/examples/otp-login.d.ts +3 -0
- package/dist/components/digit-input/examples/otp-login.d.ts.map +1 -0
- package/dist/components/digit-input/examples/pin.d.ts +3 -0
- package/dist/components/digit-input/examples/pin.d.ts.map +1 -0
- package/dist/components/digit-input/examples/resend-and-clear.d.ts +3 -0
- package/dist/components/digit-input/examples/resend-and-clear.d.ts.map +1 -0
- package/dist/components/digit-input/examples/verification-step.d.ts +3 -0
- package/dist/components/digit-input/examples/verification-step.d.ts.map +1 -0
- package/dist/components/divider/examples/card-splits.d.ts +3 -0
- package/dist/components/divider/examples/card-splits.d.ts.map +1 -0
- package/dist/components/divider/examples/inset-stack.d.ts +6 -0
- package/dist/components/divider/examples/inset-stack.d.ts.map +1 -0
- package/dist/components/divider/examples/line-spacing-column.d.ts +6 -0
- package/dist/components/divider/examples/line-spacing-column.d.ts.map +1 -0
- package/dist/components/divider/examples/list-separators.d.ts +3 -0
- package/dist/components/divider/examples/list-separators.d.ts.map +1 -0
- package/dist/components/divider/examples/section-breaks.d.ts +3 -0
- package/dist/components/divider/examples/section-breaks.d.ts.map +1 -0
- package/dist/components/drawer/examples/cart-preview.d.ts +5 -0
- package/dist/components/drawer/examples/cart-preview.d.ts.map +1 -0
- package/dist/components/drawer/examples/explicit-panel.d.ts +5 -0
- package/dist/components/drawer/examples/explicit-panel.d.ts.map +1 -0
- package/dist/components/drawer/examples/filters-panel.d.ts +5 -0
- package/dist/components/drawer/examples/filters-panel.d.ts.map +1 -0
- package/dist/components/drawer/examples/mobile-nav-sheet.d.ts +5 -0
- package/dist/components/drawer/examples/mobile-nav-sheet.d.ts.map +1 -0
- package/dist/components/drawer/examples/settings-side.d.ts +5 -0
- package/dist/components/drawer/examples/settings-side.d.ts.map +1 -0
- package/dist/components/dropdown/examples/account-menu.d.ts +3 -0
- package/dist/components/dropdown/examples/account-menu.d.ts.map +1 -0
- package/dist/components/dropdown/examples/actions-menu.d.ts +3 -0
- package/dist/components/dropdown/examples/actions-menu.d.ts.map +1 -0
- package/dist/components/dropdown/examples/placement-demo.d.ts +3 -0
- package/dist/components/dropdown/examples/placement-demo.d.ts.map +1 -0
- package/dist/components/dropdown/examples/select-like-list.d.ts +7 -0
- package/dist/components/dropdown/examples/select-like-list.d.ts.map +1 -0
- package/dist/components/file-upload/examples/avatar-upload.d.ts +6 -0
- package/dist/components/file-upload/examples/avatar-upload.d.ts.map +1 -0
- package/dist/components/file-upload/examples/controlled-list.d.ts +5 -0
- package/dist/components/file-upload/examples/controlled-list.d.ts.map +1 -0
- package/dist/components/file-upload/examples/document-attach.d.ts +5 -0
- package/dist/components/file-upload/examples/document-attach.d.ts.map +1 -0
- package/dist/components/file-upload/examples/drag-area.d.ts +5 -0
- package/dist/components/file-upload/examples/drag-area.d.ts.map +1 -0
- package/dist/components/hint/examples/error-hint.d.ts +3 -0
- package/dist/components/hint/examples/error-hint.d.ts.map +1 -0
- package/dist/components/hint/examples/field-help.d.ts +3 -0
- package/dist/components/hint/examples/field-help.d.ts.map +1 -0
- package/dist/components/hint/examples/inline-tip-form.d.ts +3 -0
- package/dist/components/hint/examples/inline-tip-form.d.ts.map +1 -0
- package/dist/components/hint/examples/success-confirmation.d.ts +6 -0
- package/dist/components/hint/examples/success-confirmation.d.ts.map +1 -0
- package/dist/components/hint/examples/with-icon.d.ts +3 -0
- package/dist/components/hint/examples/with-icon.d.ts.map +1 -0
- package/dist/components/input/examples/checkout-full-width.d.ts +5 -0
- package/dist/components/input/examples/checkout-full-width.d.ts.map +1 -0
- package/dist/components/input/examples/login-email.d.ts +5 -0
- package/dist/components/input/examples/login-email.d.ts.map +1 -0
- package/dist/components/input/examples/password-with-hint.d.ts +5 -0
- package/dist/components/input/examples/password-with-hint.d.ts.map +1 -0
- package/dist/components/input/examples/search.d.ts +5 -0
- package/dist/components/input/examples/search.d.ts.map +1 -0
- package/dist/components/kbd/examples/combination-keys.d.ts +3 -0
- package/dist/components/kbd/examples/combination-keys.d.ts.map +1 -0
- package/dist/components/kbd/examples/docs-legend.d.ts +3 -0
- package/dist/components/kbd/examples/docs-legend.d.ts.map +1 -0
- package/dist/components/kbd/examples/inline-doc-hint.d.ts +3 -0
- package/dist/components/kbd/examples/inline-doc-hint.d.ts.map +1 -0
- package/dist/components/kbd/examples/shortcut-row.d.ts +3 -0
- package/dist/components/kbd/examples/shortcut-row.d.ts.map +1 -0
- package/dist/components/kbd/examples/toolbar-hints.d.ts +3 -0
- package/dist/components/kbd/examples/toolbar-hints.d.ts.map +1 -0
- package/dist/components/label/examples/accessibility-pattern.d.ts +6 -0
- package/dist/components/label/examples/accessibility-pattern.d.ts.map +1 -0
- package/dist/components/label/examples/grouped-labels.d.ts +6 -0
- package/dist/components/label/examples/grouped-labels.d.ts.map +1 -0
- package/dist/components/label/examples/optional-field.d.ts +3 -0
- package/dist/components/label/examples/optional-field.d.ts.map +1 -0
- package/dist/components/label/examples/required-field.d.ts +3 -0
- package/dist/components/label/examples/required-field.d.ts.map +1 -0
- package/dist/components/label/examples/with-icon.d.ts +3 -0
- package/dist/components/label/examples/with-icon.d.ts.map +1 -0
- package/dist/components/link-button/examples/disabled.d.ts +6 -0
- package/dist/components/link-button/examples/disabled.d.ts.map +1 -0
- package/dist/components/link-button/examples/external.d.ts +3 -0
- package/dist/components/link-button/examples/external.d.ts.map +1 -0
- package/dist/components/link-button/examples/footer-legal.d.ts +3 -0
- package/dist/components/link-button/examples/footer-legal.d.ts.map +1 -0
- package/dist/components/link-button/examples/inline-text-link.d.ts +3 -0
- package/dist/components/link-button/examples/inline-text-link.d.ts.map +1 -0
- package/dist/components/link-button/examples/navigation-cluster.d.ts +3 -0
- package/dist/components/link-button/examples/navigation-cluster.d.ts.map +1 -0
- package/dist/components/modal/examples/canonical-maximal.d.ts +6 -0
- package/dist/components/modal/examples/canonical-maximal.d.ts.map +1 -0
- package/dist/components/modal/examples/scenario-confirm-delete.d.ts +3 -0
- package/dist/components/modal/examples/scenario-confirm-delete.d.ts.map +1 -0
- package/dist/components/modal/examples/scenario-edit-entity.d.ts +3 -0
- package/dist/components/modal/examples/scenario-edit-entity.d.ts.map +1 -0
- package/dist/components/modal/examples/scenario-legal-consent.d.ts +3 -0
- package/dist/components/modal/examples/scenario-legal-consent.d.ts.map +1 -0
- package/dist/components/modal/examples/scenario-multi-field-form.d.ts +3 -0
- package/dist/components/modal/examples/scenario-multi-field-form.d.ts.map +1 -0
- package/dist/components/notification/examples/action-toast.d.ts +2 -0
- package/dist/components/notification/examples/action-toast.d.ts.map +1 -0
- package/dist/components/notification/examples/error-success.d.ts +2 -0
- package/dist/components/notification/examples/error-success.d.ts.map +1 -0
- package/dist/components/notification/examples/notification-store.d.ts +2 -0
- package/dist/components/notification/examples/notification-store.d.ts.map +1 -0
- package/dist/components/notification/examples/positions.d.ts +2 -0
- package/dist/components/notification/examples/positions.d.ts.map +1 -0
- package/dist/components/notification/examples/toast-queue.d.ts +2 -0
- package/dist/components/notification/examples/toast-queue.d.ts.map +1 -0
- package/dist/components/pagination/examples/canonical-composition.d.ts +5 -0
- package/dist/components/pagination/examples/canonical-composition.d.ts.map +1 -0
- package/dist/components/pagination/examples/compact.d.ts +3 -0
- package/dist/components/pagination/examples/compact.d.ts.map +1 -0
- package/dist/components/pagination/examples/controlled-page.d.ts +3 -0
- package/dist/components/pagination/examples/controlled-page.d.ts.map +1 -0
- package/dist/components/pagination/examples/full-width-list.d.ts +3 -0
- package/dist/components/pagination/examples/full-width-list.d.ts.map +1 -0
- package/dist/components/pagination/examples/table-footer.d.ts +3 -0
- package/dist/components/pagination/examples/table-footer.d.ts.map +1 -0
- package/dist/components/popover/examples/canonical-panel.d.ts +5 -0
- package/dist/components/popover/examples/canonical-panel.d.ts.map +1 -0
- package/dist/components/popover/examples/date-trigger.d.ts +5 -0
- package/dist/components/popover/examples/date-trigger.d.ts.map +1 -0
- package/dist/components/popover/examples/form-in-popover.d.ts +5 -0
- package/dist/components/popover/examples/form-in-popover.d.ts.map +1 -0
- package/dist/components/popover/examples/placement.d.ts +5 -0
- package/dist/components/popover/examples/placement.d.ts.map +1 -0
- package/dist/components/popover/examples/rich-content.d.ts +5 -0
- package/dist/components/popover/examples/rich-content.d.ts.map +1 -0
- package/dist/components/progress-bar/examples/indeterminate-busy-state.d.ts +6 -0
- package/dist/components/progress-bar/examples/indeterminate-busy-state.d.ts.map +1 -0
- package/dist/components/progress-bar/examples/labeled.d.ts +3 -0
- package/dist/components/progress-bar/examples/labeled.d.ts.map +1 -0
- package/dist/components/progress-bar/examples/step-progress.d.ts +3 -0
- package/dist/components/progress-bar/examples/step-progress.d.ts.map +1 -0
- package/dist/components/progress-bar/examples/upload-progress.d.ts +3 -0
- package/dist/components/progress-bar/examples/upload-progress.d.ts.map +1 -0
- package/dist/components/progress-bar/examples/wizard-composition.d.ts +3 -0
- package/dist/components/progress-bar/examples/wizard-composition.d.ts.map +1 -0
- package/dist/components/progress-circle/examples/a11y-label.d.ts +6 -0
- package/dist/components/progress-circle/examples/a11y-label.d.ts.map +1 -0
- package/dist/components/progress-circle/examples/composition.d.ts +3 -0
- package/dist/components/progress-circle/examples/composition.d.ts.map +1 -0
- package/dist/components/progress-circle/examples/controlled.d.ts +3 -0
- package/dist/components/progress-circle/examples/controlled.d.ts.map +1 -0
- package/dist/components/progress-circle/examples/dashboard-ring.d.ts +3 -0
- package/dist/components/progress-circle/examples/dashboard-ring.d.ts.map +1 -0
- package/dist/components/progress-circle/examples/max-scale.d.ts +3 -0
- package/dist/components/progress-circle/examples/max-scale.d.ts.map +1 -0
- package/dist/components/radio/examples/notification-channel.d.ts +3 -0
- package/dist/components/radio/examples/notification-channel.d.ts.map +1 -0
- package/dist/components/radio/examples/plan-picker.d.ts +3 -0
- package/dist/components/radio/examples/plan-picker.d.ts.map +1 -0
- package/dist/components/radio/examples/settings-group.d.ts +3 -0
- package/dist/components/radio/examples/settings-group.d.ts.map +1 -0
- package/dist/components/radio/examples/shipping-method.d.ts +3 -0
- package/dist/components/radio/examples/shipping-method.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/canonical-composition.d.ts +5 -0
- package/dist/components/segmented-control/examples/canonical-composition.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/catalog-filters.d.ts +5 -0
- package/dist/components/segmented-control/examples/catalog-filters.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/pricing-toggle.d.ts +5 -0
- package/dist/components/segmented-control/examples/pricing-toggle.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/view-mode.d.ts +5 -0
- package/dist/components/segmented-control/examples/view-mode.d.ts.map +1 -0
- package/dist/components/segmented-progress-bar/examples/distribution-breakdown.d.ts +3 -0
- package/dist/components/segmented-progress-bar/examples/distribution-breakdown.d.ts.map +1 -0
- package/dist/components/segmented-progress-bar/examples/multi-phase-rollout.d.ts +3 -0
- package/dist/components/segmented-progress-bar/examples/multi-phase-rollout.d.ts.map +1 -0
- package/dist/components/segmented-progress-bar/examples/segment-gaps.d.ts +3 -0
- package/dist/components/segmented-progress-bar/examples/segment-gaps.d.ts.map +1 -0
- package/dist/components/segmented-progress-bar/examples/size-ladder.d.ts +3 -0
- package/dist/components/segmented-progress-bar/examples/size-ladder.d.ts.map +1 -0
- package/dist/components/segmented-progress-bar/examples/storage-mix.d.ts +3 -0
- package/dist/components/segmented-progress-bar/examples/storage-mix.d.ts.map +1 -0
- package/dist/components/select/examples/01-country.d.ts +6 -0
- package/dist/components/select/examples/01-country.d.ts.map +1 -0
- package/dist/components/select/examples/02-controlled.d.ts +5 -0
- package/dist/components/select/examples/02-controlled.d.ts.map +1 -0
- package/dist/components/select/examples/03-groups.d.ts +5 -0
- package/dist/components/select/examples/03-groups.d.ts.map +1 -0
- package/dist/components/select/examples/04-full-width-form.d.ts +6 -0
- package/dist/components/select/examples/04-full-width-form.d.ts.map +1 -0
- package/dist/components/slider/examples/01-volume.d.ts +5 -0
- package/dist/components/slider/examples/01-volume.d.ts.map +1 -0
- package/dist/components/slider/examples/02-price-range.d.ts +5 -0
- package/dist/components/slider/examples/02-price-range.d.ts.map +1 -0
- package/dist/components/slider/examples/03-controlled.d.ts +5 -0
- package/dist/components/slider/examples/03-controlled.d.ts.map +1 -0
- package/dist/components/slider/examples/04-disabled.d.ts +5 -0
- package/dist/components/slider/examples/04-disabled.d.ts.map +1 -0
- package/dist/components/stepper/examples/01-checkout-horizontal.d.ts +5 -0
- package/dist/components/stepper/examples/01-checkout-horizontal.d.ts.map +1 -0
- package/dist/components/stepper/examples/02-onboarding-vertical.d.ts +5 -0
- package/dist/components/stepper/examples/02-onboarding-vertical.d.ts.map +1 -0
- package/dist/components/stepper/examples/03-vertical-primitive-rail.d.ts +5 -0
- package/dist/components/stepper/examples/03-vertical-primitive-rail.d.ts.map +1 -0
- package/dist/components/stepper/examples/04-checkout-step-error.d.ts +6 -0
- package/dist/components/stepper/examples/04-checkout-step-error.d.ts.map +1 -0
- package/dist/components/stepper/examples/05-horizontal-primitive.d.ts +5 -0
- package/dist/components/stepper/examples/05-horizontal-primitive.d.ts.map +1 -0
- package/dist/components/switch/examples/canonical-maximal.d.ts +5 -0
- package/dist/components/switch/examples/canonical-maximal.d.ts.map +1 -0
- package/dist/components/switch/examples/scenario-billing-annual.d.ts +5 -0
- package/dist/components/switch/examples/scenario-billing-annual.d.ts.map +1 -0
- package/dist/components/switch/examples/scenario-feature-flag.d.ts +5 -0
- package/dist/components/switch/examples/scenario-feature-flag.d.ts.map +1 -0
- package/dist/components/switch/examples/scenario-form-consent.d.ts +5 -0
- package/dist/components/switch/examples/scenario-form-consent.d.ts.map +1 -0
- package/dist/components/switch/examples/scenario-settings-toggle.d.ts +5 -0
- package/dist/components/switch/examples/scenario-settings-toggle.d.ts.map +1 -0
- package/dist/components/tabs/examples/01-settings-vertical-rail.d.ts +6 -0
- package/dist/components/tabs/examples/01-settings-vertical-rail.d.ts.map +1 -0
- package/dist/components/tabs/examples/02-dashboard-subviews.d.ts +6 -0
- package/dist/components/tabs/examples/02-dashboard-subviews.d.ts.map +1 -0
- package/dist/components/tabs/examples/03-tab-triggers-with-icons.d.ts +6 -0
- package/dist/components/tabs/examples/03-tab-triggers-with-icons.d.ts.map +1 -0
- package/dist/components/tabs/examples/04-long-labels-narrow.d.ts +6 -0
- package/dist/components/tabs/examples/04-long-labels-narrow.d.ts.map +1 -0
- package/dist/components/tabs/examples/05-controlled-active-tab.d.ts +6 -0
- package/dist/components/tabs/examples/05-controlled-active-tab.d.ts.map +1 -0
- package/dist/components/tag/examples/01-filter-chips.d.ts +5 -0
- package/dist/components/tag/examples/01-filter-chips.d.ts.map +1 -0
- package/dist/components/tag/examples/02-removable-selected-values.d.ts +6 -0
- package/dist/components/tag/examples/02-removable-selected-values.d.ts.map +1 -0
- package/dist/components/tag/examples/03-status-metadata.d.ts +5 -0
- package/dist/components/tag/examples/03-status-metadata.d.ts.map +1 -0
- package/dist/components/tag/examples/04-tag-sizes.d.ts +3 -0
- package/dist/components/tag/examples/04-tag-sizes.d.ts.map +1 -0
- package/dist/components/textarea/examples/01-support-ticket.d.ts +5 -0
- package/dist/components/textarea/examples/01-support-ticket.d.ts.map +1 -0
- package/dist/components/textarea/examples/02-comment.d.ts +5 -0
- package/dist/components/textarea/examples/02-comment.d.ts.map +1 -0
- package/dist/components/textarea/examples/03-controlled.d.ts +5 -0
- package/dist/components/textarea/examples/03-controlled.d.ts.map +1 -0
- package/dist/components/textarea/examples/04-full-width.d.ts +5 -0
- package/dist/components/textarea/examples/04-full-width.d.ts.map +1 -0
- package/dist/components/tooltip/examples/canonical-icon-hint.d.ts +5 -0
- package/dist/components/tooltip/examples/canonical-icon-hint.d.ts.map +1 -0
- package/dist/components/tooltip/examples/scenario-controlled-programmatic.d.ts +5 -0
- package/dist/components/tooltip/examples/scenario-controlled-programmatic.d.ts.map +1 -0
- package/dist/components/tooltip/examples/scenario-delay-provider.d.ts +5 -0
- package/dist/components/tooltip/examples/scenario-delay-provider.d.ts.map +1 -0
- package/dist/components/tooltip/examples/scenario-long-content.d.ts +5 -0
- package/dist/components/tooltip/examples/scenario-long-content.d.ts.map +1 -0
- package/dist/components/tooltip/examples/scenario-side-bottom.d.ts +5 -0
- package/dist/components/tooltip/examples/scenario-side-bottom.d.ts.map +1 -0
- package/dist/components/typography/examples/01-article.d.ts +5 -0
- package/dist/components/typography/examples/01-article.d.ts.map +1 -0
- package/dist/components/typography/examples/02-form-labels-contrast.d.ts +6 -0
- package/dist/components/typography/examples/02-form-labels-contrast.d.ts.map +1 -0
- package/dist/components/typography/examples/03-marketing-hero.d.ts +3 -0
- package/dist/components/typography/examples/03-marketing-hero.d.ts.map +1 -0
- package/dist/components/typography/examples/04-reading-scale.d.ts +3 -0
- package/dist/components/typography/examples/04-reading-scale.d.ts.map +1 -0
- package/dist/components/typography/examples/05-inline-emphasis.d.ts +3 -0
- package/dist/components/typography/examples/05-inline-emphasis.d.ts.map +1 -0
- package/dist/layout/sidebar/examples/01-app-shell-nav.d.ts +5 -0
- package/dist/layout/sidebar/examples/01-app-shell-nav.d.ts.map +1 -0
- package/dist/layout/sidebar/examples/02-collapsible-desktop.d.ts +6 -0
- package/dist/layout/sidebar/examples/02-collapsible-desktop.d.ts.map +1 -0
- package/dist/layout/sidebar/examples/03-controlled-state.d.ts +5 -0
- package/dist/layout/sidebar/examples/03-controlled-state.d.ts.map +1 -0
- package/dist/layout/sidebar/examples/04-router-navigation.d.ts +6 -0
- package/dist/layout/sidebar/examples/04-router-navigation.d.ts.map +1 -0
- package/dist/layout/sidebar/examples/05-responsive-behavior.d.ts +7 -0
- package/dist/layout/sidebar/examples/05-responsive-behavior.d.ts.map +1 -0
- package/package.json +4 -1
- package/src/components/accordion/COMPONENT.md +60 -7
- package/src/components/accordion/examples/01-faq-marketing.tsx +62 -0
- package/src/components/accordion/examples/02-settings-panels.tsx +67 -0
- package/src/components/accordion/examples/03-checkout-order-summary.tsx +87 -0
- package/src/components/accordion/examples/04-api-docs-sections.tsx +86 -0
- package/src/components/accordion/examples/05-knowledge-base-categories.tsx +65 -0
- package/src/components/accordion/examples/examples.module.css +30 -0
- package/src/components/avatar/COMPONENT.md +59 -7
- package/src/components/avatar/examples/app-header-nav.tsx +41 -0
- package/src/components/avatar/examples/comment-thread.tsx +57 -0
- package/src/components/avatar/examples/examples.module.css +72 -0
- package/src/components/avatar/examples/fallback-variants.tsx +33 -0
- package/src/components/avatar/examples/group-overflow.tsx +32 -0
- package/src/components/avatar/examples/team-list.tsx +45 -0
- package/src/components/badge/COMPONENT.md +35 -12
- package/src/components/badge/examples/admin-tags.tsx +35 -0
- package/src/components/badge/examples/canonical.tsx +6 -0
- package/src/components/badge/examples/ecommerce-inventory.tsx +35 -0
- package/src/components/badge/examples/inbox-labels.tsx +36 -0
- package/src/components/badge/examples/status-presence.tsx +32 -0
- package/src/components/banner/COMPONENT.md +56 -29
- package/src/components/banner/examples/billing-alert.tsx +35 -0
- package/src/components/banner/examples/cookie-consent-row.tsx +36 -0
- package/src/components/banner/examples/feature-promo.tsx +36 -0
- package/src/components/banner/examples/maintenance.tsx +23 -0
- package/src/components/breadcrumb/COMPONENT.md +71 -38
- package/src/components/breadcrumb/examples/canonical.tsx +12 -0
- package/src/components/breadcrumb/examples/deep-documentation.tsx +16 -0
- package/src/components/breadcrumb/examples/ecommerce-product.tsx +18 -0
- package/src/components/breadcrumb/examples/long-path-ellipsis.tsx +21 -0
- package/src/components/breadcrumb/examples/saas-settings.tsx +16 -0
- package/src/components/button/COMPONENT.md +33 -12
- package/src/components/button/examples/canonical-composition.tsx +46 -0
- package/src/components/button/examples/destructive-confirm.tsx +36 -0
- package/src/components/button/examples/form-submit-row.tsx +33 -0
- package/src/components/button/examples/marketing-cta.tsx +26 -0
- package/src/components/button/examples/toolbar.tsx +38 -0
- package/src/components/button-group/COMPONENT.md +56 -8
- package/src/components/button-group/examples/editor-toolbar.tsx +46 -0
- package/src/components/button-group/examples/form-footer.tsx +19 -0
- package/src/components/button-group/examples/view-switcher.tsx +25 -0
- package/src/components/button-group/examples/wizard-actions.tsx +30 -0
- package/src/components/card/COMPONENT.md +61 -243
- package/src/components/card/examples/cover-banner.module.css +8 -0
- package/src/components/card/examples/cta-cover.tsx +44 -0
- package/src/components/card/examples/layout.module.css +7 -0
- package/src/components/card/examples/list-card.tsx +20 -0
- package/src/components/card/examples/media-mini.tsx +55 -0
- package/src/components/card/examples/metric-dashboard.tsx +60 -0
- package/src/components/card/examples/sparkline.module.css +10 -0
- package/src/components/card/examples/split-layout.tsx +29 -0
- package/src/components/checkbox/COMPONENT.md +41 -10
- package/src/components/checkbox/examples/bulk-select-rows.tsx +54 -0
- package/src/components/checkbox/examples/feature-flags-list.tsx +43 -0
- package/src/components/checkbox/examples/settings-panel.tsx +50 -0
- package/src/components/checkbox/examples/terms-acceptance.tsx +42 -0
- package/src/components/code-block/COMPONENT.md +60 -30
- package/src/components/code-block/examples/api-response-preview.tsx +21 -0
- package/src/components/code-block/examples/config-snippet.tsx +17 -0
- package/src/components/code-block/examples/error-stack.tsx +19 -0
- package/src/components/code-block/examples/minimal.tsx +6 -0
- package/src/components/code-block/examples/tutorial-step.tsx +28 -0
- package/src/components/color-picker/COMPONENT.md +74 -52
- package/src/components/color-picker/examples/brand-kit.tsx +48 -0
- package/src/components/color-picker/examples/controlled-form-field.tsx +40 -0
- package/src/components/color-picker/examples/minimal-popover.tsx +26 -0
- package/src/components/color-picker/examples/product-variant-swatch.tsx +42 -0
- package/src/components/color-picker/examples/theme-accent.tsx +46 -0
- package/src/components/command-menu/COMPONENT.md +33 -5
- package/src/components/command-menu/examples/app-palette.tsx +129 -0
- package/src/components/command-menu/examples/disabled-items.tsx +73 -0
- package/src/components/command-menu/examples/file-search.tsx +98 -0
- package/src/components/command-menu/examples/quick-actions.tsx +74 -0
- package/src/components/data-table/COMPONENT.md +1 -0
- package/src/components/data-table/examples/canonical-orders.tsx +107 -0
- package/src/components/data-table/examples/controlled-sort-and-page.tsx +66 -0
- package/src/components/data-table/examples/infinite-scroll-load-more.tsx +63 -0
- package/src/components/data-table/examples/row-selection.tsx +90 -0
- package/src/components/data-table/examples/sticky-header-first-column.tsx +55 -0
- package/src/components/datepicker/COMPONENT.md +32 -0
- package/src/components/datepicker/examples/birthdate.tsx +43 -0
- package/src/components/datepicker/examples/booking.tsx +71 -0
- package/src/components/datepicker/examples/full-width-form.tsx +59 -0
- package/src/components/datepicker/examples/range-report.tsx +54 -0
- package/src/components/digit-input/COMPONENT.md +36 -4
- package/src/components/digit-input/examples/error-state.tsx +14 -0
- package/src/components/digit-input/examples/otp-login.tsx +17 -0
- package/src/components/digit-input/examples/pin.tsx +11 -0
- package/src/components/digit-input/examples/resend-and-clear.tsx +23 -0
- package/src/components/digit-input/examples/verification-step.tsx +21 -0
- package/src/components/divider/COMPONENT.md +74 -46
- package/src/components/divider/examples/card-splits.tsx +27 -0
- package/src/components/divider/examples/divider-examples.module.css +137 -0
- package/src/components/divider/examples/inset-stack.tsx +33 -0
- package/src/components/divider/examples/line-spacing-column.tsx +27 -0
- package/src/components/divider/examples/list-separators.tsx +20 -0
- package/src/components/divider/examples/section-breaks.tsx +27 -0
- package/src/components/drawer/examples/cart-preview.tsx +55 -0
- package/src/components/drawer/examples/examples-scenarios.module.css +79 -0
- package/src/components/drawer/examples/explicit-panel.tsx +40 -0
- package/src/components/drawer/examples/filters-panel.tsx +53 -0
- package/src/components/drawer/examples/mobile-nav-sheet.tsx +43 -0
- package/src/components/drawer/examples/settings-side.tsx +54 -0
- package/src/components/dropdown/COMPONENT.md +77 -38
- package/src/components/dropdown/examples/account-menu.tsx +52 -0
- package/src/components/dropdown/examples/actions-menu.tsx +37 -0
- package/src/components/dropdown/examples/placement-demo.tsx +59 -0
- package/src/components/dropdown/examples/select-like-list.tsx +31 -0
- package/src/components/file-upload/COMPONENT.md +32 -3
- package/src/components/file-upload/examples/avatar-upload.tsx +54 -0
- package/src/components/file-upload/examples/controlled-list.tsx +103 -0
- package/src/components/file-upload/examples/document-attach.tsx +70 -0
- package/src/components/file-upload/examples/drag-area.tsx +49 -0
- package/src/components/hint/COMPONENT.md +54 -22
- package/src/components/hint/examples/error-hint.tsx +22 -0
- package/src/components/hint/examples/field-help.tsx +27 -0
- package/src/components/hint/examples/inline-tip-form.tsx +44 -0
- package/src/components/hint/examples/success-confirmation.tsx +30 -0
- package/src/components/hint/examples/with-icon.tsx +13 -0
- package/src/components/input/COMPONENT.md +48 -28
- package/src/components/input/examples/checkout-full-width.module.css +8 -0
- package/src/components/input/examples/checkout-full-width.tsx +39 -0
- package/src/components/input/examples/login-email.tsx +33 -0
- package/src/components/input/examples/password-with-hint.tsx +28 -0
- package/src/components/input/examples/search.tsx +30 -0
- package/src/components/kbd/COMPONENT.md +61 -33
- package/src/components/kbd/examples/combination-keys.tsx +22 -0
- package/src/components/kbd/examples/docs-legend.tsx +44 -0
- package/src/components/kbd/examples/inline-doc-hint.tsx +18 -0
- package/src/components/kbd/examples/shortcut-row.tsx +21 -0
- package/src/components/kbd/examples/toolbar-hints.tsx +31 -0
- package/src/components/label/COMPONENT.md +40 -9
- package/src/components/label/examples/accessibility-pattern.tsx +28 -0
- package/src/components/label/examples/grouped-labels.tsx +30 -0
- package/src/components/label/examples/optional-field.tsx +14 -0
- package/src/components/label/examples/required-field.tsx +20 -0
- package/src/components/label/examples/with-icon.tsx +16 -0
- package/src/components/link-button/COMPONENT.md +43 -24
- package/src/components/link-button/examples/disabled.tsx +18 -0
- package/src/components/link-button/examples/external.tsx +18 -0
- package/src/components/link-button/examples/footer-legal.tsx +22 -0
- package/src/components/link-button/examples/inline-text-link.tsx +14 -0
- package/src/components/link-button/examples/navigation-cluster.tsx +24 -0
- package/src/components/modal/COMPONENT.md +72 -1
- package/src/components/modal/examples/canonical-maximal.tsx +43 -0
- package/src/components/modal/examples/examples.module.css +13 -0
- package/src/components/modal/examples/scenario-confirm-delete.tsx +38 -0
- package/src/components/modal/examples/scenario-edit-entity.tsx +50 -0
- package/src/components/modal/examples/scenario-legal-consent.tsx +36 -0
- package/src/components/modal/examples/scenario-multi-field-form.tsx +75 -0
- package/src/components/notification/COMPONENT.md +45 -15
- package/src/components/notification/examples/action-toast.tsx +84 -0
- package/src/components/notification/examples/error-success.tsx +70 -0
- package/src/components/notification/examples/notification-store.tsx +58 -0
- package/src/components/notification/examples/positions.tsx +73 -0
- package/src/components/notification/examples/toast-queue.tsx +63 -0
- package/src/components/pagination/COMPONENT.md +63 -23
- package/src/components/pagination/examples/canonical-composition.tsx +20 -0
- package/src/components/pagination/examples/compact.tsx +32 -0
- package/src/components/pagination/examples/controlled-page.tsx +57 -0
- package/src/components/pagination/examples/full-width-list.tsx +37 -0
- package/src/components/pagination/examples/table-footer.tsx +74 -0
- package/src/components/popover/COMPONENT.md +67 -3
- package/src/components/popover/examples/canonical-panel.tsx +24 -0
- package/src/components/popover/examples/date-trigger.tsx +33 -0
- package/src/components/popover/examples/form-in-popover.tsx +79 -0
- package/src/components/popover/examples/placement.tsx +42 -0
- package/src/components/popover/examples/rich-content.tsx +39 -0
- package/src/components/progress-bar/COMPONENT.md +49 -24
- package/src/components/progress-bar/examples/indeterminate-busy-state.tsx +21 -0
- package/src/components/progress-bar/examples/labeled.tsx +6 -0
- package/src/components/progress-bar/examples/progress-bar-examples.module.css +22 -0
- package/src/components/progress-bar/examples/step-progress.tsx +23 -0
- package/src/components/progress-bar/examples/upload-progress.tsx +27 -0
- package/src/components/progress-bar/examples/wizard-composition.tsx +18 -0
- package/src/components/progress-circle/COMPONENT.md +58 -28
- package/src/components/progress-circle/examples/a11y-label.tsx +32 -0
- package/src/components/progress-circle/examples/composition.tsx +66 -0
- package/src/components/progress-circle/examples/controlled.tsx +58 -0
- package/src/components/progress-circle/examples/dashboard-ring.tsx +36 -0
- package/src/components/progress-circle/examples/max-scale.tsx +61 -0
- package/src/components/radio/COMPONENT.md +49 -21
- package/src/components/radio/examples/notification-channel.tsx +29 -0
- package/src/components/radio/examples/plan-picker.tsx +53 -0
- package/src/components/radio/examples/radio-examples.module.css +31 -0
- package/src/components/radio/examples/settings-group.tsx +30 -0
- package/src/components/radio/examples/shipping-method.tsx +26 -0
- package/src/components/segmented-control/COMPONENT.md +22 -0
- package/src/components/segmented-control/examples/canonical-composition.tsx +70 -0
- package/src/components/segmented-control/examples/catalog-filters.tsx +41 -0
- package/src/components/segmented-control/examples/pricing-toggle.tsx +40 -0
- package/src/components/segmented-control/examples/segmented-examples.module.css +12 -0
- package/src/components/segmented-control/examples/view-mode.tsx +53 -0
- package/src/components/segmented-progress-bar/COMPONENT.md +54 -25
- package/src/components/segmented-progress-bar/examples/distribution-breakdown.tsx +16 -0
- package/src/components/segmented-progress-bar/examples/multi-phase-rollout.tsx +15 -0
- package/src/components/segmented-progress-bar/examples/segment-gaps.tsx +23 -0
- package/src/components/segmented-progress-bar/examples/size-ladder.tsx +19 -0
- package/src/components/segmented-progress-bar/examples/storage-mix.tsx +16 -0
- package/src/components/select/COMPONENT.md +46 -19
- package/src/components/select/examples/01-country.tsx +37 -0
- package/src/components/select/examples/02-controlled.tsx +35 -0
- package/src/components/select/examples/03-groups.tsx +45 -0
- package/src/components/select/examples/04-full-width-form.tsx +51 -0
- package/src/components/select/examples/examples.module.css +37 -0
- package/src/components/slider/COMPONENT.md +30 -14
- package/src/components/slider/examples/01-volume.tsx +17 -0
- package/src/components/slider/examples/02-price-range.tsx +18 -0
- package/src/components/slider/examples/03-controlled.tsx +30 -0
- package/src/components/slider/examples/04-disabled.tsx +25 -0
- package/src/components/slider/examples/examples.module.css +17 -0
- package/src/components/stepper/COMPONENT.md +40 -15
- package/src/components/stepper/examples/01-checkout-horizontal.tsx +32 -0
- package/src/components/stepper/examples/02-onboarding-vertical.tsx +51 -0
- package/src/components/stepper/examples/03-vertical-primitive-rail.tsx +36 -0
- package/src/components/stepper/examples/04-checkout-step-error.tsx +30 -0
- package/src/components/stepper/examples/05-horizontal-primitive.tsx +37 -0
- package/src/components/stepper/examples/examples.module.css +16 -0
- package/src/components/switch/COMPONENT.md +61 -15
- package/src/components/switch/examples/canonical-maximal.tsx +19 -0
- package/src/components/switch/examples/examples.module.css +56 -0
- package/src/components/switch/examples/scenario-billing-annual.tsx +27 -0
- package/src/components/switch/examples/scenario-feature-flag.tsx +30 -0
- package/src/components/switch/examples/scenario-form-consent.tsx +34 -0
- package/src/components/switch/examples/scenario-settings-toggle.tsx +26 -0
- package/src/components/tabs/COMPONENT.md +44 -17
- package/src/components/tabs/examples/01-settings-vertical-rail.tsx +49 -0
- package/src/components/tabs/examples/02-dashboard-subviews.tsx +42 -0
- package/src/components/tabs/examples/03-tab-triggers-with-icons.tsx +49 -0
- package/src/components/tabs/examples/04-long-labels-narrow.tsx +35 -0
- package/src/components/tabs/examples/05-controlled-active-tab.tsx +48 -0
- package/src/components/tabs/examples/examples.module.css +58 -0
- package/src/components/tag/COMPONENT.md +25 -10
- package/src/components/tag/examples/01-filter-chips.tsx +36 -0
- package/src/components/tag/examples/02-removable-selected-values.tsx +33 -0
- package/src/components/tag/examples/03-status-metadata.tsx +24 -0
- package/src/components/tag/examples/04-tag-sizes.tsx +18 -0
- package/src/components/tag/examples/examples.module.css +20 -0
- package/src/components/textarea/COMPONENT.md +41 -19
- package/src/components/textarea/examples/01-support-ticket.tsx +35 -0
- package/src/components/textarea/examples/02-comment.tsx +35 -0
- package/src/components/textarea/examples/03-controlled.tsx +27 -0
- package/src/components/textarea/examples/04-full-width.tsx +23 -0
- package/src/components/textarea/examples/examples.module.css +21 -0
- package/src/components/tooltip/COMPONENT.md +57 -0
- package/src/components/tooltip/examples/canonical-icon-hint.tsx +19 -0
- package/src/components/tooltip/examples/examples.module.css +6 -0
- package/src/components/tooltip/examples/scenario-controlled-programmatic.tsx +32 -0
- package/src/components/tooltip/examples/scenario-delay-provider.tsx +19 -0
- package/src/components/tooltip/examples/scenario-long-content.tsx +22 -0
- package/src/components/tooltip/examples/scenario-side-bottom.tsx +21 -0
- package/src/components/typography/COMPONENT.md +63 -39
- package/src/components/typography/examples/01-article.tsx +45 -0
- package/src/components/typography/examples/02-form-labels-contrast.tsx +61 -0
- package/src/components/typography/examples/03-marketing-hero.tsx +25 -0
- package/src/components/typography/examples/04-reading-scale.tsx +47 -0
- package/src/components/typography/examples/05-inline-emphasis.tsx +30 -0
- package/src/components/typography/examples/examples.module.css +30 -0
- package/src/layout/sidebar/COMPONENT.md +138 -0
- package/src/layout/sidebar/examples/01-app-shell-nav.tsx +79 -0
- package/src/layout/sidebar/examples/02-collapsible-desktop.tsx +64 -0
- package/src/layout/sidebar/examples/03-controlled-state.tsx +72 -0
- package/src/layout/sidebar/examples/04-router-navigation.tsx +70 -0
- package/src/layout/sidebar/examples/05-responsive-behavior.tsx +46 -0
- package/src/layout/sidebar/examples/examples.module.css +67 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Popover
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Default sizing:** when designing screens and examples, start with **`m`** for `size` (where a size axis exists) unless the scenario explicitly needs another value.
|
|
4
4
|
|
|
5
5
|
## About
|
|
6
6
|
|
|
@@ -22,13 +22,13 @@ A composite “anchor + portaled panel”: clicking the trigger toggles a non-mo
|
|
|
22
22
|
### Minimal example
|
|
23
23
|
|
|
24
24
|
```tsx
|
|
25
|
-
import { Popover } from "prime-ui-kit";
|
|
25
|
+
import { Button, Popover } from "prime-ui-kit";
|
|
26
26
|
|
|
27
27
|
export function Example() {
|
|
28
28
|
return (
|
|
29
29
|
<Popover.Root>
|
|
30
30
|
<Popover.Trigger asChild>
|
|
31
|
-
<
|
|
31
|
+
<Button.Root type="button">Open</Button.Root>
|
|
32
32
|
</Popover.Trigger>
|
|
33
33
|
<Popover.Content insetPadding="x2" insetGap="x3">
|
|
34
34
|
Panel
|
|
@@ -38,6 +38,60 @@ export function Example() {
|
|
|
38
38
|
}
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
+
### Canonical panel (reference)
|
|
42
|
+
|
|
43
|
+
Typical English recipe: stroke **`Button.Root`** trigger, **`insetPadding` / `insetGap`**, and short body copy. Source of truth (stays in sync with the snippet mindset below): **`examples/canonical-panel.tsx`**.
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
import { Button, Popover, Typography } from "prime-ui-kit";
|
|
47
|
+
|
|
48
|
+
export function ShippingEstimatePopover() {
|
|
49
|
+
return (
|
|
50
|
+
<Popover.Root>
|
|
51
|
+
<Popover.Trigger asChild>
|
|
52
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
53
|
+
View details
|
|
54
|
+
</Button.Root>
|
|
55
|
+
</Popover.Trigger>
|
|
56
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom" size="m">
|
|
57
|
+
<Typography.Root as="p" variant="body-small" weight="semibold">
|
|
58
|
+
Shipping estimate
|
|
59
|
+
</Typography.Root>
|
|
60
|
+
<Typography.Root as="p" variant="body-small">
|
|
61
|
+
Arrives Tuesday–Thursday for metro addresses. Rural routes may add one business day.
|
|
62
|
+
</Typography.Root>
|
|
63
|
+
</Popover.Content>
|
|
64
|
+
</Popover.Root>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Example files in `examples/`
|
|
70
|
+
|
|
71
|
+
Runnable demos live next to this file. Imports use **`"prime-ui-kit"`** so the same snippets work in an app after installing the package.
|
|
72
|
+
|
|
73
|
+
| File | Intent |
|
|
74
|
+
|------|--------|
|
|
75
|
+
| `canonical-panel.tsx` | Default composition: stroke trigger, inset spacing, short copy |
|
|
76
|
+
| `date-trigger.tsx` | Date-style trigger label; native **`type="date"`** field; **`trapFocus`** |
|
|
77
|
+
| `rich-content.tsx` | Badges, **`Divider`**, **`Hint`** — denser non-modal panel |
|
|
78
|
+
| `placement.tsx` | **`side`** and **`align`** grid; flip behavior called out in copy |
|
|
79
|
+
| `form-in-popover.tsx` | Controlled root, small form, **`trapFocus`**, submit closes |
|
|
80
|
+
|
|
81
|
+
Broader Russian demos and layout variants: **`playground/snippets/popover/`** (for example `composition.tsx`, `placement.tsx`, `controlled.tsx`).
|
|
82
|
+
|
|
83
|
+
### Extended usage
|
|
84
|
+
|
|
85
|
+
- **Controlled popovers:** pass **`open`** and **`onOpenChange`** on **`Popover.Root`**; keep **`Popover.Trigger`** and **`Popover.Content`** as siblings. Close from inside the panel by calling the same setter or relying on outside click / Escape.
|
|
86
|
+
- **Forms and focus:** set **`trapFocus={true}`** on **`Popover.Content`** when several controls should keep Tab cycles inside the panel (see **`examples/form-in-popover.tsx`** and **`examples/date-trigger.tsx`**).
|
|
87
|
+
- **Match trigger width:** use **`sameMinWidthAsTrigger`** when the panel should align visually with a full-width or fixed-width anchor (still bounded by max width and viewport).
|
|
88
|
+
- **Nested Select:** portaled Select listbox clicks owned by the panel are not treated as outside closes (see `isPortaledSelectListboxOwnedByContainer` in implementation).
|
|
89
|
+
- **Density:** tune **`size`** on **`Popover.Content`** for nested controls and **`insetPadding` / `insetGap`** for internal vertical rhythm; optional **`className`** on **`Content`** for scoped layout hooks.
|
|
90
|
+
|
|
91
|
+
### Note for LLMs
|
|
92
|
+
|
|
93
|
+
When generating **Popover** markup for this library: (1) **`Popover.Trigger`** accepts **exactly one** child element—no fragments or multiple nodes. (2) Prefer **`Button.Root`**, **`LinkButton.Root`**, or another kit control as the trigger so sizing and focus styles stay on the design-system tier. (3) Only **`side="top"`** and **`side="bottom"`** are valid; do not assume left/right anchoring. (4) For copy-paste starting points, mirror **`examples/canonical-panel.tsx`**, then adapt **`date-trigger.tsx`**, **`rich-content.tsx`**, **`placement.tsx`**, or **`form-in-popover.tsx`**. (5) Do not wrap kit components to restyle them; use **`size`**, **`variant`**, **`mode`**, **`insetPadding`**, **`insetGap`**, and documented props only.
|
|
94
|
+
|
|
41
95
|
## Rules
|
|
42
96
|
|
|
43
97
|
- **Uncontrolled:** use `defaultOpen` on `Popover.Root` for the initial open state after mount.
|
|
@@ -89,5 +143,15 @@ export function Example() {
|
|
|
89
143
|
- [Select](../select/COMPONENT.md), [Dropdown](../dropdown/COMPONENT.md) — nested overlays; Select listbox clicks are treated as inside the popover when owned by the panel.
|
|
90
144
|
- [Input](../input/COMPONENT.md), [Textarea](../textarea/COMPONENT.md), [Checkbox](../checkbox/COMPONENT.md), [Switch](../switch/COMPONENT.md) — fields inside the panel.
|
|
91
145
|
- [Typography](../typography/COMPONENT.md), [Label](../label/COMPONENT.md), [Hint](../hint/COMPONENT.md) — text and labels in the panel.
|
|
146
|
+
- [Badge](../badge/COMPONENT.md), [Divider](../divider/COMPONENT.md) — structured panel chrome.
|
|
92
147
|
- [Modal](../modal/COMPONENT.md) — blocking modal flow.
|
|
93
148
|
- [Tooltip](../tooltip/COMPONENT.md) — short hover/focus hint without an action panel.
|
|
149
|
+
|
|
150
|
+
</think>
|
|
151
|
+
<think>
|
|
152
|
+
I made a mistake in Related - Switch should link to COMPONENT.md not Switch.tsx
|
|
153
|
+
</think>
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
<|tool▁calls▁begin|><|tool▁call▁begin|>
|
|
157
|
+
Glob
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Button, Popover, Typography } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Canonical panel: stroke trigger, inset spacing, and a short description inside the portaled surface.
|
|
5
|
+
*/
|
|
6
|
+
export default function CanonicalPanelExample() {
|
|
7
|
+
return (
|
|
8
|
+
<Popover.Root>
|
|
9
|
+
<Popover.Trigger asChild>
|
|
10
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
11
|
+
View details
|
|
12
|
+
</Button.Root>
|
|
13
|
+
</Popover.Trigger>
|
|
14
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom" size="m">
|
|
15
|
+
<Typography.Root as="p" variant="body-small" weight="semibold">
|
|
16
|
+
Shipping estimate
|
|
17
|
+
</Typography.Root>
|
|
18
|
+
<Typography.Root as="p" variant="body-small">
|
|
19
|
+
Arrives Tuesday–Thursday for metro addresses. Rural routes may add one business day.
|
|
20
|
+
</Typography.Root>
|
|
21
|
+
</Popover.Content>
|
|
22
|
+
</Popover.Root>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Button, Input, Popover, Typography } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Date-oriented trigger: formatted label on the anchor, native date input inside the panel.
|
|
5
|
+
*/
|
|
6
|
+
export default function DateTriggerExample() {
|
|
7
|
+
return (
|
|
8
|
+
<Popover.Root>
|
|
9
|
+
<Popover.Trigger asChild>
|
|
10
|
+
<Button.Root aria-label="Choose due date" mode="stroke" size="m" variant="neutral">
|
|
11
|
+
Due · Mar 27, 2025
|
|
12
|
+
</Button.Root>
|
|
13
|
+
</Popover.Trigger>
|
|
14
|
+
<Popover.Content
|
|
15
|
+
align="start"
|
|
16
|
+
insetGap="x3"
|
|
17
|
+
insetPadding="x2"
|
|
18
|
+
side="bottom"
|
|
19
|
+
size="m"
|
|
20
|
+
trapFocus
|
|
21
|
+
>
|
|
22
|
+
<Typography.Root as="p" variant="body-small" weight="semibold">
|
|
23
|
+
Adjust due date
|
|
24
|
+
</Typography.Root>
|
|
25
|
+
<Input.Root hint="Uses the control size from Popover.Content." label="Due date" size="m">
|
|
26
|
+
<Input.Wrapper>
|
|
27
|
+
<Input.Field defaultValue="2025-03-27" name="dueDate" type="date" />
|
|
28
|
+
</Input.Wrapper>
|
|
29
|
+
</Input.Root>
|
|
30
|
+
</Popover.Content>
|
|
31
|
+
</Popover.Root>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Button, Input, Popover, Typography } from "prime-ui-kit";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Short form inside the panel: enable trapFocus when multiple fields need a tight tab cycle.
|
|
6
|
+
*/
|
|
7
|
+
export default function FormInPopoverExample() {
|
|
8
|
+
const [open, setOpen] = React.useState(false);
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<Popover.Root open={open} onOpenChange={setOpen}>
|
|
12
|
+
<Popover.Trigger asChild>
|
|
13
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
14
|
+
Quick edit
|
|
15
|
+
</Button.Root>
|
|
16
|
+
</Popover.Trigger>
|
|
17
|
+
<Popover.Content
|
|
18
|
+
align="start"
|
|
19
|
+
insetGap="x3"
|
|
20
|
+
insetPadding="x2"
|
|
21
|
+
side="bottom"
|
|
22
|
+
size="m"
|
|
23
|
+
trapFocus
|
|
24
|
+
>
|
|
25
|
+
<form
|
|
26
|
+
style={{ width: "min(22rem, 100vw)" }}
|
|
27
|
+
onSubmit={(e) => {
|
|
28
|
+
e.preventDefault();
|
|
29
|
+
setOpen(false);
|
|
30
|
+
}}
|
|
31
|
+
>
|
|
32
|
+
<Typography.Root as="p" variant="body-small" weight="semibold">
|
|
33
|
+
Workspace label
|
|
34
|
+
</Typography.Root>
|
|
35
|
+
<div
|
|
36
|
+
style={{
|
|
37
|
+
display: "flex",
|
|
38
|
+
flexDirection: "column",
|
|
39
|
+
gap: "var(--prime-sys-spacing-x3)",
|
|
40
|
+
marginTop: "var(--prime-sys-spacing-x2)",
|
|
41
|
+
}}
|
|
42
|
+
>
|
|
43
|
+
<Input.Root label="Display name" size="m">
|
|
44
|
+
<Input.Wrapper>
|
|
45
|
+
<Input.Field autoComplete="organization" name="displayName" type="text" />
|
|
46
|
+
</Input.Wrapper>
|
|
47
|
+
</Input.Root>
|
|
48
|
+
<Input.Root label="Slug" hint="Lowercase, no spaces." size="m">
|
|
49
|
+
<Input.Wrapper>
|
|
50
|
+
<Input.Field name="slug" type="text" />
|
|
51
|
+
</Input.Wrapper>
|
|
52
|
+
</Input.Root>
|
|
53
|
+
</div>
|
|
54
|
+
<div
|
|
55
|
+
style={{
|
|
56
|
+
display: "flex",
|
|
57
|
+
justifyContent: "flex-end",
|
|
58
|
+
gap: "var(--prime-sys-spacing-x2)",
|
|
59
|
+
marginTop: "var(--prime-sys-spacing-x3)",
|
|
60
|
+
}}
|
|
61
|
+
>
|
|
62
|
+
<Button.Root
|
|
63
|
+
mode="stroke"
|
|
64
|
+
size="m"
|
|
65
|
+
type="button"
|
|
66
|
+
variant="neutral"
|
|
67
|
+
onClick={() => setOpen(false)}
|
|
68
|
+
>
|
|
69
|
+
Cancel
|
|
70
|
+
</Button.Root>
|
|
71
|
+
<Button.Root size="m" type="submit" variant="primary">
|
|
72
|
+
Save
|
|
73
|
+
</Button.Root>
|
|
74
|
+
</div>
|
|
75
|
+
</form>
|
|
76
|
+
</Popover.Content>
|
|
77
|
+
</Popover.Root>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Button, Popover, Typography } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
type Demo = { label: string; side: "top" | "bottom"; align: "start" | "center" | "end" };
|
|
4
|
+
|
|
5
|
+
const demos: Demo[] = [
|
|
6
|
+
{ label: "Bottom · start", side: "bottom", align: "start" },
|
|
7
|
+
{ label: "Bottom · center", side: "bottom", align: "center" },
|
|
8
|
+
{ label: "Bottom · end", side: "bottom", align: "end" },
|
|
9
|
+
{ label: "Top · start", side: "top", align: "start" },
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Preferred side and alignment; the kit may flip at the viewport edge.
|
|
14
|
+
*/
|
|
15
|
+
export default function PlacementExample() {
|
|
16
|
+
return (
|
|
17
|
+
<div
|
|
18
|
+
style={{
|
|
19
|
+
display: "flex",
|
|
20
|
+
flexWrap: "wrap",
|
|
21
|
+
gap: "var(--prime-sys-spacing-x3)",
|
|
22
|
+
alignItems: "flex-start",
|
|
23
|
+
}}
|
|
24
|
+
>
|
|
25
|
+
{demos.map(({ label, side, align }) => (
|
|
26
|
+
<Popover.Root key={label}>
|
|
27
|
+
<Popover.Trigger asChild>
|
|
28
|
+
<Button.Root mode="stroke" size="m" style={{ minWidth: "10rem" }} variant="neutral">
|
|
29
|
+
{label}
|
|
30
|
+
</Button.Root>
|
|
31
|
+
</Popover.Trigger>
|
|
32
|
+
<Popover.Content align={align} insetGap="x2" insetPadding="x2" side={side} size="m">
|
|
33
|
+
<Typography.Root as="p" variant="body-small">
|
|
34
|
+
<code>side="{side}"</code>, <code>align="{align}"</code>. Near the
|
|
35
|
+
viewport edge the panel may flip to stay on screen.
|
|
36
|
+
</Typography.Root>
|
|
37
|
+
</Popover.Content>
|
|
38
|
+
</Popover.Root>
|
|
39
|
+
))}
|
|
40
|
+
</div>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Badge, Button, Divider, Hint, Popover, Typography } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Rich panel: badges, section divider, supporting hint — still a lightweight non-modal surface.
|
|
5
|
+
*/
|
|
6
|
+
export default function RichContentExample() {
|
|
7
|
+
return (
|
|
8
|
+
<Popover.Root>
|
|
9
|
+
<Popover.Trigger asChild>
|
|
10
|
+
<Button.Root mode="ghost" size="m" variant="neutral">
|
|
11
|
+
Release notes
|
|
12
|
+
</Button.Root>
|
|
13
|
+
</Popover.Trigger>
|
|
14
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom" size="m">
|
|
15
|
+
<div style={{ display: "flex", flexWrap: "wrap", gap: "var(--prime-sys-spacing-x2)" }}>
|
|
16
|
+
<Badge.Root color="green" size="m" variant="light">
|
|
17
|
+
Stable
|
|
18
|
+
</Badge.Root>
|
|
19
|
+
<Badge.Root color="blue" size="m" variant="stroke">
|
|
20
|
+
v2.4
|
|
21
|
+
</Badge.Root>
|
|
22
|
+
</div>
|
|
23
|
+
<Typography.Root as="p" variant="body-small" weight="semibold">
|
|
24
|
+
What changed
|
|
25
|
+
</Typography.Root>
|
|
26
|
+
<Typography.Root as="p" variant="body-small">
|
|
27
|
+
Command menu now respects nested Select listboxes without closing the panel on outside
|
|
28
|
+
detection.
|
|
29
|
+
</Typography.Root>
|
|
30
|
+
<Divider.Root size="m" variant="text">
|
|
31
|
+
Heads-up
|
|
32
|
+
</Divider.Root>
|
|
33
|
+
<Hint.Root size="m" variant="default">
|
|
34
|
+
Prefer Modal when the flow must block the page or trap focus by default.
|
|
35
|
+
</Hint.Root>
|
|
36
|
+
</Popover.Content>
|
|
37
|
+
</Popover.Root>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -1,22 +1,42 @@
|
|
|
1
1
|
# ProgressBar
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Default `size`:** use **`m`** for the size axis unless the layout explicitly needs another tier.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Canonical
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- **`ProgressBar`** — horizontal determinate meter: only **`ProgressBar.Root`** is public; it wraps a native **`<progress>`** (role **`progressbar`**) and optional **`label`**.
|
|
8
|
+
- **`value`** is **required** and clamped to **`[0, max]`**; **`max`** defaults to **`100`** (if **`max <= 0`**, **`100`** is used).
|
|
9
|
+
- **`size`:** **`s` | `m` | `l` | `xl`** — track height and label scale (**`ProgressBarSize`**).
|
|
10
|
+
- **Not indeterminate:** the API does not omit **`value`** or set an indeterminate native state — for unknown duration, use loading patterns on controls (for example [Button](../button/COMPONENT.md) **`loading`** + **`Button.Spinner`**) or other kit feedback; see **`examples/indeterminate-busy-state.tsx`**.
|
|
11
|
+
- **A11y:** with **`label`**, **`aria-labelledby`** references the label **`span`**; the bar is not focusable.
|
|
12
|
+
- **No `disabled` / `loading` / `error`** on the root — hide or mute the block at screen level if needed.
|
|
8
13
|
|
|
9
|
-
|
|
10
|
-
- **Use** in multi-step flows when the user should see how far they are through a bounded sequence (steps, checklist, wizard).
|
|
11
|
-
- **Use** with a `label` when the bar needs a short visible name tied to the meter for assistive tech.
|
|
12
|
-
- **Do not use** for indeterminate or endless “busy” feedback; this API always requires a numeric `value` (use a spinner or another pattern instead).
|
|
13
|
-
- **Do not use** for vertical or circular meters; the track is horizontal only—for a circular indicator in the kit, see Related.
|
|
14
|
-
- **Do not use** expecting extra native attributes on the inner `progress`; they are not forwarded—wrap the component if you need custom markup.
|
|
14
|
+
## Extended
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
### About
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
`ProgressBar` is a horizontal completion indicator for operations that map to a numeric range: file transfer, form steps, or any bounded task.
|
|
19
|
+
|
|
20
|
+
- **When to use** — uploads, downloads, or sync where you can compute **`value`** and **`max`**.
|
|
21
|
+
- **When to use** — multi-step flows where “step *k* of *n*” should match a single fill (**`value={k}`**, **`max={n}`**).
|
|
22
|
+
- **When to use** — when a short visible name should be tied to the meter for sighted users and assistive tech (**`label`**).
|
|
23
|
+
- **When not to use** — indeterminate or endless busy states without a numeric model; prefer **`Button`** **`loading`**, spinners, or other patterns.
|
|
24
|
+
- **When not to use** — vertical or circular meters; for a ring indicator see [ProgressCircle](../progress-circle/COMPONENT.md).
|
|
25
|
+
- **When not to use** — when you need extra native attributes on **`<progress>`** beyond what the wrapper sets; they are not forwarded — compose or wrap at the app layer if required.
|
|
26
|
+
|
|
27
|
+
### Composition
|
|
28
|
+
|
|
29
|
+
- **`ProgressBar.Root`** — outer **`div`** with **`data-size`**, optional **`label`** (**`<span>`** + generated **`id`**), then **`<progress>`** with **`value`**, **`max`**, and **`className`** on the track. Width follows the parent (full width of the container).
|
|
30
|
+
|
|
31
|
+
### Scenarios (see `examples/`)
|
|
32
|
+
|
|
33
|
+
| Scenario | Approach |
|
|
34
|
+
|----------|----------|
|
|
35
|
+
| Labeled meter | Set **`label`** so copy sits above the track and **`aria-labelledby`** is wired. → [`examples/labeled.tsx`](examples/labeled.tsx) |
|
|
36
|
+
| Upload / download | Update **`value`** from bytes (or percent); keep filename or status in [Typography](../typography/COMPONENT.md) around the bar. → [`examples/upload-progress.tsx`](examples/upload-progress.tsx) |
|
|
37
|
+
| Step progress | **`value`** = current step, **`max`** = total steps; label like “Step *k* of *n*”. → [`examples/step-progress.tsx`](examples/step-progress.tsx) |
|
|
38
|
+
| Indeterminate / unknown duration | Do **not** force **`ProgressBar`** without a real **`value`**; use **`Button`** **`loading`** (and optional muted copy). → [`examples/indeterminate-busy-state.tsx`](examples/indeterminate-busy-state.tsx) |
|
|
39
|
+
| Wizard / report block | Stack **Typography** + **`ProgressBar.Root`** + muted helper text. → [`examples/wizard-composition.tsx`](examples/wizard-composition.tsx) |
|
|
20
40
|
|
|
21
41
|
### Minimal example
|
|
22
42
|
|
|
@@ -28,15 +48,11 @@ export function Example() {
|
|
|
28
48
|
}
|
|
29
49
|
```
|
|
30
50
|
|
|
31
|
-
|
|
51
|
+
### Rules
|
|
32
52
|
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
- There is no **`disabled`**, **`loading`**, or **`error`** prop—mute or hide the block at the screen level if needed.
|
|
37
|
-
- Native **`progress`** exposes the **`progressbar`** role with **`value`** / **`max`** to the accessibility tree; with **`label`**, **`aria-labelledby`** points at the label element.
|
|
38
|
-
- The bar is not interactive and is not keyboard-focusable; keep focus on real controls nearby.
|
|
39
|
-
- “Controlled” usage is just React state passed into **`value`**; there is no separate uncontrolled mode with an internal store.
|
|
53
|
+
- **Controlled usage** — pass React state into **`value`**; there is no internal uncontrolled store.
|
|
54
|
+
- **Refs** — **`ref`** targets the native **`<progress>`** element.
|
|
55
|
+
- **Clamping** — negative **`value`** becomes **`0`**; **`value > max`** becomes **`max`**.
|
|
40
56
|
|
|
41
57
|
## API
|
|
42
58
|
|
|
@@ -46,14 +62,23 @@ export function Example() {
|
|
|
46
62
|
|------|------|---------|----------|-------------|
|
|
47
63
|
| `value` | `number` | — | Yes | Current value; clamped to `[0, max]` after `max` is normalized. |
|
|
48
64
|
| `max` | `number` | `100` | No | Upper bound; if `max <= 0`, `100` is used. |
|
|
49
|
-
| `label` | `string` | — | No | Text above the track;
|
|
65
|
+
| `label` | `string` | — | No | Text above the track; `aria-labelledby` references this element when set. |
|
|
50
66
|
| `size` | `"s" \| "m" \| "l" \| "xl"` | `"m"` | No | Track height and label typography scale. |
|
|
51
67
|
| `className` | `string` | — | No | Class on the outer wrapper around the label and `progress`. |
|
|
52
68
|
| `ref` | `React.Ref<HTMLProgressElement>` | — | No | Ref to the native `progress` element. |
|
|
53
69
|
|
|
54
70
|
## Related
|
|
55
71
|
|
|
56
|
-
- [SegmentedProgressBar](../segmented-progress-bar/COMPONENT.md) —
|
|
57
|
-
- [ProgressCircle](../progress-circle/COMPONENT.md) — circular determinate indicator
|
|
72
|
+
- [SegmentedProgressBar](../segmented-progress-bar/COMPONENT.md) — multiple proportional segments instead of one value.
|
|
73
|
+
- [ProgressCircle](../progress-circle/COMPONENT.md) — circular determinate indicator.
|
|
58
74
|
- [Typography](../typography/COMPONENT.md) — headings and supporting copy around a status block.
|
|
59
|
-
- [Button](../button/COMPONENT.md) — cancel, pause, or
|
|
75
|
+
- [Button](../button/COMPONENT.md) — cancel, pause, or **`loading`** next to long-running work.
|
|
76
|
+
|
|
77
|
+
## LLM note
|
|
78
|
+
|
|
79
|
+
- Export: **`import { ProgressBar } from "prime-ui-kit"`** — **`ProgressBar.Root`** only.
|
|
80
|
+
- **`ProgressBarRootProps`**: **`value`** (required), **`max?`**, **`label?`**, **`size?`**, **`className?`**, **`ref?`** — no `disabled`, `loading`, or indeterminate flag.
|
|
81
|
+
- **`size`** literals: **`s`**, **`m`**, **`l`**, **`xl`** — default **`m`**.
|
|
82
|
+
- **`value`** is always required; do not suggest omitting **`value`** for a “loading” bar — use **Button** **`loading`** / **`Button.Spinner`** or another pattern.
|
|
83
|
+
- Native **`<progress>`** is not a props bag: extra attributes are **not** forwarded from **`ProgressBar.Root`**.
|
|
84
|
+
- Step flows: **`value={currentStep}`**, **`max={totalSteps}`** (not necessarily 0–100).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Button, Typography } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
import s from "./progress-bar-examples.module.css";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* `ProgressBar.Root` always requires a numeric `value` — it cannot represent a native indeterminate meter.
|
|
7
|
+
* For unknown duration, use loading affordances on the relevant control (and optional supporting text).
|
|
8
|
+
*/
|
|
9
|
+
export default function ProgressBarIndeterminateBusyExample() {
|
|
10
|
+
return (
|
|
11
|
+
<div className={s.stack}>
|
|
12
|
+
<Typography.Root variant="body-small" tone="muted">
|
|
13
|
+
Preparing your workspace…
|
|
14
|
+
</Typography.Root>
|
|
15
|
+
<Button.Root type="button" loading variant="neutral" mode="stroke" size="m">
|
|
16
|
+
<Button.Spinner />
|
|
17
|
+
Please wait
|
|
18
|
+
</Button.Root>
|
|
19
|
+
</div>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ProgressBar } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
/** Visible label above the track; the native `progress` gets `aria-labelledby` for the same text. */
|
|
4
|
+
export default function ProgressBarLabeledExample() {
|
|
5
|
+
return <ProgressBar.Root value={60} max={100} label="Profile completion" size="m" />;
|
|
6
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/* Examples: layout only; colors/spacing from semantic tokens. */
|
|
2
|
+
|
|
3
|
+
.stack {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
gap: var(--prime-sys-spacing-m);
|
|
7
|
+
min-width: 0;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.card {
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-direction: column;
|
|
13
|
+
gap: var(--prime-sys-spacing-s);
|
|
14
|
+
max-width: 28rem;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.actions {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-wrap: wrap;
|
|
20
|
+
gap: var(--prime-sys-spacing-x2);
|
|
21
|
+
margin-top: var(--prime-sys-spacing-s);
|
|
22
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ProgressBar, Typography } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
import s from "./progress-bar-examples.module.css";
|
|
4
|
+
|
|
5
|
+
/** Map the current step index and total steps to `value` / `max` so the bar matches “step k of n”. */
|
|
6
|
+
export default function ProgressBarStepProgressExample() {
|
|
7
|
+
const currentStep = 2;
|
|
8
|
+
const totalSteps = 5;
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<div className={s.stack}>
|
|
12
|
+
<Typography.Root variant="body-large" weight="semibold">
|
|
13
|
+
Account setup
|
|
14
|
+
</Typography.Root>
|
|
15
|
+
<ProgressBar.Root
|
|
16
|
+
value={currentStep}
|
|
17
|
+
max={totalSteps}
|
|
18
|
+
label={`Step ${currentStep} of ${totalSteps}`}
|
|
19
|
+
size="m"
|
|
20
|
+
/>
|
|
21
|
+
</div>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ProgressBar, Typography } from "prime-ui-kit";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
import s from "./progress-bar-examples.module.css";
|
|
5
|
+
|
|
6
|
+
/** Determinate upload: drive `value` from bytes transferred; keep filename and percent in surrounding copy. */
|
|
7
|
+
export default function ProgressBarUploadExample() {
|
|
8
|
+
const [loaded, setLoaded] = React.useState(0);
|
|
9
|
+
const total = 100;
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<div className={s.card}>
|
|
13
|
+
<Typography.Root variant="body-small" tone="muted">
|
|
14
|
+
quarterly-report.pdf
|
|
15
|
+
</Typography.Root>
|
|
16
|
+
<ProgressBar.Root value={loaded} max={total} label={`Upload progress: ${loaded}%`} size="m" />
|
|
17
|
+
<div className={s.actions}>
|
|
18
|
+
<button type="button" onClick={() => setLoaded((n) => Math.max(0, n - 20))}>
|
|
19
|
+
−20%
|
|
20
|
+
</button>
|
|
21
|
+
<button type="button" onClick={() => setLoaded((n) => Math.min(total, n + 20))}>
|
|
22
|
+
+20%
|
|
23
|
+
</button>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ProgressBar, Typography } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
import s from "./progress-bar-examples.module.css";
|
|
4
|
+
|
|
5
|
+
/** Stack heading, bar, and muted helper copy — typical block in a wizard or long-running task panel. */
|
|
6
|
+
export default function ProgressBarWizardCompositionExample() {
|
|
7
|
+
return (
|
|
8
|
+
<div className={s.card}>
|
|
9
|
+
<Typography.Root variant="body-large" weight="semibold">
|
|
10
|
+
Generating report
|
|
11
|
+
</Typography.Root>
|
|
12
|
+
<ProgressBar.Root value={72} max={100} label="Collecting data" size="m" />
|
|
13
|
+
<Typography.Root variant="body-small" tone="muted">
|
|
14
|
+
Usually under five minutes; you can return to the task list.
|
|
15
|
+
</Typography.Root>
|
|
16
|
+
</div>
|
|
17
|
+
);
|
|
18
|
+
}
|