prime-ui-kit 0.2.5 → 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 +165 -35
- package/dist/components/accordion/Accordion.d.ts +70 -0
- package/dist/components/accordion/Accordion.d.ts.map +1 -0
- 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/Avatar.d.ts +58 -0
- package/dist/components/avatar/Avatar.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/Badge.d.ts +51 -0
- package/dist/components/badge/Badge.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/Banner.d.ts +78 -0
- package/dist/components/banner/Banner.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/Breadcrumb.d.ts +47 -0
- package/dist/components/breadcrumb/Breadcrumb.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/Button.d.ts +57 -0
- package/dist/components/button/Button.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/ButtonGroup.d.ts +34 -0
- package/dist/components/button-group/ButtonGroup.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/Card.d.ts +234 -0
- package/dist/components/card/Card.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/Checkbox.d.ts +42 -0
- package/dist/components/checkbox/Checkbox.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/CodeBlock.d.ts +17 -0
- package/dist/components/code-block/CodeBlock.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/ColorPicker.d.ts +76 -0
- package/dist/components/color-picker/ColorPicker.d.ts.map +1 -0
- package/dist/components/color-picker/ColorPickerRac.d.ts +76 -0
- package/dist/components/color-picker/ColorPickerRac.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/CommandMenu.d.ts +74 -0
- package/dist/components/command-menu/CommandMenu.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/DataTable.d.ts +78 -0
- package/dist/components/data-table/DataTable.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/Datepicker.d.ts +104 -0
- package/dist/components/datepicker/Datepicker.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/DigitInput.d.ts +21 -0
- package/dist/components/digit-input/DigitInput.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/Divider.d.ts +26 -0
- package/dist/components/divider/Divider.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/Drawer.d.ts +71 -0
- package/dist/components/drawer/Drawer.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/Dropdown.d.ts +147 -0
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -0
- package/dist/components/dropdown/dropdownGeometry.d.ts +10 -0
- package/dist/components/dropdown/dropdownGeometry.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/dropdown/menuKeyboard.d.ts +4 -0
- package/dist/components/dropdown/menuKeyboard.d.ts.map +1 -0
- package/dist/components/dropdown/useDropdownPosition.d.ts +18 -0
- package/dist/components/dropdown/useDropdownPosition.d.ts.map +1 -0
- package/dist/components/example-frame/ExampleFrame.d.ts +53 -0
- package/dist/components/example-frame/ExampleFrame.d.ts.map +1 -0
- package/dist/components/file-upload/FileUpload.d.ts +176 -0
- package/dist/components/file-upload/FileUpload.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/Hint.d.ts +27 -0
- package/dist/components/hint/Hint.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/index.css +6101 -5759
- package/dist/components/index.css.map +4 -4
- package/dist/components/index.d.ts +95 -2679
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +8510 -7659
- package/dist/components/index.js.map +4 -4
- package/dist/components/input/Input.d.ts +73 -0
- package/dist/components/input/Input.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/Kbd.d.ts +15 -0
- package/dist/components/kbd/Kbd.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/Label.d.ts +29 -0
- package/dist/components/label/Label.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/LinkButton.d.ts +18 -0
- package/dist/components/link-button/LinkButton.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/Modal.d.ts +58 -0
- package/dist/components/modal/Modal.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/Notification.d.ts +42 -0
- package/dist/components/notification/Notification.d.ts.map +1 -0
- package/dist/components/notification/NotificationStore.d.ts +18 -0
- package/dist/components/notification/NotificationStore.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/page-content/PageContent.d.ts +51 -0
- package/dist/components/page-content/PageContent.d.ts.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +19 -0
- package/dist/components/pagination/Pagination.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/Popover.d.ts +48 -0
- package/dist/components/popover/Popover.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/popover/popoverGeometry.d.ts +6 -0
- package/dist/components/popover/popoverGeometry.d.ts.map +1 -0
- package/dist/components/popover/usePopoverPosition.d.ts +18 -0
- package/dist/components/popover/usePopoverPosition.d.ts.map +1 -0
- package/dist/components/progress-bar/ProgressBar.d.ts +14 -0
- package/dist/components/progress-bar/ProgressBar.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/ProgressCircle.d.ts +33 -0
- package/dist/components/progress-circle/ProgressCircle.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/Radio.d.ts +40 -0
- package/dist/components/radio/Radio.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/scroll-container/ScrollContainer.d.ts +42 -0
- package/dist/components/scroll-container/ScrollContainer.d.ts.map +1 -0
- package/dist/components/segmented-control/SegmentedControl.d.ts +40 -0
- package/dist/components/segmented-control/SegmentedControl.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/SegmentedProgressBar.d.ts +22 -0
- package/dist/components/segmented-progress-bar/SegmentedProgressBar.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/Select.d.ts +84 -0
- package/dist/components/select/Select.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/select/selectListbox.d.ts +13 -0
- package/dist/components/select/selectListbox.d.ts.map +1 -0
- package/dist/components/slider/Slider.d.ts +23 -0
- package/dist/components/slider/Slider.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/HorizontalStepper.d.ts +41 -0
- package/dist/components/stepper/HorizontalStepper.d.ts.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +77 -0
- package/dist/components/stepper/Stepper.d.ts.map +1 -0
- package/dist/components/stepper/VerticalStepper.d.ts +41 -0
- package/dist/components/stepper/VerticalStepper.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/stepper/stepperAlignContext.d.ts +11 -0
- package/dist/components/stepper/stepperAlignContext.d.ts.map +1 -0
- package/dist/components/switch/Switch.d.ts +48 -0
- package/dist/components/switch/Switch.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/Tabs.d.ts +69 -0
- package/dist/components/tabs/Tabs.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/Tag.d.ts +29 -0
- package/dist/components/tag/Tag.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/Textarea.d.ts +43 -0
- package/dist/components/textarea/Textarea.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/Tooltip.d.ts +47 -0
- package/dist/components/tooltip/Tooltip.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/Typography.d.ts +30 -0
- package/dist/components/typography/Typography.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/hooks/useControllableState.d.ts +8 -0
- package/dist/hooks/useControllableState.d.ts.map +1 -0
- package/dist/hooks/useEscapeKey.d.ts +7 -0
- package/dist/hooks/useEscapeKey.d.ts.map +1 -0
- package/dist/hooks/useFieldIds.d.ts +17 -0
- package/dist/hooks/useFieldIds.d.ts.map +1 -0
- package/dist/hooks/useFocusTrap.d.ts +16 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -0
- package/dist/hooks/useMergedRefs.d.ts +3 -0
- package/dist/hooks/useMergedRefs.d.ts.map +1 -0
- package/dist/hooks/useOutsideClick.d.ts +16 -0
- package/dist/hooks/useOutsideClick.d.ts.map +1 -0
- package/dist/hooks/useOverlayModal.d.ts +7 -0
- package/dist/hooks/useOverlayModal.d.ts.map +1 -0
- package/dist/hooks/usePosition.d.ts +41 -0
- package/dist/hooks/usePosition.d.ts.map +1 -0
- package/dist/hooks/useResponsiveMonths.d.ts +18 -0
- package/dist/hooks/useResponsiveMonths.d.ts.map +1 -0
- package/dist/hooks/useScrollLock.d.ts +8 -0
- package/dist/hooks/useScrollLock.d.ts.map +1 -0
- package/dist/icons/Icon.d.ts +13 -0
- package/dist/icons/Icon.d.ts.map +1 -0
- package/dist/icons/index.d.ts +40 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/index.css +6101 -5759
- package/dist/index.css.map +4 -4
- package/dist/index.d.ts +4 -8
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8509 -7660
- package/dist/index.js.map +4 -4
- package/dist/internal/ControlSizeContext.d.ts +17 -0
- package/dist/internal/ControlSizeContext.d.ts.map +1 -0
- package/dist/internal/DividerContentContext.d.ts +4 -0
- package/dist/internal/DividerContentContext.d.ts.map +1 -0
- package/dist/internal/OverlayPortalLayerContext.d.ts +13 -0
- package/dist/internal/OverlayPortalLayerContext.d.ts.map +1 -0
- package/dist/internal/Portal.d.ts +8 -0
- package/dist/internal/Portal.d.ts.map +1 -0
- package/dist/internal/context.d.ts +11 -0
- package/dist/internal/context.d.ts.map +1 -0
- package/dist/internal/cx.d.ts +2 -0
- package/dist/internal/cx.d.ts.map +1 -0
- package/dist/internal/data-attributes.d.ts +6 -0
- package/dist/internal/data-attributes.d.ts.map +1 -0
- package/dist/internal/highlightTsxHtml.d.ts +3 -0
- package/dist/internal/highlightTsxHtml.d.ts.map +1 -0
- package/dist/internal/layoutPxFromPrimitives.d.ts +13 -0
- package/dist/internal/layoutPxFromPrimitives.d.ts.map +1 -0
- package/dist/internal/mergeRefs.d.ts +4 -0
- package/dist/internal/mergeRefs.d.ts.map +1 -0
- package/dist/internal/runtimeUnits.d.ts +3 -0
- package/dist/internal/runtimeUnits.d.ts.map +1 -0
- package/dist/internal/scrollAncestors.d.ts +3 -0
- package/dist/internal/scrollAncestors.d.ts.map +1 -0
- package/dist/internal/slot.d.ts +19 -0
- package/dist/internal/slot.d.ts.map +1 -0
- package/dist/internal/states.d.ts +87 -0
- package/dist/internal/states.d.ts.map +1 -0
- package/dist/layout/app-shell/AppShell.d.ts +54 -0
- package/dist/layout/app-shell/AppShell.d.ts.map +1 -0
- package/dist/layout/index.d.ts +7 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/sidebar/Sidebar.d.ts +241 -0
- package/dist/layout/sidebar/Sidebar.d.ts.map +1 -0
- package/dist/layout/sidebar/SidebarRoot.d.ts +51 -0
- package/dist/layout/sidebar/SidebarRoot.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/dist/layout/sidebar/sidebar-context.d.ts +19 -0
- package/dist/layout/sidebar/sidebar-context.d.ts.map +1 -0
- package/dist/layout/sidebar/sidebarLayout.d.ts +12 -0
- package/dist/layout/sidebar/sidebarLayout.d.ts.map +1 -0
- package/dist/tokens/primitives.d.ts +390 -0
- package/dist/tokens/primitives.d.ts.map +1 -0
- package/dist/tokens/semantic.d.ts +732 -0
- package/dist/tokens/semantic.d.ts.map +1 -0
- package/dist/tokens/themes/dark.d.ts +143 -0
- package/dist/tokens/themes/dark.d.ts.map +1 -0
- package/dist/tokens/themes/light.d.ts +16 -0
- package/dist/tokens/themes/light.d.ts.map +1 -0
- package/package.json +12 -4
- package/src/components/accordion/COMPONENT.md +190 -0
- 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 +152 -0
- 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 +101 -0
- 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 +145 -0
- 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 +127 -0
- 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 +101 -0
- 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 +131 -0
- 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 +307 -0
- 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 +129 -0
- 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 +88 -0
- 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 +171 -0
- 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 +195 -0
- 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 +114 -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 +169 -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 +100 -0
- 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 +98 -0
- 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/COMPONENT.md +149 -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 +231 -0
- 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 +229 -0
- 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 +99 -0
- 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 +139 -0
- 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 +87 -0
- 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 +125 -0
- 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 +79 -0
- 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 +176 -0
- 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 +150 -0
- 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 +101 -0
- 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 +157 -0
- 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 +84 -0
- 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 +93 -0
- 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 +123 -0
- 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 +108 -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 +104 -0
- 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 +202 -0
- 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 +78 -0
- 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 +211 -0
- 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 +144 -0
- 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 +141 -0
- 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 +82 -0
- 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 +120 -0
- 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 +144 -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 +113 -0
- 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
- package/src/styles/theme-dark.css +43 -0
- package/src/styles/theme-light.css +43 -0
- package/src/styles/tokens.css +23 -4
- package/src/styles/tokens.test.ts +0 -27
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Input } from "prime-ui-kit";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
import styles from "./checkout-full-width.module.css";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Оформление заказа: колонка на всю ширину родителя (`Input.Root` уже тянется на 100%).
|
|
8
|
+
*/
|
|
9
|
+
export default function CheckoutFullWidthExample() {
|
|
10
|
+
const [fullName, setFullName] = React.useState("");
|
|
11
|
+
const [address, setAddress] = React.useState("");
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<div className={styles.column}>
|
|
15
|
+
<Input.Root size="m" label="ФИО получателя" hint="Как в паспорте — для доставки">
|
|
16
|
+
<Input.Wrapper>
|
|
17
|
+
<Input.Field
|
|
18
|
+
name="fullName"
|
|
19
|
+
autoComplete="name"
|
|
20
|
+
placeholder="Иванов Иван Иванович"
|
|
21
|
+
value={fullName}
|
|
22
|
+
onChange={(e) => setFullName(e.target.value)}
|
|
23
|
+
/>
|
|
24
|
+
</Input.Wrapper>
|
|
25
|
+
</Input.Root>
|
|
26
|
+
<Input.Root size="m" label="Адрес доставки" optionalLabel="квартира, подъезд">
|
|
27
|
+
<Input.Wrapper>
|
|
28
|
+
<Input.Field
|
|
29
|
+
name="address"
|
|
30
|
+
autoComplete="street-address"
|
|
31
|
+
placeholder="Город, улица, дом"
|
|
32
|
+
value={address}
|
|
33
|
+
onChange={(e) => setAddress(e.target.value)}
|
|
34
|
+
/>
|
|
35
|
+
</Input.Wrapper>
|
|
36
|
+
</Input.Root>
|
|
37
|
+
</div>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Icon, Input } from "prime-ui-kit";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Вход: email с подписью, иконкой и автозаполнением.
|
|
6
|
+
*/
|
|
7
|
+
export default function LoginEmailExample() {
|
|
8
|
+
const [email, setEmail] = React.useState("");
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<Input.Root
|
|
12
|
+
size="m"
|
|
13
|
+
label="Электронная почта"
|
|
14
|
+
hint="Мы отправим код подтверждения на этот адрес"
|
|
15
|
+
>
|
|
16
|
+
<Input.Wrapper>
|
|
17
|
+
<Input.Icon side="start">
|
|
18
|
+
<Icon name="field.email" size="s" tone="subtle" />
|
|
19
|
+
</Input.Icon>
|
|
20
|
+
<Input.Field
|
|
21
|
+
type="email"
|
|
22
|
+
name="email"
|
|
23
|
+
autoComplete="email"
|
|
24
|
+
inputMode="email"
|
|
25
|
+
placeholder="you@example.com"
|
|
26
|
+
value={email}
|
|
27
|
+
onChange={(e) => setEmail(e.target.value)}
|
|
28
|
+
required
|
|
29
|
+
/>
|
|
30
|
+
</Input.Wrapper>
|
|
31
|
+
</Input.Root>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Icon, Input } from "prime-ui-kit";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Пароль: подсказка под полем и иконка справа (декоративная, без роли имени).
|
|
6
|
+
*/
|
|
7
|
+
export default function PasswordWithHintExample() {
|
|
8
|
+
const [password, setPassword] = React.useState("");
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<Input.Root size="m" label="Пароль" hint="Не менее 8 символов, буквы и цифры">
|
|
12
|
+
<Input.Wrapper>
|
|
13
|
+
<Input.Field
|
|
14
|
+
type="password"
|
|
15
|
+
name="password"
|
|
16
|
+
autoComplete="current-password"
|
|
17
|
+
placeholder="••••••••"
|
|
18
|
+
value={password}
|
|
19
|
+
onChange={(e) => setPassword(e.target.value)}
|
|
20
|
+
required
|
|
21
|
+
/>
|
|
22
|
+
<Input.Icon side="end">
|
|
23
|
+
<Icon name="status.locked" size="s" tone="subtle" />
|
|
24
|
+
</Input.Icon>
|
|
25
|
+
</Input.Wrapper>
|
|
26
|
+
</Input.Root>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Icon, Input } from "prime-ui-kit";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Поиск: контролируемое значение и иконка слева.
|
|
6
|
+
*/
|
|
7
|
+
export default function SearchExample() {
|
|
8
|
+
const [query, setQuery] = React.useState("");
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<Input.Root
|
|
12
|
+
size="m"
|
|
13
|
+
label="Поиск по каталогу"
|
|
14
|
+
hint={query ? `Запрос: «${query}»` : "Введите название или артикул"}
|
|
15
|
+
>
|
|
16
|
+
<Input.Wrapper>
|
|
17
|
+
<Input.Icon side="start">
|
|
18
|
+
<Icon name="nav.layoutGrid" size="s" tone="subtle" />
|
|
19
|
+
</Input.Icon>
|
|
20
|
+
<Input.Field
|
|
21
|
+
type="search"
|
|
22
|
+
name="q"
|
|
23
|
+
placeholder="Название или артикул"
|
|
24
|
+
value={query}
|
|
25
|
+
onChange={(e) => setQuery(e.target.value)}
|
|
26
|
+
/>
|
|
27
|
+
</Input.Wrapper>
|
|
28
|
+
</Input.Root>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Kbd
|
|
2
|
+
|
|
3
|
+
**Проектирование по умолчанию:** при проектировании экранов и примеров изначально выбирай **`m`** для `size` (где есть ось размера), если явно не оговорено иное.
|
|
4
|
+
|
|
5
|
+
## Canonical
|
|
6
|
+
|
|
7
|
+
`Kbd` — примитив из одной части: **`Kbd.Root`** рендерит семантический **`kbd`** с оформлением кита (поднятая поверхность, рамка, лёгкая тень). Только **отображение** подписи клавиши; события клавиатуры и фокус не обрабатывает.
|
|
8
|
+
|
|
9
|
+
- **API:** `size?: "s" | "m" | "l" | "xl"`; без пропа размер берётся из ближайшего **`ControlSizeProvider`**, иначе **`"m"`**; на поверхности контрола **`xs`** маппится в **`s`** для `kbd`.
|
|
10
|
+
- **Импорт:** `import { Kbd } from "prime-ui-kit"` → **`Kbd.Root`**.
|
|
11
|
+
|
|
12
|
+
```tsx
|
|
13
|
+
import { Kbd } from "prime-ui-kit";
|
|
14
|
+
|
|
15
|
+
export function Example() {
|
|
16
|
+
return <Kbd.Root>Esc</Kbd.Root>;
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Готовые сценарии — в **`examples/`** (ряд «действие — шорткат», легенда документации, подсказки у тулбара, аккорды из нескольких клавиш, встроенная подсказка в тексте). Подробности — в **Extended**.
|
|
21
|
+
|
|
22
|
+
## Extended
|
|
23
|
+
|
|
24
|
+
### About
|
|
25
|
+
|
|
26
|
+
`Kbd.Root` помечает имена клавиш и фрагменты шорткатов как UI-хром, а не как основной текст абзаца.
|
|
27
|
+
|
|
28
|
+
- **When to use** — горячие клавиши у пунктов меню, действий тулбара, подписей в [Command menu](../command-menu/COMPONENT.md).
|
|
29
|
+
- **When to use** — одна или несколько клавиш во вспомогательном тексте, подсказках полей, футерах модалок, где шорткат — часть инструкции.
|
|
30
|
+
- **When to use** — согласовать **`size`** с соседними контролами ([Input](../input/COMPONENT.md), [Button](../button/COMPONENT.md)), чтобы вложенные иконки и кегль совпадали с рядом стоящими контролами.
|
|
31
|
+
- **When not to use** — как единственный интерактивный элемент; нужна настоящая [Button](../button/COMPONENT.md), [Link button](../link-button/COMPONENT.md) или другой фокусируемый target.
|
|
32
|
+
- **When not to use** — для зеркалирования или перехвата реального ввода с клавиатуры; компонент только показывает подпись.
|
|
33
|
+
- **When not to use** — в длинной документации, где обычный текст или моноширинный шрифт читабельнее «чипов» клавиш.
|
|
34
|
+
|
|
35
|
+
### Examples (`examples/`)
|
|
36
|
+
|
|
37
|
+
| Файл | Сценарий |
|
|
38
|
+
|------|----------|
|
|
39
|
+
| [`examples/shortcut-row.tsx`](examples/shortcut-row.tsx) | Строка списка/меню: подпись действия и шорткат справа. |
|
|
40
|
+
| [`examples/docs-legend.tsx`](examples/docs-legend.tsx) | Легенда в документации: сетка «действие → комбинация». |
|
|
41
|
+
| [`examples/toolbar-hints.tsx`](examples/toolbar-hints.tsx) | Тулбар: кнопка и рядом компактная подсказка-клавиши. |
|
|
42
|
+
| [`examples/combination-keys.tsx`](examples/combination-keys.tsx) | Аккорд: несколько **`Kbd.Root`** и разделители вне ключей. |
|
|
43
|
+
| [`examples/inline-doc-hint.tsx`](examples/inline-doc-hint.tsx) | Встроенная в абзац подсказка с **`Kbd`** в потоке текста. |
|
|
44
|
+
|
|
45
|
+
### Composition
|
|
46
|
+
|
|
47
|
+
- **`Kbd`** экспортирует только **`Root`** — плоский API; внутрь передаётся подпись (текст, иконки, смешанный **`ReactNode`**).
|
|
48
|
+
- **`Root`** выставляет **`data-size`**, оборачивает **`children`** в **`ControlSizeProvider`**, чтобы вложенные **`Icon`** наследовали контекст размера контрола.
|
|
49
|
+
|
|
50
|
+
### Rules
|
|
51
|
+
|
|
52
|
+
- **Sizing:** см. Canonical; явный **`size`** перекрывает контекст.
|
|
53
|
+
- **Presentation only:** нет обработки клавиш, фокуса и состояния ОС.
|
|
54
|
+
- **Semantics:** полиморфизма **`asChild`** нет — корень всегда **`kbd`**.
|
|
55
|
+
- **Accessibility:** для аккордов — несколько **`Kbd.Root`**; **`+`** / «или» выносить **вне** ключей или помечать **`aria-hidden`**, чтобы скринридер не зачитывал их как часть каждой клавиши. Для пояснения — **`title`** или видимый текст; смысл не только цветом.
|
|
56
|
+
- **Platform copy:** **⌘** vs **Ctrl** и т.п. — решение продукта/i18n, кит не нормализует.
|
|
57
|
+
- **Styling:** один встроенный вид; расширение через **`className`** / стили проекта, отдельного **`variant`** нет.
|
|
58
|
+
|
|
59
|
+
## API
|
|
60
|
+
|
|
61
|
+
### Kbd.Root
|
|
62
|
+
|
|
63
|
+
| Prop | Type | Default | Required | Description |
|
|
64
|
+
|------|------|---------|----------|-------------|
|
|
65
|
+
| size | `KbdSize` (`"s" \| "m" \| "l" \| "xl"`) | from context or `"m"` | No | Номинальный размер; без пропа — из `ControlSizeProvider` или `"m"`; контекст `xs` → `s` на `kbd`. |
|
|
66
|
+
| children | `React.ReactNode` | — | Yes | Подпись клавиши, иконки или смешанный контент. |
|
|
67
|
+
| className | `string` | — | No | Дополнительный класс на `kbd`. |
|
|
68
|
+
| …rest | `Omit<React.HTMLAttributes<HTMLElement>, "size">` | — | No | Нативные атрибуты (`title`, `hidden`, `aria-*`, `data-*`, …). |
|
|
69
|
+
|
|
70
|
+
## Related
|
|
71
|
+
|
|
72
|
+
- [Button](../button/COMPONENT.md) — действие, на которое часто ссылается шорткат.
|
|
73
|
+
- [Link button](../link-button/COMPONENT.md) — текстовые действия с подсказкой клавиши рядом.
|
|
74
|
+
- [Input](../input/COMPONENT.md) — поля, где в `hint` или у подписи уместен `Kbd`.
|
|
75
|
+
- [Textarea](../textarea/COMPONENT.md) — многострочные поля с тем же паттерном подсказок.
|
|
76
|
+
- [Select](../select/COMPONENT.md) — триггеры и списки с документированием шорткатов.
|
|
77
|
+
- [Tooltip](../tooltip/COMPONENT.md) — развёрнутые пояснения с повтором клавиш через `Kbd`.
|
|
78
|
+
- [Command menu](../command-menu/COMPONENT.md) — списки с пер-элементными шорткатами.
|
|
79
|
+
|
|
80
|
+
## LLM note
|
|
81
|
+
|
|
82
|
+
- Публичный API: **`Kbd.Root`** только; импорт **`{ Kbd } from "prime-ui-kit"`**.
|
|
83
|
+
- Нет **`variant`**, **`disabled`**, **`asChild`**; для подсказок используй нативные атрибуты (**`title`**, **`aria-*`**).
|
|
84
|
+
- Аккорд: **не** клади строку `"⌘+K"` в один **`Kbd.Root`**, если нужна семантика «отдельные клавиши» — делай **`Kbd.Root` на каждую клавишу**, плюс **`span aria-hidden`** между ними для **`+`**.
|
|
85
|
+
- Размер без пропа: **`useOptionalControlSize`** → **`controlSurfaceToInputSize`**; **`xs`** контекста → эффективный **`s`** на компоненте.
|
|
86
|
+
- Не подменяй кнопку или ссылку одним **`Kbd`**; не ожидай событий клавиатуры от этого компонента.
|
|
87
|
+
- Сценарии копирования: смотри **`src/components/kbd/examples/*.tsx`**.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Kbd } from "prime-ui-kit";
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
|
|
4
|
+
const row: React.CSSProperties = {
|
|
5
|
+
display: "flex",
|
|
6
|
+
flexWrap: "wrap",
|
|
7
|
+
alignItems: "center",
|
|
8
|
+
gap: "var(--prime-sys-spacing-x1)",
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/** Аккорд из нескольких клавиш: каждая клавиша — отдельный `Kbd.Root`, плюс вне ключей. */
|
|
12
|
+
export default function CombinationKeysExample() {
|
|
13
|
+
return (
|
|
14
|
+
<div style={row}>
|
|
15
|
+
<Kbd.Root>Ctrl</Kbd.Root>
|
|
16
|
+
<span aria-hidden="true">+</span>
|
|
17
|
+
<Kbd.Root>Shift</Kbd.Root>
|
|
18
|
+
<span aria-hidden="true">+</span>
|
|
19
|
+
<Kbd.Root>P</Kbd.Root>
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Kbd } from "prime-ui-kit";
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
|
|
4
|
+
const grid: React.CSSProperties = {
|
|
5
|
+
display: "grid",
|
|
6
|
+
gridTemplateColumns: "1fr auto",
|
|
7
|
+
alignItems: "center",
|
|
8
|
+
columnGap: "var(--prime-sys-spacing-l)",
|
|
9
|
+
rowGap: "var(--prime-sys-spacing-s)",
|
|
10
|
+
maxWidth: "calc(var(--prime-sys-unit-1rem) * 24)",
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const chord: React.CSSProperties = {
|
|
14
|
+
display: "flex",
|
|
15
|
+
flexWrap: "wrap",
|
|
16
|
+
alignItems: "center",
|
|
17
|
+
gap: "var(--prime-sys-spacing-x1)",
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/** Легенда в документации: пары «действие → комбинация». */
|
|
21
|
+
export default function DocsLegendExample() {
|
|
22
|
+
return (
|
|
23
|
+
<dl style={grid}>
|
|
24
|
+
<dt>Copy</dt>
|
|
25
|
+
<dd style={chord}>
|
|
26
|
+
<Kbd.Root>⌘</Kbd.Root>
|
|
27
|
+
<span aria-hidden="true">+</span>
|
|
28
|
+
<Kbd.Root>C</Kbd.Root>
|
|
29
|
+
</dd>
|
|
30
|
+
<dt>Command palette</dt>
|
|
31
|
+
<dd style={chord}>
|
|
32
|
+
<Kbd.Root>⌘</Kbd.Root>
|
|
33
|
+
<span aria-hidden="true">+</span>
|
|
34
|
+
<Kbd.Root>K</Kbd.Root>
|
|
35
|
+
</dd>
|
|
36
|
+
<dt>Undo</dt>
|
|
37
|
+
<dd style={chord}>
|
|
38
|
+
<Kbd.Root>⌘</Kbd.Root>
|
|
39
|
+
<span aria-hidden="true">+</span>
|
|
40
|
+
<Kbd.Root>Z</Kbd.Root>
|
|
41
|
+
</dd>
|
|
42
|
+
</dl>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Kbd } from "prime-ui-kit";
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
|
|
4
|
+
const paragraph: React.CSSProperties = {
|
|
5
|
+
maxWidth: "calc(var(--prime-sys-unit-1rem) * 32)",
|
|
6
|
+
margin: 0,
|
|
7
|
+
font: "inherit",
|
|
8
|
+
color: "var(--prime-sys-color-content-primary)",
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/** Встроенная подсказка в тексте: `Kbd` в потоке абзаца. */
|
|
12
|
+
export default function InlineDocHintExample() {
|
|
13
|
+
return (
|
|
14
|
+
<p style={paragraph}>
|
|
15
|
+
To cancel, press <Kbd.Root>Esc</Kbd.Root>. To confirm, press <Kbd.Root>Enter</Kbd.Root>.
|
|
16
|
+
</p>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Kbd } from "prime-ui-kit";
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
|
|
4
|
+
const shortcutRow: React.CSSProperties = {
|
|
5
|
+
boxSizing: "border-box",
|
|
6
|
+
display: "flex",
|
|
7
|
+
alignItems: "center",
|
|
8
|
+
justifyContent: "space-between",
|
|
9
|
+
gap: "var(--prime-sys-spacing-m)",
|
|
10
|
+
maxWidth: "calc(var(--prime-sys-unit-1rem) * 22)",
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/** Строка меню или списка команд: действие слева, шорткат справа (`size="s"` — плотный хром). */
|
|
14
|
+
export default function ShortcutRowExample() {
|
|
15
|
+
return (
|
|
16
|
+
<div style={shortcutRow}>
|
|
17
|
+
<span>Save</span>
|
|
18
|
+
<Kbd.Root size="s">⌘S</Kbd.Root>
|
|
19
|
+
</div>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Button, Kbd } from "prime-ui-kit";
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
|
|
4
|
+
const toolbar: React.CSSProperties = {
|
|
5
|
+
display: "flex",
|
|
6
|
+
flexWrap: "wrap",
|
|
7
|
+
alignItems: "center",
|
|
8
|
+
gap: "var(--prime-sys-spacing-m)",
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const hintCluster: React.CSSProperties = {
|
|
12
|
+
display: "flex",
|
|
13
|
+
alignItems: "center",
|
|
14
|
+
gap: "var(--prime-sys-spacing-x2)",
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/** Подсказки у тулбара: основное действие и рядом компактные клавиши того же визуального ряда. */
|
|
18
|
+
export default function ToolbarHintsExample() {
|
|
19
|
+
return (
|
|
20
|
+
<div role="toolbar" aria-label="Formatting" style={toolbar}>
|
|
21
|
+
<div style={hintCluster}>
|
|
22
|
+
<Button.Root size="m">Bold</Button.Root>
|
|
23
|
+
<Kbd.Root size="s">⌘B</Kbd.Root>
|
|
24
|
+
</div>
|
|
25
|
+
<div style={hintCluster}>
|
|
26
|
+
<Button.Root size="m">Italic</Button.Root>
|
|
27
|
+
<Kbd.Root size="s">⌘I</Kbd.Root>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Label
|
|
2
|
+
|
|
3
|
+
**Проектирование по умолчанию:** при проектировании экранов и примеров изначально выбирай **`m`** для `size` (где есть ось размера), если явно не оговорено иное.
|
|
4
|
+
|
|
5
|
+
## Canonical
|
|
6
|
+
|
|
7
|
+
- **Surface:** `Label.Root` is always a native **`<label>`**; slots **`Label.Icon`**, **`Label.Asterisk`**, **`Label.Sub`** for icon, required marker, secondary text.
|
|
8
|
+
- **Associate** the caption with a control: **`htmlFor`** on **`Label.Root`** = control **`id`**, or nest the control inside **`Label.Root`**.
|
|
9
|
+
- **Required:** **`Label.Asterisk`** is visual only; set **`required`** / **`aria-required`** on the control. Optional fields often use **`Label.Sub`** (e.g. “optional”).
|
|
10
|
+
- **Defaults:** **`size="m"`** on **`Label.Root`**; **`disabled`** sets **`aria-disabled`** + muted styles (mirror real control state).
|
|
11
|
+
- **Examples (source):** [`examples/required-field.tsx`](examples/required-field.tsx), [`examples/optional-field.tsx`](examples/optional-field.tsx), [`examples/grouped-labels.tsx`](examples/grouped-labels.tsx), [`examples/accessibility-pattern.tsx`](examples/accessibility-pattern.tsx), [`examples/with-icon.tsx`](examples/with-icon.tsx).
|
|
12
|
+
|
|
13
|
+
## LLM note
|
|
14
|
+
|
|
15
|
+
When generating UI with **Label**:
|
|
16
|
+
|
|
17
|
+
1. Never drop **programmatic association**: every **`Label.Root`** must either use **`htmlFor` + matching `id`** on the control or wrap the control inside the root.
|
|
18
|
+
2. Do not treat **`Label.Asterisk`** as sufficient for “required”; always set **`required`** (and validation) on the actual input/select/textarea (and **`aria-required`** if you mirror state without the native attribute).
|
|
19
|
+
3. Decorative icons in **`Label.Icon`** should use **`aria-hidden="true"`** when the visible label text already names the field.
|
|
20
|
+
4. Prefer **[Hint](../hint/COMPONENT.md)** (or field error UI) for validation and long help; **`Label.Sub`** is for a short secondary line in the label row, not a substitute for error text.
|
|
21
|
+
5. The root is **not** polymorphic: no **`asChild`** — do not swap **`label`** for another element.
|
|
22
|
+
6. For a **group** of related fields, use **`<fieldset>`** + **`<legend>`** (or an equivalent ARIA grouping pattern) and keep **one `Label.Root` per control** where each control has its own **`id`**.
|
|
23
|
+
|
|
24
|
+
## Extended
|
|
25
|
+
|
|
26
|
+
### About
|
|
27
|
+
|
|
28
|
+
Composite caption for form fields: `Label.Root` is a native `label` with optional slots `Label.Icon`, `Label.Asterisk`, and `Label.Sub` for icon, required marker, and secondary text.
|
|
29
|
+
|
|
30
|
+
- **Use** to associate visible text with a control via `htmlFor` / `id` or by nesting the control inside the root.
|
|
31
|
+
- **Use** when you want a consistent type scale (`size`) and optional icon or second-line hint in one label row.
|
|
32
|
+
- **Use** `Label.Asterisk` for a visual required marker next to the caption.
|
|
33
|
+
- **Do not use** as a replacement for field validation messages or long help copy; pair with [Hint](../hint/COMPONENT.md) or similar when you need status or errors below the field.
|
|
34
|
+
- **Do not use** expecting the label to set `required` on inputs; that remains on the control.
|
|
35
|
+
- **Do not use** `Label` as a non-label wrapper; the root is always a `label` element (no polymorphic `asChild`).
|
|
36
|
+
|
|
37
|
+
### Composition
|
|
38
|
+
|
|
39
|
+
- **`Label.Root`** — `<label>`; sets `data-size` (from `size`, default `m`) and `data-disabled` when `disabled`. Wraps children in `LabelSizeContext` so slots inherit the same size.
|
|
40
|
+
- **`Label.Icon`** — `<span>` before or beside the main text; forwards label size to children via `ControlSizeProvider` (e.g. for kit `Icon` sizing).
|
|
41
|
+
- **`Label.Asterisk`** — `<span>` for the required marker; default child text is `*` if `children` is omitted.
|
|
42
|
+
- **`Label.Sub`** — `<span>` for secondary line or hint text on the same label.
|
|
43
|
+
- Slot order in markup is flexible; keep reading order sensible for screen readers (e.g. icon, title, asterisk, sub).
|
|
44
|
+
|
|
45
|
+
### Minimal example
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
import { Label } from "prime-ui-kit";
|
|
49
|
+
|
|
50
|
+
export function Example() {
|
|
51
|
+
return (
|
|
52
|
+
<>
|
|
53
|
+
<Label.Root htmlFor="field-id">Caption</Label.Root>
|
|
54
|
+
<input id="field-id" />
|
|
55
|
+
</>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Rules
|
|
61
|
+
|
|
62
|
+
- **Association:** set **`htmlFor` on `Label.Root`** to match the control’s **`id`**, or place the interactive control inside **`Label.Root`** so the caption is programmatically linked.
|
|
63
|
+
- **`disabled` on `Label.Root`:** sets **`aria-disabled`** and **`data-disabled`** for muted styling; keep the actual field non-interactive (`disabled`, `readOnly`, etc.) or behavior will not match the label-only state.
|
|
64
|
+
- **`Label.Icon`:** when the icon is decorative and the visible label text is sufficient, mark the icon **`aria-hidden`**.
|
|
65
|
+
- **`Label.Asterisk`** is visual-only; expose required state on the control with **`required`** / **`aria-required`** and errors via hint or validation UI as needed.
|
|
66
|
+
- There is no separate **`variant`** prop; appearance follows **`size`** and slot composition (asterisk uses danger-accent styling from the theme).
|
|
67
|
+
- The root does **not** implement **`asChild`**; it is always a **`label`**.
|
|
68
|
+
- Nesting an input inside **`Label.Root`** is valid HTML; the common kit pattern is sibling **`Label.Root`** + control with **`htmlFor`** / **`id`**.
|
|
69
|
+
- **Grouped fields:** use **`fieldset`** / **`legend`** (or `role="group"` with an accessible name) for the section; each control in the group still gets its own **`Label.Root`** and unique **`id`** unless the control is nested inside its label.
|
|
70
|
+
|
|
71
|
+
### Scenarios (see `examples/`)
|
|
72
|
+
|
|
73
|
+
| Scenario | Intent |
|
|
74
|
+
|----------|--------|
|
|
75
|
+
| Required field | `Label.Asterisk` + **`required`** on the control |
|
|
76
|
+
| Optional field | `Label.Sub` for “optional” (or similar); no asterisk |
|
|
77
|
+
| Grouped labels | `fieldset` + `legend` + per-field `Label.Root` + `htmlFor` / `id` |
|
|
78
|
+
| Accessibility | Association, decorative icon hidden, required on control, short sub-line vs Hint |
|
|
79
|
+
|
|
80
|
+
### API
|
|
81
|
+
|
|
82
|
+
#### Label.Root
|
|
83
|
+
|
|
84
|
+
| Prop | Type | Default | Required | Description |
|
|
85
|
+
|------|------|---------|----------|-------------|
|
|
86
|
+
| size | `"s" \| "m" \| "l" \| "xl"` | `"m"` | No | Type scale, spacing, and size context for nested slots (e.g. `Label.Icon`) |
|
|
87
|
+
| disabled | `boolean` | — | No | Disabled look; sets `aria-disabled` and `data-disabled` |
|
|
88
|
+
| htmlFor | `string` | — | No | `id` of the associated control |
|
|
89
|
+
| className | `string` | — | No | Additional class on the root |
|
|
90
|
+
| children | `React.ReactNode` | — | No | Text and `Label.Icon`, `Label.Asterisk`, `Label.Sub` |
|
|
91
|
+
| …rest | `Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "size">` | — | No | Other native `label` attributes (`size` is reserved for the design-system prop) |
|
|
92
|
+
|
|
93
|
+
#### Label.Icon
|
|
94
|
+
|
|
95
|
+
| Prop | Type | Default | Required | Description |
|
|
96
|
+
|------|------|---------|----------|-------------|
|
|
97
|
+
| className | `string` | — | No | Additional class on the wrapper |
|
|
98
|
+
| children | `React.ReactNode` | — | No | Typically an icon; receives control size from label context |
|
|
99
|
+
| …rest | `React.HTMLAttributes<HTMLSpanElement>` | — | No | Other `span` attributes |
|
|
100
|
+
|
|
101
|
+
#### Label.Asterisk
|
|
102
|
+
|
|
103
|
+
| Prop | Type | Default | Required | Description |
|
|
104
|
+
|------|------|---------|----------|-------------|
|
|
105
|
+
| className | `string` | — | No | Additional class on the wrapper |
|
|
106
|
+
| children | `React.ReactNode` | `"*"` | No | Overrides the default asterisk character when provided |
|
|
107
|
+
| …rest | `React.HTMLAttributes<HTMLSpanElement>` | — | No | Other `span` attributes |
|
|
108
|
+
|
|
109
|
+
#### Label.Sub
|
|
110
|
+
|
|
111
|
+
| Prop | Type | Default | Required | Description |
|
|
112
|
+
|------|------|---------|----------|-------------|
|
|
113
|
+
| className | `string` | — | No | Additional class on the wrapper |
|
|
114
|
+
| children | `React.ReactNode` | — | No | Secondary line under the main caption |
|
|
115
|
+
| …rest | `React.HTMLAttributes<HTMLSpanElement>` | — | No | Other `span` attributes |
|
|
116
|
+
|
|
117
|
+
### Related
|
|
118
|
+
|
|
119
|
+
- [Input](../input/COMPONENT.md)
|
|
120
|
+
- [Textarea](../textarea/COMPONENT.md)
|
|
121
|
+
- [Select](../select/COMPONENT.md)
|
|
122
|
+
- [Checkbox](../checkbox/COMPONENT.md)
|
|
123
|
+
- [Radio](../radio/COMPONENT.md)
|
|
124
|
+
- [Switch](../switch/COMPONENT.md)
|
|
125
|
+
- [Hint](../hint/COMPONENT.md)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Icon, Label } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Accessibility checklist: `htmlFor`/`id` link; decorative icon `aria-hidden`;
|
|
5
|
+
* `required` on the input; short sub-line stays inside the label (long copy → Hint below field).
|
|
6
|
+
*/
|
|
7
|
+
export function AccessibilityPatternExample() {
|
|
8
|
+
return (
|
|
9
|
+
<>
|
|
10
|
+
<Label.Root htmlFor="example-label-a11y-email" id="example-label-a11y-email-label">
|
|
11
|
+
<Label.Icon>
|
|
12
|
+
<Icon aria-hidden name="field.email" />
|
|
13
|
+
</Label.Icon>
|
|
14
|
+
Billing contact email
|
|
15
|
+
<Label.Asterisk />
|
|
16
|
+
<Label.Sub>invoices and receipts</Label.Sub>
|
|
17
|
+
</Label.Root>
|
|
18
|
+
<input
|
|
19
|
+
id="example-label-a11y-email"
|
|
20
|
+
type="email"
|
|
21
|
+
name="billingEmail"
|
|
22
|
+
required
|
|
23
|
+
aria-required="true"
|
|
24
|
+
autoComplete="email"
|
|
25
|
+
/>
|
|
26
|
+
</>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Label } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Grouped fields: `fieldset` + `legend` names the group; each control keeps its own
|
|
5
|
+
* `Label.Root` + unique `id` / `htmlFor` pair.
|
|
6
|
+
*/
|
|
7
|
+
export function GroupedLabelsExample() {
|
|
8
|
+
return (
|
|
9
|
+
<fieldset>
|
|
10
|
+
<legend>Billing address</legend>
|
|
11
|
+
<div>
|
|
12
|
+
<Label.Root htmlFor="example-label-group-line1">Address line 1</Label.Root>
|
|
13
|
+
<input id="example-label-group-line1" type="text" name="line1" required />
|
|
14
|
+
</div>
|
|
15
|
+
<div>
|
|
16
|
+
<Label.Root htmlFor="example-label-group-line2">
|
|
17
|
+
Address line 2<Label.Sub>optional</Label.Sub>
|
|
18
|
+
</Label.Root>
|
|
19
|
+
<input id="example-label-group-line2" type="text" name="line2" />
|
|
20
|
+
</div>
|
|
21
|
+
<div>
|
|
22
|
+
<Label.Root htmlFor="example-label-group-postal">
|
|
23
|
+
Postal code
|
|
24
|
+
<Label.Asterisk />
|
|
25
|
+
</Label.Root>
|
|
26
|
+
<input id="example-label-group-postal" type="text" name="postal" required />
|
|
27
|
+
</div>
|
|
28
|
+
</fieldset>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Label } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
/** Optional field: clarify in `Label.Sub` without a required marker on the control. */
|
|
4
|
+
export function OptionalFieldExample() {
|
|
5
|
+
return (
|
|
6
|
+
<>
|
|
7
|
+
<Label.Root htmlFor="example-label-optional-note">
|
|
8
|
+
Internal comment
|
|
9
|
+
<Label.Sub>optional</Label.Sub>
|
|
10
|
+
</Label.Root>
|
|
11
|
+
<input id="example-label-optional-note" type="text" name="note" />
|
|
12
|
+
</>
|
|
13
|
+
);
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Label } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
/** Required field: visual marker via `Label.Asterisk`; semantics via `required` on the control. */
|
|
4
|
+
export function RequiredFieldExample() {
|
|
5
|
+
return (
|
|
6
|
+
<>
|
|
7
|
+
<Label.Root htmlFor="example-label-required-email">
|
|
8
|
+
Work email
|
|
9
|
+
<Label.Asterisk />
|
|
10
|
+
</Label.Root>
|
|
11
|
+
<input
|
|
12
|
+
id="example-label-required-email"
|
|
13
|
+
type="email"
|
|
14
|
+
name="email"
|
|
15
|
+
required
|
|
16
|
+
autoComplete="email"
|
|
17
|
+
/>
|
|
18
|
+
</>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Icon, Label } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
/** Icon slot: size follows `Label.Root`; hide decorative glyphs from assistive tech. */
|
|
4
|
+
export function WithIconExample() {
|
|
5
|
+
return (
|
|
6
|
+
<>
|
|
7
|
+
<Label.Root size="m" htmlFor="example-label-icon-upload">
|
|
8
|
+
<Label.Icon>
|
|
9
|
+
<Icon aria-hidden name="action.upload" />
|
|
10
|
+
</Label.Icon>
|
|
11
|
+
Attachment
|
|
12
|
+
</Label.Root>
|
|
13
|
+
<input id="example-label-icon-upload" type="file" name="attachment" />
|
|
14
|
+
</>
|
|
15
|
+
);
|
|
16
|
+
}
|