@sableui/react 0.6.2 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -2
- package/CHANGELOG.md +315 -0
- package/CONTRIBUTING.md +16 -10
- package/DESIGN.md +3 -3
- package/README.md +3 -3
- package/bin/sable-lint.mjs +18 -0
- package/bin/sable.mjs +470 -62
- package/dist/blocks/api-keys-block.js +44 -0
- package/dist/blocks/api-keys-block.meta.js +21 -0
- package/dist/blocks/chat-thread-block.js +17 -0
- package/dist/blocks/chat-thread-block.meta.js +20 -0
- package/dist/blocks/command-palette-block.js +24 -0
- package/dist/blocks/command-palette-block.meta.js +21 -0
- package/dist/blocks/cta-band-block.js +27 -0
- package/dist/blocks/cta-band-block.meta.js +20 -0
- package/dist/blocks/danger-zone-block.js +39 -0
- package/dist/blocks/danger-zone-block.meta.js +21 -0
- package/dist/blocks/device-comparison-block.js +69 -0
- package/dist/blocks/device-comparison-block.meta.js +21 -0
- package/dist/blocks/event-card-block.js +40 -0
- package/dist/blocks/event-card-block.meta.js +21 -0
- package/dist/blocks/faq-block.js +38 -0
- package/dist/blocks/faq-block.meta.js +20 -0
- package/dist/blocks/feature-grid-block.js +38 -0
- package/dist/blocks/feature-grid-block.meta.js +21 -0
- package/dist/blocks/feedback-form-block.js +30 -0
- package/dist/blocks/feedback-form-block.meta.js +21 -0
- package/dist/blocks/goal-progress-block.js +24 -0
- package/dist/blocks/goal-progress-block.meta.js +21 -0
- package/dist/blocks/hero-block.js +33 -0
- package/dist/blocks/hero-block.meta.js +21 -0
- package/dist/blocks/index.js +162 -1964
- package/dist/blocks/invite-team-block.js +36 -0
- package/dist/blocks/invite-team-block.meta.js +20 -0
- package/dist/blocks/invoice-history-block.js +41 -0
- package/dist/blocks/invoice-history-block.meta.js +21 -0
- package/dist/blocks/kpi-sparkline-block.js +29 -0
- package/dist/blocks/kpi-sparkline-block.meta.js +20 -0
- package/dist/blocks/media-player-block.js +68 -0
- package/dist/blocks/media-player-block.meta.js +21 -0
- package/dist/blocks/newsletter-block.js +35 -0
- package/dist/blocks/newsletter-block.meta.js +21 -0
- package/dist/blocks/not-found-block.js +27 -0
- package/dist/blocks/not-found-block.meta.js +20 -0
- package/dist/blocks/notification-list-block.js +32 -0
- package/dist/blocks/notification-list-block.meta.js +21 -0
- package/dist/blocks/notification-settings-block.js +25 -0
- package/dist/blocks/notification-settings-block.meta.js +20 -0
- package/dist/blocks/order-tracking-block.js +26 -0
- package/dist/blocks/order-tracking-block.meta.js +20 -0
- package/dist/blocks/pricing-card-block.js +46 -0
- package/dist/blocks/pricing-card-block.meta.js +21 -0
- package/dist/blocks/pricing-table-block.js +88 -0
- package/dist/blocks/pricing-table-block.meta.js +20 -0
- package/dist/blocks/product-card-block.js +26 -0
- package/dist/blocks/product-card-block.meta.js +21 -0
- package/dist/blocks/profile-card-block.js +58 -0
- package/dist/blocks/profile-card-block.meta.js +21 -0
- package/dist/blocks/profile-form-block.js +70 -0
- package/dist/blocks/profile-form-block.meta.js +21 -0
- package/dist/blocks/revenue-breakdown-block.js +38 -0
- package/dist/blocks/revenue-breakdown-block.meta.js +21 -0
- package/dist/blocks/sign-in-block.js +38 -0
- package/dist/blocks/sign-in-block.meta.js +21 -0
- package/dist/blocks/sign-up-block.js +48 -0
- package/dist/blocks/sign-up-block.meta.js +21 -0
- package/dist/blocks/site-footer-block.js +54 -0
- package/dist/blocks/site-footer-block.meta.js +20 -0
- package/dist/blocks/stat-row-block.js +28 -0
- package/dist/blocks/stat-row-block.meta.js +21 -0
- package/dist/blocks/steps-block.js +37 -0
- package/dist/blocks/steps-block.meta.js +20 -0
- package/dist/blocks/task-list-block.js +52 -0
- package/dist/blocks/task-list-block.meta.js +21 -0
- package/dist/blocks/team-members-block.js +49 -0
- package/dist/blocks/team-members-block.meta.js +21 -0
- package/dist/blocks/testimonial-block.js +49 -0
- package/dist/blocks/testimonial-block.meta.js +20 -0
- package/dist/blocks/traffic-sources-block.js +39 -0
- package/dist/blocks/traffic-sources-block.meta.js +21 -0
- package/dist/blocks/traffic-trend-block.js +61 -0
- package/dist/blocks/traffic-trend-block.meta.js +21 -0
- package/dist/blocks/upload-list-block.js +39 -0
- package/dist/blocks/upload-list-block.meta.js +21 -0
- package/dist/blocks/verify-code-block.js +28 -0
- package/dist/blocks/verify-code-block.meta.js +21 -0
- package/dist/blocks/wallet-block.js +48 -0
- package/dist/blocks/wallet-block.meta.js +21 -0
- package/dist/components/accordion/accordion.js +63 -0
- package/dist/components/accordion/accordion.meta.js +155 -0
- package/dist/components/accordion/index.js +15 -0
- package/dist/components/app-header/app-header.js +30 -0
- package/dist/components/app-header/app-header.meta.js +88 -0
- package/dist/components/app-header/index.js +7 -0
- package/dist/components/app-shell/app-shell-dock.js +37 -0
- package/dist/components/app-shell/app-shell.js +67 -0
- package/dist/components/app-shell/app-shell.meta.js +176 -0
- package/dist/components/app-shell/index.js +7 -0
- package/dist/components/area-chart/area-chart.js +10 -0
- package/dist/components/area-chart/area-chart.meta.js +218 -0
- package/dist/components/area-chart/index.js +7 -0
- package/dist/components/attachment/attachment.js +176 -0
- package/dist/components/attachment/attachment.meta.js +179 -0
- package/dist/components/attachment/attachment.variants.js +47 -0
- package/dist/components/attachment/index.js +7 -0
- package/dist/components/avatar/avatar.js +192 -0
- package/dist/components/avatar/avatar.meta.js +233 -0
- package/dist/components/avatar/avatar.variants.js +44 -0
- package/dist/components/avatar/index.js +22 -0
- package/dist/components/badge/badge.js +26 -0
- package/dist/components/badge/badge.meta.js +171 -0
- package/dist/components/badge/badge.variants.js +103 -0
- package/dist/components/badge/index.js +11 -0
- package/dist/components/banner/banner.js +76 -0
- package/dist/components/banner/banner.meta.js +172 -0
- package/dist/components/banner/banner.variants.js +44 -0
- package/dist/components/banner/index.js +9 -0
- package/dist/components/bar-chart/bar-chart.js +10 -0
- package/dist/components/bar-chart/bar-chart.meta.js +245 -0
- package/dist/components/bar-chart/index.js +7 -0
- package/dist/components/bottom-nav/bottom-nav.js +63 -0
- package/dist/components/bottom-nav/bottom-nav.meta.js +95 -0
- package/dist/components/bottom-nav/index.js +11 -0
- package/dist/components/breadcrumbs/breadcrumbs.js +90 -0
- package/dist/components/breadcrumbs/breadcrumbs.meta.js +111 -0
- package/dist/components/breadcrumbs/index.js +17 -0
- package/dist/components/browser/browser.js +39 -0
- package/dist/components/browser/browser.meta.js +80 -0
- package/dist/components/browser/index.js +7 -0
- package/dist/components/bubble/bubble.js +110 -0
- package/dist/components/bubble/bubble.meta.js +158 -0
- package/dist/components/bubble/bubble.variants.js +90 -0
- package/dist/components/bubble/index.js +13 -0
- package/dist/components/button/button.js +87 -0
- package/dist/components/button/button.meta.js +302 -0
- package/dist/components/button/button.variants.js +137 -0
- package/dist/components/button/index.js +9 -0
- package/dist/components/calendar/calendar.js +89 -0
- package/dist/components/calendar/calendar.meta.js +136 -0
- package/dist/components/calendar/index.js +7 -0
- package/dist/components/card/card.js +203 -0
- package/dist/components/card/card.meta.js +212 -0
- package/dist/components/card/index.js +23 -0
- package/dist/components/carousel/carousel.js +428 -0
- package/dist/components/carousel/carousel.meta.js +100 -0
- package/dist/components/carousel/index.js +7 -0
- package/dist/components/chat-composer/chat-composer.js +174 -0
- package/dist/components/chat-composer/chat-composer.meta.js +241 -0
- package/dist/components/chat-composer/chat-composer.variants.js +17 -0
- package/dist/components/chat-composer/index.js +7 -0
- package/dist/components/checkbox/checkbox-mark.js +28 -0
- package/dist/components/checkbox/checkbox.js +30 -0
- package/dist/components/checkbox/checkbox.meta.js +127 -0
- package/dist/components/checkbox/index.js +7 -0
- package/dist/components/checkbox-card/checkbox-card.js +94 -0
- package/dist/components/checkbox-card/checkbox-card.meta.js +154 -0
- package/dist/components/checkbox-card/checkbox-card.variants.js +43 -0
- package/dist/components/checkbox-card/index.js +11 -0
- package/dist/components/code/code.js +19 -0
- package/dist/components/code/code.meta.js +71 -0
- package/dist/components/code/index.js +7 -0
- package/dist/components/code-block/code-block.js +84 -0
- package/dist/components/code-block/code-block.meta.js +103 -0
- package/dist/components/code-block/index.js +8 -0
- package/dist/components/collapsible/collapsible.js +38 -0
- package/dist/components/collapsible/collapsible.meta.js +117 -0
- package/dist/components/collapsible/index.js +15 -0
- package/dist/components/color-field/color-field.js +293 -0
- package/dist/components/color-field/color-field.meta.js +142 -0
- package/dist/components/color-field/color.js +69 -0
- package/dist/components/color-field/index.js +15 -0
- package/dist/components/combobox/combobox.js +486 -0
- package/dist/components/combobox/combobox.meta.js +217 -0
- package/dist/components/combobox/index.js +37 -0
- package/dist/components/command-menu/command-menu-trigger.js +122 -0
- package/dist/components/command-menu/command-menu.js +433 -0
- package/dist/components/command-menu/command-menu.meta.js +279 -0
- package/dist/components/command-menu/index.js +21 -0
- package/dist/components/context-card/context-card.js +62 -0
- package/dist/components/context-card/context-card.meta.js +106 -0
- package/dist/components/context-card/index.js +17 -0
- package/dist/components/context-menu/context-menu.js +92 -0
- package/dist/components/context-menu/context-menu.meta.js +138 -0
- package/dist/components/context-menu/index.js +23 -0
- package/dist/components/data-table/data-table.js +142 -0
- package/dist/components/data-table/data-table.meta.js +146 -0
- package/dist/components/data-table/index.js +9 -0
- package/dist/components/date-picker/date-picker.js +196 -0
- package/dist/components/date-picker/date-picker.meta.js +164 -0
- package/dist/components/date-picker/index.js +7 -0
- package/dist/components/date-tile/date-tile.js +29 -0
- package/dist/components/date-tile/date-tile.meta.js +72 -0
- package/dist/components/date-tile/index.js +7 -0
- package/dist/components/destructive-action-modal/destructive-action-modal.js +130 -0
- package/dist/components/destructive-action-modal/destructive-action-modal.meta.js +136 -0
- package/dist/components/destructive-action-modal/index.js +9 -0
- package/dist/components/dialog/dialog.js +207 -0
- package/dist/components/dialog/dialog.meta.js +239 -0
- package/dist/components/dialog/index.js +45 -0
- package/dist/components/disclosure-picker/disclosure-picker.js +417 -0
- package/dist/components/disclosure-picker/disclosure-picker.meta.js +213 -0
- package/dist/components/disclosure-picker/index.js +21 -0
- package/dist/components/empty-state/empty-state.js +52 -0
- package/dist/components/empty-state/empty-state.meta.js +158 -0
- package/dist/components/empty-state/index.js +7 -0
- package/dist/components/entity/entity.js +70 -0
- package/dist/components/entity/entity.meta.js +108 -0
- package/dist/components/entity/entity.variants.js +16 -0
- package/dist/components/entity/index.js +7 -0
- package/dist/components/feedback/feedback.js +93 -0
- package/dist/components/feedback/feedback.meta.js +109 -0
- package/dist/components/feedback/index.js +7 -0
- package/dist/components/fieldset/fieldset.js +80 -0
- package/dist/components/fieldset/fieldset.meta.js +160 -0
- package/dist/components/fieldset/index.js +17 -0
- package/dist/components/file-dropzone/file-dropzone.js +193 -0
- package/dist/components/file-dropzone/file-dropzone.meta.js +210 -0
- package/dist/components/file-dropzone/file-dropzone.variants.js +26 -0
- package/dist/components/file-dropzone/index.js +13 -0
- package/dist/components/font-picker/font-picker.js +77 -0
- package/dist/components/font-picker/font-picker.meta.js +119 -0
- package/dist/components/font-picker/index.js +7 -0
- package/dist/components/form/form.js +145 -0
- package/dist/components/form/form.meta.js +142 -0
- package/dist/components/form/index.js +11 -0
- package/dist/components/gliding-highlight/gliding-highlight.js +50 -0
- package/dist/components/gliding-highlight/gliding-highlight.meta.js +135 -0
- package/dist/components/gliding-highlight/index.js +9 -0
- package/dist/components/gradient-art/gradient-art.js +168 -0
- package/dist/components/gradient-art/gradient-art.meta.js +81 -0
- package/dist/components/gradient-art/index.js +7 -0
- package/dist/components/gradient-art/renderer.js +336 -0
- package/dist/components/inline-status/index.js +7 -0
- package/dist/components/inline-status/inline-status.js +33 -0
- package/dist/components/inline-status/inline-status.meta.js +83 -0
- package/dist/components/inline-status/inline-status.variants.js +18 -0
- package/dist/components/input/index.js +7 -0
- package/dist/components/input/input.js +33 -0
- package/dist/components/input/input.meta.js +155 -0
- package/dist/components/kbd/index.js +8 -0
- package/dist/components/kbd/kbd.js +54 -0
- package/dist/components/kbd/kbd.meta.js +95 -0
- package/dist/components/label/index.js +7 -0
- package/dist/components/label/label.js +51 -0
- package/dist/components/label/label.meta.js +98 -0
- package/dist/components/line-chart/index.js +7 -0
- package/dist/components/line-chart/line-chart.js +10 -0
- package/dist/components/line-chart/line-chart.meta.js +222 -0
- package/dist/components/marker/index.js +7 -0
- package/dist/components/marker/marker.js +39 -0
- package/dist/components/marker/marker.meta.js +132 -0
- package/dist/components/marker/marker.variants.js +25 -0
- package/dist/components/marquee/index.js +7 -0
- package/dist/components/marquee/marquee.js +146 -0
- package/dist/components/marquee/marquee.meta.js +106 -0
- package/dist/components/media-image/index.js +7 -0
- package/dist/components/media-image/media-image.js +56 -0
- package/dist/components/media-image/media-image.meta.js +92 -0
- package/dist/components/media-tile/index.js +7 -0
- package/dist/components/media-tile/media-tile.js +135 -0
- package/dist/components/media-tile/media-tile.meta.js +133 -0
- package/dist/components/media-tile/media-tile.variants.js +48 -0
- package/dist/components/menu/index.js +33 -0
- package/dist/components/menu/menu.js +168 -0
- package/dist/components/menu/menu.meta.js +176 -0
- package/dist/components/message/index.js +7 -0
- package/dist/components/message/message.js +83 -0
- package/dist/components/message/message.meta.js +150 -0
- package/dist/components/message/message.variants.js +41 -0
- package/dist/components/message-scroller/index.js +9 -0
- package/dist/components/message-scroller/message-scroller.js +300 -0
- package/dist/components/message-scroller/message-scroller.meta.js +172 -0
- package/dist/components/meter/index.js +20 -0
- package/dist/components/meter/meter.js +112 -0
- package/dist/components/meter/meter.meta.js +227 -0
- package/dist/components/meter/meter.variants.js +61 -0
- package/dist/components/middle-truncate/index.js +7 -0
- package/dist/components/middle-truncate/middle-truncate.js +28 -0
- package/dist/components/middle-truncate/middle-truncate.meta.js +77 -0
- package/dist/components/note/index.js +9 -0
- package/dist/components/note/note.js +73 -0
- package/dist/components/note/note.meta.js +112 -0
- package/dist/components/note/note.variants.js +22 -0
- package/dist/components/notification-badge/index.js +15 -0
- package/dist/components/notification-badge/notification-badge.js +48 -0
- package/dist/components/notification-badge/notification-badge.meta.js +107 -0
- package/dist/components/notification-badge/notification-badge.variants.js +57 -0
- package/dist/components/number-field/index.js +7 -0
- package/dist/components/number-field/number-field.js +70 -0
- package/dist/components/number-field/number-field.meta.js +109 -0
- package/dist/components/otp-field/index.js +7 -0
- package/dist/components/otp-field/otp-field.js +70 -0
- package/dist/components/otp-field/otp-field.meta.js +197 -0
- package/dist/components/overflow-menu/index.js +7 -0
- package/dist/components/overflow-menu/overflow-menu.js +26 -0
- package/dist/components/overflow-menu/overflow-menu.meta.js +100 -0
- package/dist/components/page-header/index.js +7 -0
- package/dist/components/page-header/page-header.js +34 -0
- package/dist/components/page-header/page-header.meta.js +104 -0
- package/dist/components/page-loader/index.js +7 -0
- package/dist/components/page-loader/page-loader.js +37 -0
- package/dist/components/page-loader/page-loader.meta.js +85 -0
- package/dist/components/pagination/index.js +7 -0
- package/dist/components/pagination/pagination.js +105 -0
- package/dist/components/pagination/pagination.meta.js +141 -0
- package/dist/components/panel-group/index.js +10 -0
- package/dist/components/panel-group/panel-group.js +168 -0
- package/dist/components/panel-group/panel-group.meta.js +153 -0
- package/dist/components/panel-section/index.js +9 -0
- package/dist/components/panel-section/panel-section.js +115 -0
- package/dist/components/panel-section/panel-section.meta.js +156 -0
- package/dist/components/phone/index.js +7 -0
- package/dist/components/phone/phone.js +50 -0
- package/dist/{chunk-KFZ43RKU.js → components/phone/phone.meta.js} +3 -50
- package/dist/{chunk-NEQNXI2G.js → components/phone/status-icons.js} +4 -4
- package/dist/components/pie-chart/index.js +7 -0
- package/dist/components/pie-chart/pie-chart.js +191 -0
- package/dist/components/pie-chart/pie-chart.meta.js +210 -0
- package/dist/components/pill/index.js +9 -0
- package/dist/components/pill/pill.js +24 -0
- package/dist/components/pill/pill.meta.js +108 -0
- package/dist/components/pill/pill.variants.js +65 -0
- package/dist/components/popover/index.js +23 -0
- package/dist/components/popover/popover.js +100 -0
- package/dist/components/popover/popover.meta.js +136 -0
- package/dist/components/progress/index.js +19 -0
- package/dist/components/progress/progress.js +70 -0
- package/dist/components/progress/progress.meta.js +171 -0
- package/dist/components/progress/progress.variants.js +17 -0
- package/dist/components/radar-chart/index.js +7 -0
- package/dist/components/radar-chart/radar-chart.js +161 -0
- package/dist/components/radar-chart/radar-chart.meta.js +204 -0
- package/dist/components/radial-chart/index.js +7 -0
- package/dist/components/radial-chart/radial-chart.js +175 -0
- package/dist/components/radial-chart/radial-chart.meta.js +216 -0
- package/dist/components/radio/index.js +8 -0
- package/dist/components/radio/radio.js +39 -0
- package/dist/components/radio/radio.meta.js +104 -0
- package/dist/components/radio-card/index.js +7 -0
- package/dist/components/radio-card/radio-card.js +81 -0
- package/dist/components/radio-card/radio-card.meta.js +144 -0
- package/dist/components/radio-card/radio-card.variants.js +43 -0
- package/dist/components/relative-time/index.js +7 -0
- package/dist/components/relative-time/relative-time.js +47 -0
- package/dist/components/relative-time/relative-time.meta.js +77 -0
- package/dist/components/scroller/index.js +7 -0
- package/dist/components/scroller/scroller.js +111 -0
- package/dist/components/scroller/scroller.meta.js +118 -0
- package/dist/components/scrub-field/index.js +7 -0
- package/dist/components/scrub-field/scrub-field.js +124 -0
- package/dist/components/scrub-field/scrub-field.meta.js +139 -0
- package/dist/components/search-input/index.js +7 -0
- package/dist/components/search-input/search-input.js +91 -0
- package/dist/components/search-input/search-input.meta.js +129 -0
- package/dist/components/section-header/index.js +7 -0
- package/dist/components/section-header/section-header.js +39 -0
- package/dist/components/section-header/section-header.meta.js +174 -0
- package/dist/components/segmented-bar/index.js +14 -0
- package/dist/components/segmented-bar/segmented-bar.js +26 -0
- package/dist/components/segmented-bar/segmented-bar.meta.js +108 -0
- package/dist/components/segmented-bar/segmented-bar.variants.js +39 -0
- package/dist/components/select/index.js +25 -0
- package/dist/components/select/select.js +191 -0
- package/dist/components/select/select.meta.js +189 -0
- package/dist/components/separator/index.js +7 -0
- package/dist/components/separator/separator.js +42 -0
- package/dist/components/separator/separator.meta.js +84 -0
- package/dist/components/settings-menu/index.js +11 -0
- package/dist/components/settings-menu/settings-menu.js +101 -0
- package/dist/components/settings-menu/settings-menu.meta.js +177 -0
- package/dist/components/settings-menu/settings-menu.variants.js +15 -0
- package/dist/components/sheet/index.js +29 -0
- package/dist/components/sheet/sheet.js +121 -0
- package/dist/components/sheet/sheet.meta.js +167 -0
- package/dist/components/sheet/sheet.variants.js +21 -0
- package/dist/components/show-more/index.js +7 -0
- package/dist/components/show-more/show-more.js +87 -0
- package/dist/components/show-more/show-more.meta.js +79 -0
- package/dist/components/side-nav/index.js +13 -0
- package/dist/components/side-nav/side-nav.js +75 -0
- package/dist/components/side-nav/side-nav.meta.js +139 -0
- package/dist/components/side-nav/side-nav.variants.js +34 -0
- package/dist/components/sidebar/index.js +21 -0
- package/dist/components/sidebar/sidebar.js +196 -0
- package/dist/components/sidebar/sidebar.meta.js +118 -0
- package/dist/components/skeleton/index.js +7 -0
- package/dist/components/skeleton/skeleton.js +16 -0
- package/dist/components/skeleton/skeleton.meta.js +90 -0
- package/dist/components/slider/index.js +21 -0
- package/dist/components/slider/slider.js +115 -0
- package/dist/components/slider/slider.meta.js +214 -0
- package/dist/components/sparkline/index.js +7 -0
- package/dist/components/sparkline/sparkline.js +84 -0
- package/dist/components/sparkline/sparkline.meta.js +147 -0
- package/dist/components/spinner/index.js +7 -0
- package/dist/components/spinner/spinner.js +59 -0
- package/dist/components/spinner/spinner.meta.js +118 -0
- package/dist/components/status-bar/index.js +9 -0
- package/dist/components/status-bar/status-bar.js +40 -0
- package/dist/components/status-bar/status-bar.meta.js +117 -0
- package/dist/components/status-dot/index.js +9 -0
- package/dist/components/status-dot/status-dot.js +40 -0
- package/dist/components/status-dot/status-dot.meta.js +113 -0
- package/dist/components/status-dot/status-dot.variants.js +28 -0
- package/dist/components/stepper/index.js +17 -0
- package/dist/components/stepper/stepper.js +161 -0
- package/dist/components/stepper/stepper.meta.js +190 -0
- package/dist/components/stepper/stepper.variants.js +72 -0
- package/dist/components/streaming-text/index.js +7 -0
- package/dist/components/streaming-text/streaming-text.js +55 -0
- package/dist/components/streaming-text/streaming-text.meta.js +147 -0
- package/dist/components/switch/index.js +7 -0
- package/dist/components/switch/switch.js +26 -0
- package/dist/components/switch/switch.meta.js +133 -0
- package/dist/components/table/index.js +23 -0
- package/dist/components/table/table.js +117 -0
- package/dist/components/table/table.meta.js +143 -0
- package/dist/components/tabs/index.js +17 -0
- package/dist/components/tabs/tabs.js +58 -0
- package/dist/components/tabs/tabs.meta.js +120 -0
- package/dist/components/textarea/index.js +7 -0
- package/dist/components/textarea/textarea.js +38 -0
- package/dist/components/textarea/textarea.meta.js +117 -0
- package/dist/components/theme-selector/index.js +11 -0
- package/dist/components/theme-selector/theme-selector.js +145 -0
- package/dist/components/theme-selector/theme-selector.meta.js +181 -0
- package/dist/components/theme-switcher/index.js +7 -0
- package/dist/components/theme-switcher/theme-switcher.js +106 -0
- package/dist/components/theme-switcher/theme-switcher.meta.js +99 -0
- package/dist/components/thinking-orb/index.js +9 -0
- package/dist/components/thinking-orb/thinking-orb.js +126 -0
- package/dist/components/thinking-orb/thinking-orb.meta.js +142 -0
- package/dist/components/thinking-orb/thinking-orb.render.js +252 -0
- package/dist/components/toast/index.js +29 -0
- package/dist/components/toast/toast.js +254 -0
- package/dist/components/toast/toast.meta.js +261 -0
- package/dist/components/toggle/index.js +13 -0
- package/dist/components/toggle/toggle.js +51 -0
- package/dist/components/toggle/toggle.meta.js +129 -0
- package/dist/components/toolbar/index.js +27 -0
- package/dist/components/toolbar/toolbar.js +80 -0
- package/dist/components/toolbar/toolbar.meta.js +272 -0
- package/dist/components/toolbar/toolbar.variants.js +16 -0
- package/dist/components/tooltip/index.js +21 -0
- package/dist/components/tooltip/tooltip.js +74 -0
- package/dist/components/tooltip/tooltip.meta.js +156 -0
- package/dist/components/tree/index.js +12 -0
- package/dist/components/tree/tree.js +364 -0
- package/dist/components/tree/tree.meta.js +334 -0
- package/dist/components/video/index.js +7 -0
- package/dist/components/video/video.js +59 -0
- package/dist/components/video/video.meta.js +81 -0
- package/dist/components/workspace/index.js +9 -0
- package/dist/components/workspace/workspace.js +79 -0
- package/dist/components/workspace/workspace.meta.js +183 -0
- package/dist/foundations/accessibility.js +107 -0
- package/dist/foundations/index.js +25 -792
- package/dist/foundations/motion.js +135 -0
- package/dist/foundations/scrolling.js +62 -0
- package/dist/foundations/shape.js +113 -0
- package/dist/foundations/spacing.js +121 -0
- package/dist/foundations/surfaces.js +107 -0
- package/dist/foundations/types.js +0 -0
- package/dist/foundations/typography.js +152 -0
- package/dist/icon/Icon.js +30 -0
- package/dist/icon/IconProvider.js +27 -0
- package/dist/icon/compose.js +13 -0
- package/dist/icon/index.d.ts +13 -5
- package/dist/icon/index.js +13 -2
- package/dist/icon/registry.js +0 -0
- package/dist/icon-sets/brands.generated.js +123 -0
- package/dist/icon-sets/brands.js +10 -123
- package/dist/icon-sets/reicon.d.ts +3 -1
- package/dist/icon-sets/reicon.js +209 -1
- package/dist/index.d.ts +618 -34
- package/dist/index.js +211 -11351
- package/dist/ios/chrome.js +36 -0
- package/dist/ios/index.js +19 -315
- package/dist/ios/liquid-glass.js +103 -0
- package/dist/ios/native-app.js +46 -0
- package/dist/ios/navigation.js +63 -0
- package/dist/ios/phone-frame.js +64 -0
- package/dist/ios/preview-theme.js +83 -0
- package/dist/ios/preview.js +10 -137
- package/dist/ios/sheet.js +85 -0
- package/dist/ios/theme.js +19 -0
- package/dist/layout/AspectBox.js +27 -0
- package/dist/layout/Bleed.js +15 -0
- package/dist/layout/Center.js +21 -0
- package/dist/layout/Columns.js +70 -0
- package/dist/layout/Grid.js +50 -0
- package/dist/layout/GridOverlay.js +41 -0
- package/dist/layout/Page.js +11 -0
- package/dist/layout/Region.js +39 -0
- package/dist/layout/Row.js +45 -0
- package/dist/layout/SafeArea.js +26 -0
- package/dist/layout/Spacer.js +9 -0
- package/dist/layout/SplitPane.js +55 -0
- package/dist/layout/Stack.js +42 -0
- package/dist/layout/_responsive.js +16 -0
- package/dist/layout/_safeArea.js +18 -0
- package/dist/layout/index.d.ts +30 -8
- package/dist/layout/index.js +14 -2
- package/dist/lib/anchored-scroll.js +7 -0
- package/dist/lib/bleed.js +7 -0
- package/dist/lib/chart/cartesian.js +365 -0
- package/dist/lib/chart/chart-frame.js +163 -0
- package/dist/lib/chart/chart-legend.js +13 -0
- package/dist/lib/chart/chart-tooltip.js +38 -0
- package/dist/lib/chart/format.js +24 -0
- package/dist/lib/chart/geometry.js +114 -0
- package/dist/lib/chart/motion.js +34 -0
- package/dist/lib/chart/scale.js +72 -0
- package/dist/lib/chart/types.js +45 -0
- package/dist/lib/chart/use-arrival.js +41 -0
- package/dist/{chunk-SRQWQUTW.js → lib/cn.js} +5 -5
- package/dist/lib/component-guidance.js +215 -0
- package/dist/lib/density.js +54 -0
- package/dist/lib/field-shell.js +11 -0
- package/dist/lib/glyphs.js +9 -0
- package/dist/lib/heading-row.js +36 -0
- package/dist/lib/highlight-glide.js +84 -0
- package/dist/lib/hit-target.js +5 -0
- package/dist/lib/meta.js +0 -0
- package/dist/lib/portal-theme-scope.js +74 -0
- package/dist/{chunk-FKZXAFIY.js → lib/presentation.js} +8 -3
- package/dist/lib/refs.js +14 -0
- package/dist/lib/scrub-gesture.js +50 -0
- package/dist/lib/segmented.js +13 -0
- package/dist/lib/selection-card.js +41 -0
- package/dist/lib/status-tone.js +13 -0
- package/dist/lib/taxonomy.js +214 -0
- package/dist/lib/trim-label.js +20 -0
- package/dist/lib/use-copy.js +27 -0
- package/dist/lib/use-edge-fade.js +32 -0
- package/dist/lib/use-isomorphic-layout-effect.js +8 -0
- package/dist/lib/use-resize-observer.js +18 -0
- package/dist/lib/use-scroll-activity.js +52 -0
- package/dist/lib/use-wheel-to-horizontal.js +65 -0
- package/dist/motion/MotionProvider.js +75 -0
- package/dist/motion/Presence.js +112 -0
- package/dist/motion/Reveal.js +42 -0
- package/dist/motion/TextReveal.js +61 -0
- package/dist/motion/index.js +24 -0
- package/dist/motion/useInView.js +36 -0
- package/dist/motion/useReducedMotion.js +25 -0
- package/dist/motion/viewTransition.js +47 -0
- package/dist/patterns/auth-page.js +90 -0
- package/dist/patterns/auth-page.meta.js +27 -0
- package/dist/patterns/brand-landing-page.js +341 -0
- package/dist/patterns/brand-landing-page.meta.js +28 -0
- package/dist/patterns/chat-panel.js +185 -0
- package/dist/patterns/chat-panel.meta.js +31 -0
- package/dist/patterns/dashboard-page.js +332 -0
- package/dist/patterns/dashboard-page.meta.js +29 -0
- package/dist/patterns/feed-page.js +205 -0
- package/dist/patterns/feed-page.meta.js +25 -0
- package/dist/patterns/index.js +34 -2140
- package/dist/patterns/landing-page.js +356 -0
- package/dist/patterns/landing-page.meta.js +26 -0
- package/dist/patterns/list-detail-page.js +373 -0
- package/dist/patterns/list-detail-page.meta.js +24 -0
- package/dist/patterns/settings-page.js +268 -0
- package/dist/patterns/settings-page.meta.js +27 -0
- package/dist/presets/index.d.ts +7 -1
- package/dist/presets/index.js +53 -185
- package/dist/styles.css +118 -3
- package/dist/{theme-provider-kQszHYji.d.ts → theme-provider-S0NVJs2Y.d.ts} +6 -1
- package/dist/{chunk-NETUFI34.js → themes/_contract.js} +14 -2
- package/dist/themes/atelier/index.js +17 -1
- package/dist/themes/contrast.js +288 -0
- package/dist/themes/ember/ember.css +6 -6
- package/dist/themes/ember/index.js +16 -1
- package/dist/themes/index.d.ts +1 -1
- package/dist/themes/index.js +3 -8
- package/dist/themes/meridian/index.js +16 -1
- package/dist/themes/poppy/index.js +17 -1
- package/dist/themes/prism/index.js +17 -1
- package/dist/themes/prism/prism.css +2 -2
- package/dist/themes/registry.js +59 -0
- package/dist/themes/sable/index.js +16 -1
- package/dist/{chunk-EFLC4NA3.js → themes/theme-provider.js} +38 -54
- package/dist/themes/verdant/index.js +17 -1
- package/llms/blocks/media-player-block.md +20 -7
- package/llms/blocks/product-card-block.md +6 -4
- package/llms/blocks/task-list-block.md +1 -1
- package/llms/blocks/traffic-sources-block.md +1 -1
- package/llms/blocks/traffic-trend-block.md +5 -3
- package/llms/blocks/verify-code-block.md +1 -1
- package/llms/components/app-shell.md +5 -2
- package/llms/components/avatar.md +25 -3
- package/llms/components/button.md +20 -1
- package/llms/components/card.md +1 -1
- package/llms/components/disclosure-picker.md +168 -0
- package/llms/components/font-picker.md +104 -0
- package/llms/components/media-image.md +98 -0
- package/llms/components/media-tile.md +143 -0
- package/llms/components/page-header.md +6 -5
- package/llms/components/pie-chart.md +2 -2
- package/llms/components/radial-chart.md +1 -1
- package/llms/components/section-header.md +144 -0
- package/llms/components/sheet.md +10 -0
- package/llms/components/sidebar.md +4 -3
- package/llms/components/slider.md +14 -2
- package/llms/components/theme-selector.md +44 -4
- package/llms/components/tree.md +3 -3
- package/llms/layout/grid.md +24 -3
- package/llms/layout/region.md +16 -3
- package/llms/patterns/dashboard-page.md +3 -6
- package/llms/patterns/feed-page.md +4 -4
- package/llms/patterns/list-detail-page.md +1 -0
- package/llms/patterns/settings-page.md +2 -5
- package/llms/reference/utilities.md +84 -4
- package/llms/tasks/building-a-page.md +34 -3
- package/llms/tasks/converting-an-app.md +14 -4
- package/llms/tasks/creating-a-preset.md +4 -1
- package/llms/tasks/reviewing-a-design.md +19 -0
- package/llms/tasks/using-presets.md +19 -0
- package/llms-full.txt +1066 -78
- package/llms.txt +26 -9
- package/package.json +1 -1
- package/registry.json +2342 -164
- package/scripts/agent-setup.mjs +90 -0
- package/scripts/design-presets.mjs +59 -6
- package/scripts/grade.mjs +195 -29
- package/scripts/lint-rules.mjs +486 -10
- package/scripts/review-evidence.mjs +28 -1
- package/skills/sable/SKILL.md +67 -24
- package/targets/ios.json +45 -0
- package/dist/chunk-3IWZYBGH.js +0 -398
- package/dist/chunk-7MG4SHYX.js +0 -15
- package/dist/chunk-7QSDYBXO.js +0 -7421
- package/dist/chunk-ADLLDWLW.js +0 -15
- package/dist/chunk-C4Z3CF54.js +0 -15
- package/dist/chunk-EDXLM7YL.js +0 -5078
- package/dist/chunk-EHH4MHO6.js +0 -14
- package/dist/chunk-K7RUHUGC.js +0 -14
- package/dist/chunk-KO3NAEBF.js +0 -15
- package/dist/chunk-L4IEIQQA.js +0 -14
- package/dist/chunk-QJ6FWTUG.js +0 -40
- package/dist/chunk-VVW4UCDI.js +0 -4908
- package/dist/chunk-XAZGMY73.js +0 -187
package/dist/index.d.ts
CHANGED
|
@@ -3,11 +3,10 @@ import { C as ComponentMeta } from './meta-CcE_SeFu.js';
|
|
|
3
3
|
export { A as AnatomyMeta, a as BestPracticeMeta, E as ExampleMeta, M as MotionMeta, b as MotionSlot, c as PropMeta, R as RelatedMeta, S as SubcomponentMeta, U as UsageMeta } from './meta-CcE_SeFu.js';
|
|
4
4
|
import { T as ThemeManifest, a as ThemeMode$1 } from './_contract-C2M1SjBf.js';
|
|
5
5
|
export { A as ART_TOKENS, D as DENSITY_TOKENS, b as DensityToken, M as MOTION_TOKENS, c as MotionToken, R as RADIUS_TOKENS, d as RadiusToken, S as SEMANTIC_TOKENS, e as SemanticToken, f as TYPE_OVERLINE_TOKENS, g as TYPE_REFINEMENT_TOKENS, h as TYPE_SCALE_TOKENS, i as TYPE_UI_TOKENS, j as TypeOverlineToken, k as TypeRefinementToken, l as TypeScaleToken, m as TypeUiToken, W as WORKSPACE_SURFACE_TOKENS, n as WorkspaceSurfaceToken } from './_contract-C2M1SjBf.js';
|
|
6
|
-
import { T as ThemeId } from './theme-provider-
|
|
7
|
-
export { D as DEFAULT_THEME_ID, S as SABLE_COLOR_STORAGE_KEY, a as SABLE_THEME_ATTRIBUTE, b as SABLE_THEME_STORAGE_KEY, c as SableColorMode, d as SableThemeContextValue, e as SableThemePreference, f as SableThemeProvider, g as SableThemeProviderProps, h as applySableColorMode, i as applySableTheme, k as defaultThemeId, m as getThemeManifest, o as isThemeId, t as themeIds, p as themeManifestById, q as themeManifests, u as useSableTheme } from './theme-provider-
|
|
6
|
+
import { T as ThemeId } from './theme-provider-S0NVJs2Y.js';
|
|
7
|
+
export { D as DEFAULT_THEME_ID, S as SABLE_COLOR_STORAGE_KEY, a as SABLE_THEME_ATTRIBUTE, b as SABLE_THEME_STORAGE_KEY, c as SableColorMode, d as SableThemeContextValue, e as SableThemePreference, f as SableThemeProvider, g as SableThemeProviderProps, h as applySableColorMode, i as applySableTheme, k as defaultThemeId, m as getThemeManifest, o as isThemeId, t as themeIds, p as themeManifestById, q as themeManifests, u as useSableTheme } from './theme-provider-S0NVJs2Y.js';
|
|
8
8
|
export { AspectBox, AspectBoxProps, Bleed, BleedProps, Breakpoint, Center, CenterProps, Col, ColProps, Columns, ColumnsProps, Grid, GridOverlay, GridOverlayProps, GridProps, Page, PageProps, Region, RegionMax, RegionProps, Responsive, Row, RowProps, SafeArea, SafeAreaProps, Spacer, SpacerProps, SplitPane, SplitPaneProps, Stack, StackProps } from './layout/index.js';
|
|
9
9
|
export { Icon, IconContextValue, IconProps, IconProvider, IconProviderProps, composeIconSets, useIconSet } from './icon/index.js';
|
|
10
|
-
export { reiconIconSet as fallbackIconSet, reiconIconNames, reiconIconSet } from './icon-sets/reicon.js';
|
|
11
10
|
export { a as IconRenderProps, I as IconSet, b as IconVariant } from './registry-CyL28OzJ.js';
|
|
12
11
|
import * as react from 'react';
|
|
13
12
|
import { ReactNode, ComponentPropsWithoutRef, ElementType, ReactElement, Ref, ComponentPropsWithRef, ComponentProps } from 'react';
|
|
@@ -383,13 +382,33 @@ interface ButtonProps extends ComponentPropsWithRef<"button">, VariantProps<type
|
|
|
383
382
|
* so callers never hand-position one with absolute offsets.
|
|
384
383
|
*/
|
|
385
384
|
badge?: ReactNode;
|
|
385
|
+
/**
|
|
386
|
+
* Optical alignment for a borderless button: pull the box outward on that
|
|
387
|
+
* inline side by exactly its own padding (`--button-px`, less the icon-side
|
|
388
|
+
* step when an icon sits there; an icon-only size bleeds by its inset to the
|
|
389
|
+
* glyph), so the LABEL lines up with the content edge the row shares — the
|
|
390
|
+
* grid under a SectionHeader, a card's padding. The hit area and the hover
|
|
391
|
+
* and focus fill keep their full size; on hover the fill runs past the edge.
|
|
392
|
+
* Logical sides, so it mirrors in RTL.
|
|
393
|
+
*
|
|
394
|
+
* Only the borderless variants bleed — `ghost`, `link`, `on-color-ghost`.
|
|
395
|
+
* On a variant with a visible edge (primary, secondary, outline, destructive,
|
|
396
|
+
* floating, field, on-color, on-color-outline) it does nothing: a filled
|
|
397
|
+
* button aligns its EDGE, not its label.
|
|
398
|
+
*
|
|
399
|
+
* Left unset, a borderless button bleeds when its container asks —
|
|
400
|
+
* SectionHeader, PageHeader and CardAction align their outermost ghost or
|
|
401
|
+
* link action this way. `none` opts out of that.
|
|
402
|
+
*/
|
|
403
|
+
bleed?: ButtonBleed;
|
|
386
404
|
}
|
|
405
|
+
type ButtonBleed = "start" | "end" | "both" | "none";
|
|
387
406
|
/**
|
|
388
407
|
* The primary action primitive. Pill-shaped by default; one `primary` per screen.
|
|
389
408
|
* Corner radius is theme-driven via `--button-radius` (falls back to full pill) —
|
|
390
409
|
* see `button.variants.ts`.
|
|
391
410
|
*/
|
|
392
|
-
declare function Button({ variant, size, className, render, ref, type, loading, loadingLabel, iconStart, iconEnd, badge, disabled, children, ...props }: ButtonProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
411
|
+
declare function Button({ variant, size, className, render, ref, type, loading, loadingLabel, iconStart, iconEnd, badge, bleed, disabled, children, ...props }: ButtonProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
393
412
|
declare namespace Button {
|
|
394
413
|
var displayName: string;
|
|
395
414
|
}
|
|
@@ -425,6 +444,11 @@ declare function CardHeader({ className, ...props }: ComponentPropsWithRef<"div"
|
|
|
425
444
|
/**
|
|
426
445
|
* Header-aligned action slot — pins to the top-right of CardHeader (e.g. an
|
|
427
446
|
* overflow menu, close button, or switch). Place as a child of CardHeader.
|
|
447
|
+
*
|
|
448
|
+
* A ghost or link Button that ends the slot bleeds by its padding at the end
|
|
449
|
+
* (lib/bleed.ts), so a "View all" label or a "⋯" glyph lines up with the card's
|
|
450
|
+
* content edge instead of sitting one padding inside it. Filled buttons keep
|
|
451
|
+
* their edge on the line.
|
|
428
452
|
*/
|
|
429
453
|
declare function CardAction({ className, ...props }: ComponentPropsWithRef<"div">): react.JSX.Element;
|
|
430
454
|
/** Title tier — a UI primitive title, not a document heading. */
|
|
@@ -529,7 +553,7 @@ declare const BADGE_APPEARANCES: readonly ["soft", "outline", "solid", "overlay"
|
|
|
529
553
|
type BadgeAppearance = (typeof BADGE_APPEARANCES)[number];
|
|
530
554
|
declare const badgeVariants: (props?: ({
|
|
531
555
|
appearance?: "overlay" | "outline" | "solid" | "soft" | "plain" | null | undefined;
|
|
532
|
-
tone?: "destructive" | "success" | "
|
|
556
|
+
tone?: "destructive" | "success" | "neutral" | "standard" | "warning" | "info" | "edition" | "collectible" | null | undefined;
|
|
533
557
|
size?: "sm" | "md" | null | undefined;
|
|
534
558
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
535
559
|
|
|
@@ -830,9 +854,9 @@ type OtpNamespace<T> = T extends {
|
|
|
830
854
|
} ? Parts : T extends {
|
|
831
855
|
OTPFieldPreview: infer Parts;
|
|
832
856
|
} ? Parts : never;
|
|
833
|
-
|
|
857
|
+
type OtpBase = OtpNamespace<typeof OtpParts>;
|
|
834
858
|
|
|
835
|
-
type BaseRootProps = ComponentProps<
|
|
859
|
+
type BaseRootProps = ComponentProps<OtpBase["Root"]>;
|
|
836
860
|
type OtpFieldProps = Omit<BaseRootProps, "className" | "render" | "length" | "children"> & {
|
|
837
861
|
className?: string;
|
|
838
862
|
/**
|
|
@@ -1191,11 +1215,18 @@ declare const tooltipMeta: ComponentMeta;
|
|
|
1191
1215
|
* Avatar root — a circular, fixed-size frame that clips its image. The only axis
|
|
1192
1216
|
* is `size`, which sets the square footprint; the image and fallback inherit it.
|
|
1193
1217
|
* `bg-muted` is the resting surface shown behind a loading or missing image.
|
|
1194
|
-
* Each size also sets the
|
|
1195
|
-
*
|
|
1218
|
+
* Each size also sets the tier its initials (and a group's "+N") take, so the
|
|
1219
|
+
* initials grow with the circle instead of one 12px label at every size. They
|
|
1220
|
+
* hold roughly 30% of the diameter all the way up: the label tiers cover the
|
|
1221
|
+
* row sizes; past them the initials are a mark standing in for a face — type
|
|
1222
|
+
* as image — so the portrait sizes borrow heading-2 (28px in 96) and display-lg
|
|
1223
|
+
* (48px in 160), the tiers built to be read as a shape at that size.
|
|
1224
|
+
*
|
|
1225
|
+
* `xl` and `2xl` are portrait sizes — a profile header, an artist hero, a
|
|
1226
|
+
* roster tile — not row sizes, so AvatarGroup stops at `lg`.
|
|
1196
1227
|
*/
|
|
1197
1228
|
declare const avatarVariants: (props?: ({
|
|
1198
|
-
size?: "sm" | "md" | "lg" | null | undefined;
|
|
1229
|
+
size?: "sm" | "md" | "lg" | "xl" | "2xl" | null | undefined;
|
|
1199
1230
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1200
1231
|
/**
|
|
1201
1232
|
* AvatarGroup — an overlapping stack. Each child is pulled left by about an
|
|
@@ -1228,7 +1259,8 @@ declare const avatarGroupVariants: (props?: ({
|
|
|
1228
1259
|
type RootProps$4 = Omit<ComponentProps<typeof Avatar$1.Root>, "className"> & VariantProps<typeof avatarVariants> & {
|
|
1229
1260
|
className?: string;
|
|
1230
1261
|
};
|
|
1231
|
-
|
|
1262
|
+
/** The row sizes. `xl`/`2xl` are portraits, which are never stacked. */
|
|
1263
|
+
type AvatarGroupSize = NonNullable<VariantProps<typeof avatarGroupVariants>["size"]>;
|
|
1232
1264
|
/** The circular frame. Clips the image; holds the `size` axis. */
|
|
1233
1265
|
declare function AvatarRoot({ size, className, ...props }: RootProps$4): react.JSX.Element;
|
|
1234
1266
|
declare namespace AvatarRoot {
|
|
@@ -1305,8 +1337,12 @@ declare namespace AvatarGroupCount {
|
|
|
1305
1337
|
var displayName: string;
|
|
1306
1338
|
}
|
|
1307
1339
|
interface AvatarGroupProps extends Omit<ComponentProps<"div">, "className"> {
|
|
1308
|
-
/**
|
|
1309
|
-
|
|
1340
|
+
/**
|
|
1341
|
+
* Size of every avatar in the group: 32px / 40px / 48px. Overrides each
|
|
1342
|
+
* child's own size. The portrait sizes (`xl`, `2xl`) are not offered: a
|
|
1343
|
+
* stack is a row-sized summary of people, never a set of portraits.
|
|
1344
|
+
*/
|
|
1345
|
+
size?: AvatarGroupSize;
|
|
1310
1346
|
/**
|
|
1311
1347
|
* The surface the group sits on, so the separating ring matches it. Omit to
|
|
1312
1348
|
* inherit `--avatar-group-ring` from an ancestor (falling back to the page
|
|
@@ -1764,7 +1800,7 @@ declare namespace MeterValue {
|
|
|
1764
1800
|
* the call site from thresholds you own; the component does not guess them.
|
|
1765
1801
|
*/
|
|
1766
1802
|
declare const meterIndicatorVariants: (props?: ({
|
|
1767
|
-
tone?: "primary" | "destructive" | "success" | "
|
|
1803
|
+
tone?: "primary" | "destructive" | "success" | "standard" | "warning" | null | undefined;
|
|
1768
1804
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1769
1805
|
/**
|
|
1770
1806
|
* Bar thickness, per size. Shared with Progress (`progressTrackVariants`): a
|
|
@@ -1784,7 +1820,7 @@ declare const meterMeta: ComponentMeta;
|
|
|
1784
1820
|
* failed).
|
|
1785
1821
|
*/
|
|
1786
1822
|
declare const segmentedBarSegmentVariants: (props?: ({
|
|
1787
|
-
tone?: "primary" | "destructive" | "success" | "
|
|
1823
|
+
tone?: "primary" | "destructive" | "success" | "neutral" | "standard" | "warning" | "info" | "edition" | "collectible" | null | undefined;
|
|
1788
1824
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1789
1825
|
/** Bar thickness — the same three rails as Meter and Progress. */
|
|
1790
1826
|
declare const segmentedBarVariants: (props?: ({
|
|
@@ -1890,7 +1926,11 @@ type ChartCategories = Record<string, {
|
|
|
1890
1926
|
}>;
|
|
1891
1927
|
/** A big number with a caption in the middle of a donut or radial chart. */
|
|
1892
1928
|
interface ChartCenterLabel {
|
|
1893
|
-
|
|
1929
|
+
/**
|
|
1930
|
+
* The number. Pass a number to have it formatted: in full up to 9,999,
|
|
1931
|
+
* compact from 10,000 ("10.2K"). Pass a string for units or your own wording.
|
|
1932
|
+
*/
|
|
1933
|
+
value: string | number;
|
|
1894
1934
|
label?: string;
|
|
1895
1935
|
}
|
|
1896
1936
|
/** How the tooltip marks each row. */
|
|
@@ -2817,6 +2857,20 @@ type DescriptionProps$1 = Omit<ComponentProps<typeof Drawer.Description>, "class
|
|
|
2817
2857
|
declare function SheetDescription({ className, ...props }: DescriptionProps$1): react.JSX.Element;
|
|
2818
2858
|
/** Stacked title + description block, pinned to the top of the sheet. */
|
|
2819
2859
|
declare function SheetHeader({ className, ...props }: ComponentProps<"div">): react.JSX.Element;
|
|
2860
|
+
/**
|
|
2861
|
+
* Rows that run edge to edge in the sheet — Entity rows, most often: a queue,
|
|
2862
|
+
* notifications, a picker. The list bleeds through the sheet's padding and
|
|
2863
|
+
* hands it back to each row (`--entity-px` from `--sheet-p`), so a row's
|
|
2864
|
+
* avatar and text line up with SheetHeader while its hover fill reaches the
|
|
2865
|
+
* panel's edges. Without it, Entity's own inset stacks on the sheet's and the
|
|
2866
|
+
* rows sit 12px in from the header. The Sheet equivalent of CardList.
|
|
2867
|
+
*
|
|
2868
|
+
* <SheetContent>
|
|
2869
|
+
* <SheetHeader><SheetTitle>Up next</SheetTitle></SheetHeader>
|
|
2870
|
+
* <SheetList>{queue.map((t) => <Entity key={t.id} title={t.title} … />)}</SheetList>
|
|
2871
|
+
* </SheetContent>
|
|
2872
|
+
*/
|
|
2873
|
+
declare function SheetList({ className, ...props }: ComponentProps<"div">): react.JSX.Element;
|
|
2820
2874
|
/**
|
|
2821
2875
|
* Action row, pushed to the bottom edge of the sheet via mt-auto. In a bottom
|
|
2822
2876
|
* sheet it stacks: full width, the primary (last, on a page) on top, capped at
|
|
@@ -2847,7 +2901,18 @@ declare function TableFooter({ className, ...props }: ComponentPropsWithRef<"tfo
|
|
|
2847
2901
|
declare namespace TableFooter {
|
|
2848
2902
|
var displayName: string;
|
|
2849
2903
|
}
|
|
2850
|
-
/**
|
|
2904
|
+
/**
|
|
2905
|
+
* A table row. Body rows hover-lift; header and footer rows stay still, since
|
|
2906
|
+
* nothing there responds to a click on the row. Mark the selected row with
|
|
2907
|
+
* `data-selected`.
|
|
2908
|
+
*
|
|
2909
|
+
* The selected fill is painted by the cells, each spilling 1px into the next
|
|
2910
|
+
* (a box-shadow, so layout does not move). A row's own background is painted
|
|
2911
|
+
* per cell at fractional widths, and a dogfood build saw 1px dark seams at
|
|
2912
|
+
* cell boundaries on the selected row, the one users look at most. The spill
|
|
2913
|
+
* covers any such gap; the fill is opaque in every theme, so the overlap does
|
|
2914
|
+
* not show. Hover stays on the row: it is translucent, where an overlap would.
|
|
2915
|
+
*/
|
|
2851
2916
|
declare function TableRow({ className, ...props }: ComponentPropsWithRef<"tr">): react.JSX.Element;
|
|
2852
2917
|
declare namespace TableRow {
|
|
2853
2918
|
var displayName: string;
|
|
@@ -3052,7 +3117,7 @@ declare const notificationBadgeMeta: ComponentMeta;
|
|
|
3052
3117
|
* rounded-full and shrink-0 so it holds its shape inline next to text.
|
|
3053
3118
|
*/
|
|
3054
3119
|
declare const statusDotVariants: (props?: ({
|
|
3055
|
-
tone?: "destructive" | "success" | "
|
|
3120
|
+
tone?: "destructive" | "success" | "neutral" | "standard" | "warning" | "info" | "edition" | "collectible" | null | undefined;
|
|
3056
3121
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
3057
3122
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3058
3123
|
|
|
@@ -3565,6 +3630,20 @@ declare function SliderThumb({ className, children, ...props }: ThumbProps): rea
|
|
|
3565
3630
|
type SliderValueType = number | readonly number[];
|
|
3566
3631
|
type SliderProps<Value extends SliderValueType> = Omit<ComponentProps<typeof Slider$1.Root>, "className" | "value" | "defaultValue" | "onValueChange" | "render"> & {
|
|
3567
3632
|
className?: string;
|
|
3633
|
+
/**
|
|
3634
|
+
* Names each thumb's input — the element with role=slider. Base UI would put
|
|
3635
|
+
* it on the Root's role=group, leaving the slider itself unnamed. A range
|
|
3636
|
+
* keeps it on the group too, so the pair is named as well.
|
|
3637
|
+
*/
|
|
3638
|
+
"aria-label"?: string;
|
|
3639
|
+
/** Per-thumb name for a range: `(index) => index ? "Maximum price" : "Minimum price"`. Wins over aria-label on the thumbs. */
|
|
3640
|
+
getAriaLabel?: ThumbProps["getAriaLabel"];
|
|
3641
|
+
/**
|
|
3642
|
+
* What a screen reader announces for the value, when the number alone is
|
|
3643
|
+
* wrong: `(formatted, value) => toTime(value) + " of " + toTime(duration)`.
|
|
3644
|
+
* For units or percent, the Root's `format` (Intl.NumberFormatOptions) is enough.
|
|
3645
|
+
*/
|
|
3646
|
+
getAriaValueText?: ThumbProps["getAriaValueText"];
|
|
3568
3647
|
/** Controlled value. Pass an array for a range slider (one thumb per entry). */
|
|
3569
3648
|
value?: Value;
|
|
3570
3649
|
/** Uncontrolled initial value. Pass an array for a range slider. */
|
|
@@ -3576,9 +3655,10 @@ type SliderProps<Value extends SliderValueType> = Omit<ComponentProps<typeof Sli
|
|
|
3576
3655
|
* The all-in-one Slider: Root + Control + Track + Indicator + Thumb(s).
|
|
3577
3656
|
* Renders a single thumb for a scalar value, or one thumb per entry when the
|
|
3578
3657
|
* value is an array (range slider). Forwards value / defaultValue /
|
|
3579
|
-
* onValueChange / min / max / step (and the rest of the Root props)
|
|
3658
|
+
* onValueChange / min / max / step (and the rest of the Root props), and routes
|
|
3659
|
+
* aria-label / getAriaLabel / getAriaValueText to the thumbs.
|
|
3580
3660
|
*/
|
|
3581
|
-
declare function Slider<Value extends SliderValueType = number>({ className, ...props }: SliderProps<Value>): ReactNode;
|
|
3661
|
+
declare function Slider<Value extends SliderValueType = number>({ className, "aria-label": ariaLabel, getAriaLabel, getAriaValueText, ...props }: SliderProps<Value>): ReactNode;
|
|
3582
3662
|
declare namespace Slider {
|
|
3583
3663
|
var displayName: string;
|
|
3584
3664
|
}
|
|
@@ -4124,7 +4204,7 @@ declare const kbdMeta: ComponentMeta;
|
|
|
4124
4204
|
* (neutral/info/success/warning/destructive).
|
|
4125
4205
|
*/
|
|
4126
4206
|
declare const noteVariants: (props?: ({
|
|
4127
|
-
tone?: "destructive" | "success" | "
|
|
4207
|
+
tone?: "destructive" | "success" | "neutral" | "warning" | "info" | null | undefined;
|
|
4128
4208
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
4129
4209
|
|
|
4130
4210
|
/**
|
|
@@ -4234,7 +4314,7 @@ declare const inlineStatusMeta: ComponentMeta;
|
|
|
4234
4314
|
* and `sticky` positioning live in `banner.tsx`.
|
|
4235
4315
|
*/
|
|
4236
4316
|
declare const bannerVariants: (props?: ({
|
|
4237
|
-
tone?: "destructive" | "success" | "
|
|
4317
|
+
tone?: "destructive" | "success" | "neutral" | "warning" | "info" | "edition" | null | undefined;
|
|
4238
4318
|
appearance?: "solid" | "soft" | null | undefined;
|
|
4239
4319
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
4240
4320
|
|
|
@@ -4944,6 +5024,15 @@ interface AppShellProps extends Omit<ComponentProps<"div">, "title"> {
|
|
|
4944
5024
|
* `lg`. Rendered fixed to the bottom edge; `<main>` reserves space for it.
|
|
4945
5025
|
*/
|
|
4946
5026
|
bottomNav?: ReactNode;
|
|
5027
|
+
/**
|
|
5028
|
+
* Persistent chrome that stays on screen across routes — a now-playing bar,
|
|
5029
|
+
* an active-call bar, an upload tray. Full width, pinned to the bottom edge
|
|
5030
|
+
* (above `bottomNav` on mobile); the desktop Sidebar shortens to clear it.
|
|
5031
|
+
* The contents paint their own surface and border, since content scrolls
|
|
5032
|
+
* beneath them. Keep it mounted in a layout that outlives route changes, or
|
|
5033
|
+
* the playback it controls restarts.
|
|
5034
|
+
*/
|
|
5035
|
+
dock?: ReactNode;
|
|
4947
5036
|
/** Floating overlays (a message launcher, FAB, modal mount points). */
|
|
4948
5037
|
overlays?: ReactNode;
|
|
4949
5038
|
/** Main content. */
|
|
@@ -4952,7 +5041,7 @@ interface AppShellProps extends Omit<ComponentProps<"div">, "title"> {
|
|
|
4952
5041
|
/**
|
|
4953
5042
|
* AppShell — the application frame. Lays out optional status banners, a mobile
|
|
4954
5043
|
* header, a desktop sidebar, the main content region, a mobile bottom nav, and
|
|
4955
|
-
* floating overlays, with a built-in skip link and the `#main-content` target.
|
|
5044
|
+
* a persistent dock, and floating overlays, with a built-in skip link and the `#main-content` target.
|
|
4956
5045
|
*
|
|
4957
5046
|
* It is layout-agnostic about the breakpoint switch: each slot component owns
|
|
4958
5047
|
* its own `hidden`/`lg:*` visibility (Sidebar is `hidden lg:flex`, AppHeader and
|
|
@@ -4968,7 +5057,7 @@ interface AppShellProps extends Omit<ComponentProps<"div">, "title"> {
|
|
|
4968
5057
|
* <Region max="feed">…</Region>
|
|
4969
5058
|
* </AppShell>
|
|
4970
5059
|
*/
|
|
4971
|
-
declare function AppShell({ banners, header, sidebar, bottomNav, overlays, className, children, ...rest }: AppShellProps): react.JSX.Element;
|
|
5060
|
+
declare function AppShell({ banners, header, sidebar, bottomNav, dock, overlays, className, children, ...rest }: AppShellProps): react.JSX.Element;
|
|
4972
5061
|
declare namespace AppShell {
|
|
4973
5062
|
var displayName: string;
|
|
4974
5063
|
}
|
|
@@ -5016,6 +5105,28 @@ declare function SidebarHeader({ className, ...props }: ComponentPropsWithRef<"d
|
|
|
5016
5105
|
declare namespace SidebarHeader {
|
|
5017
5106
|
var displayName: string;
|
|
5018
5107
|
}
|
|
5108
|
+
interface SidebarBrandProps extends Omit<ComponentPropsWithRef<"div">, "children"> {
|
|
5109
|
+
/** The logo mark. Sits in the items' icon slot (24px); collapsed, it is all that shows. */
|
|
5110
|
+
mark: ReactNode;
|
|
5111
|
+
/** The product name, on the items' label column. Hidden when collapsed. */
|
|
5112
|
+
label: ReactNode;
|
|
5113
|
+
/** Render as a link home, e.g. `render={<Link to="/" />}`. */
|
|
5114
|
+
render?: useRender.RenderProp;
|
|
5115
|
+
}
|
|
5116
|
+
/**
|
|
5117
|
+
* The brand row, on the same grid as SidebarItem: the mark in the icon slot,
|
|
5118
|
+
* the name on the label column. It takes the item row's own inset, slot and
|
|
5119
|
+
* gap from the shared recipe, so it moves with the rail instead of an app
|
|
5120
|
+
* copying 12px + 12px + size-6 out of the bundle. Goes inside SidebarHeader.
|
|
5121
|
+
*
|
|
5122
|
+
* <SidebarHeader>
|
|
5123
|
+
* <SidebarBrand mark={<Logo />} label="Undertow" render={<Link to="/" />} />
|
|
5124
|
+
* </SidebarHeader>
|
|
5125
|
+
*/
|
|
5126
|
+
declare function SidebarBrand({ mark, label, render, className, "aria-label": ariaLabel, ...props }: SidebarBrandProps): ReactElement;
|
|
5127
|
+
declare namespace SidebarBrand {
|
|
5128
|
+
var displayName: string;
|
|
5129
|
+
}
|
|
5019
5130
|
/** The scrollable nav region — grows to fill the rail between header and footer. */
|
|
5020
5131
|
declare function SidebarNav({ className, ...props }: ComponentPropsWithRef<"nav">): react.JSX.Element;
|
|
5021
5132
|
declare namespace SidebarNav {
|
|
@@ -5227,6 +5338,59 @@ declare namespace PageHeader {
|
|
|
5227
5338
|
|
|
5228
5339
|
declare const pageHeaderMeta: ComponentMeta;
|
|
5229
5340
|
|
|
5341
|
+
interface SectionHeaderProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
|
|
5342
|
+
/** The section's title. */
|
|
5343
|
+
title?: ReactNode;
|
|
5344
|
+
/** One line of supporting copy beneath the title. */
|
|
5345
|
+
description?: ReactNode;
|
|
5346
|
+
/**
|
|
5347
|
+
* Trailing actions on the title row — a "View all" link, or a couple of
|
|
5348
|
+
* buttons. Use `size="sm"` buttons: the title is centred on that height.
|
|
5349
|
+
*/
|
|
5350
|
+
actions?: ReactNode;
|
|
5351
|
+
/**
|
|
5352
|
+
* The title's heading element, chosen by the document outline: `h2` for a
|
|
5353
|
+
* section under the page's h1, `h3` for a subsection inside one. @default "h2"
|
|
5354
|
+
*/
|
|
5355
|
+
titleAs?: "h2" | "h3" | "h4";
|
|
5356
|
+
/**
|
|
5357
|
+
* The title's `id`, so the section it heads can name itself with it:
|
|
5358
|
+
* `<section aria-labelledby={id}>`. Generated when omitted.
|
|
5359
|
+
*/
|
|
5360
|
+
titleId?: string;
|
|
5361
|
+
/**
|
|
5362
|
+
* Visual weight, independent of the heading level. `md` (text-heading-3) for
|
|
5363
|
+
* a page's sections and shelves; `sm` (text-heading-4) for a denser set —
|
|
5364
|
+
* settings groups, subsections, a sidebar's sections. @default "md"
|
|
5365
|
+
*/
|
|
5366
|
+
size?: "md" | "sm";
|
|
5367
|
+
}
|
|
5368
|
+
/**
|
|
5369
|
+
* SectionHeader — the heading block for one section of a page: a title, an
|
|
5370
|
+
* optional line of description, and actions on the title row. The page's own
|
|
5371
|
+
* title is PageHeader (the route's one h1); every section below it is this.
|
|
5372
|
+
*
|
|
5373
|
+
* <section aria-labelledby="new-releases" className="flex flex-col gap-4">
|
|
5374
|
+
* <SectionHeader
|
|
5375
|
+
* titleId="new-releases"
|
|
5376
|
+
* title="New releases"
|
|
5377
|
+
* actions={<Button variant="ghost" size="sm" render={<a href="/new" />}>View all</Button>}
|
|
5378
|
+
* />
|
|
5379
|
+
* <Grid minItemWidth="10rem">…</Grid>
|
|
5380
|
+
* </section>
|
|
5381
|
+
*
|
|
5382
|
+
* It shares PageHeader's title row: the title wraps rather than truncating,
|
|
5383
|
+
* the actions keep to the title's row and drop beneath it only when the row
|
|
5384
|
+
* runs out of room. It carries no outer spacing — the Stack or Page it sits in
|
|
5385
|
+
* owns the rhythm between the header and what it introduces.
|
|
5386
|
+
*/
|
|
5387
|
+
declare function SectionHeader({ title, description, actions, titleAs, titleId, size, className, ...props }: SectionHeaderProps): react.JSX.Element;
|
|
5388
|
+
declare namespace SectionHeader {
|
|
5389
|
+
var displayName: string;
|
|
5390
|
+
}
|
|
5391
|
+
|
|
5392
|
+
declare const sectionHeaderMeta: ComponentMeta;
|
|
5393
|
+
|
|
5230
5394
|
interface SearchInputProps extends Omit<ComponentPropsWithRef<"input">, "onChange" | "value" | "defaultValue"> {
|
|
5231
5395
|
/** Controlled value of the search field. */
|
|
5232
5396
|
value?: string;
|
|
@@ -5782,16 +5946,34 @@ interface ThemeSelectorProps extends Omit<ComponentPropsWithRef<"div">, "onChang
|
|
|
5782
5946
|
layout?: "cards" | "list";
|
|
5783
5947
|
}
|
|
5784
5948
|
/**
|
|
5785
|
-
*
|
|
5786
|
-
*
|
|
5787
|
-
*
|
|
5949
|
+
* A theme, drawn as a sliver of its own interface: its background, "Aa" in its
|
|
5950
|
+
* display face, a card and a primary button. The tile carries the theme's scope
|
|
5951
|
+
* (`data-sable-theme`, plus `.dark` / `.light`), so every token inside it, the
|
|
5952
|
+
* tile's own corners included, resolves to the previewed theme, not the app's.
|
|
5788
5953
|
*
|
|
5789
|
-
*
|
|
5790
|
-
*
|
|
5791
|
-
*
|
|
5792
|
-
*
|
|
5793
|
-
*
|
|
5954
|
+
* The button and card corners are the theme's real radii scaled to the
|
|
5955
|
+
* miniature, because shape is the half of a theme a colour strip never showed:
|
|
5956
|
+
* Meridian's square controls, Poppy's soft 12px, Sable's capsule. The old card
|
|
5957
|
+
* was four flat colour blocks, and four of six themes came out as the same
|
|
5958
|
+
* white-and-black strip.
|
|
5959
|
+
*
|
|
5960
|
+
* `.light` is set explicitly, not only `.dark`: theme CSS matches
|
|
5961
|
+
* `.dark [data-sable-theme]:not(.light)`, so under a dark page a "light"
|
|
5962
|
+
* preview without it painted dark.
|
|
5794
5963
|
*/
|
|
5964
|
+
interface ThemePreviewProps {
|
|
5965
|
+
/** The theme to draw. */
|
|
5966
|
+
theme: ThemeManifest;
|
|
5967
|
+
/** Which of its modes to draw. @default the theme's defaultMode */
|
|
5968
|
+
mode?: ThemeMode$1;
|
|
5969
|
+
/** `md` is the picker tile; `sm` is the row-sized chip a list row or a "current theme" trigger shows. @default "md" */
|
|
5970
|
+
size?: "md" | "sm";
|
|
5971
|
+
}
|
|
5972
|
+
/**
|
|
5973
|
+
* Exported for anywhere that shows a theme outside the picker, e.g. a trigger
|
|
5974
|
+
* row naming the current preset before it opens the list.
|
|
5975
|
+
*/
|
|
5976
|
+
declare function ThemePreview({ theme, mode, size }: ThemePreviewProps): react.JSX.Element;
|
|
5795
5977
|
declare function ThemeSelector({ value, onValueChange, themes, mode, label, layout, className, ref, ...props }: ThemeSelectorProps): react.JSX.Element;
|
|
5796
5978
|
declare namespace ThemeSelector {
|
|
5797
5979
|
var displayName: string;
|
|
@@ -5799,6 +5981,256 @@ declare namespace ThemeSelector {
|
|
|
5799
5981
|
|
|
5800
5982
|
declare const themeSelectorMeta: ComponentMeta;
|
|
5801
5983
|
|
|
5984
|
+
/**
|
|
5985
|
+
* DisclosurePicker — a property row that names the current value and opens a
|
|
5986
|
+
* list IN PLACE beneath it, pushing what follows down, instead of floating a
|
|
5987
|
+
* popup over it.
|
|
5988
|
+
*
|
|
5989
|
+
* <DisclosurePicker>
|
|
5990
|
+
* <DisclosurePickerTrigger label="Body">Inter</DisclosurePickerTrigger>
|
|
5991
|
+
* <DisclosurePickerPanel>
|
|
5992
|
+
* <DisclosurePickerList aria-label="Body font" value={font} onValueChange={setFont}>
|
|
5993
|
+
* <DisclosurePickerOption value="Inter">Inter</DisclosurePickerOption>
|
|
5994
|
+
* </DisclosurePickerList>
|
|
5995
|
+
* </DisclosurePickerPanel>
|
|
5996
|
+
* </DisclosurePicker>
|
|
5997
|
+
*
|
|
5998
|
+
* Why not a Select: a tool panel's choices are made while looking at what they
|
|
5999
|
+
* change. A popup covers the preview the choice is about; a list that opens in
|
|
6000
|
+
* the panel keeps the row, the list and the preview in one column. Built on
|
|
6001
|
+
* Collapsible, so the trigger is a real button with aria-expanded/controls and
|
|
6002
|
+
* the panel animates with motion-disclosure (static under reduced motion).
|
|
6003
|
+
*
|
|
6004
|
+
* The list is a listbox, not a radio group: arrow keys move through it and
|
|
6005
|
+
* nothing happens until Enter (or Space, or a click) picks. A radio group's
|
|
6006
|
+
* checked state follows focus, so each arrow press was a pick — fine for a free
|
|
6007
|
+
* toggle, wrong for a choice with a cost (a confirm, a font load, a reset).
|
|
6008
|
+
*
|
|
6009
|
+
* Grew out of the docs Customize panel, where a font row and a preset row had
|
|
6010
|
+
* become two hand copies of the same disclosure.
|
|
6011
|
+
*/
|
|
6012
|
+
type Size = "md" | "xs";
|
|
6013
|
+
/**
|
|
6014
|
+
* Open state, the row's size and a `close()` for a list the picker does not own
|
|
6015
|
+
* (a Tree, a bespoke grid) that should still close the row when something is
|
|
6016
|
+
* picked. Inside a DisclosurePicker only.
|
|
6017
|
+
*/
|
|
6018
|
+
declare function useDisclosurePicker(): {
|
|
6019
|
+
open: boolean;
|
|
6020
|
+
close: () => void;
|
|
6021
|
+
size: Size;
|
|
6022
|
+
};
|
|
6023
|
+
interface DisclosurePickerProps extends Omit<ComponentProps<typeof Collapsible>, "className" | "open" | "defaultOpen" | "onOpenChange"> {
|
|
6024
|
+
/** Controlled open state. Pair with `onOpenChange`; leave both off to let the row own it. */
|
|
6025
|
+
open?: boolean;
|
|
6026
|
+
/** Uncontrolled initial open state. @default false */
|
|
6027
|
+
defaultOpen?: boolean;
|
|
6028
|
+
/** Called with the next open state — on the trigger, on a pick, on Escape. */
|
|
6029
|
+
onOpenChange?: (open: boolean) => void;
|
|
6030
|
+
/**
|
|
6031
|
+
* Which rung the row sits on. `md` is a 40px row in a settings panel; `xs` is
|
|
6032
|
+
* the property-grid rung — a `--control-xs` row on the inset `panel-field`
|
|
6033
|
+
* fill, the same shape as a ScrubField or an xs SelectTrigger beside it.
|
|
6034
|
+
* Height, padding, radius, type and surface move together, which is why it is
|
|
6035
|
+
* a prop and not a className. @default "md"
|
|
6036
|
+
*/
|
|
6037
|
+
size?: Size;
|
|
6038
|
+
className?: string;
|
|
6039
|
+
}
|
|
6040
|
+
/**
|
|
6041
|
+
* The root: a Collapsible that also owns focus. Opening from the keyboard moves
|
|
6042
|
+
* focus into the list (the search field, or the chosen option when there is no
|
|
6043
|
+
* search); closing with focus inside returns it to the trigger. While the panel
|
|
6044
|
+
* grows it keeps the whole row on screen, so a picker near the foot of a
|
|
6045
|
+
* scrolling panel does not open out of sight; and it opens with the chosen
|
|
6046
|
+
* option centred in a scrolling list, not wherever the list last was.
|
|
6047
|
+
*/
|
|
6048
|
+
declare function DisclosurePicker({ open: openProp, defaultOpen, onOpenChange, size, className, ref, children, ...props }: DisclosurePickerProps): react.JSX.Element;
|
|
6049
|
+
declare namespace DisclosurePicker {
|
|
6050
|
+
var displayName: string;
|
|
6051
|
+
}
|
|
6052
|
+
interface DisclosurePickerTriggerProps extends Omit<ComponentProps<typeof CollapsibleTrigger>, "className" | "children"> {
|
|
6053
|
+
/** A leading caption naming the property ("Body", "Theme"), muted, on a fixed column so stacked rows align. */
|
|
6054
|
+
label?: ReactNode;
|
|
6055
|
+
/** A leading visual before the value — a theme tile, a swatch. Not truncated. */
|
|
6056
|
+
media?: ReactNode;
|
|
6057
|
+
/** The current value. Truncates on one line; render it in its own face or colour if that is the point. */
|
|
6058
|
+
children?: ReactNode;
|
|
6059
|
+
className?: string;
|
|
6060
|
+
}
|
|
6061
|
+
/**
|
|
6062
|
+
* The row: optional caption, optional media, the value, and a chevron that
|
|
6063
|
+
* flips when open. A real button — Base UI wires aria-expanded and
|
|
6064
|
+
* aria-controls — so its accessible name is its text (caption + value) unless
|
|
6065
|
+
* an aria-label says it better.
|
|
6066
|
+
*/
|
|
6067
|
+
declare function DisclosurePickerTrigger({ label, media, children, className, ref, onKeyDown, onPointerDown, ...props }: DisclosurePickerTriggerProps): react.JSX.Element;
|
|
6068
|
+
declare namespace DisclosurePickerTrigger {
|
|
6069
|
+
var displayName: string;
|
|
6070
|
+
}
|
|
6071
|
+
/** The search field a long list opts into: controlled, because the consumer does the filtering. */
|
|
6072
|
+
interface DisclosurePickerSearch {
|
|
6073
|
+
/** The query. */
|
|
6074
|
+
value: string;
|
|
6075
|
+
/** Called on every keystroke; cleared with `""` when the picker closes. */
|
|
6076
|
+
onValueChange: (value: string) => void;
|
|
6077
|
+
/** @default "Search" */
|
|
6078
|
+
placeholder?: string;
|
|
6079
|
+
/** Accessible name of the field. @default the placeholder */
|
|
6080
|
+
label?: string;
|
|
6081
|
+
}
|
|
6082
|
+
interface DisclosurePickerPanelProps extends Omit<ComponentProps<typeof CollapsiblePanel>, "className" | "children"> {
|
|
6083
|
+
/**
|
|
6084
|
+
* Opt in to a search field above the list. Off by default: a short list
|
|
6085
|
+
* (a handful of presets) reads faster than a field you have to skip past.
|
|
6086
|
+
* Turn it on once the list scrolls — roughly a dozen options or more.
|
|
6087
|
+
*/
|
|
6088
|
+
search?: DisclosurePickerSearch;
|
|
6089
|
+
children?: ReactNode;
|
|
6090
|
+
className?: string;
|
|
6091
|
+
}
|
|
6092
|
+
/**
|
|
6093
|
+
* What opens beneath the row: the optional search field and the list, divided
|
|
6094
|
+
* from the row by a hairline. Escape closes it and returns focus to the row
|
|
6095
|
+
* (first clearing a query, if there is one) without changing the value;
|
|
6096
|
+
* ArrowDown in the search field steps into the list.
|
|
6097
|
+
*/
|
|
6098
|
+
declare function DisclosurePickerPanel({ search, children, className, ...props }: DisclosurePickerPanelProps): react.JSX.Element;
|
|
6099
|
+
declare namespace DisclosurePickerPanel {
|
|
6100
|
+
var displayName: string;
|
|
6101
|
+
}
|
|
6102
|
+
interface DisclosurePickerListProps extends Omit<ComponentProps<"div">, "role" | "onChange" | "defaultValue" | "children"> {
|
|
6103
|
+
/** The chosen (committed) option's value. Marked `aria-selected` and lifted out of the well. */
|
|
6104
|
+
value: string;
|
|
6105
|
+
/**
|
|
6106
|
+
* Called once, when an option is picked — Enter, Space or a click — and only
|
|
6107
|
+
* when the pick differs from `value`. Arrow keys, Home/End and type-ahead
|
|
6108
|
+
* move focus through the list and change nothing; Escape closes without a
|
|
6109
|
+
* pick. Picking closes the row.
|
|
6110
|
+
*/
|
|
6111
|
+
onValueChange: (value: string) => void;
|
|
6112
|
+
/** Name the list — the property it sets ("Body font"). */
|
|
6113
|
+
"aria-label"?: string;
|
|
6114
|
+
children?: ReactNode;
|
|
6115
|
+
}
|
|
6116
|
+
/**
|
|
6117
|
+
* The options, as a listbox: ArrowUp/ArrowDown, Home/End and type-ahead move
|
|
6118
|
+
* focus through them (roving tabindex, so Tab leaves the list in one step);
|
|
6119
|
+
* Enter, Space or a click picks the focused option, applies it and closes the
|
|
6120
|
+
* row. Nothing is applied while you move. ArrowUp from the first option goes
|
|
6121
|
+
* back to the search field, when there is one. Scrolls past 16rem with a quiet
|
|
6122
|
+
* scrollbar.
|
|
6123
|
+
*/
|
|
6124
|
+
declare function DisclosurePickerList({ value, onValueChange, className, ref, onKeyDown, onFocus, children, ...props }: DisclosurePickerListProps): react.JSX.Element;
|
|
6125
|
+
declare namespace DisclosurePickerList {
|
|
6126
|
+
var displayName: string;
|
|
6127
|
+
}
|
|
6128
|
+
interface DisclosurePickerOptionProps extends Omit<ComponentProps<"div">, "className" | "children" | "role" | "tabIndex" | "onKeyDown"> {
|
|
6129
|
+
value: string;
|
|
6130
|
+
/** The option's name. Render it in its own face or colour when that is what is being picked. */
|
|
6131
|
+
children?: ReactNode;
|
|
6132
|
+
/** A leading visual before the name — a ThemePreview tile, a swatch. Not truncated. */
|
|
6133
|
+
media?: ReactNode;
|
|
6134
|
+
/** A short muted annotation at the row's end. Options without one show a check when chosen. */
|
|
6135
|
+
note?: ReactNode;
|
|
6136
|
+
/** Skipped by arrow keys and type-ahead, and cannot be picked. */
|
|
6137
|
+
disabled?: boolean;
|
|
6138
|
+
/** What type-ahead matches, when the name is not plain text. @default the name's text */
|
|
6139
|
+
textValue?: string;
|
|
6140
|
+
className?: string;
|
|
6141
|
+
}
|
|
6142
|
+
/**
|
|
6143
|
+
* One option: a full-width row, raised out of the well when chosen. Focus
|
|
6144
|
+
* (from arrow keys, Home/End or type-ahead) rings it; Enter, Space or a click
|
|
6145
|
+
* picks it and closes the row.
|
|
6146
|
+
*/
|
|
6147
|
+
declare function DisclosurePickerOption({ value, children, media, note, disabled, textValue, className, onClick, ...props }: DisclosurePickerOptionProps): react.JSX.Element;
|
|
6148
|
+
declare namespace DisclosurePickerOption {
|
|
6149
|
+
var displayName: string;
|
|
6150
|
+
}
|
|
6151
|
+
/** Shown in the list when a search matches nothing. */
|
|
6152
|
+
declare function DisclosurePickerEmpty({ children, className }: {
|
|
6153
|
+
children?: ReactNode;
|
|
6154
|
+
className?: string;
|
|
6155
|
+
}): react.JSX.Element;
|
|
6156
|
+
declare namespace DisclosurePickerEmpty {
|
|
6157
|
+
var displayName: string;
|
|
6158
|
+
}
|
|
6159
|
+
|
|
6160
|
+
declare const disclosurePickerMeta: ComponentMeta;
|
|
6161
|
+
|
|
6162
|
+
/** One family the picker offers. Supplied by the app — Sable bundles no font catalog. */
|
|
6163
|
+
interface FontPickerFont {
|
|
6164
|
+
/** The family name, as CSS knows it once loaded ("DM Sans"). */
|
|
6165
|
+
family: string;
|
|
6166
|
+
/** A short muted note at the row's end ("Neutral, dense UI"). Searched along with the family. */
|
|
6167
|
+
note?: string;
|
|
6168
|
+
/** The CSS font-family stack to render this option in. @default `"<family>"` */
|
|
6169
|
+
stack?: string;
|
|
6170
|
+
}
|
|
6171
|
+
/** A choice that is not a family — "Theme default", "Same as body" — listed above the fonts, in the app's own face. */
|
|
6172
|
+
interface FontPickerOption {
|
|
6173
|
+
value: string;
|
|
6174
|
+
/** The option's row text ("Preset (Figtree)"). */
|
|
6175
|
+
label: string;
|
|
6176
|
+
/** What the row shows while this option is chosen, when it should differ from `label` ("Figtree"). */
|
|
6177
|
+
valueLabel?: string;
|
|
6178
|
+
}
|
|
6179
|
+
interface FontPickerProps<Font extends FontPickerFont = FontPickerFont> extends Omit<DisclosurePickerProps, "children" | "onChange"> {
|
|
6180
|
+
/** The chosen family, or the value of one of `options`. */
|
|
6181
|
+
value: string;
|
|
6182
|
+
/**
|
|
6183
|
+
* Called when a family (or option) is picked — Enter, Space or a click —
|
|
6184
|
+
* and only when it differs from `value`. Arrow keys and type-ahead move
|
|
6185
|
+
* through the list without applying or loading anything; Escape closes
|
|
6186
|
+
* without a pick.
|
|
6187
|
+
*/
|
|
6188
|
+
onValueChange: (value: string) => void;
|
|
6189
|
+
/** The families to offer, in order. */
|
|
6190
|
+
fonts: readonly Font[];
|
|
6191
|
+
/** Non-font choices listed first ("Preset", "Same as primary"). */
|
|
6192
|
+
options?: readonly FontPickerOption[];
|
|
6193
|
+
/** The row's leading caption — the role the font plays ("Body", "Headings"). */
|
|
6194
|
+
label?: ReactNode;
|
|
6195
|
+
/** Accessible name of the list. @default "Font" */
|
|
6196
|
+
listLabel?: string;
|
|
6197
|
+
/**
|
|
6198
|
+
* A search field above the list. On by default: font lists are long, and a
|
|
6199
|
+
* name is the fastest way to one. Pass `false` for a short, curated list
|
|
6200
|
+
* (under a dozen), where the field is a control with nothing to do.
|
|
6201
|
+
* @default true
|
|
6202
|
+
*/
|
|
6203
|
+
searchable?: boolean;
|
|
6204
|
+
/** Accessible name of the search field. @default "Search fonts" */
|
|
6205
|
+
searchLabel?: string;
|
|
6206
|
+
/**
|
|
6207
|
+
* Load a face on demand — the app owns where fonts come from (Google Fonts,
|
|
6208
|
+
* a CDN, self-hosted). Called with `"preview"` for every listed family when
|
|
6209
|
+
* the list opens (enough to draw its own name), and with `"use"` for the
|
|
6210
|
+
* chosen family — once it is picked, never while the list is only being
|
|
6211
|
+
* walked. Make it idempotent: it is called again on every open.
|
|
6212
|
+
*/
|
|
6213
|
+
loadFont?: (font: Font, purpose: "preview" | "use") => void;
|
|
6214
|
+
}
|
|
6215
|
+
/**
|
|
6216
|
+
* FontPicker — a DisclosurePicker for a typeface: the row names the chosen
|
|
6217
|
+
* family in its own face, and opens in place into a searchable list of
|
|
6218
|
+
* families, each drawn in itself. Arrow keys walk the list — each name is
|
|
6219
|
+
* already drawn in its face — and Enter (or a click) picks one, which is when
|
|
6220
|
+
* its real weights load and the page changes.
|
|
6221
|
+
*
|
|
6222
|
+
* <FontPicker label="Body" value={family} onValueChange={setFamily} fonts={FONTS} loadFont={load} />
|
|
6223
|
+
*
|
|
6224
|
+
* Sable ships the control, not a catalog: `fonts` and `loadFont` come from the
|
|
6225
|
+
* app, so it can offer three families or three hundred from any source.
|
|
6226
|
+
*/
|
|
6227
|
+
declare function FontPicker<Font extends FontPickerFont = FontPickerFont>({ value, onValueChange, fonts, options, label, listLabel, searchable, searchLabel, loadFont, open: openProp, defaultOpen, onOpenChange, ...props }: FontPickerProps<Font>): react.JSX.Element;
|
|
6228
|
+
declare namespace FontPicker {
|
|
6229
|
+
var displayName: string;
|
|
6230
|
+
}
|
|
6231
|
+
|
|
6232
|
+
declare const fontPickerMeta: ComponentMeta;
|
|
6233
|
+
|
|
5802
6234
|
/** The three color preferences a ThemeSwitcher cycles between. */
|
|
5803
6235
|
type ThemeMode = "light" | "dark" | "system";
|
|
5804
6236
|
interface ThemeSwitcherProps extends Omit<ComponentPropsWithRef<"div">, "onChange"> {
|
|
@@ -6786,6 +7218,158 @@ declare namespace GradientArt {
|
|
|
6786
7218
|
|
|
6787
7219
|
declare const gradientArtMeta: ComponentMeta;
|
|
6788
7220
|
|
|
7221
|
+
interface MediaImageProps extends Omit<ComponentPropsWithRef<"div">, "children"> {
|
|
7222
|
+
/** Image URL. Omitted, empty, or failing to load ⇒ the fallback shows. */
|
|
7223
|
+
src?: string;
|
|
7224
|
+
/**
|
|
7225
|
+
* Alt text. Defaults to `""` (decorative) — right when a visible title sits
|
|
7226
|
+
* beside the image, as on a tile or a row. When it is set and no image shows,
|
|
7227
|
+
* it names the fallback instead, so the description survives a broken URL.
|
|
7228
|
+
*/
|
|
7229
|
+
alt?: string;
|
|
7230
|
+
/**
|
|
7231
|
+
* Seeds the fallback art, so an item keeps its own colour wherever it
|
|
7232
|
+
* appears. Defaults to `alt`; pass the title or an id when `alt` is empty.
|
|
7233
|
+
*/
|
|
7234
|
+
seed?: string | number;
|
|
7235
|
+
/**
|
|
7236
|
+
* Replaces the GradientArt fallback — a glyph, a monogram, a brand colour.
|
|
7237
|
+
* It fills the frame, under the same clipping.
|
|
7238
|
+
*/
|
|
7239
|
+
fallback?: ReactNode;
|
|
7240
|
+
/**
|
|
7241
|
+
* `cover` (default) crops to fill — artwork, photos. `contain` letterboxes on
|
|
7242
|
+
* the muted surface — a logo, a product shot that must not be cropped.
|
|
7243
|
+
*/
|
|
7244
|
+
fit?: "cover" | "contain";
|
|
7245
|
+
/** `srcSet` / `sizes` for responsive images, passed to the `<img>`. */
|
|
7246
|
+
srcSet?: string;
|
|
7247
|
+
sizes?: string;
|
|
7248
|
+
/** @default "lazy" — media grids are long, and a tile below the fold can wait. */
|
|
7249
|
+
loading?: "lazy" | "eager";
|
|
7250
|
+
}
|
|
7251
|
+
/**
|
|
7252
|
+
* MediaImage — an image that falls back to theme art when it has none.
|
|
7253
|
+
*
|
|
7254
|
+
* <AspectBox ratio={1} className="rounded-md">
|
|
7255
|
+
* <MediaImage src={album.cover} seed={album.title} />
|
|
7256
|
+
* </AspectBox>
|
|
7257
|
+
*
|
|
7258
|
+
* It fills the box it is given (`size-full`), so the box owns the shape: an
|
|
7259
|
+
* AspectBox for a cover, `size-14 rounded-md` for a row's thumbnail.
|
|
7260
|
+
*
|
|
7261
|
+
* **Loading is Base UI's, not a second implementation.** The image status comes
|
|
7262
|
+
* from the same Base UI Avatar parts Avatar uses: the URL is preloaded off the
|
|
7263
|
+
* DOM and the `<img>` mounts only once it has decoded, so an error that fires
|
|
7264
|
+
* before hydration is still caught — the reason a plain `onError` misses broken
|
|
7265
|
+
* images on prerendered pages. Avatar's frame is a circle with a size ladder and
|
|
7266
|
+
* an initials tier; a cover is none of those, so this composes the primitive
|
|
7267
|
+
* rather than restyling Avatar out of its shape.
|
|
7268
|
+
*
|
|
7269
|
+
* **Three states, three surfaces.** No `src` (or a failed one) is GradientArt
|
|
7270
|
+
* seeded by the item, so a grid of missing covers still reads as distinct
|
|
7271
|
+
* things. While a real image is loading the frame stays a quiet muted surface
|
|
7272
|
+
* — painting the art first would flash a colourful stand-in for a frame and
|
|
7273
|
+
* then swap it for the photo. Once loaded, the image fades in.
|
|
7274
|
+
*/
|
|
7275
|
+
declare function MediaImage({ src, alt, seed, fallback, fit, srcSet, sizes, loading, className, ...props }: MediaImageProps): react.JSX.Element;
|
|
7276
|
+
declare namespace MediaImage {
|
|
7277
|
+
var displayName: string;
|
|
7278
|
+
}
|
|
7279
|
+
|
|
7280
|
+
declare const mediaImageMeta: ComponentMeta;
|
|
7281
|
+
|
|
7282
|
+
type MediaTileSize = "sm" | "md" | "lg";
|
|
7283
|
+
/** Named cover shapes. A number is a width / height ratio. */
|
|
7284
|
+
declare const ASPECT: {
|
|
7285
|
+
readonly square: 1;
|
|
7286
|
+
readonly video: number;
|
|
7287
|
+
readonly poster: number;
|
|
7288
|
+
};
|
|
7289
|
+
interface MediaTileProps extends Omit<ComponentPropsWithRef<"div">, "title"> {
|
|
7290
|
+
/** The item's name. Also seeds the fallback art when it is a string. */
|
|
7291
|
+
title: ReactNode;
|
|
7292
|
+
/** The second line — an artist, a channel, a price. Optional. */
|
|
7293
|
+
subtitle?: ReactNode;
|
|
7294
|
+
/** Cover image URL. Without one (or when it fails) the cover is GradientArt seeded by the item. */
|
|
7295
|
+
src?: string;
|
|
7296
|
+
/**
|
|
7297
|
+
* Cover alt text. Defaults to `""`: the title right below already names the
|
|
7298
|
+
* item, so describing the cover again makes a screen reader say it twice.
|
|
7299
|
+
*/
|
|
7300
|
+
alt?: string;
|
|
7301
|
+
/** Seeds the fallback art. Defaults to `title` when it is a string. */
|
|
7302
|
+
seed?: string | number;
|
|
7303
|
+
/**
|
|
7304
|
+
* The cover's shape: `square` (albums, podcasts, playlists), `video` (16:9),
|
|
7305
|
+
* `poster` (2:3 — films, books), or any width / height ratio.
|
|
7306
|
+
* @default "square"
|
|
7307
|
+
*/
|
|
7308
|
+
aspect?: keyof typeof ASPECT | number;
|
|
7309
|
+
/** Type tier, gaps and corner together. @default "md" */
|
|
7310
|
+
size?: MediaTileSize;
|
|
7311
|
+
/**
|
|
7312
|
+
* Where the tile goes. The title becomes the tile's link, stretched over the
|
|
7313
|
+
* whole tile, so a click anywhere on it — cover included — follows it.
|
|
7314
|
+
*/
|
|
7315
|
+
href?: string;
|
|
7316
|
+
/**
|
|
7317
|
+
* The title link's element, for a router: `render={<Link to="/albums/1" />}`.
|
|
7318
|
+
* Takes precedence over `href`.
|
|
7319
|
+
*/
|
|
7320
|
+
render?: useRender.RenderProp;
|
|
7321
|
+
/** Makes the subtitle its own link (an artist page) — a separate tab stop above the tile's. */
|
|
7322
|
+
subtitleHref?: string;
|
|
7323
|
+
/** The subtitle link's element, for a router: `subtitleRender={<Link to="/artists/2" />}`. */
|
|
7324
|
+
subtitleRender?: useRender.RenderProp;
|
|
7325
|
+
/**
|
|
7326
|
+
* An action over the cover's bottom-end corner — usually a play Button. It
|
|
7327
|
+
* rests hidden on hover-capable devices and appears on hover or focus
|
|
7328
|
+
* (`reveal-on-hover`); touch devices always show it. Name it for the item:
|
|
7329
|
+
* "Play Low tide", not "Play".
|
|
7330
|
+
*/
|
|
7331
|
+
action?: ReactNode;
|
|
7332
|
+
/**
|
|
7333
|
+
* A small static label on the cover's top-start corner — a duration, "New",
|
|
7334
|
+
* "Explicit". Use `<Badge appearance="overlay">` so it reads on any image.
|
|
7335
|
+
*/
|
|
7336
|
+
badge?: ReactNode;
|
|
7337
|
+
/**
|
|
7338
|
+
* The title's element. A tile in a titled section can be a heading the next
|
|
7339
|
+
* level down, so screen-reader users can move tile to tile.
|
|
7340
|
+
* @default "p"
|
|
7341
|
+
*/
|
|
7342
|
+
titleAs?: "h2" | "h3" | "h4" | "h5" | "p";
|
|
7343
|
+
/** Native image loading. `eager` for the first row above the fold. @default "lazy" */
|
|
7344
|
+
loading?: "lazy" | "eager";
|
|
7345
|
+
}
|
|
7346
|
+
/**
|
|
7347
|
+
* MediaTile — cover first, then the title and a subtitle: an album in a grid, a
|
|
7348
|
+
* video in a feed, a podcast, a product, a photo in a gallery.
|
|
7349
|
+
*
|
|
7350
|
+
* <MediaTile title="Low tide, high noon" subtitle="Juno Avery" src={cover}
|
|
7351
|
+
* render={<Link to="/albums/low-tide" />} subtitleRender={<Link to="/artists/juno" />}
|
|
7352
|
+
* action={<Button size="icon" aria-label="Play Low tide, high noon"><Icon name="play" variant="solid" /></Button>} />
|
|
7353
|
+
*
|
|
7354
|
+
* **The whole tile is a link without wrapping it in one.** A tile holds a
|
|
7355
|
+
* second link (the artist) and a button (play), and interactive content cannot
|
|
7356
|
+
* nest — so instead of an `<a>` around everything, the TITLE is the link and its
|
|
7357
|
+
* `stretched-link` overlay covers the tile. The subtitle link and the action sit
|
|
7358
|
+
* above that overlay, so each is its own control: one click target per thing,
|
|
7359
|
+
* three tab stops, and the screen-reader name of the tile's link is its title,
|
|
7360
|
+
* not the whole card read as one sentence.
|
|
7361
|
+
*
|
|
7362
|
+
* **Tab order is title → subtitle → action.** The text comes first in the DOM
|
|
7363
|
+
* and the cover is drawn above it with `order`, so focus moves the way a
|
|
7364
|
+
* reader names the item — what it is, who made it, then what to do with it.
|
|
7365
|
+
*/
|
|
7366
|
+
declare function MediaTile({ title, subtitle, src, alt, seed, aspect, size, href, render, subtitleHref, subtitleRender, action, badge, titleAs: TitleTag, loading, className, ...props }: MediaTileProps): react.JSX.Element;
|
|
7367
|
+
declare namespace MediaTile {
|
|
7368
|
+
var displayName: string;
|
|
7369
|
+
}
|
|
7370
|
+
|
|
7371
|
+
declare const mediaTileMeta: ComponentMeta;
|
|
7372
|
+
|
|
6789
7373
|
/**
|
|
6790
7374
|
* Conversation rhythm. The class also publishes the gap as `--message-gap` so
|
|
6791
7375
|
* `<Message grouped>` can close it without knowing which step is in play. The
|
|
@@ -7640,6 +8224,6 @@ interface UseCopyResult {
|
|
|
7640
8224
|
*/
|
|
7641
8225
|
declare function useCopy(text: string, { timeout }?: UseCopyOptions): UseCopyResult;
|
|
7642
8226
|
|
|
7643
|
-
declare const SABLE_UI_VERSION: "0.
|
|
8227
|
+
declare const SABLE_UI_VERSION: "0.7.1";
|
|
7644
8228
|
|
|
7645
|
-
export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, AppHeader, type AppHeaderProps, AppShell, type AppShellProps, AreaChart, type AreaChartProps, type ArtTone, Attachment, type AttachmentProps, Avatar, AvatarFallback, AvatarGroup, AvatarGroupCount, type AvatarGroupCountProps, type AvatarGroupProps, AvatarImage, type AvatarProps, AvatarRoot, BADGE_APPEARANCES, BADGE_TONES, Badge, type BadgeAppearance, type BadgeProps, type BadgeTone, Banner, type BannerProps, BarChart, type BarChartProps, BottomNav, BottomNavItem, type BottomNavItemProps, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbPage, type BreadcrumbPageProps, BreadcrumbSeparator, type BreadcrumbSeparatorProps, Breadcrumbs, type BreadcrumbsProps, Browser, type BrowserProps, Bubble, type BubbleProps, BubbleReaction, type BubbleReactionProps, BubbleReactions, type BubbleReactionsProps, Button, type ButtonProps, CHART_SERIES_COUNT, COMPONENT_GROUPS, COMPONENT_TAXONOMY, Calendar, type CalendarProps, Card, CardAction, CardContent, type CardContentProps, CardDescription, CardFooter, type CardFooterProps, CardHeader, CardList, type CardProps, CardTitle, type CardTitleProps, Carousel, type CarouselProps, type CarouselSlidesToShow, type ChartCategories, type ChartCenterLabel, type ChartCurve, type ChartDatum, type ChartSeries, type ChartTone, type ChartTooltipIndicator, type ChartTooltipOptions, type ChartValueFormatter, ChatComposer, type ChatComposerProps, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxCardTone, CheckboxGroup, type CheckboxGroupProps, Code, CodeBlock, type CodeBlockProps, CodeHighlightProvider, type CodeHighlighter, type CodeProps, Collapsible, CollapsibleIndicator, CollapsiblePanel, CollapsibleTrigger, ColorField, type ColorFieldProps, Combobox, ComboboxChips, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, type ComboboxItemGroup, ComboboxItemIndicator, ComboboxList, ComboboxPortal, type ComboboxProps, ComboboxValue, ComboboxVirtualList, type ComboboxVirtualListProps, type CommandFilter, type CommandItem, CommandMenu, CommandMenuGroup, type CommandMenuGroupProps, CommandMenuItem, type CommandMenuItemProps, CommandMenuPanel, type CommandMenuPanelProps, type CommandMenuProps, CommandMenuTrigger, type CommandMenuTriggerProps, type ComponentGroup, type ComponentGuidance, ComponentMeta, type ComponentRegister, ContextCard, ContextCardArrow, ContextCardContent, ContextCardPortal, ContextCardTrigger, ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPortal, ContextMenuSeparator, ContextMenuTrigger, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, DateTile, type DateTileProps, Density, DensityProvider, Density as DensityValue, DestructiveActionModal, type DestructiveActionModalProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, type DialogSize, DialogTitle, DialogTrigger, EmptyState, type EmptyStateProps, Entity, type EntityProps, Feedback, type FeedbackData, type FeedbackProps, type FeedbackRating, Field, type FieldProps, Fieldset, FieldsetContent, FieldsetDescription, FieldsetFooter, FieldsetLegend, FileDropzone, type FileDropzoneProps, type FileRejection, type FileRejectionCode, Form, type FormProps, GlidingHighlight, type GlidingHighlightProps, GradientArt, type GradientArtProps, type Hsv, InlineStatus, type InlineStatusProps, type StatusTone as InlineTone, Input, type InputProps$1 as InputProps, Kbd, KbdGroup, type KbdGroupProps, type KbdProps, Label, type LabelProps$2 as LabelProps, LineChart, type LineChartProps, Marker, type MarkerProps, Marquee, type MarqueeProps, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubmenu, MenuSubmenuTrigger, MenuTrigger, Message, type MessageProps, MessageScroller, type MessageScrollerHandle, type MessageScrollerProps, Meter, MeterIndicator, MeterLabel, type MeterSize, type MeterTone, MeterTrack, MeterValue, MiddleTruncate, type MiddleTruncateProps, type MotionPolicy, MotionProvider, type MotionProviderProps, Note, type NoteAction, type NoteProps, NotificationBadge, type NotificationBadgeProps, NumberField, type NumberFieldProps, type OrbMode, type OrbSize, OtpField, type OtpFieldProps, OverflowMenu, type OverflowMenuProps, PageHeader, type PageHeaderProps, PageLoader, type PageLoaderProps, Pagination, type PaginationProps, Panel, PanelGroup, PanelResizer, type PanelResizerProps, PanelSection, type PanelWidthBounds, Phone, type PhoneProps, PieChart, type PieChartProps, Pill, type PillProps, Popover, PopoverArrow, PopoverClose, PopoverContent, PopoverDescription, PopoverPortal, PopoverTitle, PopoverTrigger, Presence, type PresenceProps, type Presentation, PresentationProvider, Progress, ProgressIndicator, ProgressLabel, type ProgressSize, ProgressTrack, ProgressValue, PropertyPair, PropertyRow, RadarChart, type RadarChartProps, RadialChart, type RadialChartProps, Radio, RadioCard, type RadioCardProps, type RadioCardTone, RadioGroup, RelativeTime, type RelativeTimeProps, Reveal, type RevealProps, type Rgb, SABLE_UI_VERSION, SEGMENTED_BAR_TONES, STATUS_TONES, STATUS_TONE_ICON, type ScrollCommandOptions, Scroller, type ScrollerProps, ScrubField, type ScrubFieldProps, SearchInput, type SearchInputProps, SegmentedBar, type SegmentedBarProps, type SegmentedBarSegment, type SegmentedBarTone, Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectPortal, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps$3 as SeparatorProps, SettingsMenu, type SettingsMenuProps, SettingsRow, type SettingsRowProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetPortal, SheetTitle, SheetTrigger, ShowMore, type ShowMoreProps, SideNav, type SideNavActiveVariant, SideNavGroup, type SideNavGroupProps, SideNavItem, type SideNavItemProps, type SideNavProps, type SideNavSize, Sidebar, SidebarFooter, SidebarHeader, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarProps, SimpleTooltip, Skeleton, Slider, SliderControl, SliderIndicator, SliderRoot, SliderThumb, SliderTrack, SliderValue, Sparkline, type SparklineProps, Spinner, type SpinnerProps, StatusBar, StatusBarGroup, StatusBarSeparator, StatusDot, type StatusDotProps, type StatusTone, type StepStatus, Stepper, StepperItem, type StepperItemProps, type StepperOrientation, type StepperProps, StreamingText, type StreamingTextProps, Switch, TRANSPARENT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsList, TabsPanel, TabsTrigger, TextReveal, type TextRevealProps, Textarea, type TextareaProps, ThemeId, ThemeManifest, ThemeMode$1 as ThemeManifestMode, type ThemeMode, ThemeSelector, type ThemeSelectorProps, ThemeSwitcher, type ThemeSwitcherProps, ThinkingOrb, type ThinkingOrbProps, ToastAction, type ToastApi, ToastClose, ToastContent, ToastDescription, type ToastManagerApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastProviderProps, ToastRoot, ToastTitle, type ToastType, ToastViewport, Toggle, ToggleGroup, type ToggleGroupAppearance, Toggle as ToggleGroupItem, Toolbar, ToolbarButton, type ToolbarButtonProps, ToolbarGroup, type ToolbarGroupProps, ToolbarInput, type ToolbarInputProps, ToolbarLink, type ToolbarLinkProps, type ToolbarProps, ToolbarSeparator, type ToolbarSeparatorProps, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Tree, TreeAddRow, TreeEmpty, TreeRow, TreeSection, type UseCopyOptions, type UseCopyResult, type UseInViewOptions, type UsePanelWidthOptions, Video, type VideoProps, ViewTransitionName, type ViewTransitionNameProps, Workspace, WorkspaceBar, WorkspaceCanvas, accordionMeta, appHeaderMeta, appShellMeta, areaChartMeta, attachmentMeta, avatarGroupVariants, avatarMeta, avatarVariants, badgeMeta, badgeVariants, bannerMeta, bannerVariants, barChartMeta, bottomNavMeta, breadcrumbsMeta, browserMeta, bubbleMeta, buttonMeta, buttonVariants, calendarMeta, cardMeta, carouselMeta, chartColor, toneColor as chartToneColor, chatComposerMeta, checkboxCardMeta, checkboxMeta, cn, codeBlockMeta, codeMeta, collapsibleMeta, colorFieldMeta, comboboxMeta, commandMenuMeta, componentGuidance, componentLabel, componentSlug, componentsInGroup, contextCardMeta, contextMenuMeta, dataTableMeta, datePickerMeta, dateTileMeta, destructiveActionModalMeta, dialogMeta, emptyStateMeta, entityMeta, feedbackMeta, fieldsetMeta, fileDropzoneMeta, fileDropzoneVariants, formMeta, formatFileSize, formatHex, glidingHighlightMeta, gradientArtMeta, hsvToRgb, hueColor, inlineStatusMeta, inputMeta, isTransparent, kbdMeta, labelMeta, lineChartMeta, markerMeta, marqueeMeta, menuMeta, messageMeta, messageScrollerMeta, meterIndicatorVariants, meterMeta, meterTrackVariants, middleTruncateMeta, noteMeta, noteVariants, notificationBadgeMeta, notificationCountVariants, notificationDotVariants, numberFieldMeta, otpFieldMeta, overflowMenuMeta, pageHeaderMeta, pageLoaderMeta, paginationMeta, panelGroupMeta, panelSectionMeta, parseHex, phoneMeta, pieChartMeta, pillMeta, pillVariants, popoverMeta, progressMeta, progressTrackVariants, radarChartMeta, radialChartMeta, radioCardMeta, radioMeta, relativeTimeMeta, rgbToHsv, scrollerMeta, scrubFieldMeta, searchInputMeta, segmentedBarMeta, segmentedBarSegmentVariants, segmentedBarVariants, selectMeta, separatorMeta, settingsMenuMeta, sheetMeta, sheetVariants, showMoreMeta, sideNavMeta, sidebarMeta, skeletonMeta, sliderMeta, sparklineMeta, spinnerMeta, startViewTransition, statusBarMeta, statusDotMeta, statusDotVariants, stepperConnectorVariants, stepperIndicatorVariants, stepperMeta, streamingTextMeta, supportsViewTransitions, switchMeta, tableMeta, tabsMeta, textareaMeta, themeSelectorMeta, themeSwitcherMeta, thinkingOrbMeta, toast, toastMeta, toggleMeta, toolbarGroupVariants, toolbarMeta, toolbarSeparatorVariants, toolbarVariants, tooltipMeta, treeIndent, treeMeta, useAnchoredDensity, useComboboxFilteredItems, useCommandMenuShortcut, useCopy, useDensity, useInView, useMotion, usePanelWidth, usePresentation, useReducedMotion, useScrollActivity, useSidebar, useToast, useToastManager, useTypeTier, videoMeta, workspaceMeta };
|
|
8229
|
+
export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, AppHeader, type AppHeaderProps, AppShell, type AppShellProps, AreaChart, type AreaChartProps, type ArtTone, Attachment, type AttachmentProps, Avatar, AvatarFallback, AvatarGroup, AvatarGroupCount, type AvatarGroupCountProps, type AvatarGroupProps, AvatarImage, type AvatarProps, AvatarRoot, BADGE_APPEARANCES, BADGE_TONES, Badge, type BadgeAppearance, type BadgeProps, type BadgeTone, Banner, type BannerProps, BarChart, type BarChartProps, BottomNav, BottomNavItem, type BottomNavItemProps, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbPage, type BreadcrumbPageProps, BreadcrumbSeparator, type BreadcrumbSeparatorProps, Breadcrumbs, type BreadcrumbsProps, Browser, type BrowserProps, Bubble, type BubbleProps, BubbleReaction, type BubbleReactionProps, BubbleReactions, type BubbleReactionsProps, Button, type ButtonBleed, type ButtonProps, CHART_SERIES_COUNT, COMPONENT_GROUPS, COMPONENT_TAXONOMY, Calendar, type CalendarProps, Card, CardAction, CardContent, type CardContentProps, CardDescription, CardFooter, type CardFooterProps, CardHeader, CardList, type CardProps, CardTitle, type CardTitleProps, Carousel, type CarouselProps, type CarouselSlidesToShow, type ChartCategories, type ChartCenterLabel, type ChartCurve, type ChartDatum, type ChartSeries, type ChartTone, type ChartTooltipIndicator, type ChartTooltipOptions, type ChartValueFormatter, ChatComposer, type ChatComposerProps, Checkbox, CheckboxCard, type CheckboxCardProps, type CheckboxCardTone, CheckboxGroup, type CheckboxGroupProps, Code, CodeBlock, type CodeBlockProps, CodeHighlightProvider, type CodeHighlighter, type CodeProps, Collapsible, CollapsibleIndicator, CollapsiblePanel, CollapsibleTrigger, ColorField, type ColorFieldProps, Combobox, ComboboxChips, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, type ComboboxItemGroup, ComboboxItemIndicator, ComboboxList, ComboboxPortal, type ComboboxProps, ComboboxValue, ComboboxVirtualList, type ComboboxVirtualListProps, type CommandFilter, type CommandItem, CommandMenu, CommandMenuGroup, type CommandMenuGroupProps, CommandMenuItem, type CommandMenuItemProps, CommandMenuPanel, type CommandMenuPanelProps, type CommandMenuProps, CommandMenuTrigger, type CommandMenuTriggerProps, type ComponentGroup, type ComponentGuidance, ComponentMeta, type ComponentRegister, ContextCard, ContextCardArrow, ContextCardContent, ContextCardPortal, ContextCardTrigger, ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPortal, ContextMenuSeparator, ContextMenuTrigger, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, DateTile, type DateTileProps, Density, DensityProvider, Density as DensityValue, DestructiveActionModal, type DestructiveActionModalProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, type DialogSize, DialogTitle, DialogTrigger, DisclosurePicker, DisclosurePickerEmpty, DisclosurePickerList, type DisclosurePickerListProps, DisclosurePickerOption, type DisclosurePickerOptionProps, DisclosurePickerPanel, type DisclosurePickerPanelProps, type DisclosurePickerProps, type DisclosurePickerSearch, DisclosurePickerTrigger, type DisclosurePickerTriggerProps, EmptyState, type EmptyStateProps, Entity, type EntityProps, Feedback, type FeedbackData, type FeedbackProps, type FeedbackRating, Field, type FieldProps, Fieldset, FieldsetContent, FieldsetDescription, FieldsetFooter, FieldsetLegend, FileDropzone, type FileDropzoneProps, type FileRejection, type FileRejectionCode, FontPicker, type FontPickerFont, type FontPickerOption, type FontPickerProps, Form, type FormProps, GlidingHighlight, type GlidingHighlightProps, GradientArt, type GradientArtProps, type Hsv, InlineStatus, type InlineStatusProps, type StatusTone as InlineTone, Input, type InputProps$1 as InputProps, Kbd, KbdGroup, type KbdGroupProps, type KbdProps, Label, type LabelProps$2 as LabelProps, LineChart, type LineChartProps, Marker, type MarkerProps, Marquee, type MarqueeProps, MediaImage, type MediaImageProps, MediaTile, type MediaTileProps, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubmenu, MenuSubmenuTrigger, MenuTrigger, Message, type MessageProps, MessageScroller, type MessageScrollerHandle, type MessageScrollerProps, Meter, MeterIndicator, MeterLabel, type MeterSize, type MeterTone, MeterTrack, MeterValue, MiddleTruncate, type MiddleTruncateProps, type MotionPolicy, MotionProvider, type MotionProviderProps, Note, type NoteAction, type NoteProps, NotificationBadge, type NotificationBadgeProps, NumberField, type NumberFieldProps, type OrbMode, type OrbSize, OtpField, type OtpFieldProps, OverflowMenu, type OverflowMenuProps, PageHeader, type PageHeaderProps, PageLoader, type PageLoaderProps, Pagination, type PaginationProps, Panel, PanelGroup, PanelResizer, type PanelResizerProps, PanelSection, type PanelWidthBounds, Phone, type PhoneProps, PieChart, type PieChartProps, Pill, type PillProps, Popover, PopoverArrow, PopoverClose, PopoverContent, PopoverDescription, PopoverPortal, PopoverTitle, PopoverTrigger, Presence, type PresenceProps, type Presentation, PresentationProvider, Progress, ProgressIndicator, ProgressLabel, type ProgressSize, ProgressTrack, ProgressValue, PropertyPair, PropertyRow, RadarChart, type RadarChartProps, RadialChart, type RadialChartProps, Radio, RadioCard, type RadioCardProps, type RadioCardTone, RadioGroup, RelativeTime, type RelativeTimeProps, Reveal, type RevealProps, type Rgb, SABLE_UI_VERSION, SEGMENTED_BAR_TONES, STATUS_TONES, STATUS_TONE_ICON, type ScrollCommandOptions, Scroller, type ScrollerProps, ScrubField, type ScrubFieldProps, SearchInput, type SearchInputProps, SectionHeader, type SectionHeaderProps, SegmentedBar, type SegmentedBarProps, type SegmentedBarSegment, type SegmentedBarTone, Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectPortal, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps$3 as SeparatorProps, SettingsMenu, type SettingsMenuProps, SettingsRow, type SettingsRowProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetList, SheetPortal, SheetTitle, SheetTrigger, ShowMore, type ShowMoreProps, SideNav, type SideNavActiveVariant, SideNavGroup, type SideNavGroupProps, SideNavItem, type SideNavItemProps, type SideNavProps, type SideNavSize, Sidebar, SidebarBrand, type SidebarBrandProps, SidebarFooter, SidebarHeader, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarProps, SimpleTooltip, Skeleton, Slider, SliderControl, SliderIndicator, SliderRoot, SliderThumb, SliderTrack, SliderValue, Sparkline, type SparklineProps, Spinner, type SpinnerProps, StatusBar, StatusBarGroup, StatusBarSeparator, StatusDot, type StatusDotProps, type StatusTone, type StepStatus, Stepper, StepperItem, type StepperItemProps, type StepperOrientation, type StepperProps, StreamingText, type StreamingTextProps, Switch, TRANSPARENT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsList, TabsPanel, TabsTrigger, TextReveal, type TextRevealProps, Textarea, type TextareaProps, ThemeId, ThemeManifest, ThemeMode$1 as ThemeManifestMode, type ThemeMode, ThemePreview, type ThemePreviewProps, ThemeSelector, type ThemeSelectorProps, ThemeSwitcher, type ThemeSwitcherProps, ThinkingOrb, type ThinkingOrbProps, ToastAction, type ToastApi, ToastClose, ToastContent, ToastDescription, type ToastManagerApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastProviderProps, ToastRoot, ToastTitle, type ToastType, ToastViewport, Toggle, ToggleGroup, type ToggleGroupAppearance, Toggle as ToggleGroupItem, Toolbar, ToolbarButton, type ToolbarButtonProps, ToolbarGroup, type ToolbarGroupProps, ToolbarInput, type ToolbarInputProps, ToolbarLink, type ToolbarLinkProps, type ToolbarProps, ToolbarSeparator, type ToolbarSeparatorProps, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Tree, TreeAddRow, TreeEmpty, TreeRow, TreeSection, type UseCopyOptions, type UseCopyResult, type UseInViewOptions, type UsePanelWidthOptions, Video, type VideoProps, ViewTransitionName, type ViewTransitionNameProps, Workspace, WorkspaceBar, WorkspaceCanvas, accordionMeta, appHeaderMeta, appShellMeta, areaChartMeta, attachmentMeta, avatarGroupVariants, avatarMeta, avatarVariants, badgeMeta, badgeVariants, bannerMeta, bannerVariants, barChartMeta, bottomNavMeta, breadcrumbsMeta, browserMeta, bubbleMeta, buttonMeta, buttonVariants, calendarMeta, cardMeta, carouselMeta, chartColor, toneColor as chartToneColor, chatComposerMeta, checkboxCardMeta, checkboxMeta, cn, codeBlockMeta, codeMeta, collapsibleMeta, colorFieldMeta, comboboxMeta, commandMenuMeta, componentGuidance, componentLabel, componentSlug, componentsInGroup, contextCardMeta, contextMenuMeta, dataTableMeta, datePickerMeta, dateTileMeta, destructiveActionModalMeta, dialogMeta, disclosurePickerMeta, emptyStateMeta, entityMeta, feedbackMeta, fieldsetMeta, fileDropzoneMeta, fileDropzoneVariants, fontPickerMeta, formMeta, formatFileSize, formatHex, glidingHighlightMeta, gradientArtMeta, hsvToRgb, hueColor, inlineStatusMeta, inputMeta, isTransparent, kbdMeta, labelMeta, lineChartMeta, markerMeta, marqueeMeta, mediaImageMeta, mediaTileMeta, menuMeta, messageMeta, messageScrollerMeta, meterIndicatorVariants, meterMeta, meterTrackVariants, middleTruncateMeta, noteMeta, noteVariants, notificationBadgeMeta, notificationCountVariants, notificationDotVariants, numberFieldMeta, otpFieldMeta, overflowMenuMeta, pageHeaderMeta, pageLoaderMeta, paginationMeta, panelGroupMeta, panelSectionMeta, parseHex, phoneMeta, pieChartMeta, pillMeta, pillVariants, popoverMeta, progressMeta, progressTrackVariants, radarChartMeta, radialChartMeta, radioCardMeta, radioMeta, relativeTimeMeta, rgbToHsv, scrollerMeta, scrubFieldMeta, searchInputMeta, sectionHeaderMeta, segmentedBarMeta, segmentedBarSegmentVariants, segmentedBarVariants, selectMeta, separatorMeta, settingsMenuMeta, sheetMeta, sheetVariants, showMoreMeta, sideNavMeta, sidebarMeta, skeletonMeta, sliderMeta, sparklineMeta, spinnerMeta, startViewTransition, statusBarMeta, statusDotMeta, statusDotVariants, stepperConnectorVariants, stepperIndicatorVariants, stepperMeta, streamingTextMeta, supportsViewTransitions, switchMeta, tableMeta, tabsMeta, textareaMeta, themeSelectorMeta, themeSwitcherMeta, thinkingOrbMeta, toast, toastMeta, toggleMeta, toolbarGroupVariants, toolbarMeta, toolbarSeparatorVariants, toolbarVariants, tooltipMeta, treeIndent, treeMeta, useAnchoredDensity, useComboboxFilteredItems, useCommandMenuShortcut, useCopy, useDensity, useDisclosurePicker, useInView, useMotion, usePanelWidth, usePresentation, useReducedMotion, useScrollActivity, useSidebar, useToast, useToastManager, useTypeTier, videoMeta, workspaceMeta };
|